《Java程序设计》实验报告第1部分.docx
《《Java程序设计》实验报告第1部分.docx》由会员分享,可在线阅读,更多相关《《Java程序设计》实验报告第1部分.docx(32页珍藏版)》请在冰点文库上搜索。
![《Java程序设计》实验报告第1部分.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/95b08034-9bbe-4f07-9333-303daf9c02b8/95b08034-9bbe-4f07-9333-303daf9c02b81.gif)
《Java程序设计》实验报告第1部分
本科生实验报告
实验课程
Java程序设计
学院名称
专业名称
学生姓名
学生学号
指导教师
实验地点
实验成绩
二〇一五年九月二〇一五年十二月
填写说明
1、适用于本科生所有的实验报告(印制实验报告册除外);
2、专业填写为专业全称,有专业方向的用小括号标明;
3、格式要求:
1用A4纸双面打印(封面双面打印)或在A4大小纸上用蓝黑色水笔书写。
2打印排版:
正文用宋体小四号,1.5倍行距,页边距采取默认形式(上下2.54cm,左右2.54cm,页眉1.5cm,页脚1.75cm)。
字符间距为默认值(缩放100%,间距:
标准);页码用小五号字底端居中。
3具体要求:
题目(二号黑体居中);
摘要(“摘要”二字用小二号黑体居中,隔行书写摘要的文字部分,小4号宋体);
关键词(隔行顶格书写“关键词”三字,提炼3-5个关键词,用分号隔开,小4号黑体);
正文部分采用三级标题;
第1章××(小二号黑体居中,段前0.5行)
1.1×××××小三号黑体×××××(段前、段后0.5行)
1.1.1小四号黑体(段前、段后0.5行)
参考文献(黑体小二号居中,段前0.5行),参考文献用五号宋体,参照《参考文献著录规则(GB/T7714-2005)》。
实验常微分方程数值解法
【实验目的】
(1)熟悉求解常微分方程初值问题的有关方法和理论,主要是改进欧拉法,四阶龙格-库塔法与阿当姆方法。
;
(2)能编程实现Euler法,改进Euler法,Rung-Kutta方法;
(3)针对实习题编制程序,并上机计算其所需的结果;
(4)通过对各种求解方法的计算实习,体会各种解法的功能,优缺点及适用场合,会选取适当的求解方法;
【算法概要】
解一阶常微分方程初值问题
【实验要求】
学号:
0401398
姓名:
杨小明
性别:
男
年龄:
20
学号:
0401399
姓名:
张大红
性别:
女
年龄:
18
输出修改后的信息
学号:
0401398
姓名:
杨小明
性别:
男
年龄:
19
学号:
0401399
姓名:
李大红
性别:
女
年龄:
18
(1)TestStu0.java的输出结果如下,请补充完整程序
源程序
classstudent
{
privateStringid;
privateStringname;
privateStringsex;
privateintage;
student(Stringid,Stringname,Stringsex,intage)
{this.id=id;
this.name=name;
【this.sex=sex;】//初始化性别
【this.age=age;】//初始化年龄
}
publicStringgetId()
{returnid;}
publicStringgetName()
{returnname;}
publicStringgetSex()
{【returnsex;】}//获取性别
publicintgetAge()
{【returnage;】}//获取年龄
voidsetAge(intage)//修改年龄
{this.age=age;}
voidsetName(StringnewName)
{【this.name=name;】}//修改姓名
publicStringprintInfo()
{Strings="\n学号:
"+id+"\n姓名:
"+name+"\n性别:
"+sex+"\n年龄:
"+age;
System.out.println(s);
returns;
}
}
publicclassTestStu0
{publicstaticvoidmain(Stringargs[])
{studentstuOne=newstudent("0401398","杨小明","男",20);
stuOne.printInfo();
studentstuTwo=【newstudent(“0401399”,”张大红”,“女”,“18”);】//创建对象stuTwo,学号“0401399",姓名"张大红",性别"女",年龄18);
stuTwo.printInfo();
stuOne.setAge(19);//修改第一个同学的年龄为19
【stuTwosetName(李大红);】//修改第二个同学的名字为李大红
System.out.println("\n输出修改后的信息");
stuOne.printInfo();
stuTwo.printInfo();
}
}
(2)TestStu1的运行结果如下,请补充完整程序TestStu1.java
学号:
001
姓名:
苏轼
英语:
56.0
数学:
87.0
计算机:
95.0
总分:
238.0
评测成绩:
79.33
学号:
002
姓名:
杜甫
英语:
86.0
数学:
75.0
计算机:
80.0
总分:
241.0
评测成绩:
80.33
学号:
005
姓名:
欧阳修
英语:
87.0
数学:
95.0
计算机:
56.0
总分:
238.0
职位:
数学代表
评测成绩:
82.33
学号:
006
姓名:
王安石
英语:
98.0
数学:
87.0
计算机:
36.0
总分:
221.0
职位:
英语代表
评测成绩:
76.67
学号:
002
姓名:
李白
英语:
89.0
数学:
87.0
计算机:
87.0
总分:
263.0
职位:
班长
评测成绩:
92.67
源程序:
importjava.text.*;
//
(1)创建学生类Stu1
classStu1
{
Stringid;
Stringname;
floatscoreOfenglish;
floatscoreOfmath;
floatscoreOfcomputer;
floatscoreOfsum;
//构造方法
Stu1(Stringaid,Stringaname,floatascoreOfenglish,floatascoreOfmath,floatascoreOfcomputer)
{
this.id=aid;
this.name=aname;
this.scoreOfenglish=ascoreOfenglish;
this.scoreOfmath=ascoreOfmath;
this.scoreOfcomputer=ascoreOfcomputer;
//this.scoreOfsum=ascoreOfenglish+ascoreOfmath+ascoreOfcomputer;
this.scoreOfsum=sum();
}
//sum方法
floatsum()
{
return(this.scoreOfenglish+this.scoreOfmath+this.scoreOfcomputer);
}
//testScore测评成绩(平均分)
floattestScore()
{
return(this.scoreOfsum/3);
}
//6个get方法
Stringgetid()
{
return(id);
}
Stringgetname()
{
return(name);
}
floatgetscoreOfenglish()
{
return(scoreOfenglish);
}
floatgetscoreOfmath()
{
【return(scoreOfmath)】
}
floatgetscoreOfcomputer()
{
【return(scoreOfcomputer)】
}
floatgetscoreOfsum()
{
【return(scoreOfsum)】
}
//5个set方法
voidsetid(Stringnewid){
this.id=newid;
}
voidsetname(Stringnewname){
this.name=newname;
}
voidsetscoreOfenglish(floatnewscoreOfenglish){
this.scoreOfenglish=newscoreOfenglish;
this.scoreOfsum=sum();
}
voidsetscoreOfmath(floatnewscoreOfmath){
【this.setscoreOfmath=newsetscoreOfmath】
}
voidsetscoreOfcomputer(floatnewscoreOfcomputer){
【this.scoreOfcomputer=newscoreOfcomputer】
}
//toString方法
publicStringtoString()
{
return("学号:
"+this.id+"\n姓名:
"+name+"\n英语:
"+this.scoreOfenglish+"\n数学:
"+this.scoreOfmath+"\n计算机:
"+this.scoreOfcomputer+"\n总分:
"+this.scoreOfsum);
}
}
//
(2)声明StudentXW(学习委员)类为Student类的子类。
//在StudentXW类中增加责任属性,并重写testScore方法(评测成绩=三门课平均分+3)
classStudentXWextendsStu1
{
Stringresponsibility;
//构造方法
StudentXW(Stringaid,Stringaname,floatascoreOfenglish,floatascoreOfmath,floatascoreOfcomputer,Stringaresponsibility)
{
super(aid,aname,ascoreOfenglish,ascoreOfmath,ascoreOfcomputer);
responsibility=aresponsibility;
}
//testScore测评成绩/平均分
floattestScore()
{
return(this.scoreOfsum/3+3);
}
//toString方法
publicStringtoString()
{
return("学号:
"+this.id+"\n姓名:
"+name+"\n英语:
"+this.scoreOfenglish+"\n数学:
"+this.scoreOfmath+"\n计算机:
"+this.scoreOfcomputer+"\n总分:
"+this.scoreOfsum+"\n职位:
"+this.responsibility);
}
}
//(3)声明StudentBZ类为Student类的子类
//在StudentBZ类中增加责任属性,并重写testScore方法(评测成绩=三门课平均分+5)
classStudentBZextendsStu1
{
Stringresponsibility;
//构造方法
StudentBZ(Stringaid,Stringaname,floatascoreOfenglish,floatascoreOfmath,floatascoreOfcomputer,Stringaresponsibility)
{
super(aid,aname,ascoreOfenglish,ascoreOfmath,ascoreOfcomputer);
responsibility=aresponsibility;
}
//testScore测评成绩/平均分
floattestScore()
{
【return(this.scoreOfsum/3+3);】
}
//toString方法
publicStringtoString()
{
【return("学号:
"+this.id+"\n姓名:
"+name+"\n英语:
"+this.scoreOfenglish+"\n数学:
"+this.scoreOfmath+"\n计算机:
"+this.scoreOfcomputer+"\n总分:
"+this.scoreOfsum+"\n职位:
"+this.responsibility);
】
}
}
//4)声明测试类,生成若干个Student类、StudentXW类及StudentBZ类对象,并分别计算它们的评测成绩。
publicclasstestStu1
{
publicstaticvoidmain(Stringargs[])
{
Stu1su=newStu1("001","苏轼",56.00f,87.00f,95.00f);
Stu1du=newStu1("002","杜甫",86.00f,75.00f,80.00f);
StudentXWou=newStudentXW("005","欧阳修",87.00f,95.00f,56.00f,"数学代表");
StudentXWwang=newStudentXW("006","王安石",98.00f,87.00f,36.00f,"英语代表");
StudentBZli=newStudentBZ("002","李白",89.00f,87.00f,87.00f,"班长");
System.out.print(su);
System.out.println("\n评测成绩:
"+newDecimalFormat("0.00").format(su.testScore()));
System.out.println();
System.out.print(du);
System.out.println("\n评测成绩:
"+newDecimalFormat("0.00").format(du.testScore()));
System.out.println();
System.out.print(ou);
System.out.println("\n评测成绩:
"+newDecimalFormat("0.00").format(ou.testScore()));
System.out.println();
System.out.print(wang);
【System.out.println("006","王安石",98.00f,87.00f,36.00f,"英语代表");】//输出王安石信息
System.out.println();
System.out.print(li);
【System.out.println("002","李白",89.00f,87.00f,87.00f,"班长");】//输出李白信息
System.out.println();
}
}
(3)在第
(2)题的基础上,增加两个方法:
方法compare用于比较两个同学的总分大小,方法equal用于比较两个同学的学号是否相等。
运行结果如下
学号:
001
姓名:
苏轼
英语:
56.0
数学:
87.0
计算机:
95.0
总分:
238.0
评测成绩:
79.33
学号:
002
姓名:
杜甫
英语:
86.0
数学:
75.0
计算机:
80.0
总分:
241.0
评测成绩:
80.33
学号:
005
姓名:
欧阳修
英语:
87.0
数学:
95.0
计算机:
56.0
总分:
238.0
职位:
数学代表
评测成绩:
82.33
学号:
006
姓名:
王安石
英语:
98.0
数学:
87.0
计算机:
36.0
总分:
221.0
职位:
英语代表
评测成绩:
76.67
学号:
002
姓名:
李白
英语:
89.0
数学:
87.0
计算机:
87.0
总分:
263.0
职位:
班长
评测成绩:
92.67
苏轼总分小于李白
苏轼总分大于王安石
苏轼总分等于欧阳修
杜甫和苏轼学号不相同
杜甫和李白学号相同
修改李白的学号为007
杜甫和李白学号不相同
源程序(新增加部分用红色标注的)
importjava.text.*;
//
(1)创建学生类Stu1
classStu1
{
Stringid;
Stringname;
floatscoreOfenglish;
floatscoreOfmath;
floatscoreOfcomputer;
floatscoreOfsum;
//构造方法
Stu1(Stringaid,Stringaname,floatascoreOfenglish,floatascoreOfmath,floatascoreOfcomputer)
{
this.id=aid;
this.name=aname;
this.scoreOfenglish=ascoreOfenglish;
this.scoreOfmath=ascoreOfmath;
this.scoreOfcomputer=ascoreOfcomputer;
//this.scoreOfsum=ascoreOfenglish+ascoreOfmath+ascoreOfcomputer;
this.scoreOfsum=sum();
}
//sum方法
floatsum()
{
return(this.scoreOfenglish+this.scoreOfmath+this.scoreOfcomputer);
}
//testScore测评成绩(平均分)
floattestScore()
{
return(this.scoreOfsum/3);
}
//6个get方法
Stringgetid()
{
return(id);
}
Stringgetname()
{
return(name);
}
floatgetscoreOfenglish()
{
return(scoreOfenglish);
}
floatgetscoreOfmath()
{
【return(scoreOfmath)】
}
floatgetscoreOfcomputer()
{
【return(scoreOfcomputer)】
}
floatgetscoreOfsum()
{
【return(scoreOfsum)】
}
//5个set方法
voidsetid(Stringnewid){
this.id=newid;
}
voidsetname(Stringnewname){
this.name=newname;
}
voidsetscoreOfenglish(floatnewscoreOfenglish){
this.scoreOfenglish=newscoreOfenglish;
this.scoreOfsum=sum();
}
voidsetscoreOfmath(floatnewscoreOfmath){
【this.scoreOfmath=newscoreOfmath;
this.scoreOfsum=sum();
】
}
voidsetscoreOfcomputer(floatnewscoreOfcomputer){
【this.scoreOfcomputer=newscoreOfcomputer;
this.scoreOfsum=sum();
】
}
//toString方法
publicStringtoString()
{
return("学号:
"+this.id+"\n姓名:
"+name+"\n英语:
"+this.scoreOfenglish+"\n数学:
"+this.scoreOfmath+"\n计算机:
"+this.scoreOfcomputer+"\n总分:
"+this.scoreOfsum);
}
//equals方法/比较两个学生学号是否相等
voidequals(Stu1y){
if(this.id.equals(y.id))
System.out.println(this.getname()+"和"+y.getname()+"学号相同");
else
System.out.println(this.getname()+"和"+y.getname()+"学号不相同");
}
//compare方法/比较两个学生总分(根据总分大小分别输出大于小于相等三种情况)
voidcompare(Stu1x){
【】
}
}
//
(2)声明StudentXW(学习委员)类为Student类的子类。
//在StudentXW类中增加责任属性,并重写testScore方法(评测成绩=三门课平均分+3)
classStudentXWextendsStu1
{
Stringresponsibility;
//构造方法
StudentXW(Stringaid,Stringaname,floatascoreOfenglish,floatascoreOfmath,floatascoreOfcomputer,Stringaresponsibility)
{
super(aid,aname,ascoreOfenglish,ascoreOfmath,ascoreOfcomputer);
responsibility=aresponsibility;
}
//testScore测评成绩/平均分
floattestScore()
{
return(this.scoreOfsum/3+3);
}
//toString方法
publicStringtoString()
{
return("学号:
"+this.id+"\n姓名:
"+name+"\n英语:
"+this.scoreOfenglish+"\n数学:
"+this.scoreOfmath+"\n计算机:
"+this.scoreOfcomputer+"\n总分:
"+this.scoreOfsum+"\n职位:
"+this.responsibility);
}
}