《Java程序设计》课内实验指导书 1Word下载.docx
- 文档编号:14371991
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:18
- 大小:483.39KB
《Java程序设计》课内实验指导书 1Word下载.docx
《《Java程序设计》课内实验指导书 1Word下载.docx》由会员分享,可在线阅读,更多相关《《Java程序设计》课内实验指导书 1Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
Java基本语法
一、实验目的:
熟悉Java程序的结构,并能完成一些基本的算法操作。
熟悉Java程序的if-else、switch-case语句、循环语句以及数组的用法。
二、实验要求:
1、编写一个JavaApplication程序,循环打印如下图所示图案:
【提示】可以将一个整数看成是ASCII码,转换为对应的字符。
如:
(char)65得到ASCII码65对应的字符“A”
2、
运行时,在该处输入的月份
编写一个Java程序,接受用户输入的一个1~12之间的整数月份,利用switch语句输出对应月份的天数。
(提示:
在DOS命令窗口里编译运行该程序,如图所示:
)
intmonth=Integer.parseInt(args[0]);
//在程序中用该行代码获得输入的月份
3、定义一个包含10个整数的数组,求该数组中的最大值、最小值、平均值与总和。
提示:
运行时,在该处输入10个整数
//获取命令行输入的10个整数
int[]ary=newint[10];
for(inti=0;
i<
ary.length;
i++)
ary[i]=Integer.parseInt(args[i]);
面向对象编程
熟练掌握类的创建与使用,理解封装与抽象的概念,理解信息隐藏以及4种访问控制修饰符的用法,熟练掌握构造方法的用法。
1.问题描述
Ø
狗生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的。
狗通常的时候和人打招呼会通过“摇摇尾巴”,在被抚摸感到舒服的时候,会“旺旺叫”,而在受到惊吓情绪烦躁时,会发出“呜呜”声;
猫也生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的。
猫通常的时候和人打招呼会发出“喵~”的声音,在被抚摸情绪很好时,会发出“咕噜咕噜”声,而在受到惊吓时,会发出“嘶嘶”声;
青蛙是一种两栖动物(既是水生动物也是陆生动物),既不是哺乳类的也不是肉食性的,属于卵生。
当青蛙情绪好的时候,会在岸边“呱呱呱”的唱歌,而在受到惊吓时,会“扑通一声跳入水中”
2.问题分析
首先需要抽取问题描述中对象
分析每个对象所具有的特征
分析每个对象所发出的动作
从这些对象的特征中,抽取类的属性和方法
分析类之间的关系,画出类结构图
3.抽象类和对象的基本方法:
抽取对象的基本的方法:
找出句子中所使用的名词
例如:
在句子“小猫喵喵叫”中,我们能够确定一个对象:
猫;
确定对象发出的行为动作的基本的方法:
找出句子中的动词
“旺旺叫”、“喵喵叫”都属于对象发出的动作;
确定对象的属性或者特征的基本的方法:
找出句子中的形容词
“哺乳性的”、“肉食性的”、“卵生的”等等;
“是”的关系一般抽象为继承
狗是一种动物,意味着:
“狗”类继承自“动物”类;
“有”的关系一般抽象为类的属性
动物都有情绪,意味着:
“情绪”是“动物”类的一个属性;
4.类关系图
5.阶段划分
第一阶段:
不考虑情绪影响动物打招呼的方式
⏹编写Animal类,没有mood属性,只有一种SayHello方法;
⏹编写Dog类、Cat类和Frog类,分别继承自Animal类,实现与Animal类不同的功能;
⏹编写main方法,分别实例化以上三个类的三个对象,测试类方法实现的正确性;
第二阶段:
考虑情绪影响动物打招呼的方式
⏹扩充Animal类、Dog类、Cat类和Frog类,增加Animal类的mood属性,并实现sayHello方法的多态性
⏹扩充main方法;
第三阶段:
考虑陆生动物和水生动物
⏹定义LandAnimal接口和WaterAnimal接口;
⏹扩充Dog类、Cat类和Frog类,使其实现相应的接口;
6.程序运行结果
三、总结
通过本次项目案例练习了面向对象的Java实现,基本囊括了面向对象的三大特征:
封装、继承、多态
巩固的知识点
⏹Java基本的程序结构;
⏹类和对象;
⏹类的封装,包括修饰符的使用private/public/protected);
⏹抽象类、抽象方法(abstract关键字);
⏹final关键字;
⏹类的继承(extends关键字);
⏹接口的定义和实现(interface/implements关键字);
⏹多态;
异常
掌握Java异常的处理机制包括多重catch块的使用,理解掌握Java中自定义异常和断言的使用
二、异常处理
1、在以下给出Java代码基础上,添加异常处理机制的代码,使得代码在出现异常时能正常结束程序的运行。
publicclassLab4_1{
publicstaticvoidmain(String[]args){
floata[]=newfloat[5];
floatsum=0;
for(inti=0;
i<
a.length;
i++){
a[i]=Float.parseFloat(args[i]);
System.out.println("
第"
+(i+1)+"
门课程的成绩是:
"
+a[i]);
sum=sum+a[i];
}
System.out.println("
总成绩是:
+sum);
floatavg=sum/a.length;
System.out.println("
平均成绩是:
+avg);
}
}
使用多重catch块)
2、为一个公司编写一个奖金计算程序,用2010减去某位员工入职的年份来计算该员工的在该公司工作的工龄,如果工龄为零,即当年才入职的员工,奖金为其一个月的工资;
如果工龄没超过3年,奖金为其月工资乘以1.3;
如果工龄为3年以上5年以下,奖金为其月工资*1.5;
如果工龄为5年以上,奖金为其月工资*2。
计算公式如下:
工龄不足一年:
奖金=工资
工龄不足3年:
奖金=工资*1.3
工龄3年以上、5年以下:
奖金=工资*1.5
工龄5年以上:
奖金=工资*2
该程序需要入职的年份和月工资作为程序的输入数据,输出是该员工的奖金。
如果输入的年份比2010年大或者是负数或无效的字符串,则抛出一个自定义异常(IllegalYearException),并输出“无效入职年份”;
如果输入的工资低于500或负数或者抛出一个自定义异常(IllegalSalaryException),并输出“无效月工资”。
因此该程序需要定义两个用户自定义异常。
当有无效的入职年份或月工资数据输入时,程序显式抛出自定义异常。
util包和集合框架
理解Random类及其中的方法,并能实际应用。
通过实验,熟悉Collection接口、List接口、Set接口的常用方法,并学会应用。
熟悉Map接口的方法,学会运用HashMap、TreeMap类解决实际问题。
1、编写程序模拟掷骰子游戏:
同时投掷两个骰子5000次。
每个骰子上共有从1到6的6个数,计算每次投掷结果两个骰子的数值之和,并统计和输出每种可能的结果在模拟过程中出现的总次数。
实验运行效果:
解题思路:
⏹每次掷两个骰子的最小和是2,最大是12,一共有11个可能的和
⏹这11个可能的和出现的次数可以放在一个整型数组里
⏹用随机数每次生成2个1~6之间的随机数表示掷两个骰子
2、有集合A={1,2,3,4}和B={1,3,7,9,11},编写一个应用程序输出A和B交集、并集和差集。
试验运行效果:
⏹并集是指两个集合合并,但是去掉重复的元素的集合。
可以使用HashSet类的addAll的方法将两个集合合并
⏹交集是指两个集合中都有的元素组成的集合,可以使用HashSet类的retainAll的方法得到两个集合的交集
⏹差集是指属于A集合但是不属于B集合的元素组成的集合
3、按学生人数对高校排名:
珠海有几所普通高等院校,分别是北京理工大学珠海学院,北京师范大学珠海学院、吉林大学珠海学院、中山大学珠海分校、暨南大学珠海分校,现要求按照他们的学生人数对这几所大学按降序排序,效果如下:
程序结构:
importjava.util.*;
//大学类
classUniversityimplementsComparable{
StringuniName;
//学校名称
intpopulation;
//学生人数
//构造方法
……
//重写compareTo方法
publicintcompareTo(Objecto){
……
io包和输入输出
熟练掌握输入流和输出流的使用方法。
1.写入文件:
从标准设备中输入若干行英文句子直到输入“bye”结束,将这些字符串写入文件。
2.实验运行结果:
1)先构造输入输出流
Filef=newFile("
myfile.txt"
);
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
BufferedWriterbw=newBufferedWriter(newFileWriter(f));
2)在循环中使用br的readLine()方法从控制台读取一行,将读到的字符串和“bye”进行比较。
3)如果比较结果不等于“bye”则将读到的字符串用bw的write(Strings)写入文件。
4)如果比较结果等于“bye”则break跳出循环
5)整个读写过程需要捕获异常
3.从文件中搜索内容:
在刚输入的文件中查找单词,打印出包含了欲找单词的所有文本行
解题思路:
1)创建2个输入流,一个输入流从控制台读取用户的输入,一个输入流从文件中读取每一行
2)然后用字符串的indexOf()方法来搜索
System.out.println("
Pleaseenterthecharacterwhatyouwanttosearch:
while(str!
=null){
if(str.indexOf(strSearch)!
=-1){
System.out.println(str);
}
str=br.readLine();
GUI+JDBC编程
掌握Java图形用户界面的设计,和Java的事件处理机制。
掌握JDBC数据库访问技术,包括对数据库里的数据的增删改查,并开发一个图书信息管理系统。
一、实验要求:
在SQLServer里新建一个名为BookDB的图书数据库,并创建Book、Reader、Borrow三张表,表中字段的设计如下表
表6-1:
数据库表设计说明
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java程序设计 Java程序设计课内实验指导书 Java 程序设计 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)