还剩17页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
北京理工大学珠海学院计算机学院《J__a程序设计》课内实验指导书撰写赵卓君2015年6月目录TOC\o1-3\h\u实验一J__a基本语法3实验二面向对象编程4实验三异常7实验四util包和__框架9实验五io包和输入输出11实验六GUI+JDBC编程13实验七多线程17实验一J__a基本语法
1、实验目的熟悉J__a程序的结构,并能完成一些基本的算法操作熟悉J__a程序的if-else、switch-case语句、循环语句以及数组的用法
2、实验要求
1、编写一个J__aApplication程序,循环打印如下图所示图案【提示】可以将一个整数看成是ASCII码,转换为对应的字符如char65得到ASCII码65对应的字符“A”
2、编写一个J__a程序,接受用户输入的一个1~12之间的整数月份,利用switch语句输出对应月份的天数(提示在DOS命令窗口里编译运行该程序,如图所示)intmonth=Integer.parseIntargs
[0];//在程序中用该行代码获得输入的月份
3、定义一个包含10个整数的数组,求该数组中的最大值、最小值、平均值与总和提示在DOS命令窗口里编译运行该程序,如图所示//获取命令行输入的10个整数int[]ary=newint
[10];forinti=0;iary.length;i++ary[i]=Integer.parseIntargs[i];实验二面向对象编程
1、实验目的熟练掌握类的创建与使用,理解封装与抽象的概念,理解信息隐藏以及4种访问控制修饰符的用法,熟练掌握构造方法的用法
2、实验要求
1.问题描述狗生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的狗通常的时候和人打招呼会通过“摇摇尾巴”,在被抚摸感到舒服的时候,会“旺旺叫”,而在受到惊吓情绪烦躁时,会发出“呜呜”声;猫也生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的猫通常的时候和人打招呼会发出“喵~”的声音,在被抚摸情绪很好时,会发出“咕噜咕噜”声,而在受到惊吓时,会发出“嘶嘶”声;青蛙是一种两栖动物(既是水生动物也是陆生动物),既不是哺乳类的也不是肉食性的,属于卵生当青蛙情绪好的时候,会在岸边“呱呱呱”的唱歌,而在受到惊吓时,会“扑通一声跳入水中”
2.问题分析首先需要抽取问题描述中对象分析每个对象所具有的特征分析每个对象所发出的动作从这些对象的特征中,抽取类的属性和方法分析类之间的关系,画出类结构图
3.抽象类和对象的基本方法抽取对象的基本的方法找出句子中所使用的名词例如在句子“小猫喵喵叫”中,我们能够确定一个对象猫;确定对象发出的行为动作的基本的方法找出句子中的动词例如“旺旺叫”、“喵喵叫”都属于对象发出的动作;确定对象的属性或者特征的基本的方法找出句子中的形容词例如“哺乳性的”、“肉食性的”、“卵生的”等等;“是”的关系一般抽象为继承例如狗是一种动物,意味着“狗”类继承自“动物”类;“有”的关系一般抽象为类的属性例如动物都有情绪,意味着“情绪”是“动物”类的一个属性;
4.类关系图
5.阶段划分第一阶段不考虑情绪影响动物打招呼的方式编写Ani__l类,没有mood属性,只有一种SayHello方法;编写Dog类、Cat类和Frog类,分别继承自Ani__l类,实现与Ani__l类不同的功能;编写__in方法,分别实例化以上三个类的三个对象,测试类方法实现的正确性;第二阶段考虑情绪影响动物打招呼的方式扩充Ani__l类、Dog类、Cat类和Frog类,增加Ani__l类的mood属性,并实现sayHello方法的多态性扩充__in方法;第三阶段考虑陆生动物和水生动物定义LandAni__l接口和WaterAni__l接口;扩充Dog类、Cat类和Frog类,使其实现相应的接口;扩充__in方法;
6.程序运行结果
3、总结通过本次项目案例练习了面向对象的J__a实现,基本囊括了面向对象的三大特征封装、继承、多态巩固的知识点J__a基本的程序结构;类和对象;类的封装,包括修饰符的使用private/public/protected);抽象类、抽象方法(abstract关键字);final关键字;类的继承(extends关键字);接口的定义和实现(inte_____/implements关键字);多态;实验三异常
1、实验目的掌握J__a异常的处理机制包括多重catch块的使用,理解掌握J__a中自定义异常和断言的使用
2、异常处理
1、在以下给出J__a代码基础上,添加异常处理机制的代码,使得代码在出现异常时能正常结束程序的运行publicclassLab4_1{publicstaticvoid__inString[]args{floata[]=newfloat
[5];floatsum=0;forinti=0;ia.length;i++{a[i]=Float.parseFloatargs[i];sum=sum+a[i];}float__g=sum/a.length;}}(提示使用多重catch块)
2、为一个公司编写一个奖金计算程序,用2010减去某位员工入职的年份来计算该员工的在该公司工作的工龄,如果工龄为零,即当年才入职的员工,奖金为其一个月的工资;如果工龄没超过3年,奖金为其月工资乘以
1.3;如果工龄为3年以上5年以下,奖金为其月工资*
1.5;如果工龄为5年以上,奖金为其月工资*2计算公式如下工龄不足一年奖金=工资工龄不足3年奖金=工资*
1.3工龄3年以上、5年以下奖金=工资*
1.5工龄5年以上奖金=工资*2该程序需要入职的年份和月工资作为程序的输入数据,输出是该员工的奖金如果输入的年份比2010年大或者是负数或无效的字符串,则抛出一个自定义异常(IllegalYearEx__ption),并输出“无效入职年份”;如果输入的工资低于500或负数或者抛出一个自定义异常(IllegalSalaryEx__ption),并输出“无效月工资”因此该程序需要定义两个用户自定义异常当有无效的入职年份或月工资数据输入时,程序显式抛出自定义异常实验四util包和__框架
1、实验目的理解Random类及其中的方法,并能实际应用通过实验,熟悉Collection接口、List接口、Set接口的常用方法,并学会应用熟悉__p接口的方法,学会运用Hash__p、Tree__p类解决实际问题
2、实验要求
1、编写程序模拟掷骰子游戏同时投掷两个骰子5000次每个骰子上共有从1到6的6个数,计算每次投掷结果两个骰子的数值之和,并统计和输出每种可能的结果在模拟过程中出现的总次数实验运行效果解题思路每次掷两个骰子的最小和是2,最大是12,一共有11个可能的和这11个可能的和出现的次数可以放在一个整型数组里用随机数每次生成2个1~6之间的随机数表示掷两个骰子
2、有__A={1,2,3,4}和B={137911}编写一个应用程序输出A和B交集、并集和差集实验运行效果试验运行效果并集是指两个__合并,但是去掉重复的元素的__可以使用HashSet类的addAll的方法将两个__合并交集是指两个__中都有的元素组成的__,可以使用HashSet类的retainAll的方法得到两个__的交集差集是指属于A__但是不属于B__的元素组成的__
3、按学生人数对高校排名珠海有几所普通高等院校,分别是北京理工大学珠海学院,北京师范大学珠海学院、吉林大学珠海学院、中山大学珠海分校、暨南大学珠海分校,现要求按照他们的学生人数对这几所大学按降序排序,效果如下程序结构//大学类classUniversityimplementsComparable{StringuniName;//学校名称intpopulation;//学生人数//构造方法……//重写compareTo方法publicintcompareToO__ecto{……}}实验五io包和输入输出
1、实验目的熟练掌握输入流和输出流的使用方法
2、实验要求
1.写入文件从标准设备中输入若干行英文句子直到输入“bye”结束,将这些字符串写入文件
2.实验运行结果解题思路1先构造输入输出流Filef=newFilemyfile.___;BufferedReaderbr=newBufferedReadernewInputStreamReaderSystem.in;BufferedWriterbw=newBufferedWriternewFileWriterf;2在循环中使用br的readLine方法从控制台读取一行,将读到的字符串和“bye”进行比较3如果比较结果不等于“bye”则将读到的字符串用bw的writeStrings写入文件4如果比较结果等于“bye”则break跳出循环5整个读写过程需要捕获异常
3.从文件中搜索内容在刚输入的文件中查找单词,打印出包含了欲找单词的所有文本行解题思路:1创建2个输入流,一个输入流从控制台读取用户的输入,一个输入流从文件中读取每一行2然后用字符串的indexOf方法来搜索whilestr!=null{ifstr.indexOfstrSearch!=-1{}str=br.readLine;}实验六GUI+JDBC编程
1、实验目的掌握J__a图形用户界面的设计,和J__a的__处理机制掌握JDBC数据库访问技术,包括对数据库里的数据的增删改查,并__一个图书信息管理系统
1、实验要求在SQLServer里新建一个名为BookDB的图书数据库,并创建Book、Reader、Borrow三张表,表中字段的设计如下表表6-1数据库表设计说明表名字段数据类型说明Book(图书)BookIDvarchar20图书编号(主键)BookNamevarchar100图书名称Authorvarchar50__Pressvarchar50出版社PressDatedatetime出版日期Statuschar4图书在库的状态(在库或借出)Reader(读者)ReaderIDvarchar20读者编号(主键)ReaderNamevarchar50读者姓名___char2性别Phonevarchar20____Addressvarchar20__地址Borrow(借阅)BorrowIDint借阅编号(自动增长标识列,主键)BookIDvarchar20图书编号(外键,引用Book表中的BookID)ReaderIDvarchar20读者编号(外键,引用Reader表中的ReadaerIDBorrowDatedatetime借阅时间ReturnDatedatetime还书时间Memotext备注三张表之间的关系如图6-1和图6-2图6-1图书管理数据库表的设计图6-2图书管理数据库表的关系图在每张表中分别输入几行数据(便于进行测试),如图6-3图6-3Book、Reader、Borrow表中的数据在NetBean创建一个J__a工程,使用纯J__a方式连接数据库,并对Book表中的数据进行维护(如图6-4所示)和查询(如图6-5所示)Reader和Borrow表中的维护和查询请参照图书信息维护的界面设计图6-4图书信息维护界面设计图6-5图书信息查询界面设计实验七多线程
1、实验目的使用线程来控制动画熟练掌握线程的创建、状态控制等用法,理解线程的使用机制
2、进度条
1.要求显示一个进度条,开始运行程序时,每隔一秒进度条向前__一步,当进度条走完毕弹出对话框,__确定,进入下一个方块__界面
2.运行效果
3、方块__倒计时
1.要求用JBuilder2006做一个方块__倒计时游戏,界面设计如图所示上面的时钟进行倒计时,每隔一秒就减少一秒下面的方块可以在方框里随机漂浮__,但是不允许移出方框当按下“暂停”按钮,倒计时暂停计时,方块也停止__按钮表面上的文字变成“继续计时”当按下“继续计时”按钮,倒计时继续计时,方块也继续__当倒计时显示“时间到!”,方块也停止__
2.运行效果进度条组件进度条组件重要属性和方法pgb.setMinimum0;//设置进度条最小值pgb.set__ximum100;//设置进度条最大值intmin=pgb.getMinimum;//获取进度条最小值int__x=pgb.get__ximum;//获取进度条最大值intvalue=pgb.getValue;//获取进度条当前值进度条功能代码片段:whiletrue{intvalue=pgb.getValue;value++;pgb.setValuevalue;ifvaluepgb.get__ximum{this.sleep50;//线程休眠50ms}else{this.interrupt;JOptionPane.showMessageDialognull加载完毕系统提示JOptionPane.INFOR__TION_MESSAGE;……//打开方块__代码}}正方形__的代码片段pnl.setLocationxy;try{Thread.sleep50;}catchInterruptedEx__ptionex{ex.printStackTra__;}ifflag1{x++;ifx=350{x=350;flag1=false;}}else{x--;ifx=0{x=0;flag1=true;}}ifflag2{y=y+2;ify=350{y=350;flag2=false;}}else{y=y-2;ify=0{y=0;flag2=true;}}iflbl.getText.equals时间到!{running=false;}暂停继续的代码片段:booleanrunning=true;publicvoidbtn_actionPerformedActionEvente{ifrunning{btn.setText继续计时;lbl.setBackgroundColor.YELLOW;;mt.suspend;t.suspend;}else{btn.setText暂停;lbl.setBackgroundColor.GREEN;mt.resume;t.resume;}running=!running;}运行时,在该处输入的月份运行时,在该处输入10个整数。