第一篇:java上机实验
1、实验一:多线程程序设计:炮打飞机
实验目的:学会使用多线程进行并发程序设计
实验内容:编写一个应用程序模拟大炮打飞机。在GUI界面上,飞机水平飞行,用界面上的按钮控制大炮的运行方向(如向左,向右,向上,向下)。当炮弹碰着飞机后,飞机坠落。
2、实验二:数据库编程:书目信息管理
实验目的:掌握数据库编程技术。能正确连接数据库,能对数据库中信息进行查询、插
入、删除、修改。
实验内容:在数据库中创建一张书目信息表,包括书名、作者、出版社、出版日期、书
号、价格字段。设计一个GUI界面进行书目管理。在该界面上有四个选项卡,分别是查询、插入、删除、修改。点击查询选项卡,出现的界面上有书名、作者、出版社、书号四个文本框,一个按钮和一个只读文本区。文本框内容可以为空,输入相应的查询信息后(例如根据书名查询可以仅输入书名),点击界面上的“查询”按钮,可以在界面下方的文本区中显示出符合条件的书目详细信息。点击插入选项卡,出现的界面上有书名、作者、出版社、出版日期、书号、价格文本框,一个按钮。在文本框中输入信息后,点击“插入”按钮,该书目信息插入数据库表中。点击删除选项卡,出现的界面上有书名文本框和一个按钮,输入书名后点击“删除”按钮,该书目信息从数据库表中删除。点击修改选项卡,出现的界面上有书名、作者、出版社、出版日期、书号、价格文本框,一个按钮。输入的书名必须是已存在的,否则会弹出消息框显示出错信息。输入信息后,点击“修改”按钮,数据库表中的相应书目信息被修改为新值。
3、实验三:Applet编程:鸭子的移动
实验目的:掌握Applet程序设计的方法,学会在Applet中绘制图片,能采用双缓冲技术进行图片绘制,会在Applet中采用多线程进行动画显示。能在Applet中实现动画的平滑显示,避免闪烁现象。
实验内容:在Applet窗口中显示一只鸭子图片,要求这只鸭子以每秒100帧的速率水平移动,移到窗口边界再返回移动。在窗口中点击鼠标,鸭子停止移动;再次点击鼠标,鸭子恢复移动。
4、实验四:网络编程:聊天室的实现
实验目的:会编写客户端和服务器程序实现C/S模式下的通信,会使用多线程进行网络编程。
实验内容:编写一个聊天室程序:客户端界面请自行设计,可使其具有个性化特征; 可在实现基本的聊天室功能的基础上添加个性化的功能。
第二篇:java上机实验心得体会报告
北京联合大学信息学院
“面向对象程序设计”课程上机实验报告
题目:
JAVA上机实验心得体会 姓名(学号):
专业:计算机科学与技术
编制时间:
202_年12月19日
版本:
1.0.0
指导教师:
北京联合大学-信息学院编制 实验1 熟悉Java运行环境
实验目的:熟悉JDK环境和操作,编写简单的Java应用程序。
心得体会:在该实验中,我碰到的问题是JDK环境变量的设置。解决方法是通过查阅资料书和网上搜索相关解决方法及同学的有力帮助。实验2 选择语句练习
实验目的:正确理解并能够熟练操作和使用Java的if和switch语句。
心得体会:我个人感觉有了C的编程基础,if和switch这些简单的流程控制语句运用起来比较轻松,实现简单的逻辑运算也跟C非常相近,所以上手比较快。但是在这次程序中,首次涉及到了java程序的数据输入,与C区别很大。但经过老师的讲解和查阅相关资料,基本明白相关的使用规则和注意事项。在第二个小题中还涉及到了charAt()方法,经查阅JDK文档,知道charAt()方法返回一个位于提供给它的参数索引处的字符,如: str.chatAt(0)检索str中的第一个字符,str.charAt(str.length()-1)检索最后一个字符。我运用此方法解决了比较字符串间首字母异同的问题。
实验3 迭代练习
实验目的:正确理解并能够熟练操作和使用Java的for、while、do..while语句。心得体会:在该实验中,我学会了为具体操作选择最合适的循环语句及for、while、do..while语句的相互转换使用。最重要的是,明白了JAVA程序中,定义方法中的局部变量时一定要赋初始值,否则编译不能通过会报错;但类中的成员变量则不一定需要。如我在实验3main()方法定义的整型局部变量command,当不初始化则不能通过编译。原因是局部变量不能有JVM自动赋给相关的默认值,而成员变量可以。实验4 方法的实现练习
实验目的:声明、定义和调用方法,理解实参和形参的含义。
心得体会:在该实验中,我掌握如何写方法、调用方法,并掌握如何向方法中传递信息和从方法中返回信息。方法声明为非void(构造方法除外)则需要用return语句返回一个相应类型的返回值。
实验5 简单类型数组练习
实验目的:学习创建简单类型的数组,并能用循环语句处理数组。
心得体会:通过该实验,我学会了如何让建立简单类型的数组,并掌握了将数组作为方法的传入参数和返回值。在该实验中,遇到的问题主要是如何将一个连续的多位数在存入数组时,每个数组元素只对应改多位数的一个组成数。我解决的方法如下: for(i=0;i<6;i++){ n[i] = aa%10;//aa%10的结果是aa的末尾数,将多位数aa的末尾数赋给a[i] aa =(int)aa/10;//对aa/10的结果强制取整,去掉了aa的末尾数,以便对下一位数的存数。}
实验6 类和对象的练习
实验目的:正确理解并能够熟练操作和使用Java的类、对象和方法。心得体会:我学会了如何建立类和对象,分别输出其中包含的成员值;以及分别引用各方法,实现不同的操作。在该程序中,我进一步了解了如何定义成员方法和成员属性以及相关方法的调用。特别是我掌握了利用构造方法对成员属性赋初始值。值得一提的是,我在相应的程序中运用了toUpperCase方法,经查看JDK文档知道该方法的作用是返回一个所有字母都被转化为大写字母字符串。实验7 类的实现
实验目的:使用统一建模语言(UML)设计类,并实现类。
心得体会:通过该实验,我学会了使用public、private控制访问及其访问权限;体会了static关键字的作用。并对JAVA程序中的类及面向对象的编程思想有了更进一步的了解。实验8 继承的练习
实验目的:正确理解并能够熟练操作和使用Java类的继承关系。
心得体会:理解了继承的含义,并使用UML符号设计了继承结构;掌握了用Java实现继承关系;学会了区分方法重写和方法重载;并深入理解了abstract 和 final修饰符的作用。用final标记的变量只能赋值一次,标记的类不可被继承,方法不可被子类重写。用关键字extends表继承,例如子类A继承了父类B则可写作 class A extends B。在这些概念性知识点弄明白后,在解决实际问题时,碰到了输入年月日计算车龄的问题,我的解决办法如下: public int age(int year){
int age;
int a1 =(int)(time/10000);//(int)time/10000是将8位数表示的生产年月日强制转换成四位数表示的年
int a2 =(int)(year/10000);//将当前年月日转换为年
age = a2-a1 +1;//计算车龄
return age;} 实验9 抽象类、接口练习
实验目的:综合运用接口,类的知识。
心得体会:在该实验中,我掌握了接口定义,以及类实现接口。接口用interface关键字定义,在接口中,可以用abstract是修饰方法的,也可以去掉abstract,编译时会默认为抽象方法。类实现接口可用implements表示,例如class Circle implements Shape表示,Circle类实现了接口Shape。实验10 多态练习
实验目的:理解并使用面向对象的特征:多态。
心得体会:在实验10中,我基本掌握了多态的句柄、多态方法的定义。在改程序中,我遇到了要求随机产生一个图形的难题,通过网上查阅资料,利用系统函数Math.random()经一系列的运算处理来随机产生一个图形解决了该难题,具体的程序如下: public static void main(String[] args)
{
Circle cir = new Circle(9);
Square squ = new Square(4);
Shape shape;
int r;
r =(int)(Math.random()*2);//用Math.random()方法产生0.00到1.00的随机数,乘2取整后非0即1
if(r == 0)
shape = cir;
else
shape = squ;
} shape.testShape(shape);//同一条语句产生不同的执行结果,多态性。
实验11 多线程处理
实验目的:理解线程的基本概念。
心得体会:通过该实验,基本能够理解线程的运行了。学会调用Thread类中的系统函数以及掌握这些函数的作用是难点,setName()是设置线程名字,start()是开辟一条新线程,Thread.currentThread().getName()是获得正在执行的线程的名字,Thread.currentThread().getId()是thread类中返回该线程的标识符的方法,Thread.currentThread().getPriority()是thread类中返回线程的优先级的方法。
实验12 I/O及文件处理
实验目的:掌握并使用Java中的I/O和文件。
心得体会:对于该实验,由于比较难,只是基本掌握了文件读写的方法和规则,还有待17周JAVA实训时继续攻坚克难。
结语:在这一系列的实验中,我基本掌握了Java的编程规则、知识要点和一些小技巧,特别是对面向对象的编程思想和风格有了进一步的认识和体会。同时,因正确的编出程序而带来的成就感让我对编程更加感兴趣。对于在这些实验过程中,请教老师、同学互助、查阅资料等基本的学习方式,使我更加领悟到集体和团队的力量,也树立了敢于攻坚的信心。
第三篇:Java上机实验报告
Homework3实验报告
一、实验目的与要求
1、掌握Java中类和接口的基本知识;
2、继承的基本知识;
3、集合的基本操作
二、实验内容 1.PIMCollection 类
创建一个可以管理PIMEntities实体的集合,该类实现了Collection接口,且必须实现了以下方法:(1).getNotes();返回PIMCollection中所有的PIMNote项,如果不包含PIMNote项,则返回一个空集合
(2).getTodos();返回集合PIMCollection中所有的PIMTodo项,如果不包含PIMTodo项,则返回一个空集合
(3).getAppointment();返回集合PIMCollection中所有的PIMAppointment项,如果不包含PIMAppointment项。则返回一个空集合(4).getContacts();返回结合PIMCollection中所有的PIMContact项,如果不包含PIMContact项,则返回一个空集合
(5).getItemsForDate(Date d);返回集合PIMCollection中所有与d匹配的PIMEntities,如果没有匹配d的项,则返回一个空集合
(只有PIMTodo和PIMAppointment项,因为PIMNote和PIMContact跟日期没有关系)。
2.TestPIMCollection类(自己的测试类)
向PIMCollection集合类中加入了一些PIMEntity实体类,并用PIMCollection类中实现的方法分别筛选出了其中的PIMNote、PIMTodo、PIMAppointment、PIMContact、符合指定日期d的集合并打印输出。
三、实验器材
计算机+windows操作系统+eclipse
四、实验步骤
1.程序源代码(压缩在文件夹里)2.编译执行程序 3.记录执行结果
五、实验结果
1.TestPIMCollection的测试代码:
2.程序的执行结果:
如图所示:程序分别输出了Todo、Note、Appointment、Contact、以及匹配指定日期的结合的结果。
六、实验小结
1、熟悉了Java集合的基本内容和操作,也包括了泛型的一些知识。
2、通过这个实验巩固了java的基础知识:类和接口的有关知识,继承的应用。
3、掌握了在eclipse下编译执行Java程序的知识。
4、通过几次的编程,熟悉了java的编程规则。
5、综合应用所学知识完成java程序的分析、设计、调试和总结,为以后编写更复杂的java程序打下了很好的基础。
第四篇:上机实验要求
上机实验要求
一、实验前的准备工作
在上机实验前应事先做好准备工作,以提高上机实验的效率:
1.了解所用的计算机系统(包括C编译系统)的性能和使用方法。
2.复习和掌握与本实验有关的教学内容。
3.准备好上机所需程序。要仔细弄清题意,选择和设计合适的算法。在选择算法时,应当是在理解现有算法的基础上,自己动手画出流程图再设计源程序。手编写程序应当书写整齐,并经人工检查无误后才能上机,以提高上机效率。切忌不编写程序或抄袭他人程序,注意培养严谨踏实的学习作风。
4.对运行中可能出现的问题应率先作出估计;对程序中自己有疑问的地方,应作上记号,以便在上机时给予重视。
5.准备好调试和运行时所需的数据。
二、上机实验基本步骤
上机实验时应该独立上机。上机过程中出现的问题,除了系统问题外,一般应自己独立处理,不要轻易举手问教师。尤其对“出错信息”,应善于自己分析判断。这是学习调试程序的良好机会,碰到困难时切忌轻易放弃。
上机实验一般应包括以下步骤:
1.调出C编译系统,进入C工作环境,如Turbo C2.0集成环境。
2.输入自己编好的程序,注意正确的键盘输入指法。
3.检查一遍已经输入的程序是否有错(包括输入错误和编程中的错误)。
4.进行编译。如果编译和连接过程中发现错误,屏幕上会出现“出错信息”,则根据提示找到出错位置和原因,加以改正,再进行编译„„如此反复,直到顺利通过编译和连接为止。
5.运行程序,并分析运行结果是否正确、合理。组织多组实验数据,分别从不同情况下检查程序的正确性。
6.输出程序清单和运行结果。特别要进行上机调试记录(尤其是出错情况和排错记录),调试数据和运行结果记录、心得体会等。
三、撰写实验报告
做完实验后要写实验报告,对整个实验进行总结和提高,这是整个实验过程的一个重要环节,不要把它看成是一种不必要的负担,更不能敷衍了事。针对本课程的实验特点,建议在书写实验报告时应包括如下内容。
1.实验目的实验作为教学的一个重要环节,其目的在于更深入地理解和掌握课程教学中的有关基本概念和基本技术,从而进一步提高分析问题和解决问题的能力。因此,当着手做一个实验的时候,必须明确实验目的,以保证达到课程所指定的基本要求。在写实验报告时,要进一步确认是否达到了预期的目的。
2.实验内容
实验的目的是要通过解决一些具体问题来达到的。根据教学安排、进度、实验条件、可提供的上机时数、学生的基础等因素,逐步完成。在实验报告中,实验内容是指本次实验中实际完成的内容,在每一个实验题目中,一般都提出了一些具体要求,其中有些具体要求是为了达到实验目的而提出的。因此,在实验内容中,不仅要写清楚具体的实验题目,还应包括具体要求。
3.算法和流程图
算法设计是程序设计过程中一个重要步骤。本章的某些实验题目给出了方法说明,有的还提供了流程图,但有的没有给出流程图。如果在做实验的过程中,使用的算法或流程图和本书中给出的不一样,或者书中没有给出算法和流程图,则在实验报告中应给出较详细的算法说明与流程图,并对其中的主要符号与变量作相应的说明。
4.程序清单
程序设计的产品就是程序,它应与算法或流程图相一致。程序要具有易读性,符合模块化和结构化原则。
5.运行结果
程序运行结果一般是输出语句所输出的结果,对于不同的输入,其输出结果是不同的。因此,在输出结果之前一般还应注明输入的数据,以便对输出结果进行分析和比较。
6.调试分析和体会
这是实验报告中最重要的一项,也是最容易忽视的一项。实验过程中大量的工作是程序测试,在调试过程中会遇到各种各样的问题,每解决一个问题就能积累一点经验,提高编程的能力。因此,对实验的总结,最主要的是程序调试经验的总结。调试分析也包括对结果的分析。体会主要是指通过本次实验是否达到了实验目的,有哪些基本概念得到了深入理解等。
第五篇:上机实验八
实验八 折半查找
一、实验目的1、熟悉visual C++上机环境,进一步掌握C语言的结构特点。
2、进一步掌握图的基本概念及其含义。
3、掌握查找的结构特征,以及各种存储结构的特点及使用范围。
4、掌握查找的基本运算及其实现。
二、实验内容(参照课本上的第220页)
设计一个算法,实现折半查找算法。
三、实验要求
参照课本220页算法9.2
四、实验报告要求(参照《数据结构题集》第83页实验报告模板)
实验报告必须有以下内容:实验目的、实验内容、实验要求、源程序、测试结果(打印界面的形式表示)。