Java程序设计课内实验指导书.doc

上传人:叶*** 文档编号:35010620 上传时间:2022-08-19 格式:DOC 页数:20 大小:84.50KB
返回 下载 相关 举报
Java程序设计课内实验指导书.doc_第1页
第1页 / 共20页
Java程序设计课内实验指导书.doc_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《Java程序设计课内实验指导书.doc》由会员分享,可在线阅读,更多相关《Java程序设计课内实验指导书.doc(20页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、北京理工大学珠海学院计算机学院Java程序设计课内实验指导书撰写:赵卓君2015年6月第 20 页目录实验一:Java基本语法3实验二:面向对象编程4实验三:异常7实验四:util包和集合框架9实验五:io包和输入输出11实验六:GUI+JDBC编程13实验七:多线程17实验一:Java基本语法一、 实验目的:熟悉Java程序的结构,并能完成一些基本的算法操作。熟悉Java程序的if-else、switch-case语句、循环语句以与数组的用法。二、 实验要求:1、 编写一个Java Application程序,循环打印如下图所示图案: 【提示】可以将一个整数看成是ASCII码,转换为对应的字

2、符。如: (char)65 得到ASCII码65对应的字符“A”运行时,在该处输入的月份2、 编写一个Java程序,接受用户输入的一个112之间的整数月份,利用switch语句输出对应月份的天数。(提示:在DOS命令窗口里编译运行该程序,如图所示:)int month=Integer.parseInt(args0); /在程序中用该行代码获得输入的月份3、 定义一个包含10个整数的数组,求该数组中的最大值、最小值、平均值与总与。提示:在DOS命令窗口里编译运行该程序,如图所示:运行时,在该处输入10个整数/获取命令行输入的10个整数int ary=new int10; for (int i =

3、 0; iary.length; i+) aryi=Integer.parseInt(argsi);实验二:面向对象编程一、 实验目的:熟练掌握类的创建与使用,理解封装与抽象的概念,理解信息隐藏以与4种访问控制修饰符的用法,熟练掌握构造方法的用法。二、 实验要求:1. 问题描述 狗生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的。狗通常的时候与人打招呼会通过“摇摇尾巴”,在被抚摸感到舒服的时候,会“旺旺叫”,而在受到惊吓情绪烦躁时,会发出“呜呜”声; 猫也生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的。猫通常的时候与人打招呼会发出“喵”的声音,在被抚摸情绪很好时,会发出“咕噜

4、咕噜”声,而在受到惊吓时,会发出“嘶嘶”声; 青蛙是一种两栖动物(既是水生动物也是陆生动物),既不是哺乳类的也不是肉食性的,属于卵生。当青蛙情绪好的时候,会在岸边“呱呱呱”的唱歌,而在受到惊吓时,会“扑通一声跳入水中”2. 问题分析 首先需要抽取问题描述中对象 分析每个对象所具有的特征 分析每个对象所发出的动作 从这些对象的特征中,抽取类的属性与方法 分析类之间的关系,画出类结构图3. 抽象类与对象的基本方法: 抽取对象的基本的方法:找出句子中所使用的名词例如:在句子“小猫喵喵叫”中,我们能够确定一个对象:猫; 确定对象发出的行为动作的基本的方法:找出句子中的动词例如:“旺旺叫”、“喵喵叫”都

5、属于对象发出的动作; 确定对象的属性或者特征的基本的方法:找出句子中的形容词例如:“哺乳性的”、“肉食性的”、“卵生的”等等; “是”的关系一般抽象为继承例如:狗是一种动物,意味着:“狗”类 继承自“动物”类; “有”的关系一般抽象为类的属性例如:动物都有情绪,意味着:“情绪”是“动物”类的一个属性;4. 类关系图5. 阶段划分 第一阶段:不考虑情绪影响动物打招呼的方式n 编写Animal类,没有mood属性,只有一种SayHello方法;n 编写Dog类、Cat 类与 Frog 类,分别继承自Animal类,实现与Animal类不同的功能;n 编写main方法,分别实例化以上三个类的三个对象

6、,测试类方法实现的正确性; 第二阶段:考虑情绪影响动物打招呼的方式n 扩充Animal类、Dog类、Cat类与Frog类,增加Animal类的mood属性,并实现 sayHello 方法的多态性n 扩充main方法; 第三阶段:考虑陆生动物与水生动物n 定义LandAnimal接口与WaterAnimal接口;n 扩充Dog类、Cat类与Frog类,使其实现相应的接口;n 扩充main方法;6. 程序运行结果三、 总结 通过本次项目案例练习了面向对象的Java实现,基本囊括了面向对象的三大特征:封装、继承、多态 巩固的知识点n Java基本的程序结构;n 类与对象;n 类的封装,包括修饰符的使

7、用private/public/protected);n 抽象类、抽象方法(abstract关键字);n final关键字;n 类的继承(extends关键字);n 接口的定义与实现(interface/implements关键字);n 多态;实验三:异常一、 实验目的:掌握Java异常的处理机制包括多重catch块的使用,理解掌握Java中自定义异常与断言的使用二、 异常处理1、 在以下给出Java代码基础上,添加异常处理机制的代码,使得代码在出现异常时能正常结束程序的运行。public class Lab4_1 public static void main (String args) f

