中国矿业大学计算机学院java网络编程实验报告Word文档下载推荐.docx
《中国矿业大学计算机学院java网络编程实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《中国矿业大学计算机学院java网络编程实验报告Word文档下载推荐.docx(93页珍藏版)》请在冰豆网上搜索。
b[1])//if语句判断哪个数最大
b[2])
System.out.println(b[0]);
else
System.out.println(b[2]);
if(b[1]>
System.out.println(b[1]);
else
}
(2)实验结果截图
7.编写一程序,将从键盘输入的一个百分制考试成绩转化为五分制输出。
百分制与五分制的对应如下:
(switch语句)
100~90—A,89~80—B,79~70—C,69~60—D,<
60—E
//导入需要用的类
classJava1_7{
publicstaticvoidmain(Stringavg[])
System.out.println("
请输入一个考试成绩:
Scannersc=newScanner(System.in);
//输入数
inta=sc.nextInt();
System.out.println("
换算后:
switch(a/10)//除以10以找到匹配case中的数
{
case10:
case9:
System.out.println("
A"
break;
case8:
B"
case7:
C"
case6:
default:
E"
}
}
(三)实验体会
本次实验内容较为简单,主要是熟悉java环境的搭配以及练习java编程的简单过程,还是
很容易掌握的。
实验二流程控制程序设计
1.掌握Java流程控制语句、Math类、数组的编程方法。
2.要求至少完成实验内容题的70%。
1.打印一个三角形的1~9的乘法表。
importjava.util.Formatter;
//导入格式控制的类
classJava2_1
publicstaticvoidmain(Stringargs[])
System.out.print("
*"
+"
"
//去掉println中的ln表示不换行输出
for(inti=1;
=9;
i++)//输出第一行
{System.out.print(i);
System.out.print("
System.out.println();
for(intj=1;
j<
j++)
{
System.out.print(j+"
//输出行标
for(intk=1;
k<
=j;
k++)
System.out.format("
%2s"
k*j);
//格式控制输出,输出两个字符如果前面不够用空格补
System.out.print("
}
System.out.println();
2.编写一程序,将从键盘输入的每个月份数(整数)显示出其对应的英文,直至输入0结束,注意对非法数据的处理。
(while,switch语句)
classJava2_2
请输入一个月份(0为结束)"
Scannersc=newScanner(System.in);
inta=sc.nextInt();
while(a!
=0)
switch(a)
case1:
January"
break;
case2:
February"
case3:
March"
case4:
April"
case5:
May"
case6:
June"
case7:
July"
case8:
August"
case9:
September"
case10:
October"
case11:
November"
case12:
December"
default:
请输入正确的数字!
Scannerb=newScanner(System.in);
a=b.nextInt();
(2)实验结果截图
3.打印图案:
一个由n行星花组成的三角形。
如n=5时的图案为:
classJava2_3
publicstaticvoidmain(Stringarg[])
请输入n"
//从键盘接收数字n
intn=sc.nextInt();
n;
i++)//控制循环输出几行
for(intk=0;
n-i;
k++)//控制输出开头的空格有几个
for(intj=0;
=i;
j++)//根据行数输出星花
(2)实验结果截图
4.打印出所有的“水仙花数”。
所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。
例如153是一个“水仙花数”,因为153=13+53+33。
classJava2_4
publicstaticvoidmain(Stringarg[]){
intb[]=newint[3];
inti=100;
//i用作取每个位的数字的数
intk=100;
//用k判断是不是等于其每个位上数的立方之和
while(i<
1000)
j++)//由于一共三位,循环三次
b[j]=i%10;
b[j]=b[j]*b[j]*b[j];
//使用b[]这个数组来存储每位的立方
i/=10;
if(k==(b[0]+b[1]+b[2]))//判断是否符合水仙花数的条件
System.out.print(k);
System.out.println();
k++;
i=k;
5.编写一个程序,从键盘读一个年份的数字,然后判断该年是否是闰年,如果是就输出“闰年”,如果不是就输出“非闰年”。
闰年的条件是满足以下两个条件之一:
1)能被4整除,但不能被100整除;
2)能被4整除,又能被400整除。
classJava2_5{
inti=0;
do{
请输入一个年份"
i=sc.nextInt();
if(i<
0)System.out.println("
年份不合法"
}while(i<
0);
if((i%4==0&
i%100!
=0)||i%400==0)System.out.println("
是闰年"
elseSystem.out.println("
不是闰年"
6.统计个位数是6,并且能被3整除的五位数共有多少个。
classJava2_6
inti=10006;
intcount1=0;
//用于计数
100000)
if(i%3==0)
count1++;
i+=10;
共"
+count1+"
个"
7.编写一个程序,在其中建立一个有10个整数的数组,运行后从键盘输入10个数,然后输出其中的最小数。
8.编写一个程序,在其中建立一个有10个整数的数组,运行后从键盘输入10个数,然后排序(升序)后输出。
(7和8一起做)
publicclassJava2_7
请输入10个整数"
inttemp=0;
intb[]=newint[10];
Scannersc=newScanner(System.in);
10;
i++)
for(intj=9;
j>
=0;
j--)
for(intk=9;
k>
9-j;
k--)
if(b[k]<
b[k-1])
temp=b[k];
b[k]=b[k-1];
b[k-1]=temp;
System.out.println();
System.out.println("
排序好后:
for(intii=0;
ii<
ii++)
System.out.print(b[ii]+"
最小的数是"
+b[0]);
11.编写一个程序,在其中定义一个6´
6的二维整型数组,利用随机函数产生36个10~20之间的随机整数放入,然后将数组输出到屏幕上(6行6列格式)。
最后计算出数组中对角线元素的平方根和。
importjava.lang.Math;
//用于计算平方根
importjava.text.DecimalFormat;
//用于格式控制输出
classJava2_11{
DecimalFormatdf=newDecimalFormat("
0.00"
//设定平方根和的结果是小数点保留两位
doublea=0;
//用于保存平方根和
doublec=0;
intb[][]=newint[6][6];
//用于保存6×
6二维数组
6;
b[i][j]=(int)(Math.random()*20);
//随机数生成
}while(b[i][j]<
10);
System.out.print(b[i][j]+"
for(intk=0;
a=a+Math.pow((double)b[k][k],0.5);
//计算平方根和
c=c+Math.pow((double)b[k][5-k],0.5);
从[0][0]到[5][5]的对角线的平方根和是"
+df.format(a));
从[0][5]到[5][0]的对角线的平方根和是"
+df.format(c));
本次实验意为锻炼个人的java面向过程编程思想,通过这次实验,本人对面向过程的编程思路有了进一步的提升和了解,同时更熟悉了Java中的一些用于处理数据和格式控制等的类,在编程的掌握上有了更好的理解和应用
实验三面向对象程序设计
1.掌握类、对象、方法、继承、接口的编程技术。
2.要求至少完成实验内容题的70%。
1.编一程序,求两个正整数m、n的最大公约数。
要求程序中有两个方法,分别使用循环和递归求最大公约数,最后在主方法中分别调用这两个方法求解56与91的最大公约数。
提示:
用辗转相除法。
方法:
1)求m除n的余数r;
2)如果r为0,则n为最大公约数,结束。
否则转(3);
3)用n置m,用r置n,回到
(1)。
classbb{
intx,y,c;
intGong;
bb(intx,inty)
{this.x=x;
this.y=y;
this.c=x%y;
publicintRun()//循环法
while(c!
=0){//在这里要注意除数为0的情况,不然会报错
x=y;
y=c;
c=x%y;
returny;
publicintRun2()//递归法
if(c==0){returny;
else{
returnnewbb(y,x%y).Run2();
//匿名对象
publicclassJava3_1{
publicstaticvoidmain(Stringargs[])
请输入两个数!
inta,b;
a=sc.nextInt();
b=sc.nextInt();
bbc=newbb(Math.max(a,b),Math.min(a,b));
//方法一
循环法求得最大公约数是"
+c.Run());
//方法二
递归法求得最大公约数是"
+c.Run2());
2.编写一个完整的JavaApplication程序,其中设计一个复数类Complex,利用它验证两个复数1+2i和3+4i相加产生一个新的复数4+6i。
复数类Complex的设计必须满足如下要求:
1)Complex的属性有:
realPart:
int型,代表复数的实数部分;
maginPart:
int型,代表复数的虚数部分。
2)Complex的方法有:
Complex():
构造方法,将复数的实部和虚部都置0;
Complex(intr,inti):
构造方法,形参r为实部的初值,i为虚部的初值。
3)ComplexcomplexAdd(Complexa):
将当前复数对象与形参复数对象相加,最后的结果仍是一个复数对象,返回给此方法的调用者。
4)StringtoString():
把当前复数对象的实部、虚部组合成a+bi的字符串形式,其中a和b分别为实部和虚部的数据。
classComplex{
privateintrealPart,maginPart;
//定义复数的实数部分和虚数部分
Complex(){realPart=0;
maginPart=0;
Complex(intr,inti){realPart=r;
maginPart=i;
}//定义构造参数
publicComplexcomplexAdd(Complexa){//复数相加函数
Complexresult=newComplex();
//采用不破坏的相加方式
result.realPart=this.realPart+a.realPart;
result.maginPart=this.maginPart+a.maginPart;
returnresult;
publicStringtoString(){//复数类输出函数
returnrealPart+"
+maginPart+"
i"
;
publicclassJava3_2{
ComplexDemo_1=newComplex(1,2);
产生的第一个复数为"
+Demo_1.toString());
ComplexDemo_2=newComplex(3,4);
产生的第二个复数为"
+Demo_2.toString());
上述两个复数相加结果为"
+Demo_plexAdd(Demo_2).toString());
3.编写一个包含圆类的程序,并为圆类设计几个构造方法和一般方法,在主方法中创建一个圆类对象并输出它的周长和面积。
要求:
属性有3个:
x,y,r,分别放置圆心坐标和半径;
构造方法有2个。
一个是无参的,用于设置3个属性的值都为0;
另一个有参的,用于设置3个属性的值,以确定一个具体的圆。
计算周长的方法:
doublezc();
计算面积的方法:
doublemj()。
classCircle{
finaldoublePi=3.1416;
privatedoublex,y,r;
//定义坐标和半径
Circle(){x=0;
y=0;
r=0;
Circle(doublexx,doubleyy,doublerr){x=xx;
y=yy;
r=rr;
doublezc(){
return2*Pi*r;
doublemj(){
returnPi*r*r;
publicclassJava3_3{
publicstaticvoidmain(Stringargs[]){
请输入圆的x坐标,y坐标以及半径"
DecimalFormatdf=newDecimalFormat("
0.0000"
//
doublex,y,r;
Scannerin=newScanner(System.in);
x=in.nextDouble();
y=in.nextDouble();
r=in.nextDouble();
Circlea=newCircle(x,y,r);
该圆的坐标为:
+x+"
"
+y);
该圆的周长为:
+df.format(a.zc()));
该圆的面积为:
+df.format(a.mj()));
4.编写一个程序,它含有一个圆类、圆柱类和主类。
1)圆类参考上一题中的圆类;
2)圆柱类:
继承圆类,并加入一个属性h(高);
构造方法(给4个属性赋值);
计算面积的方法(doublemj());
计算体积的