java实验报告总结_0_第1页
java实验报告总结_0_第2页
java实验报告总结_0_第3页
java实验报告总结_0_第4页
java实验报告总结_0_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 / 24 java 实验报告总结 北京联合大学 信息学院 “ 面向对象程序设计 ” 课 程上机实验报告 题 目: JAVA上机实验心得体会 姓名:专 业: 计算机科学与技术 编 制 时 间: 2016 年 12月 19日 版 本: 指 导 教 师:北京联合大学 -信息学院编制 实验 1 熟悉 Java运行环境 实验 目的:熟悉 JDK环境和操作,编写简单的 Java应用程序。 心得体会:在该实验中,我碰到的问题是 JDK 环境变量的设置。解决方法是通过查阅资料书和网上搜索相关解决方法及同学的有力帮助。 实验 2 选择语句练习 实验目的:正确理解并能够熟练操作和使用 Java的 if和 switch语句。 心得体会:我个人感觉有了 C 的编程基础, if和2 / 24 switch 这些简单的流程控制语句运用起来比较轻松,实现简单的逻辑运算也跟 C 非常相近,所以上手比较快。但是在这次程序中 ,首次涉及到了 java 程序的数据输入,与 C 区别很大。但经过老师的讲解和查阅相关资料,基本明白相关的使用规则和注意事项。在第二个小题中还涉及到了 charAt方法,经查阅 JDK 文档,知道 charAt()方法返回一个位于提供给它的参数索引处的字符,如 : (0)检索 str 中的第一个字符 ,()-1)检索最后一个字符。我运用此方法解决了比较字符串间首字母异同的问题。 实验 3 迭代练习 实验目的:正确理解并能够熟练操作和使用 Java的 for、 while、 do.while 语句。 心得 体会:在该实验中,我学会了为具体操作选择最合适的循环语句及 for、 while、do.while 语句的相互转换使用。最重要的是,明白了 JAVA程序中,定义方法中的局部变量时一定要赋初始值,否则编译不能通过会报错;但类中的成员变量则不一定需要。如我在实验 3main()方法定义的整型局部变量 command,当不初始化则不能通过编译。原因是局部变量不能有 JVM 自动赋给相关的默认值,而成员变量可以。 实验 4 方法的实现练习 实验目的:声明、定义和调用方法,理解实参和形参的含义。 3 / 24 心得体会:在该实验中,我掌握如何写方法、调用方法,并掌握如何向方法中传递信息和从方法中返回信息。方法声明为非 void则需要用 return语句返回一个相应类型的返回值。 实验 5 简单类型数组练习 实验目的:学习创建简单类型的数组,并能用循环语句处理数组。 心得体会:通过该实验,我学会了如何让建立简单类型的数组,并掌握了将数组作为方法的传入参数和返回值。在该实验中,遇到的问题主要是如何将一个连续的多位数在存入数组时,每个数组元素只对应改 多位数的一个组成数。我解决的方法如下: for(i=0; i ni = aa%10; /aa%10 的结果是 aa 的末尾数,将多位数 aa 的末尾数赋给 ai aa = (int)aa/10; /对 aa/10 的结果强制取整,去掉了 aa 的末尾数,以便对下一位数的存数。 实验 6 类和对象的练习 实验目的:正确理解并能够熟练操作和使用 Java的类、对象和方法。 心得体会:我学会了如何建立类和对象,分别输出其中包 含的成员值;以及分别引用各方法,实现不同的操4 / 24 作。在该程序中,我进一步了解了如何定义成员方法和成员属性以及相关方法的调用。特别是我掌握了利用构造方法对成员属性赋初始值。值得一提的是,我在相应的程序中运用了 toUpperCase 方法,经查看 JDK 文档知道该方法的作用是返回一个所有字母都被转化为大写字母字符串。 实验 7 类的实现 实验目的:使用统一建模语言设计类,并实现类。 心得体会:通过该实验,我学会了使用 public、private控制访问及其访问权限; 体会了 static关键字的作用。并对 JAVA 程序中的类及面向对象的编程思想有了更进一步的了解。 实验 8 继承的练习 实验目的:正确理解并能够熟练操作和使用 Java类的继承关系。 心得体会:理解了继承的含义,并使用 UML符号设计了继承结构;掌握了用 Java 实现继承关系;学会了区分方法重写和方法重载;并深入理解了 abstract 和 final修饰符的作用。用 final 标记的变量只能赋值一次,标记的类不可被继承,方法不可被子类重写。用关键字 extends 表继承,例如子类 A 继承了父类 B则可写作 class A extends B。在这些概念性知识点弄明白后,在解决实际问题时,碰到了输入年月日计算车龄的问题,我的解决办法如下: 5 / 24 public int age(int year) int age; int a1 = (int)(time/10000); / 专 业信息与计算科学 班 级 101001班 姓 名 学 号 101001113 导 师 2016年 11月 26日 for 循环程序设计 【实验目的】通过对 for 循环学习,了解 java中的循环语句的应用和它们的用法。 【实验原理】 for(表达式 1;表达式 2;表达式3)/循环体 表达式 1 一般是一个赋值语句,它用来给循环控制变量 赋初值;表达式 2 是一个布尔类型的表达式,它决定什么时候退出循环;表达式 3一般用来修改循环变量,控制变量每 循环一次后按什么方式变化。这三个部分之间用“ ; ” 隔开。 【实验要求】 windows 操作系统,安装, eclipse运行环境 6 / 24 【实验步骤】 打开 eclipse,建立一个工程 pro,建立一个包 ,开始 java编程,建立一个 class类 Test。 按给定的题目写出符合语法分析方法,按给定的题目给出语法分析方法的思想及分析表设计。 按给定的题目给出中间代码序列的结构设计。对于 for循环的具体操作,见程序 Test1 图 1 for 循环语句 探究 if 与 for 循环嵌套,及其其他循环语句的使用,与 for循环使用的差别,见程序 图 2 if与 for嵌套 图 3 switch 循环 【问题与解决方法】如图 1 和 2,这个两个程序中,主要遇到的问题在 for后面的里面表示的书写,以及怎样把if嵌套在 for 语句中。如图 3,这个程序中,将其它循环使用的方法搞混。 解决方法:通过查阅资料,熟记了几个循环的使用方法,及其注意事项,将错误 的一一修改。 【实验总结】通过这个实验,我已熟悉掌握了 for7 / 24 等循环语句的用法, for它既可以单独用,也可以嵌套在 for等循环语句中,增加了程序可读行,方便编程,为以后的学习 java 起到了一定铺垫作用,不过还需要多练习,才能熟能生巧,为以后 java编程起到一定作用。 参考文献: 1.郎波 .Java语言程序设计 .-北京:清华大学出版社, 一、实训项目 简易记事本 二、实训目的和要求 本次实训是对前面学过的所有面向对象的编程思想以及 JAVA WEB 编程方法的一个总结、回顾和实践,因此,开始设计前学生一定要先回顾以前所学的内容,明确本次作业设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。通过编写采用 JSP+Servlet+JavaBean技术框架的应用系统综合实例,以掌握 Java WEB开发技术。 具体要求有以下几点: 1. 问题的描述与程序将要实现的具体功能。 2. 程序功能实现的具体设计思路或框架,并检查流程设计。 3. 代码实现。 4. 设计小结。 8 / 24 三、实训项目的开发环境和所使用的技术 基于 J2SE 基础,利用 MyEclipse 以上版本的集成开发环境完成实训项目,界面友好,代码的可维护性好,有必要的注释和相应的文档。 四、实训地点、日程、分组情况: 实训地点: 4 栋 303机房 日 程: 第一阶段: 1.班级分组,选定课题,查阅相关资料 半天 2.划分模 块、小组成员分工半天 3.利用 CASE 工具进行系统设计和分析,并编制源程序 5天 第二阶段:上机调试,修改、调试、完善系统 2天 第三阶段:撰写、上交课程设计报告,上交课程设计作品源程序 2 天 五、程序分析 功能模块说明 弹出菜单 for(int f=0;f 改变字号: public void zihao() 9 / 24 Font f=new Font(,20); (f); 设置字型 public void ziti() Font f=new Font(宋体 ,15); 改变字体颜色 public void Font() JColorChooser jColor=new JColorChooser(); Color fcolor=(); ( (jta,选择字体颜色 ,fcolor); 自动换行 public void action() (true);/激活自动换行功能 实现接口 public void actionPerformed(ActionEvent e ) (true);/ 激 活 断 行 不 断 字 功 能 (jt9).setEnabled(false); (f); (jpf); (new MouseAdapter() public void mouseReleased(MouseEvent event) if()(),ev (),();); 10 / 24 创建保存文件对话框 public void saveFile() 创建打开文件对话框 private void openFile() JFileChooser filechoose=new JFileChooser(); int result=(null); if(result=_OPTION) try File file=(); FileReader fr=new FileReader(file); int len=(int)(); char context=new charlen; (context,0,len); (); (new String(context); JFileChooser filechoose=new JFileChooser(); int result=(null); if(result=_OPTION) try File file=(); FileWriter fw=new FileWriter(file); (); (); catch(Exception e)(保存文件失败! ); else return; catch(Exception e)(打开文件失败! ); else return; 六、程序设计及实现 1、实现弹出菜单 2、设置字型,字体大小,字体颜色 3、实现自动换行 七、实训总结 通过 3 天的实训,虽然实训的时间不长,但是总11 / 24 体上收获是很大的,我们的 java课程学到的只是 java和皮毛,一开始我还没有信心完成。我仔细看了书上的代码之后。对计事 本有了一个大体的了解,在初训的实候知道自己应该做一个什么样的计事本了,在实训的过程中也遇到了不少困难,通过查 API文档和看书,解决了问题,在写到字符的查找的替换时后,用到了上课时学到的知识,对字体的风格的保存里面的颜色分离和还原方法,是通过查 API文档获得的 ,现在我所写的计事本只实现在一些基本功能。简单的复制粘贴,字体风格的设置,还有就是查找和替换功能以及一些字体风格的保存 .对文件的操作基本都用到了。 在实现记事本的功能过程中,也不是很顺利,基本的文件读写和保存文档的复制、粘贴、删除等功能 还比较容易实现,但如何改变字体、字体颜色和背景颜色,就比较麻烦了,要实现字体颜色和背景颜色,首先要调用系统的调色板,再进行设置。但如何调用系统调色板?我是通过查阅帮助文档来找到其调用方法的。像自动换行、设置字体等都是通过方法来调用,给相关事件加上监听,在进行响应事件。整个程序中方法才是最关键的,也是最困难的。所以像查找、替换、转到几个功能我都不知道用什么方法,也由于时间有限,没有完成其功能。 总体的感觉是对 java 有了一个全新的认识,现在感觉用 java 做小的图形用户程序有些缺陷,但是在其的应用方面。尤其是有 网络方面的应用,在整个实12 / 24 训我也尝试过做一个小的画图软件。但是由于时间关系还有一个是自身的知识的欠缺,最终这个事情被搁浅下来了。最后还是进行计事本的编写。由于在做画图软件时花了不了时间,所以现在的计事本的功能不是很全,如果有更多的时间,我会把这个记事体再完善一下,再把画图软件也做出来。实训的时间不长,但是我会在课外把它们的功能完善。然后再学习一下 java和网络的编程,体验 java的前沿技术。 在学习的过程中也体会到,遇到问题也要请教。不然的话自己一个人去做的话会花很多的时间,我在做这个记事本 的时间,其中也问到过许多问题,通过同学的帮助下解决了,提高了程序的开发进程。其他的同学有问题的话我也是给他们尽量解决。我认为学习知识的过程当中就应该是相互学习相互进步的。 Java是面在的主流技术我会努力将它学好,现在我缺乏的是坚持不懈的精神,我会向他学习。 虽然学习 java的路还很找,但我会继续走下去。 姓名 实验报告成绩 评语: 指导教师 年 月 日 一、 实验目的 1. 掌握接口的概念,实现定义接口的方法。 13 / 24 2. 理解抽象类的概念。 3. 理解接口与抽象类的区别。 二、实验内容 1. 设计一个 Person 类,其成员变量有:姓名(name)、性别 (gender)、年龄 (age);再设计一个 Student类,它是类 Person 的子类,其成员变量有:学号 (id)、班名 (cname)、成绩 (score),类 Student 中要有一个方法 display(),用来显示一个学生的信息。 编写一个测试程序,创建一个 Student 类的对象,要求 name和 id 是自己的姓名和学号,输出学生的各种信息,学生的基本信息在类 Student的带参数的构造方法中设定。 public class Main class Person class Student extends Person String id; String cname; intStudent(String name,String gender,String age,String id,String cname,int score) void display() (name+ +gender+ +age+ +id+ +cname+ +score); =name; =gender; =age; =id; =cname; =score; String name; String gender; String age; public static void main(String args) 14 / 24 Student A = new Student( , 男,18,1243102140,计算班 ,100); (); 2. 定义一个类 A,该类有一个方法 f,方法 f 可以输出英文字母,再定义一个类 B 是 A 的子类,子类 B 不能重写父类 A的方法 f,子类有一个方法 g,可以输出中文字符串。 编写测试程序,创建 B 的对象,输出英文字母和中文字符串。 public class Main class A class B extends A void g(String str) (str); void f(char c) (c); public static void main(String args) B temp = new B(); (A); (你好 ); 3. 定义一个坐标类 Pointer,成员变量包括 x和y;成员方法有: 构造方法 setX、 setY、 getX、 getY、 display方法 类方法distance用来计算两点之间的距离 编写测试程序,创建 Pointer的两个对象并计算两个点坐标的距离。 15 / 24 public class Main class Pointer double x,y; Pointer(double x,double y) =x; =y; public static void main(String args) Pointer p1 = new Pointer(,); Pointer p2 = new Pointer(,); (p2); void setY(double y) double getX() double getY() double distance(Pointer b) return ()*()+()*(); return y; return x; =y; =x; 4. 定义一个抽象类 Area、两个 Area 的子类RectArea 和 RoundArea,以及一个实现类 ImpleArea。要求如下 抽象类 Area 类中只包含一个抽象方法 double area()。 16 / 24 子类 RoundArea 类通过覆盖父类中的抽象方法area()来求圆的面积,另一个 子类 RectArea 类通过覆盖父类中的抽象方法area()求长方形的面积。 圆的半径和长方形的边分别定义为子类RoundArea 类和 RectArea类的域,都 为 double娄型。 ImpleArea 类中创建对象,接收键盘输入,输入内容分别为圆的半径和长方 形的边,并求出圆和长方形的面积,在屏幕上显示。 import ; public class Main abstract class Area class RoundArea extends Area double r; RoundArea(double r) =r; abstract double area(); public static void main(String args) (); public double area() 17 / 24 return *r*r; class RectArea extends Area class ImpleArea static double a,b; static void test() Scanner sc = new Scanner(); (请输入半径:); RoundArea A = new RoundArea(); (请输入宽: ); a=(); (请输入高: ); b=(); RectArea B = newa,b); (); (); (); double a,b; RectArea(double a,double b) public double area() return a*b; =a; =b; 5. 编写一个 Flyable接口,包含: 方法: double flySpeed(),用于返回最大的飞行速度。并实现该接口 . public class Main A fly = new A(); 18 / 24 (); interface Flyable class A implements Flyable public double flyspeed()double speed = 0;/* * 计算过程 */ return speed; public double flyspeed(); XX大学 2016-2016学年第 2学期 JAVA 面向对象程序设计课程大作业报告 课题名称: Java 斗地主纸牌游戏 小组成员人数 5人 小组成员名单 (学号和姓名): 自己: 班级 学号 _姓名 _ 其他组员: 课题实 现采用的工具 _eclipse_课题完成时间: _2016/05/20_对应提交的电子文档打包文件名称 (准确填写 ): _ 斗地主 .rar_ 一大作业目的 通过对斗地主纸牌游戏的程序设计,能更加深入19 / 24 了解面向对象的编程思想。也对 JAVA这门语言能了解更多,能够正确并较为熟练的运用 java 进行图像化编程和使用java中的 ui控件。 二题目与要求 斗地主,基本上要有抢地主,出牌,托管功能,整个打牌过程尽量快速简介,尽量不出,规则参照 QQ 斗地主。 开发过程分工: 1首先列出程序所包含的功能,给出相应所需要的类包。 2设计主窗体布局及菜单栏 登入窗口。 3设计抢地主事件及游戏过程中出牌时间的控制 4设计电脑发牌 电脑判断并出牌 电脑代出 5添加背景音乐及游戏主题环境的设计 6包中各个类的整理及程序调试 7程序中错误的修 改以及对于程序的改进 代码编写: 详见 斗地主 .rar 四:希望达到的效果、 1. 将其他同学负责的部分添加到同一个工程下,并实现运行。 首先是将不同的文件导入到同一个包中,因为这份斗地主是参考一份网上下载的斗地主源码,所以每个人都是对相应的 java 代码文件进行相应的编译,所以工程的整体性没有大的问题。只是不同的人设置了不同的变量名造成了系统的报错,在统一了变量名之后解决了这个问20 / 24 题。 2. 设定游戏的主题环境 原本的决定是参照传统 的纸牌类游戏的界面进行设计,在窗口界面设计好之后我觉得传统的纸牌背景只是桌布背景过于呆板无趣,所以决定网上寻找合适的背景图做为背景。当我在寻找图片时发现一张文革时期的宣传画,觉得里面的红色 “ 斗 ” 字符合斗地主游戏氛围。同时期新闻播报朝美问题,我就有了现实的国家关系就像斗地主一样,是一场政治博弈。于是就有了将斗地主的农民地主的头像换成某些领导人来暗指这场政治博弈的想法,同时改了牌的背面图案再把登入窗口背景设置成为某个著名的游戏海报,当然这次的大作业只是一个游戏设计做学习用,并没有任何恶意。主窗口的桌面被我设计成 了透明,只显示了背景图片,因为我发现透明的窗口面板的灰色也恰好是适合这个背景图片的,所以没有添加其他的颜色和图片以便画面简洁。 3. 添加音乐的问题 对于添加的背景音乐我选择了 qq 游戏的欢乐斗地主的,是为了冲淡游戏主题的部分严肃气氛。但是在添加音乐的操作上我碰到了一些困难,就是书上并没有相应的操作说明。同时网上的用法大部分已经无法在以后使用。同时在寻找到相应的用法一直无法导入需要用的方法,造成了21 / 24 eclipse 一直报错。后来我参考网上的一份聊天室源代码,发现了音乐添 加的解决方法。通过导入 *和 *使用 audio方法和 applet方式打开音乐流文件并设置 LOOP循环播放 4. 设置抢地主方式的问题 因为初始抢地主只有两个按钮,抢或不抢,但是实际游戏中往往有叫分的环节,所以后来与施芸商量添加JButton并调整了相应位置使得抢地主变成 123叫分模式。 5. 设置计时器显示的方式 初始的计时器显示方式是采用了 JText,但是出现了显示过程中可以修改其中文字的情况,同时背景 也是不透明遮挡了后面的背景,于是我修改为 Jlabe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论