java实验报告有理数的类封装.docx
《java实验报告有理数的类封装.docx》由会员分享,可在线阅读,更多相关《java实验报告有理数的类封装.docx(8页珍藏版)》请在冰豆网上搜索。
java实验报告有理数的类封装
竭诚为您提供优质文档/双击可除
java实验报告有理数的类封装
篇一:
JAVA实验报告
学生实验报告
学院:
用友软件学院
课程名称:
Java程序设计
专业班级:
软件工程b01班
姓名:
尚丽娟
学号:
0088234
学生实验报告
(一)
一、实验综述
1、实验目的及要求
实验目的:
1.学习数据表示、运算符和表达式;
2.认识Java的基本数据类型;
3.养成良好的程序调试和编程风格。
试验要求:
编写程序,读入0到1000的一个整数并将其各位数字之和赋值给一个整数。
如,整数932各位数字之和为14。
2、实验仪器、设备或软件
1.个人计算机pc;
2.eclipse编程环境。
二、实验过程(实验步骤、记录、数据、分析)
(1)步骤一
1.打开eclipse,点击文件,新建一个名为1的项目,在新建一个名为package的包,然后在新建一个名为exercise1的类。
然后在代码输入框输入代码
packagepackage;
importjavax.swing.Joptionpane;
publicclassexercis1{
/**
*@paramargs
*/
publicstaticvoidmain(string[]args){
//ToDo自动生成方法存根
stringnumberstring=Joptionpane.showInputDialog(null,
"enteranumberbetween0and1000",
"numberInput",Joptionpane.QuesTIon_messAge);
intnumber=Integer.parseInt(numberstring);
intfirstnumber=number/100;
intsecondnumber=number/10%10;
intthirdnumber=number%10;
intsum=firstnumber+secondnumber+thirdnumber;
system.out.println("Thesumis"+sum);
system.exit(0);
}
}
(2)步骤二
点击运行,会出现以下输入框,我们输入923.
在控制台得到的结果如下:
三、结论
1、实验结果
能成功运行,没有错误,并且会看到输入框,并且在输入框中输入数字后,运行结果会在控制台中显示出正确的结果。
截图吐下
2、分析讨论
1.是实验中,用Java编译出这个程序,相比以前学习使用c++编译一个程序,JAVA更容易上手,更人性化。
2.在实验过程中,如果代码出现语法等错误,代码下面会显红线,让我们清晰的了解到哪里出错。
3.在实验过程中,一定要注意单词的首字母是否要大写,在类名每个单词的首字母都要大写,常量中的所有字母都要大写。
在实验中,常常因为这些命名会出现问题。
4.在实验过程中,例如这个程序一定要明白它的逻辑再来输入代码,不然很容易出现逻辑错误。
5.在实验中,Joptionpane.showInputDialog这个方法从输入对话框得到输入从控制台输出。
。
如果我们可以不用这个进行输入的话,我们可以直接用scanner里创建对象进行输入。
6.在实验过程中我们还要注意到,输入对话框返回的输入是一个字符串,想要获得熟知必须把字符串转化为数字值,如果不这样做,我们得到的结果就是“923”是一个字符串。
所以我们一定要有一个方法使其转换为数字例如以下代码:
intnumber=Integer.parseInt(numberstring)
四、指导教师评语及成绩:
评语:
该实验步骤正确。
程序设计较合理,结果正确。
实验报告格式正确,文档规范,
描述较清晰。
掌握了运用该知识的方法与技能,较好地完成了实验任务。
达到实验目的。
成绩:
82
指导教师签名:
毛澄映
批阅日期:
20XX-3-15
篇二:
青岛理工大学java实验二
青岛理工大学java实验
实验2:
类的封装性和继承性设计
(1)有理数四则运算。
编写一个Java应用程序,实现两个有理数的四则运算,要求有理数用分子和分母的形式表示。
结果要求用“分子/分母”的形式表示。
源代码:
importjava.util.scanner;
//定义一个分数类,方便单独使用分子分母
classFenshu{
}
publicclassb{
staticint[]fenzi=newint[2];staticint[]fenmu=newint[2];//以下方法通过返回一个Fenshu类型的对象,来获取分子和分母;//加法运算Fenshuadd(inta,intc,intb,intd){}//减法运算Fenshudec(inta,intc,intb,intd){Fenshufs=newFenshu();fs.fz=a*d+b*c;fs.fm=c*d;returnfs;intfz;intfm;
}fs.fz=a*d-b*c;fs.fm=c*d;returnfs;//乘法运算Fenshumul(inta,intc,intb,intd){}//除法运算Fenshudiv(inta,intc,intb,intd){}//求最大公约数intyueshu(inta,intb){intnum=1;intmin=(a>b)?
b:
a;for(inti=1;i }publicstaticvoidmain(string[]args){bys=newb();//通过scanner类来实现从键盘输入scannerscn=newscanner(system.in);system.out.println("输入分子1:
");ys.fenzi[0]=scn.nextInt();system.out.println("输入分母1:
");ys.fenmu[0]=scn.nextInt();system.out.println("输入分子2:
");ys.fenzi[1]=scn.nextInt();system.out.println("输入分母2:
");ys.fenmu[1]=scn.nextInt();intnum;//用来保存最大公约数Fenshufs1=ys.add(fenzi[0],fenmu[0],fenzi[1],fenmu[1]);num=ys.yueshu(fs1.fz,fs1.fm);fs1.fz=fs1.fz/num;fs1.fm=fs1.fm/num;system.out.println("加法结果为:
"+fs1.fz+"/"+fs1.fm);Fenshufs2=ys.dec(fenzi[0],fenmu[0],fenzi[1],fenmu[1]);num=ys.yueshu(fs2.fz,fs2.fm);fs2.fz=fs2.fz/num;fs2.fm=fs2.fm/num;
}
system.out.println("减法结果为:
"+fs2.fz+"/"+fs2.fm);Fenshufs3=ys.mul(fenzi[0],fenmu[0],fenzi[1],fenmu[1]);num=ys.yueshu(fs3.fz,fs3.fm);fs3.fz=fs3.fz/num;fs3.fm=fs3.fm/num;system.out.println("乘法结果为:
"+fs3.fz+"/"+fs3.fm);}Fenshufs4=ys.div(fenzi[0],fenmu[0],fenzi[1],fenmu[1]);num=ys.yueshu(fs4.fz,fs4.fm);fs4.fz=fs4.fz/num;fs4.fm=fs4.fm/num;system.out.println("除法结果为:
"+fs4.fz+"/"+fs4.fm);
(2)表演最终得分。
声明一个Average接口,其中约定求平均值的方法(参数为一个数组);声明First、second类实现Average接口,分别给出求平均值的方法实现。
A.类First中的功能为全部数值相加后求平均值。
b.类second中的功能为去掉一个最高分和一个最低分,再将总分求平均值。
源代码:
//声明一个父接口
interfaceAverage
{
}
//类First实现父接口
classFirstimplementsAverage{
}
//类second实现父接口
classsecondimplementsAverage{
//减去一个最高分和一个最低分再求平均数publicdoubleavg(double[]arr){doubletmp=0.0;doublesum=0.0;//递增排序for(inti=0;iarr[i+1]){tmp=arr[i];arr[i]=arr[i+1];arr[i+1]=tmp;//求和直接求平均数publicdoubleavg(double[]arr){}doublesum=0.0;for(inti=0;i 篇三:
实验二:
Java面向对象机制
(1)
实验二:
Java面向对象机制
(1)学院(系)名称:
程序源代码及截图:
第一题:
importjava.util.scanner;
publicclassRational{
intnumerator;
intdenominator;
Rationaladd(Rationalr){
intsum=0;
intden_ji;//分母相乘后的积再作为分母
Rationaltemp=newRational();
den_ji=this.denominator*r.denominator;
sum=this.numerator*r.denominator+this.denominator*r.numerator;temp.numerator=sum;
temp.denominator=den_ji;
temp.simplify();
returntemp;
}
Rationalsub(Rationalr){
intden_ji;
intsum=0;
Rationaltemp=newRational();
den_ji=this.denominator*r.denominator;
sum=this.numerator*r.denominator-this.denominator*r.numerator;temp.numerator=sum;
temp.denominator=den_ji;
temp.simplify();
returntemp;
}
Rationalmuti(Rationalr){
intden_ji;
intsum=0;
Rationaltemp=newRational();
den_ji=this.denominator*r.denominator;
sum=this.numerator*r.numerator;
temp.numerator=sum;
temp.denominator=den_ji;
temp.simplify();
returntemp;
}
Rationaldiv(Rationalr){
intden_ji;
intsum=0;
Rationaltemp=newRational();
den_ji=this.denominator*r.numerator;
sum=this.numerator*r.denominator;
temp.numerator=sum;
temp.simplify();returntemp;}
publicRationalsimplify(){//化简函数,将分子分母进行约分
booleanflag=true;
inti=2;
while(flag==true){
if(this.denominator%i==0
this.numerator=this.numerator/i;
i=2;
}
if(this.denominator flag=false;
i++;
}
returnthis;
}
publicstringprintout(){
string
str=this.numerator+"/"+this.denominator+"("+((float)this.numerator/(float)this.denominator)+")";
returnstr;
}
publicstringprintout1(){
stringstr=this.numerator+"/"+this.denominator;
returnstr;
}
publicstaticvoidmain(string[]args){
//ToDoAuto-generatedmethodstub
intj=0;
Rationalr_1=newRational();
Rationalr_2=newRational();
Rationalresult=newRational();
charmeth=0;
for(;;){
scannerreader=newscanner(system.in);
system.out.println("请输入第一个数的分子、分母:
");if(reader.hasnextInt()){r_1.numerator=reader.nextInt();}if(reader.hasnextInt()){
}system.out.println("第一个分数有理数为"+r_1.printout1());system.out.println("直接输入要进行的运算符:
+,-,*,/");if(reader.hasnext()){stringtemp=reader.next();meth=temp.charAt(0);}system.out.println("请输入第二个数的分子、分母:
");reader=newscanner(system.in);if(reader.hasnextInt()){r_2.numerator=reader.nextInt();}if(reader.hasnextInt()){r_2.denominator=reader.nextInt();}system.out.println("第二个分数有理数为"+r_2.printout1());system.out.println("-----------");switch(meth){case+:
result=r_1.add(r_2);
system.out.print("加法运算"+r_1.printout()+"+"+r_2.printout()+"="+result.printout());
break;
case-:
result=r_1.sub(r_2);
system.out.print("减法运算"+r_1.printout()+"-"+r_2.printout()+"="+result.printout());
break;
case*:
result=r_1.muti(r_2);
system.out.print("乘法运算"+r_1.printout()+"*"+r_2.printout()+"="+result.printout());
break;
case/:
result=r_1.div(r_2);
system.out.print("除法运算"+r_1.printout()+"÷"+r_2.printout()+"="+result.printout());
break;
default:
break;
}
system.out.println();
system.out.println("=====是否继续运算,1.是2.否=====");