Java程序设计实验报告实验报告册.docx
《Java程序设计实验报告实验报告册.docx》由会员分享,可在线阅读,更多相关《Java程序设计实验报告实验报告册.docx(73页珍藏版)》请在冰豆网上搜索。
![Java程序设计实验报告实验报告册.docx](https://file1.bdocx.com/fileroot1/2023-7/2/d1a4f1fe-15c3-4c4b-91d4-389927070718/d1a4f1fe-15c3-4c4b-91d4-3899270707181.gif)
Java程序设计实验报告实验报告册
实验1JAVA编程基础
一、实验目的
1、熟练掌握JDK编写调试Java应用程序及Java小程序的方法;
2、熟练掌握Java应用程序的结构;
3、了解Java语言的特点,基本语句、运算符及表达式的使用方法;
4、熟练掌握常见数据类型的使用;
5、熟练掌握if-else、switch、while、do-while、for、continue、break、return语句的使用方法;
6、熟练掌握数组和字符串的使用。
二、实验要求
1、编写程序要规范、正确,上机调试过程和结果要有记录;
2、做完实验后给出本实验的实验报告。
三、实验设备、环境
安装有JDK、Eclipse软件的计算机。
四、实验步骤
采用记事本编写一个简单的应用程序
(1)新建一个记事本文件,重新命名为Hello.java
(2)打开记事本,输入以下内容(注意大小写):
publicclassHello{
publicstaticvoidmain(Stringargs[]){
System.out.println("hellohello");
}
}
(3)请记录程序编译和执行的步骤,并附上运行结果图。
进入文件所在目录cdclass\java\java_ex1
编译N:
\class\java\java_ex1>javacHello.java
运行javaHello
结果:
五、实验内容
1、从键盘上输入学号、班级和姓名,并附上运行结果图。
importjava.util.Scanner;
publicclassKeyboardDemo{
publicstaticvoidmain(String[]args){
Scannerscan=newScanner(System.in);
System.out.print("请输入班级:
");
Stringcls=scan.nextLine();
System.out.print("请输入姓名:
");
Stringname=scan.nextLine();
System.out.print("请输入学号:
");
Stringnum=scan.nextLine();
System.out.println("班级:
"+cls+"姓名:
"+name+"学号"+num);
}
}
2、编写一个程序,用来判断输入的是大写字母,小写字母,数字还是其他的字符(if)。
importjava.util.Scanner;
publicclassCharDemo{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Scannerscan=newScanner(System.in);
while(true){
System.out.print("请输入一个字符:
");
charch=scan.nextLine().charAt(0);
if(Character.isUpperCase(ch))
System.out.println("该字符是大写字母:
"+ch);
elseif(Character.isLowerCase(ch))
System.out.println("该字符是小写字母:
"+ch);
elseif(Character.isDigit(ch))
System.out.println("该字符是数字:
"+ch);
else
System.out.println("该字符是其他字符!
");
}
}
}
3、编写一个程序,实现简单加、减、、乘除的运算,要求从键盘上输入数据(switch)。
importjava.util.Scanner;
publicclassCount{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
intnum1;
intnum2;
charfh;
Scannersc=newScanner(System.in);
while(true)
{
System.out.println("请输入第一个数:
");
num1=sc.nextInt();
System.out.println("请输入您的运算符:
");
fh=sc.next().charAt(0);
System.out.println("请输入第二个数:
");
num2=sc.nextInt();
switch(fh)
{
case'+':
{
System.out.println("num1+num2="+(num1+num2));
break;
}
case'-':
{
System.out.println("num1-num2="+(num1-num2));
break;
}
case'*':
{
System.out.println("num1*num2="+(num1*num2));
break;
}
case'/':
{
if(num2==0)
{
break;
}
else
{
System.out.println("num1/num2="+(num1/num2));
break;
}
}
default:
{
System.out.println("输入有误!
");
break;
}
}
}
}
}
4、定义一个一维数组,通过键盘输入10个两位整数,并求出其中的最大值和平均值,把结果显示出来。
importjava.util.Scanner;
publicclassArrayDemo{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Scannerscan=newScanner(System.in);
intarr[]=newint[10];
intsum=0;
System.out.print("请输入10个两位整数:
");
for(inti=0;i<10;i++)
{
arr[i]=scan.nextInt();
sum+=arr[i];
}
System.out.println("sum:
"+String.format("%d",sum));
System.out.println("average:
"+String.format("%.2f",(double)sum/10));
}
}
5、定义一个5行5列二维数组,用随机数给二维数组赋值,按照5行5列的格式显示
出二维数组的内容,把最大值显示出来。
publicclassArray5_5Demo{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
intarr[][]=newint[5][5];
for(inti=0;i<5;i++)
for(intj=0;j<5;j++)
{
arr[i][j]=(int)(Math.random()*90+10);
}
for(inti=0;i<5;i++)
{
for(intj=0;j<5;j++)
{
System.out.print(String.format("%4d",arr[i][j]));
}
System.out.println();
}
}
}
6、实现不规则二维数组的输入和输出。
importjava.util.Scanner;
publicclassNoRuleArrDemo{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
intarr[][]=newint[3][];
arr[0]=newint[3];
arr[1]=newint[2];
arr[2]=newint[4];
Scannerscan=newScanner(System.in);
for(inti=0;i{
for(intj=0;j{
System.out.print("请输入数据(0-10000):
");
arr[i][j]=scan.nextInt();
}
}
System.out.println("数组元素为:
");
for(inti=0;i{
for(intj=0;jSystem.out.print(String.format("%-5d",arr[i][j]));
System.out.println();
}
}
}
实验项目名称:
面向对象编程实验学时:
8
同组学生姓名:
无实验地点:
A101
实验日期:
4月15日-5月6日实验成绩:
批改教师:
马青霞批改时间:
实验2面向对象编程
一、实验目的、要求
1、熟练掌握Java语言类定义的基本语法;
2、熟练掌握类成员的访问控制,对象建立的方法;
3、熟练掌握类构造方法、成员方法的定义和重载;
4、熟练掌握类继承、多态和抽象性;
5、熟练掌握接口的定义和实现方法;
6、掌握基本的异常处理方法。
二、实验要求
1、编写程序要规范、正确,上机调试过程和结果要有记录;
2、做完实验后给出本实验的实验报告。
三、实验设备、环境
安装有JDK、Eclipse软件的计算机。
四、实验内容
1、定义一个Students类,包括学号、姓名、性别、年龄4个属性,要求在性别属性中增加对性别的判断(只能输入男和女),在年龄属性中提供对不合法(年龄在10至50之间)输入的判断,并提供方法显示学生信息。
构建该类,并测试。
packagetest1;
classStudents{
privateStringnum;
privateStringname;
privatecharsex;
privateintage;
Students(Stringnum,Stringname,charsex,intage){
this.num=num;
this.name=name;
this.sex=sex;
this.age=age;
}
booleanjudgeSex(){
if(sex=='f'||sex=='m')
returntrue;
returnfalse;
}
booleanjudgeAge(){
if(age>10&&age<50)
returntrue;
returnfalse;
}
voidshow(){
System.out.println("学号:
"+num+"\n姓名:
"+name+"\n性别:
"+sex+"\n年龄:
"+age);
}
}
publicclassdemo1{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Studentsstu=newStudents("1205104006","wjw",'f',21);
if(stu.judgeAge()&&stu.judgeSex())
stu.show();
else
System.out.println("学生初始化信息有误,请重新输入!
");
}
}
2、定义一个方法,用数组作为参数来传递数据(请补充下面的代码)。
packagetest1;
importjava.util.Arrays;
publicclassdemo1{
publicstaticvoidmain(String[]args){
inta[]={10,20,15,40,50,35};
Myclassmyclass=newMyclass();
System.out.println("排序前:
");
myclass.printArr(a);
Arrays.sort(a);
System.out.println("排序后");
myclass.printArr(a);
}
}
classMyclass
{
//定义一个方法,实现数组内容的输出
voidprintArr(int[]arr){
for(inti=0;iSystem.out.print(String.format("%4d",arr[i]));
}
System.out.println();
}
}
3、定义一个学生类,把学生类当作对象来传递或者用对象数组作为参数传递。
packagetest1;
classStudents{
privateStringnum;
privateStringname;
privatecharsex;
privateintage;
Students(Stringnum,Stringname,charsex,intage){
this.num=num;
this.name=name;
this.sex=sex;
this.age=age;
}
voidshow(){
System.out.println("学号:
"+num+"\n姓名:
"+name+"\n性别:
"+sex+"\n年龄:
"+age);
}
}
publicclassdemo2{
publicstaticvoidmain(String[]args){
Studentsstu[]=newStudents[2];
stu[0]=newStudents("1205104006","wjw",'f',21);
stu[1]=newStudents("12051040","ys",'m',22);
print(stu);
}
publicstaticvoidprint(Studentsstu[]){
for(inti=0;iSystem.out.println("第"+(i+1)+"个学生的信息:
");
stu[i].show();
}
}
}
4、利用方法的重载两个整数和两个双精度类型数据求和。
packagetest1;
classAdd{
publicintAdd(intnum1,intnum2){
returnnum1+num2;
}
publicdoubleAdd(doublenum1,doublenum2){
returnnum1+num2;
}
}
publicclassdemo3{
publicstaticvoidmain(String[]args){
intnum1=10;
intnum2=20;
doublenum3=10.23;
doublenum4=30.74;
Addadd=newAdd();
System.out.println("int和:
"+num1+"+"+num2+"="+add.Add(num1,num2));
System.out.println("double整数和:
"+num3+"+"+num4+"="+String.format("%.2f",add.Add(num3,num4)));
}
}
5、定义一个Area类,用构造函数重载,实现矩形的面积,圆的面积,梯形的面积,定义一个ShowArea方法,显示结果。
packagetest1;
classArea{
privatestaticfinaldoublePI=3.14;;
privatedoublearea;
Area(doublewidth,doublelength){
area=width*length;
}
Area(doubleradius){
area=PI*radius*radius;
}
Area(doublelength1,doublelength2,doubleheight){
area=(length1+length2)*height/2;
}
publicvoidshowArea(){
System.out.println(String.format("%.2f",area));
}
}
publicclassAreaDemo{
publicstaticvoidmain(String[]args){
Arearectangle=newArea(3.0,5.5);
Areacycle=newArea(2.4);
Areaechelon=newArea(3.2,4.5,4);
System.out.print("rectanglearea:
");
rectangle.showArea();
System.out.print("cyclearea:
");
cycle.showArea();
System.out.print("echelonarea:
");
echelon.showArea();
}
}
6、在该程序中构造一个Person基类,在Person类的基础上再构造Student类,实现方法的覆盖。
classPerson{
privateintage;
privateStringname;
Person(Stringname,intage){
this.name=name;
this.age=age;
}
voidshow(){
System.out.println("name:
"+name+"\nage:
"+age);
}
voidmethod(){
System.out.println("method调用");
}
}
classStudentextendsPerson{
Student(Stringname,intage){
super(name,age);
}
voidmethod(){
System.out.println("method调用.......study....");
}
}
publicclassExtendDemo{
publicstaticvoidmain(String[]args){
Studentstu=newStudent("wjw",21);
stu.show();
stu.method();
}
}
7、用面向对象的知识,实现实验一的计算器程序。
packagehtp;
importjava.util.Scanner;
classOperation{
privateintnum1;
privateintnum2;
charopt;
publicintgetNum1(){
returnnum1;
}
publicvoidsetNum1(intnum1){
this.num1=num1;
}
publicintgetNume2(){
returnnum2;
}
publicvoidsetNume2(intnume2){
this.num2=num2;
}
publicchargetOpt(){
returnopt;
}
publicvoidsetOpt(charopt){
this.opt=opt;
}
Operation(intnum1,charopt,intnum2){
this.num1=num1;
this.num2=num2;
this.opt=opt;
}
publicvoidCal(){
switch(opt){
case'+':
{
System.out.println("num1+num2="+(num1+num2));
break;
}
case'-':
{
System.out.println("num1-num2="+(num1-num2));
break;
}
case'*':
{
System.out.println("num1*num2="+(num1*num2));
break;
}
case'/':
{
if(num2==0)
{
break;
}
else
{
System.out.println("num1/num2="+