《Java语言程序设计》实验指导.docx
- 文档编号:7274833
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:30
- 大小:99.35KB
《Java语言程序设计》实验指导.docx
《《Java语言程序设计》实验指导.docx》由会员分享,可在线阅读,更多相关《《Java语言程序设计》实验指导.docx(30页珍藏版)》请在冰豆网上搜索。
《Java语言程序设计》实验指导
《Java语言程序设计》实验指导书
前言
一、实验目的
实验的目的是提高学生分析问题、解决问题的能力和动手能力,通过实践环节理解Java语言的基本结构和程序设计方法。
通过亲手编程掌握Java语言编程的方法。
二、实验内容
为了使学生在上机实验时目标明确,本实验指导针对课程内容编写了10个实验。
学生可以在课内机时先完成指导书中给出的验证程序部分,理解所学的知识,在此基础上再完成其他内容。
指导书中的10个实验如下。
1.熟悉Eclipse开发环境
2.基本程序设计
3.数组
4.类的设计
5.继承
6.多态
7.抽象类
8.接口
9.异常
10.图形用户界面程序设计
三、实验任务
《Java语言程序设计》是一门实践性很强的课程,除了在课内安排的实验外,鼓励学生在课外用相关技术进行编程练习。
全部实验中工作区Workspace的名字命名方式为学号和姓名的组合,例如:
1409111101魏芳,实验中的每一个程序都要单独创建一个项目,例如实验1的第一个实验,项目名称为Lx1_1。
实验2的第一个实验,项目名称为Lx2_1,其余实验依此类推。
定义类时要用到的包名按照实验要求设置。
实验1熟悉Eclipse开发环境
1.1综合实验
一、实验题目
分别通过控制台和对话框显示“井冈山大学”文本信息。
二、实验目的
1.掌握IDE开发工具Eclipse的使用方法。
2.掌握编写与运行Java程序的方法。
4.了解Java语言的概貌。
5.为学习Java语言和进行Java程序的实验做好准备工作。
三、实验内容
熟读并识记实验上机步骤的各项内容,按照上机步骤运行开发程序并输入本实验的源程序,保存源程序后执行创建和试运行步骤。
四、实验步骤
1.在U盘上新建以学号和自己姓名组合为名称的工作区文件夹。
2.运行Eclipse,按提示选择或输入工作区文件夹。
3.创建Java项目(Javaproject)。
创建名为Lx1_1的Java项目。
其方法是从主菜单中依次选择File->New->JavaProject,在弹出的窗口中填入项目的名称,其余选项采用默认值,单击Finish即可。
4.创建类。
首先选中项目(点击Lx1_1)或选中Lx1_1下的src目录(点击Lx1_1左边的小三角形,再点击src),然后从主菜单中依次选择File->New->Class,在弹出的窗口中填入包(Package位置)的名称p1和类(Name位置)的名称Lx1_1,其余选项采用默认值(如果要同时生成main方法,可以勾选“publicstaticvoidmain(String[]args)”选项),单击Finish即可。
5.编写Java代码。
在编辑窗口的Lx1_1类中已有自动生成的初始代码,根据需要修改编辑Java代码,出现语法错误时有红色波浪线提示,应该及时更正。
6.运行应用程序。
单击菜单上的Run->RunAs->JavaApplication,即可运行这个Java应用程序,运行结果显示在IDE下部信息区的Console窗口中。
五、程序清单
建立工程Lx1_1,并创建类Lx1_1,包为p1,源代码如下。
packagep1;
importjavax.swing.JOptionPane;
publicclassLx1_1{
publicstaticvoidmain(String[]args){
System.out.println("井冈山大学");
System.out.print("电信学院\n通信工程系");
JOptionPane.showMessageDialog(null,"井冈山大学");
JOptionPane.showMessageDialog(null,"井冈山大学",
"系统提示",JOptionPane.INFORMATION_MESSAGE);
}
}
思考题:
(1)方法System.out.println和方法System.out.print有什么区别?
(2)指令“packagep1;”的功能是什么?
(3)指令“importjavax.swing.JOptionPane;”的功能是什么?
(4)方法JOptionPane.showMessageDialog在程序中调用了两次,它们的输出有什么区别?
(5)将程序中的JOptionPane.INFORMATION_MESSAGE换成JOptionPane.ERROR_MESSAGE后输出会发生怎样的变化?
1.2设计题
1.建立工程Lx1_2,编写Java程序,要求在控制台显示如下信息:
***********************************
****
**Java非常棒**
****
***********************************
2.建立工程Lx1_3,编写Java程序,要求程序运行后在消息框中显示文本,显示效果如下图:
实验2基本程序设计
2.1综合实验
一、实验题目
设计一个贷款计算器
二、实验目的
1.掌握Java的数据类型。
2.掌握各种变量的声明方式。
3.掌握运算符与表达式使用方法。
4.掌握利用控制台和JOptionPane类进行输入输出的方法。
三、实验内容
编写一个贷款计算程序,通过对话框输入年利率、贷款年份、贷款总额,通过消息框显示每月还款数额和总还款数额。
四、实验步骤
1.利用类JOptionPane的方法showInputDialog输入年利率的字符串形式
2.将年利率字符串转换为双精度数据保存在double类型的变量中
3.利用类JOptionPane的方法showInputDialog输入年份的字符串形式
4.将年份字符串转换为整型数据保存在int类型的变量中
5.利用类JOptionPane的方法showInputDialog输入贷款总额的字符串形式
6.将贷款总额字符串转换为双精度数据保存在double类型的变量中
7.计算月还款额和总还款额
8.利用类JOptionPane的方法showMessageDialog输出月还款额和总还款额
五、程序清单
建立工程Lx2_1,并创建类Lx2_1,包为p1,源代码如下。
packagep1;
importjavax.swing.JOptionPane;
publicclassLx2_1{
publicstaticvoidmain(String[]args){
//Enteryearlyinterestrate
StringannualInterestRateString=JOptionPane.showInputDialog(
"输入年利率,例如8.25:
");
//Convertstringtodouble
doubleannualInterestRate=
Double.parseDouble(annualInterestRateString);
//Obtainmonthlyinterestrate
doublemonthlyInterestRate=annualInterestRate/1200;
//Enternumberofyears
StringnumberOfYearsString=JOptionPane.showInputDialog(
"输入贷款年份,\n例如5:
");
//Convertstringtoint
intnumberOfYears=Integer.parseInt(numberOfYearsString);
//Enterloanamount
StringloanString=JOptionPane.showInputDialog(
"输入贷款总额,例如120000.95:
");
//Convertstringtodouble
doubleloanAmount=Double.parseDouble(loanString);
//Calculatepayment
doublemonthlyPayment=loanAmount*monthlyInterestRate/(1
-1/Math.pow(1+monthlyInterestRate,numberOfYears*12));
doubletotalPayment=monthlyPayment*numberOfYears*12;
//Formattokeeptwodigitsafterthedecimalpoint
monthlyPayment=(int)(monthlyPayment*100)/100.0;
totalPayment=(int)(totalPayment*100)/100.0;
//Displayresults
Stringoutput="每月还款额是"+monthlyPayment+
"\n还款总额是"+totalPayment;
JOptionPane.showMessageDialog(null,output);
}
}
思考题:
此程序中Math.pow(x,y)功能是计算x的y次方。
其中Math是系统提供的一个数学类,pow是这个类中的一个方法,问开平方和求正弦值的方法是什么?
2.2设计题
1.建立工程Lx2_2,编写程序,其功能是从控制台输入a、b、c的值并按下面的数学公式计算x的值
程序运行示例(绿色的字符是用户输入):
Pleaseinputa,b,c:
1空格2空格1回车
x=-1.0
2.(求一个整数的各位数字之和)建立工程Lx2_3,按运行示例要求编写程序,读取一个在0和1000(不含1000)之间的整数,点击“确定”按钮后在消息框中输出该整数的各位数字之和。
下面是一个运行示例:
实验3数组
3.1综合实验
一、实验题目
数组的操作
二、实验目的
1.掌握一维数组和二维数组的定义方法。
2.掌握一维数组的程序设计方法。
3.了解二维数组的程序设计方法。
4.了解数组作为方法的参数的用法。
三、实验内容
编写一个操作数组的程序,设计一个方法,通过传递数组在方法中修改数组元素的值
四、实验步骤
1.定义一个类方法addFive参数为两个数组用于对两个数组进行操作
2.定义数组a并初始化
3.按照数组a的长度定义数组b
4.调用addFive方法实参传入数组a和b
5.分别使用for-each循环和for循环显示数组a和b的内容
五、程序清单
建立工程Lx3_1,并创建类Lx3_1,源代码如下
publicclassLx3_1{
publicstaticvoidmain(String[]args){
int[]a=newint[]{2,4,6,8,10};
int[]b=newint[a.length];
addFive(a,b);//调用无返回值函数addFive,注意实参是数组名
for(intm:
a)//遍历数组元素的新用法,m代表数组元素的值,但不能改写元素的值
System.out.print(m+"");
System.out.println();
for(inti=0;i System.out.print(b[i]+""); } publicstaticvoidaddFive(int[]aar,int[]bar){ for(inti=0;i bar[i]=aar[i]+5; } } 思考题: (1)方法addFive的功能是什么? (2)a.length的值是多少? 3.2设计题 1.建立工程Lx3_2,编写一个程序,读入学生成绩,获取最高分best,然后根据下面的规则赋等级值: 如果分数>=best-10,等级为A,分数>=best-20,等级为B,分数>=best-30,等级为C,分数>=best-40,等级为D,其他情况等级为F。 下面是一个运行示例: 请输入学生总数: 4回车 请输入学生成绩: 40空格55空格70空格58回车 第1个学生的成绩是40,等级是C 第2个学生的成绩是55,等级是B 第3个学生的成绩是70,等级是A 第4个学生的成绩是58,等级是B 2.建立工程Lx3_3,编写一个方法,使用下面的方法首部求出一个数组中的最小元素: publicstaticdoublemin(double[]array) 编写测试程序,提示用户输入10个数,调用这个方法返回最小值并显示。 下面是该程序的运行示例: 请输入10个数: 4.25.83.91.27.15.55.63.512.35.34回车 最小值是: 1.2 3.建立工程Lx3_4,编写下面的方法,测试某个数组是否有4个连续的值相同的数字。 publicstaticbooleanisConsecutiveFour(int[]values) 编写测试程序,提示用户输入一个整数序列,如果这个数列中有四个连续相同的数,就显示true,否则显示false。 程序应首先提示用户输入值的个数。 (难度等级*) 下面是该程序的运行示例: 请输入数据个数: 8回车 输入数据: 54333325回车 true 实验4类的设计 4.1综合实验 一、实验题目 输出面积最大的长方形的信息 二、实验目的 1.掌握类的定义和对象的创建 2.掌握对象的访问方法及可见性的声明 3.掌握类变量、类方法、实例变量、实例方法、常量之间的区别和它们的使用方法 4.掌握this关键字的使用。 三、实验内容 编写程序,定义四个长方形对象并存入长方形集合类中,利用长方形集合类的方法找出最大面积的长方形并输出该长方形对象的信息。 四、实验步骤 1.定义长方形类,包含计算面积和输出信息的方法 2.定义长方形集合类,包含加入长方形对象和获得最大面积长方形的方法 3.定义测试类,创建4个长方形对象并存入长方形集合中 4.利用长方形集合的方法获得最大长方形并输出其信息 五、程序清单 建立工程Lx4_1,并创建类Lx4_1,源代码如下。 publicclassLx4_1{ publicstaticvoidmain(Stringargs[]){ Rectangler1=newRectangle(5,6); Rectangler2=newRectangle(4,7); Rectangler3=newRectangle(3,12); Rectangler4=newRectangle(3.5,9); RectangleArray.add(r1); RectangleArray.add(r2); RectangleArray.add(r3); RectangleArray.add(r4); System.out.println(RectangleArray.maxRectangle().toString()); } } 在同一个Java源文件中再定义Rectangle类,源代码如下。 classRectangle{ privatedoublelength; privatedoublewidth; publicRectangle(doublelength,doublewidth){ this.length=length; this.width=width; } publicdoublegetArea(){ returnlength*width; } publicStringtoString(){ returnlength+"*"+width; } } 在同一个Java源文件中再定义RectangleArray类,源代码如下。 classRectangleArray{ staticintn=0; staticRectangle[]recSet=newRectangle[10]; staticvoidadd(Rectangler){ recSet[n]=r; n++; } staticRectanglemaxRectangle(){ Rectanglermax; rmax=recSet[0]; for(inti=0;i if(rmax.getArea() rmax=recSet[i]; returnrmax; } } 思考题: (1)分析指令“RectangleArray.maxRectangle().toString()”的执行过程。 4.2设计题 1.建立工程Lx4_2,设计并实现一个名为Stock的类,放在包p1中。 这个类包括: (1)一个名为symbol的字符串数据域表示股票代码。 (2)一个名为name的字符串数据域表示股票名字。 (3)一个名为previousClosingPrice的double型数据域,它存储的是前一日的股票值。 (4)一个名为currentPrice的double型数据域,它存储的是当时的股票值。 (5)创建一只有特定代码和名字的股票的构造方法。 (6)一个名为getChangePercent()的方法返回从previousClosingPrice变化到currentPrice的百分比。 在同样的工程中编写一个测试类,名为Lx4_2,同样放在包p1中。 在main方法中创建一个Stock对象,它的股票代码是Java,股票名字是SunMicrosystemsInc,前一日收盘价是4.5。 设置新的当前值为4.35,然后显示市值变化的百分比。 2.建立工程Lx4_3,设计并实现一个名为Point的类表示平面上的点,将这个类放在包p1中,这个类包括: (1)名为x和y的数据域,它们分别表示点的x坐标和y坐标。 名为color的String型数据域表示颜色(默认为黑色)。 (2)名为num的静态数据域用于存储利用该类创建对象的个数(初值为0)。 (3)创建x、y为指定值的坐标的构造方法。 (4)创建以x、y、color为指定值的坐标的构造方法,并在其中调用上一个构造方法设置x和y的值。 (5)一个名为toString()的公有方法返回这个点的文本信息。 示例格式如下: 黑色(2.0,3.0) 在同样的工程中编写一个测试类,名为Lx4_3,放在包p2中。 在main方法中创建三个Point对象以测试类设计的正确性。 3.建立工程Lx4_4,设计并实现一个名为Circle的类表示平面上的圆,将这个类放在包p1中,这个类包括: (1)名为x和y的double型私有数据域,它们分别表示圆心的x坐标和y坐标。 名为r的double型私有数据域表示圆的半径。 (2)创建默认的公有无参构造方法。 (3)创建以x、y、r为指定值的圆的公有构造方法。 (4)一个名为getArea()的公有方法返回这个圆的面积。 (5)一个名为getPerimeter()的公有方法返回周长。 (6)一个名为equals()的公有方法判断两个圆是否重合(圆心相同,半径相同)。 (7)一个名为toString()的公有方法返回这个圆的文本信息。 示例格式如下: 圆心: (2.0,3.0)半径: 5.0 在同样的工程中编写一个测试类,名为Lx4_4,放在包p2中。 在main方法中创建三个Circle对象用于测试(4)、(5)、(6)、(7)四个方法。 实验5继承 5.1综合实验 一、实验题目 直线和点的信息输出 二、实验目的 1.掌握继承的程序设计方法,掌握在继承设计时构造方法中this和super关键字的使用。 2.掌握继承设计时可见性修饰符(public、protected、private)的使用。 3.掌握继承设计时覆盖和隐藏的概念。 三、实验内容 编写程序,程序定义两个类,一个是Point,另个一是Line继承自Point,在测试类中输出点对象和直线对象的信息。 四、实验步骤 1.定义Point类,包含受保护的数据域x,y,私有数据域color 2.定义Line类继承自Point 3.在测试类中定义一个点对象和直线对象并输出它们的信息 五、程序清单 建立工程Lx5_1,并创建包类Point,包为p1。 源代码如下。 packagep1; classPoint{ protectedintx,y; privateStringcolor; Point(){ } Point(inta,intb,Stringc){ x=a; y=b; color=c; } publicStringgetColor(){ returncolor; } publicvoidsayColor(){ System.out.println("颜色是: "+color); } publicStringtoString(){ return"点坐标: ["+x+","+y+"]"+","+color; } } 在同一个源文件中实现Point的子类Line,源代码如下: classLineextendsPoint{ protectedintx,y; Line(inta,intb){ x=a; y=b; } Line(intx1,inty1,intx2,inty2,Stringc){ super(x2,y2,c); x=x1; y=y1; } publicdoublelength(){ intx1=super.x,y1=super.y,x2=this.x,y2=this.y; returnMath.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); } publicStringtoString(){ return"直线端点: ["+super.x+","+super.y+"]["+x+","+y +"]直线长度: "+this.length()+","+getColor(); } } 创建公有类Lx5_1,包为p1,源代码如下: packagep1; publicclassL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java语言程序设计 Java 语言程序设计 实验 指导