JAVA实验报告.docx
《JAVA实验报告.docx》由会员分享,可在线阅读,更多相关《JAVA实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
JAVA实验报告
编号:
JAVA大学教程实验报告
院系:
计算机科学与工程学院
专业:
计算机科学与技术
学生姓名:
方遥
学号:
07
指导教师:
汪华登
2013年12月15日
实验一Java开发环境及基本语法
一、实验目的
1、掌握常用的Java集成开发环境的使用,特别是Eclipse和NetBeans。
2、掌握Java基本语法,重点是面向对象的思想和语法。
3、掌握控制台下(应用程序)的输入输出方法,作为后续部分实验的基础。
二、实验类型
设计型。
三、实验内容
1、打开实验室计算机上的集成开发环境Eclipse或NetBeans(重点是Eclipse),掌握其基本使用方法。
了解开发软件的各个菜单功能。
会创建java项目(Project),会编辑和编译、运行项目代码。
2、验证和学习所给的几个例子程序及其讲解。
然后自己编写一个至少由一个类构成的Java程序,其功能是在运行后,能接收用户输入一个学生的姓名以及java课的成绩(百分制),并输出对该学生成绩是否达到60分的及格分的判断(可使用if语句)。
例如,输入学生姓名李明,然后输入成绩50,则输出“李明的成绩为不及格”。
3、编写一个程序来表示长方体的长宽高等数据并有计算体积的函数可供调用,长方体类从矩形类继承而来。
程序运行时能接受输入任意的3个数作为长方体的长、宽和高,然后能够输出所输入的长宽高及所计算出的体积。
注意不能把代码全部写在main函数里面,不能直接输出长宽高的乘积。
在解决该问题的程序设计中,将体积计算等功能封装成方法调用,长宽高等属性封装到矩形类和长方体类中,尽量多地用到接口的定义、类的定义、成员变量的定义、成员函数的定义、类的继承等面向对象的语法和知识点。
在此基础上熟悉、理解和解释类的封装、继承等面向对象编程思想和概念。
四、预备知识
作为一门完全面向对象的程序设计语言,Java语言编写的所有程序都是由类(以及接口)构成的。
所以我们需要重点掌握类的定义、修饰,对象的创建,类的继承,以及接口等面向对象语法知识。
Java中没有模板、多继承、运算符重载等C++中比较复杂的语法部分,其面向对象语法相对简单。
大家此前一般学过C或C++语言等,那么请注意,由于Java是“完全”面向对象的语言,任何程序代码都是类或接口构成,所以请务必摒弃在C语言等的学习过程中形成的喜欢在main函数外部定义全局变量等习惯,因为这些做法在Java中将直接成为错误。
Java程序都只由接口和(或)类构成,类中才可定义普通数据类型或复合数据类型的成员变量。
对于初学面向对象程序设计的学习者而言,类看起来很复杂,实际上我们应该注意到:
类只是由两种东西构成的,一种是成员变量,另一种是成员函数(或称成员方法)。
对于Java程序而言,只有在成员函数中,才可以编写和存在具体的执行语句。
而在Java程序的类中的成员函数中,就涉及到数据类型和循环语句等基本语法。
Java的基本语法与C语言是很接近的。
同样有普通数据类型变量(在Java中包括整型、字符型、布尔型等)的定义,同样有if语句,if-else语句,switch语句,以及while循环,for循环,do-while循环。
此处不单独举例,大家首先可在main函数中自己编写简单的代码对这些基本语法概念进行练习和验证。
然后应用Java的面向对象语法,设计类和定义对象等,进行Java面向对象编程思想和语法的熟悉。
实验源代码1:
importclassShiyan1_1{
publicstaticvoidmain(String[]args){
core;
intmax=s[0].score;
for(inti=1;i{if(min>s[i].score){min=s[i].score;minIndex=i;}if(max{max=s[i].score;maxIndex=i;}}"最高分的姓名:"+s[maxIndex].name+"分数:"+s[maxIndex].score);"最低分的姓名:"+s[minIndex].name+"分数:"+s[minIndex].score);name)){"查找结果为:"+s[i].name+""+s[i].score+"分");return;}}"查无此人");}}运行结果:要输入几个学生的成绩3请分别输入第1个学生的姓名、成绩张三65请分别输入第2个学生的姓名、成绩李四56请分别输入第3个学生的姓名、成绩方遥99**************************最高分的姓名:方遥分数:99最低分的姓名:李四分数:56**************************请输入要查找的名字方遥查找结果为:方遥99分**************************实验源代码2:packageshiyan;importclassShiyan2_2{finalstaticintN=10;staticPersonps[]=newPerson[N];staticScannerinput=newScanner;publicstaticvoidmain(String[]args){o!=-1){"\t"+ps[i].name+"\t"+ps[i].sex+"\t"+ps[i].telNum+"\t"+ps[i].address);}}"************************************");}o==no){"编号\t姓名\t性别\t电话\t地址");"\t"+ps[i].name+"\t"+ps[i].sex+"\t"+ps[i].telNum+"\t"+ps[i].address);"************************************");return;}}"查无此人");"************************************");}o==-1){"编号姓名性别电话地址");intno=();Stringnam=();Stringsex=();inttelNum=();Stringadd=();ps[i]=newPerson(no,nam,sex,telNum,add);return;}}"存储已满,无法添加");}o==no){ps[i].no=-1;ps[i]=newPerson();return;}}"查无此人");}o==no){"编号姓名性别电话地址");no=();Stringnam=();Stringsex=();inttelNum=();Stringadd=();ps[i]=newPerson(no,nam,sex,telNum,add);return;}}"查无此人");}}classPerson{intno;;importclassShiyan3{JFramejf=newJFrame("简易计算器");JButtonjb1=newJButton("相加");JButtonjb2=newJButton("相减");JButtonjb3=newJButton("清零");JLabeljlable1=newJLabel("运算数一");JLabeljlable2=newJLabel("运算数二");JLabeljlable3=newJLabel("运算结果");JTextFieldjtextf1=newJTextField(20);JTextFieldjtextf2=newJTextField(20);JTextFieldjtextf3=newJTextField(20);;importclassShiyan4{JFramejf=newJFrame("简易计算器");JButtonjb1=newJButton("相加");JButtonjb2=newJButton("相减");JButtonjb3=newJButton("清零");JLabeljlable1=newJLabel("运算数一");JLabeljlable2=newJLabel("运算数二");JLabeljlable3=newJLabel("运算结果");JLabeljlable4=newJLabel("简易计算器");JTextFieldjtextf1=newJTextField(20);JTextFieldjtextf2=newJTextField(20);JTextFieldjtextf3=newJTextField(20);returnfalse;if(ch=='.')count++;}if(count<2&ch!='.')returntrue;}//returnfalse;}}//相加classBtEvent1implementsActionListener{JTextFieldjt1=null;JTextFieldjt2=null;JTextFieldjt3=null;publicBtEvent1(JTextFieldjtf1,JTextFieldjtf2,JTextFieldjtf3){//TODO自动生成的构造函数存根jt1=jtf1;jt2=jtf2;jt3=jtf3;}@OverridepublicvoidactionPerformed(ActionEvente){//TODO自动生成的方法存根Strings1=();Strings2=();if("")||(""))(null,"必须为数字请重新输入");elseif(!(s1)||!(s2))(null,"必须为数字请重新输入");else{doublex=(s1);doubley=(s2);(x+y));}}}//相减classBtEvent2implementsActionListener{JTextFieldjt1=null;JTextFieldjt2=null;JTextFieldjt3=null;publicBtEvent2(JTextFieldjtf1,JTextFieldjtf2,JTextFieldjtf3){//TODO自动生成的构造函数存根jt1=jtf1;jt2=jtf2;jt3=jtf3;}@OverridepublicvoidactionPerformed(ActionEvente){//TODO自动生成的方法存根Strings1=();Strings2=();if("")||(""))(null,"必须为数字请重新输入");elseif(!(s1)||!(s2))(null,"必须为数字请重新输入");else{doublex=(s1);doubley=(s2);//(x-y));(x-y));}}}//清零classBtEvent3implementsActionListener{JTextFieldjt1=null;JTextFieldjt2=null;JTextFieldjt3=null;publicBtEvent3(JTextFieldjtf1,JTextFieldjtf2,JTextFieldjtf3){//TODO自动生成的构造函数存根jt1=jtf1;jt2=jtf2;jt3=jtf3;}@OverridepublicvoidactionPerformed(ActionEvente){//TODO自动生成的方法存根("");("");("");}}运行结果:实验五异常一、实验目的1、掌握异常的概念、作用、分类和进行异常处理的语法结构。2、了解系统异常类的体系和系统定义的常见标准异常。3、掌握用户自定义异常类的定义和抛出异常的方法。4、通过掌握异常来分析调试程序的编译错误和编写更健壮的程序。二、实验类型设计型三、实验内容1、标准异常:设计一个程序,使得其运行时,可以接受用户输入若干个整数并依次存入数组中,不限定输入数的个数,使得在输入数的个数超过数组的实际大小时产生数组下标越界异常(ArrayIndexOutOfBoundsException)。程序代码中“不需要”对异常进行捕获处理,观察异常产生时程序运行是否被中断,编译器产生了怎样的提示。2、自定义异常:设计一个新的程序或者完善题目1的程序,使得其运行时,可以接受用户输入若干个数并依次存入数组中。要求用户输入的整数必须大于0小于100。如果不符合这个范围则抛出异常。请自定义一个异常类来表示这种情况,并在用户的输入不符合要求时抛出该异常。实验源代码:import自定义异常类classmyExceptionextendsException{publicmyException(){"输入错误,输入范围0-100");}}publicclassShiyan5_2{publicstaticbooleaneven(intnum)throwsmyException{if(num<100&num>0)returntrue;else{myExceptionmyE=newmyException();throwmyE;}}publicstaticvoidmain(String[]args){Scannerinput=newScanner;inta[]=newint[5];"依次输入"++"个整数!");try{for(inti=0;i<;i++)even(a[i]=());"successfullyinput!");}catch(myExceptione){//();"产生异常的名称为:"+());}}}运行结果:依次输入5个整数!126556321输入错误,输入范围0-100产生异常的名称为:
{
if(min>s[i].score)
min=s[i].score;
minIndex=i;
}
if(max
max=s[i].score;
maxIndex=i;
"最高分的姓名:
"+s[maxIndex].name+"分数:
"+s[maxIndex].score);
"最低分的姓名:
"+s[minIndex].name+"分数:
"+s[minIndex].score);
name))
"查找结果为:
"+s[i].name+""+s[i].score+"分");
return;
"查无此人");
运行结果:
要输入几个学生的成绩
3
请分别输入第1个学生的姓名、成绩
张三65
请分别输入第2个学生的姓名、成绩
李四56
请分别输入第3个学生的姓名、成绩
方遥99
**************************
最高分的姓名:
方遥分数:
99
最低分的姓名:
李四分数:
56
请输入要查找的名字
查找结果为:
方遥99分
实验源代码2:
packageshiyan;
importclassShiyan2_2{
finalstaticintN=10;
staticPersonps[]=newPerson[N];
staticScannerinput=newScanner;
o!
=-1)
"\t"+ps[i].name+"\t"+ps[i].sex+"\t"+ps[i].telNum+"\t"
+ps[i].address);
"************************************");
o==no)
"编号\t姓名\t性别\t电话\t地址");
o==-1)
"编号姓名性别电话地址");
intno=();
Stringnam=();
Stringsex=();
inttelNum=();
Stringadd=();
ps[i]=newPerson(no,nam,sex,telNum,add);
"存储已满,无法添加");
ps[i].no=-1;
ps[i]=newPerson();
no=();
classPerson
intno;
;
importclassShiyan3{
JFramejf=newJFrame("简易计算器");
JButtonjb1=newJButton("相加");
JButtonjb2=newJButton("相减");
JButtonjb3=newJButton("清零");
JLabeljlable1=newJLabel("运算数一");
JLabeljlable2=newJLabel("运算数二");
JLabeljlable3=newJLabel("运算结果");
JTextFieldjtextf1=newJTextField(20);
JTextFieldjtextf2=newJTextField(20);
JTextFieldjtextf3=newJTextField(20);
importclassShiyan4{
JLabeljlable4=newJLabel("简易计算器");
returnfalse;
if(ch=='.')count++;
if(count<2&ch!
='.')returntrue;
//returnfalse;
//相加
classBtEvent1implementsActionListener
JTextFieldjt1=null;
JTextFieldjt2=null;
JTextFieldjt3=null;
publicBtEvent1(JTextFieldjtf1,JTextFieldjtf2,JTextFieldjtf3){
//TODO自动生成的构造函数存根
jt1=jtf1;
jt2=jtf2;
jt3=jtf3;
@Override
publicvoidactionPerformed(ActionEvente){
//TODO自动生成的方法存根
Strings1=();
Strings2=();
if("")||(""))
(null,"必须为数字请重新输入");
elseif(!
(s1)||!
(s2))
else{
doublex=(s1);
doubley=(s2);
(x+y));
//相减
classBtEvent2implementsActionListener
publicBtEvent2(JTextFieldjtf1,JTextFieldjtf2,JTextFieldjtf3){
//(x-y));
(x-y));
//清零
classBtEvent3implementsActionListener
publicBtEvent3(JTextFieldjtf1,JTextFieldjtf2,JTextFieldjtf3){
("");
实验五异常
1、掌握异常的概念、作用、分类和进行异常处理的语法结构。
2、了解系统异常类的体系和系统定义的常见标准异常。
3、掌握用户自定义异常类的定义和抛出异常的方法。
4、通过掌握异常来分析调试程序的编译错误和编写更健壮的程序。
设计型
1、标准异常:
设计一个程序,使得其运行时,可以接受用户输入若干个整数并依次存入数组中,不限定输入数的个数,使得在输入数的个数超过数组的实际大小时产生数组下标越界异常(ArrayIndexOutOfBoundsException)。
程序代码中“不需要”对异常进行捕获处理,观察异常产生时程序运行是否被中断,编译器产生了怎样的提示。
2、自定义异常:
设计一个新的程序或者完善题目1的程序,使得其运行时,可以接受用户输入若干个数并依次存入数组中。
要求用户输入的整数必须大于0小于100。
如果不符合这个范围则抛出异常。
请自定义一个异常类来表示这种情况,并在用户的输入不符合要求时抛出该异常。
实验源代码:
import自定义异常类
classmyExceptionextendsException
publicmyException()
"输入错误,输入范围0-100");
publicclassShiyan5_2{
publicstaticbooleaneven(intnum)throwsmyException{
if(num<100&num>0)
returntrue;
myExceptionmyE=newmyException();
throwmyE;
Scannerinput=newScanner;
inta[]=newint[5];
"依次输入"++"个整数!
");
try{
for(inti=0;i<;i++)
even(a[i]=());
"successfullyinput!
catch(myExceptione){
//();
"产生异常的名称为:
"+());
依次输入5个整数!
12
65
321
输入错误,输入范围0-100
产生异常的名称为:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1