北理珠 JAVA深入编程课内实验指导书.doc_第1页
北理珠 JAVA深入编程课内实验指导书.doc_第2页
北理珠 JAVA深入编程课内实验指导书.doc_第3页
北理珠 JAVA深入编程课内实验指导书.doc_第4页
北理珠 JAVA深入编程课内实验指导书.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

北京理工大学珠海学院 计算机学院北京理工大学珠海学院计算机学院Java深入编程课内实验指导书任课教师:赵卓君2012年2月目录实验一:泛型和泛型接口3实验二:序列化和反序列化6实验三:GUI图形用户界面编程8实验四:JDBC数据库编程9实验五:多线程13实验六:Socket网络编程15实验七:C/S架构应用程序开发实例17实验一:泛型和泛型接口一、 实验目的熟悉泛型类(接口)的定义和使用,能够灵活使用java集合框架中的泛型类(接口);掌握泛型方法的定义和调用;掌握通配符的应用。二、 实验要求1. 编写一个学生成绩管理系统,要求用泛型机制来实现以下功能2. 学生参加课程考试的成绩需要记录下来3. 所有的学生应该保存在一个集合里,所有的课程也保存在一个集合,所有学生各课程的成绩也应该保存在一个集合里4. 学生应该有学号和姓名属性5. 课程应该有课程编号和课程名称属性6. 成绩应该有学号、课程编号和成绩等属性7. 输出时,根据学号到学生集合中查找学生的姓名,根据课程编号到课程集合中查找课程名称8. 最后还需要输出每门课程学生的平均分三、 运行效果四、 程序结构import java.util.*;class Student /学生类class Course /课程类class Grade /成绩类public class GradeManagement public static void main (String args) /实例化几个学生对象并在泛型集合对象中保存学生的信息/实例化几个课程对象并在泛型集合对象中保存课程的信息/实例化几个成绩对象并在泛型集合对象中保存成绩的信息/根据成绩泛型集合中的学号和课程编号查询学生集合和课程集 合得到学生姓名和课程名称/输出每个学生各科的成绩/统计每课参加考试的人数和总分/计算并保存每门课程的平均分/打印各科平均分1、 实验提示如何根据学号获得学生的姓名?学生成绩集合学生集合for(Grade g:vGrade)for(Student s:vStu)if(g.stuID.equals(s.stuID)/若找到了,则输出学号和姓名System.out.print (g.stuID+t+s.stuName);如何统计每门课的参考人数并计算总分?int count=new intvCourse.size(); /保存各科参考人数int sums=new intvCourse.size(); /保存各科成绩总分/统计学生人数和总分for(int i=0;ivCourse.size();i+)for(int j=0;jvGrade.size();j+)if(vCourse.get(i).courseID.equals(vGrade.get(j).courseID)counti+; /参考人数+1/累计求和sumsi=sumsi+vGrade.get(j).score; 如何计算和保存课程的平均分?/实例化TreeMap集合用于保存课程编号和平均分TreeMap total = new TreeMap();/计算平均分for(int i=0;i=0)/计算平均分sumsi=sumsi/counti; /保存到集合中total.put(vCourse.get(i).courseID,sumsi);(建议完成时间:90分钟)实验二:序列化和反序列化一、 实验目的:熟练掌握序列化和反序列化的使用方法以及序列化和反序列化的规则。二、 实验要求:1. 电影城每天放映好几部电影,每部电影也有好几个放映场次,每场电影供应一定数量的电影票2. 电影类型为枚举类型,有爱情片、喜剧片、动作片、科幻片。3. 电影类有电影名称、电影类型属性4. 电影放映场次类有放映厅、放映时间属性5. 电影票座位类有行、座位属性6. 电影票类有电影、放映场次、座位属性7. 最后还需要输出每门课程学生的平均分三、 运行效果:四、 程序结构import java.io.*;import java.util.*;/电影类型enum MovieType implements Serializable /电影class Movie implements Serializable /电影放映时间段class MovieSchedule implements Serializable /座位class Seat implements Serializable /电影票class Ticket implements Serializablepublic void printTicket() /打印票的详细信息 public class SerializationDemo public static void main (String args) (建议完成时间:90分钟)实验三:GUI图形用户界面编程一、 实验目的:掌握Java图形用户界面的设计,和Java的事件处理机制。二、 实验要求:1. 设计一个如下左图所示的系统注册界面。用户输入姓名、性别、生日、爱好、电邮、学历信息,然后单击“注册”按钮,则会弹出如下右图所示的系统注册成功界面,并显示该用户的注册信息。2. 设计一个如下图所示的计算器界面,并实现连续加、减、乘、除的功能 (建议完成时间:180分钟)实验四:JDBC数据库编程一、 实验目的:掌握JDBC数据库访问技术,包括对数据库里的数据的增删改查,并开发一个图书信息管理系统。二、 实验要求:三、 在SQLServer里新建一个名为BookDB的图书数据库,并创建Book、Reader、Borrow三张表,表中字段的设计如下表表名字段数据类型说明Book(图书)BookIDvarchar(20)图书编号(主键)BookNamevarchar(100)图书名称Authorvarchar(50)作者Pressvarchar(50)出版社PressDatedatetime出版日期Statuschar(4)图书在库的状态(在库或借出)Reader(读者)ReaderIDvarchar(20)读者编号(主键)ReaderNamevarchar(50)读者姓名Sexchar(2)性别Phonevarchar(20)联系电话Addressvarchar(20)联系地址Borrow(借阅)BorrowIDint借阅编号(自动增长标识列,主键)BookIDvarchar(20)图书编号(外键,引用Book表中的BookID)ReaderIDvarchar(20)读者编号(外键,引用Reader表中的ReadaerID)BorrowDatedatetime借阅时间ReturnDatedatetime还书时间Memotext备注三张表之间的关系如下图:图4-13图书管理数据库表的设计图4-14图书管理数据库表的关系图在每张表中分别输入几行数据(便于进行测试),如图4-15:图4-15Book、Reader、Borrow表中的数据在JBuilder2006中创建一个Java应用程序,分别使用JDBC-ODBC桥连接和纯Java方式连接数据库,并对Book表中的数据进行维护(如图4-16所示)和查询(如图4-17所示)。Reader和Borrow表中的维护和查询请参照图书信息维护的界面设计。图4-16图书信息维护界面设计图4-17图书信息查询界面设计(建议完成时间180分钟)实验五:多线程一、 实验目的:使用线程来控制动画。熟练掌握线程的创建、状态控制等用法,理解线程的使用机制。二、 进度条1. 要求:显示一个进度条,开始运行程序时,每隔一秒进度条向前移动一步,当进度条走完毕弹出对话框,点击确定,进入下一个方块移动界面2. 运行效果 三、 方块移动倒计时1. 要求: 用JBuilder2006做一个方块移动倒计时游戏,界面设计如图所示: 上面的时钟进行倒计时,每隔一秒就减少一秒。 下面的方块可以在方框里随机漂浮移动,但是不允许移出方框。 当按下“暂停”按钮,倒计时暂停计时,方块也停止移动。按钮表面上的文字变成“继续计时”。 当按下“继续计时”按钮,倒计时继续计时,方块也继续移动。 当倒计时显示“时间到!”,方块也停止移动2. 运行效果进度条组件:进度条组件重要属性和方法 pgb.setMinimum(0); /设置进度条最小值 pgb.setMaximum(100); /设置进度条最大值 int min=pgb.getMinimum(); /获取进度条最小值 int max=pgb.getMaximum(); /获取进度条最大值int value = pgb.getValue(); /获取进度条当前值 进度条功能代码片段:while(true) int value = pgb.getValue(); value+; pgb.setValue(value); if (value pgb.getMaximum() this.sleep(50); /线程休眠50ms else errupt(); JOptionPane.showMessageDialog(null, 加载完毕, 系统提示, JOptionPane.INFORMATION_MESSAGE); /打开方块移动代码 暂停继续的代码片段:boolean running=true;public void btn_actionPerformed(ActionEvent e) if(running) btn.setText(继续计时); lbl.setBackground(Color.YELLOW); mt.suspend(); t.suspend(); else btn.setText(暂停); lbl.setBackground(Color.GREEN); mt.resume(); t.resume(); running=!running; (建议完成时间:90分钟)实验六:Socket网络编程一、 实验目标:掌握Java网络编程之Socket类与Server Socket类的编程原理与实现过程。编写一个简单的基于Applet的Socket自由聊天程序。二、 实验要求1. 用JBuilder2006做一个自由聊天程序2. 服务器和客户端的界面如下:3. 服务器端程序先运行,然后点击“连接”按钮,等待客户端发出连接请求。4. 客户端程序运行之后,也点击“连接”按钮,向服务器端发出连接请求,建立连接。5. 双方可以像QQ程序一样开始聊天,双方每次发出的信息同时记录信息发出的时间。6. 显示区域的滚动条始终在底端,可以显示最新的信息。三、 运行效果四、 实验提示1. 如何让滚动条置于底端? 假设txa是多行文本域,则以下代码可以实现滚动条置于底端:txa1.setCaretPosition(txa1.getText().length();2. 如何使用线程 由于在聊天时,需要点击“发送”按钮才可以将信息发送出去,因此不需要写的线程,只要在“发送”按钮的事件里写上输出流将信息写出的代码。 需要读取对方信息的线程(建议完成时间:180分钟)实验七:C/S架构应用程序开发实例一、 实验目的掌握C/S架构应用程序开发技术,开发一个影城管理系统。二、 实验要求1. 在SQLServer里新建一个名为BookDB的图书数据库,并创建Book、Reader、Borrow三张表,表中字段的设计如下表和图:图书管理数据库表详细列表表名字段数据类型说明Book(图书)BookIDvarchar(20)图书编号(主键)BookNamevarchar(100)图书名称Authorvarchar(50)作者Pressvarchar(50)出版社PressDatedatetime出版日期Statuschar(4)图书在库的状态(在库或借出)Reader(读者)ReaderIDvarchar(20)读者编号(主键)ReaderNamevarchar(50)读者姓名Sexchar(2)性别Phonevarchar(20)联系电话Addressvarchar(20)联系地址Borrow(借阅)BorrowIDint借阅编号(自动增长标识列,主键)BookIDvarchar(20)图书编号(外键,引用Book表中的BookID)ReaderIDvarchar(20)读者编号(外键,引用Reader表中的ReadaerID)BorrowDatedatetime借阅时间ReturnDatedatetime还书时间Memotext备注图

温馨提示

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

评论

0/150

提交评论