Java实验报告三分析.docx
- 文档编号:12031080
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:19
- 大小:438.19KB
Java实验报告三分析.docx
《Java实验报告三分析.docx》由会员分享,可在线阅读,更多相关《Java实验报告三分析.docx(19页珍藏版)》请在冰豆网上搜索。
Java实验报告三分析
开课实验室:
现代信息交流中心403开课时间:
2015年**月**日实验报告:
2015年04月17日
学院名称
信息工程学院
年级、专业、班
计科
学号
姓名
同组姓名
无
课程名称
Java程序设计
实验项目名称
Java面向对象程序设计
(2)
指导教师
尉斌
实验类型
验证√综合□设计□创新□
成绩
教师评语
教师签名:
年月日
一、实验目的:
熟悉类、对象、方法、继承和多态的使用方法。
二、实验内容:
1.创建一个Point类,包含坐标x、y。
然后创建一个Line类,定义两个读写属性start和end,数据类型为Point,定义Line类方法(计算start和end之间的距离,并打印start和end坐标以及距离信息)。
2.根据下面类图,设计一个名为Student的类,包括属性“学号”、“姓名”以及3门课程“数学”、“英语”和“计算机”的成绩,包括的方法有计算3门课程的“总分”、“平均分”、“最高分”及“最低分”。
在此基础上,使用数组来实现对多个学生的管理。
编写一个控制台应用程序,实现如下菜单功能。
3.题目:
品尝饮料
要求:
(1)使用键盘输入参数(饮料类型),输出该饮料类型的味道,如:
当键盘输入参数为1时,结果见图1:
(2)如果没有该种饮料,结果见图2:
实现步骤:
(1)建立一个Java抽象类Drink,应当:
a、声明一个抽象方法taste(),该方法负责输出饮料的味道;
b、声明int型常量来代表不同的饮料类型(咖啡、啤酒、牛奶)
c、声明静态工厂方法getDrink(intdrinkType),根据传入的参数创建不同的饮料对象,并返回该对象,建议使用switch语句。
(2)建立Drink的具体子类:
a、分别建立Drink的子类:
Coffee(代表咖啡),Beer(代表啤酒),Milk(代表牛奶);
b、实现taste()方法,要求在屏幕输出中打印各自的味道特征。
(3)建立Test测试类,测试以上内容的正确性
a、编写main方法,通过命令行传参的方式传入某种饮料的类型。
b、在main方法中,调用Drink类的getDrink方法,获得相应的饮料对象。
c、然后调用该饮料的taste()方法,输出该饮料的味道。
三、源代码清单:
1.源代码清单
publicclassPoint{
publicstaticvoidmain(String[]args){
Pointpoint1=newPoint(1,2);
Pointpoint2=newPoint(4,6);
Lineline1=newLine(point1,point2);
System.out.println("Thedistanceis"+line1.line()+"\nThestartis"+"("+line1.start.x+","+line1.start.y+")"+"\nTheendis"+"("+line1.end.x+","+line1.end.y+")");
}
doublex;
doubley;
Point(){
}
Point(doublex,doubley){
this.x=x;
this.y=y;
}
}
classLine{
Pointstart;
Pointend;
Line(){
}
Line(PointnewStart,PointnewEnd){
start=newStart;
end=newEnd;
}
publicdoubleline(){
returnMath.sqrt((end.x-start.x)*(end.x-start.x)+(end.y-start.y)*(end.y-start.y));
}
}
2.源代码清单
publicclassStudent{
Stringstuno;
Stringname;
floatmath;
floatenglish;
floatcomputer;
Student(){
}
Student(Stringstuno,Stringname,floatmath,floatenglish,floatcomputer){
this.stuno=stuno;
this.name=name;
this.math=math;
this.english=english;
puter=computer;
}
publicStringgetStuno(){
returnstuno;
}
publicvoidsetStuno(Strings){
this.stuno=s;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringn){
this.name=n;
}
publicfloatgetMath(){
returnmath;
}
publicvoidsetMath(floatm){
this.math=m;
}
publicfloatgetEnglish(){
returnenglish;
}
publicvoidsetEnglish(floate){
this.english=e;
}
publicfloatgetComputer(){
returncomputer;
}
publicvoidsetComputer(floatc){
puter=c;
}
publicdoublesum(){
returnmath+english+computer;
}
publicdoubleavg(){
return(math+english+computer)/3;
}
publicdoublemax(doublemax){
if(math>=english){
if(math>=computer)
max=math;
else
max=computer;
}
elseif(math if(english math=computer; else max=english; } returnmax; } publicdoublemin(doublemin){ if(math<=english){ if(math<=computer) min=math; else min=computer; } elseif(math>english){ if(computer>english) min=english; else min=computer; } returnmin; } } publicclassManagerextendsStudent{ privateStudent[]student=newStudent[100]; privatestaticintnumberOfStudent=0; intgetNumberOfStudent(){ returnnumberOfStudent; } Student[]getStudent(){ returnstudent; } booleanaddStudent(Studentstudent){ try{ this.student[numberOfStudent]=student; numberOfStudent++; returntrue; }catch(Exceptione){ returnfalse; } } booleanremoveStudent(Stringstuno){ booleantarget=false; for(inti=0;i if(student[i].getStuno().equals(stuno)){ student[i]=null; target=true; } returntarget; } StudentfindStudent(Strings){ for(inti=0;i if(student[i]! =null) if(student[i].getStuno().equals(s) ||student[i].getName().equals(s)) returnstudent[i]; returnnull; } booleanchangeStudent(Studentstudent){ for(inti=0;i if(this.student[i].getStuno().equals(student.getStuno()) ||this.student[i].getName().equals(student.getName())){ this.student[i]=student; returntrue; } } returnfalse; } voidprint(){ System.out.println("学号\t姓名\t数学\t英语\t计算机"); for(inti=0;i if(student[i]! =null){ System.out.println(student[i].getStuno()+"\t" +student[i].getName()+"\t"+student[i].getMath() +"\t"+student[i].getEnglish()+"\t" +student[i].getComputer()); } } voidcaculate(){ floatmax_math=0,min_math=student[0].getMath(),sum_math=0; for(inti=0;i sum_math+=student[i].getMath(); if(student[i].getMath()>max_math) max_math=student[i].getMath(); elseif(student[i].getMath() min_math=student[i].getMath(); } floatavg_math=sum_math/numberOfStudent; floatmax_english=0,min_english=student[0].getEnglish(),sum_english=0; for(inti=0;i sum_english+=student[i].getEnglish(); if(student[i].getEnglish()>max_english) max_english=student[i].getEnglish(); elseif(student[i].getEnglish() min_english=student[i].getEnglish(); } floatavg_english=sum_english/numberOfStudent; floatmax_computer=0,min_computer=student[0].getComputer(),sum_computer=0; for(inti=0;i sum_computer+=student[i].getComputer(); if(student[i].getComputer()>max_computer) max_computer=student[i].getComputer(); elseif(student[i].getComputer() min_computer=student[i].getComputer(); } floatavg_computer=sum_computer/numberOfStudent; System.out.println("学科\t平均成绩\t最高分\t最低分"); System.out.println("数学\t"+avg_math+"\t"+max_math+"\t" +min_math); System.out.println("英语\t"+avg_english+"\t"+max_english+"\t" +min_english); System.out.println("计算机\t"+avg_computer+"\t"+max_computer+"\t" +min_computer); } } importjava.util.Scanner; publicclassTestStudent{ publicstaticvoidmain(String[]args){ Managermanager=newManager(); System.out .println("1.添加学生\n2.删除学生\n3.查询学生\n4.修改学生\n5.打印学生\n6.统计学生\n7.退出"); Scannerscanner=newScanner(System.in); booleanflag=true; while(flag){ intinput=9; try{ input=scanner.nextInt(); }catch(Exceptione){ System.out.println("Wrongoperation."); flag=false; } switch(input){ case1: System.out .println("Enterthestudent'sinformation(stuno,name,math,english,computer): "); Studentstudent1=newStudent(); student1.setStuno(scanner.next()); student1.setName(scanner.next()); student1.setMath(scanner.nextFloat()); student1.setEnglish(scanner.nextFloat()); student1.setComputer(scanner.nextFloat()); if(manager.addStudent(student1)) System.out.println("success."); else System.out.println("fail."); break; case2: System.out.println("Enterthestuno: "); if(manager.removeStudent(scanner.next())) System.out.println("success."); else System.out.println("fail."); break; case3: System.out.println("Enterthestunoorname: "); Studentstudent3=manager.findStudent(scanner.next()); if(student3! =null){ System.out.println(student3.getStuno()+"\t" +student3.getName()+"\t"+student3.getMath() +"\t"+student3.getEnglish()+"\t" +student3.getComputer()); }else System.out.println("Thereisnosuchastudent."); break; case4: System.out .println("Enterthechangedstudent(stuno,name,math,english,computer): "); Studentstudent4=newStudent(); student4.setStuno(scanner.next()); student4.setName(scanner.next()); student4.setMath(scanner.nextFloat()); student4.setEnglish(scanner.nextFloat()); student4.setComputer(scanner.nextFloat()); if(manager.changeStudent(student4)) System.out.println("changesuccess."); else System.out.println("changefail."); break; case5: manager.print(); break; case6: try{ manager.caculate(); break; }catch(Exceptione){ System.out.println("thereisnostudent."); } case7: flag=false; System.out.println("退出。 "); break; default: System.out.println("Wrongoperation."); } } } } 3.源代码清单 publicabstractclassDrink{ publicabstractStringgetTaste(); intdrinkType; intCoffee=1; intBeer=2; intMilk=3; Drink(){ } Drink(intnewDrinkType){ drinkType=newDrinkType; } staticDrinkgetDrink(intdrinkType){ switch(drinkType){ case1: returnnewCoffee(); case2: returnnewBeer(); case3: returnnewMilk(); } returnnull; } } classCoffeeextendsDrink{ Coffee(){ } publicStringgetTaste(){ return"咖啡: 味苦"; } } classBeerextendsDrink{ Beer(){ } publicStringgetTaste(){ return"啤酒: 味涩"; } } classMilkextendsDrink{ Milk(){ } publicStringgetTaste(){ return"牛奶: 味香"; } } importjava.util.Scanner; publicclassTestDrink{ publicstaticvoidmain(String[]args){ Scannerinput=newScanner(System.in); System.out.println("Enteryournumberofthedrink: "); intdrinkType=input.nextInt(); Drinkdrink=Drink.getDrink(drinkType); if(drinkType>3){ System.out.println("对不起! 没有你要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 实验 报告 分析