8、loat a=new float5;float sum=0;for(int i=0;ia.length;i+)ai=Float.parseFloat(argsi);System.out.println (第+(i+1)+门课程的成绩是:+ai);sum=sum+ai;System.out.println(总成绩是:+sum);float avg=sum/a.length;System.out.println (平均成绩是:+avg);(提示:使用多重catch块)2、 为一个公司编写一个奖金计算程序,用2010减去某位员工入职的年份来计算该员工的在该公司工作的工龄,如果工龄为零,即当年才入职的

9、员工,奖金为其一个月的工资;如果工龄没超过3年,奖金为其月工资乘以1.3;如果工龄为3年以上5年以下,奖金为其月工资*1.5;如果工龄为5年以上,奖金为其月工资*2。计算公式如下: 工龄不足一年:奖金=工资 工龄3年以上、 工龄5年以上:奖金=工资*2该程序需要入职的年份与月工资作为程序的输入数据,输出是该员工的奖金。如果输入的年份比2010年大或者是负数或无效的字符串,则抛出一个自定义异常(IllegalYearException),并输出“无效入职年份”;如果输入的工资低于500或负数或者抛出一个自定义异常(IllegalSalaryException),并输出“无效月工资”。因此该程序需

10、要定义两个用户自定义异常。 当有无效的入职年份或月工资数据输入时,程序显式抛出自定义异常。实验四:util包与集合框架一、 实验目的:理解Random类与其中的方法,并能实际应用。通过实验,熟悉Collection接口、List接口、Set接口的常用方法,并学会应用。熟悉Map接口的方法,学会运用HashMap、TreeMap类解决实际问题。二、 实验要求:1、 编写程序模拟掷骰子游戏:同时投掷两个骰子5000次。每个骰子上共有从1到6的6个数,计算每次投掷结果两个骰子的数值之与,并统计与输出每种可能的结果在模拟过程中出现的总次数。实验运行效果:解题思路:n 每次掷两个骰子的最小与是2,最大是

11、12,一共有11个可能的与n 这11个可能的与出现的次数可以放在一个整型数组里n 用随机数每次生成2个16之间的随机数表示掷两个骰子2、 有集合A=1,2,3,4与B=1,3,7,9,11,编写一个应用程序输出A与B交集、并集与差集。实验运行效果:试验运行效果:n 并集是指两个集合合并,但是去掉重复的元素的集合。可以使用HashSet类的addAll的方法将两个集合合并n 交集是指两个集合中都有的元素组成的集合,可以使用HashSet类的retainAll的方法得到两个集合的交集n 差集是指属于A集合但是不属于B集合的元素组成的集合3、 按学生人数对高校排名:珠海有几所普通高等院校,分别是北京

