当前位置:文档之家› 《Java程序设计》课内实验指导书

《Java程序设计》课内实验指导书

北京理工大学珠海学院计算机学院《Java程序设计》课内实验指导书撰写:赵卓君2015年6月目录实验一:Java基本语法.........................................................................3... 实验二:面向对象编程..........................................................................4.. 实验三:异常..........................................................................................7... 实验四:util 包和集合框架...................................................................8... 实验五:io 包和输入输出....................................................................1..0 实验六:GUI+JDBC 编程....................................................................1..2 实验七:多线程...................................................................................1..6.实验一:Java基本语法一、实验目的:熟悉Java 程序的结构,并能完成一些基本的算法操作。

熟悉Java 程序的if-else 、switch-case 语句、循环语句以及数组的用法。

二、实验要求:1、编写一个Java Application 程序,循环打印如下图所示图案:【提示】可以将一个整数看成是ASCII 码,转换为对应的字符。

如:(char)65 得到ASCII 码65 对应的字符“A”2、编写一个Java 程序,接受用户输入的一个1~12 之间的整数月份,利用switch 语句输出对应月份的天数。

(提示:在DOS命令窗口里编译运行该程序,如图所示:)运行时,在该处输入的月份int month=Integer.parseInt(args[0]); // 在程序中用该行代码获得输入的月份3、定义一个包含10 个整数的数组,求该数组中的最大值、最小值、平均值与总和。

提示:在DOS命令窗口里编译运行该程序,如图所示:运行时,在该处输入10 个整数// 获取命令行输入的10 个整数int[] ary=new int[10];for (int i = 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 类,使其实现相应的接口;扩充main 方法;6.程序运行结果三、总结通过本次项目案例练习了面向对象的Java实现,基本囊括了面向对象的三大特征:封装、继承、多态巩固的知识点Java基本的程序结构;类和对象;类的封装,包括修饰符的使用private/public/protected);抽象类、抽象方法(abstract关键字);final关键字;类的继承(extends关键字);接口的定义和实现(interface/implements关键字);多态;实验三:异常一、实验目的:掌握Java 异常的处理机制包括多重catch 块的使用,理解掌握Java 中自定义异常和断言的使用二、异常处理1、在以下给出Java 代码基础上,添加异常处理机制的代码,使得代码在出现异常时能正常结束程序的运行。

public class Lab4_1 {public static void main (String[] args) {float a[]=new float[5];float sum=0;for(int i=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);float avg=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、按学生人数对高校排名:珠海有几所普通高等院校,分别是北京理工大学珠海学院,北京师范大学珠海学院、吉林大学珠海学院、中山大学珠海分校、暨南大学珠海分校,现要求按照他们的学生人数对这几所大学按降序排序,效果如下:程序结构:import java.util.*;//大学类class University implements Comparable{ String uniName; //学校名称int population; //学生人数//构造方法⋯⋯//重写compareTo 方法public int compareTo(Object o){⋯⋯}}实验五:io包和输入输出一、实验目的:熟练掌握输入流和输出流的使用方法。

二、实验要求:7.写入文件:从标准设备中输入若干行英文句子直到输入“bye ”结束,将这些字符串写入文件。

8.实验运行结果:解题思路: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 ”进行比较。

相关主题