12、理工大学珠海学院,北京师范大学珠海学院、吉林大学珠海学院、中山大学珠海分校、暨南大学珠海分校,现要求按照他们的学生人数对这几所大学按降序排序,效果如下:程序结构:import java.util.*; /大学类class University implements ComparableString uniName; /学校名称int population; /学生人数/构造方法/重写compareTo方法public int compareTo(Object o)实验五:io包与输入输出一、 实验目的:熟练掌握输入流与输出流的使用方法。二、 实验要求:1. 写入文件:从标准设备中输入若干行英文

13、句子直到输入“bye”结束,将这些字符串写入文件。2. 实验运行结果:解题思路:1) 先构造输入输出流 File f=new File(myfile.txt); BufferedReader br=new BufferedReader(new InputStreamReader(System.in); BufferedWriter bw=new BufferedWriter(new FileWriter(f);2) 在循环中使用br的readLine( )方法从控制台读取一行,将读到的字符串与“bye”进行比较。3) 如果比较结果不等于 “bye”则将读到的字符串用bw的write(Strin

14、g s)写入文件。4) 如果比较结果等于 “bye”则break跳出循环5) 整个读写过程需要捕获异常3. 从文件中搜索内容:在刚输入的文件中查找单词,打印出包含了欲找单词的所有文本行解题思路:1) 创建2个输入流,一个输入流从控制台读取用户的输入,一个输入流从文件中读取每一行2) 然后用字符串的indexOf()方法来搜索 System.out.println(Please enter the character what you want to search:); while(str!=null) if(str.indexOf(strSearch)!=-1) System.out.prin

15、tln(str); str=br.readLine();实验六:GUI+JDBC编程一、 实验目的:掌握Java图形用户界面的设计,与Java的事件处理机制。掌握JDBC数据库访问技术,包括对数据库里的数据的增删改查,并开发一个图书信息管理系统。一、 实验要求:在SQLServer里新建一个名为BookDB的图书数据库,并创建Book、Reader、Borrow三张表,表中字段的设计如下表表6-1:数据库表设计说明表名字段数据类型说明Book(图书)BookIDvarchar(20)图书编号(主键)BookNamevarchar(100)图书名称Authorvarchar(50)作者Press

16、varchar(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)

17、BorrowDatedatetime借阅时间ReturnDatedatetime还书时间Memotext备注三张表之间的关系如图6-1与图6-2:图6-1图书管理数据库表的设计图6-2图书管理数据库表的关系图在每张表中分别输入几行数据(便于进行测试),如图6-3:图6-3Book、Reader、Borrow表中的数据在NetBean创建一个Java工程,使用纯Java方式连接数据库,并对Book表中的数据进行维护(如图6-4所示)与查询(如图6-5所示)。Reader与Borrow表中的维护与查询请参照图书信息维护的界面设计。图6-4图书信息维护界面设计图6-5图书信息查询界面设计实验七:多线

18、程一、 实验目的:使用线程来控制动画。熟练掌握线程的创建、状态控制等用法,理解线程的使用机制。二、 进度条1. 要求:显示一个进度条,开始运行程序时,每隔一秒进度条向前移动一步,当进度条走完毕弹出对话框,点击确定,进入下一个方块移动界面2. 运行效果三、 方块移动倒计时1. 要求: 用JBuilder2006做一个方块移动倒计时游戏,界面设计如图所示: 上面的时钟进行倒计时,每隔一秒就减少一秒。 下面的方块可以在方框里随机漂浮移动,但是不允许移出方框。 当按下“暂停”按钮,倒计时暂停计时,方块也停止移动。按钮表面上的文字变成“继续计时”。 当按下“继续计时”按钮,倒计时继续计时,方块也继续移动

19、。 当倒计时显示“时间到!”,方块也停止移动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 (

20、value = 350) x = 350; flag1=false;else x-; if (x= 350) y = 350; flag2=false;else y=y-2; if (y=0) y = 0; flag2=true;if(lbl.getText().equals(时间到!) running=false;暂停继续的代码片段: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;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 施工组织

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com