中国矿业大学计算机学院java网络编程实验报告.docx
- 文档编号:3500317
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:93
- 大小:1.98MB
中国矿业大学计算机学院java网络编程实验报告.docx
《中国矿业大学计算机学院java网络编程实验报告.docx》由会员分享,可在线阅读,更多相关《中国矿业大学计算机学院java网络编程实验报告.docx(93页珍藏版)》请在冰豆网上搜索。
中国矿业大学计算机学院java网络编程实验报告
实验一开发工具和语言基础1
实验二流程控制程序设计3
实验三面向对象设计13
实验六图形用户界面程序设计基础23
实验七图形用户界面应用程序设计37
实验八Applet程序设计54
实验九异常处理、线程控制62
实验一开发工具和语言基础
(一)实验目的和要求
1.掌握JDK的安装、环境配置和使用;掌握JBuilder或Eclips的安装和使用。
使用JDK、JBuilder或Eclips编辑、编译和运行Java程序。
2.掌握Java的语言基础。
3.掌握简单语句、标准输入输出和选择语句的编程。
(二)实验内容
6.编写一程序,运行后从键盘输入三个整数,输出其中的最大数。
(if语句)
(1)实验代码
importjava.util.Scanner;//导入需要的Scanner类
classJava1_6{
publicstaticvoidmain(Stringarg[])
{
System.out.println("pleaseinputthreenumbers:
");//输出需要信息
int[]b=newint[3];
for(inti=0;i<3;i++)//循环输入所需要的三个数利用for循环控制
{
Scannersc=newScanner(System.in);
b[i]=sc.nextInt();
}
System.out.println("最大的数是:
");//输出信息
if(b[0]>b[1])//if语句判断哪个数最大
{
if(b[0]>b[2])
System.out.println(b[0]);
else
System.out.println(b[2]);
}
else
{
if(b[1]>b[2])
System.out.println(b[1]);
else
System.out.println(b[2]);
}
}
}
(2)实验结果截图
7.编写一程序,将从键盘输入的一个百分制考试成绩转化为五分制输出。
百分制与五分制的对应如下:
(switch语句)
100~90—A,89~80—B,79~70—C,69~60—D,<60—E
(1)实验代码
importjava.util.Scanner;//导入需要用的类
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:
System.out.println("B");
break;
case7:
System.out.println("C");
break;
case6:
System.out.println("C");
break;
default:
System.out.println("E");
}
}
}
(2)实验结果截图
(三)实验体会
本次实验内容较为简单,主要是熟悉java环境的搭配以及练习java编程的简单过程,还是
很容易掌握的。
实验二流程控制程序设计
(一)实验目的和要求
1.掌握Java流程控制语句、Math类、数组的编程方法。
2.要求至少完成实验内容题的70%。
(二)实验内容
1.打印一个三角形的1~9的乘法表。
(1)实验代码
importjava.util.Formatter;//导入格式控制的类
classJava2_1
{
publicstaticvoidmain(Stringargs[])
{
System.out.print("*"+"");//去掉println中的ln表示不换行输出
for(inti=1;i<=9;i++)//输出第一行
{System.out.print(i);
System.out.print("");
}
System.out.println();
for(intj=1;j<=9;j++)
{
System.out.print(j+"");//输出行标
for(intk=1;k<=j;k++)
{
System.out.format("%2s",k*j);//格式控制输出,输出两个字符如果前面不够用空格补
System.out.print("");
}
System.out.println();
}
}
}
(2)实验结果截图
2.编写一程序,将从键盘输入的每个月份数(整数)显示出其对应的英文,直至输入0结束,注意对非法数据的处理。
(while,switch语句)
(1)实验代码
importjava.util.Scanner;
classJava2_2
{
publicstaticvoidmain(Stringavg[])
{
System.out.println("请输入一个月份(0为结束)");
Scannersc=newScanner(System.in);
inta=sc.nextInt();
while(a!
=0)
{
switch(a)
{
case1:
System.out.println("January");
break;
case2:
System.out.println("February");
break;
case3:
System.out.println("March");
break;
case4:
System.out.println("April");
break;
case5:
System.out.println("May");
break;
case6:
System.out.println("June");
break;
case7:
System.out.println("July");
break;
case8:
System.out.println("August");
break;
case9:
System.out.println("September");
break;
case10:
System.out.println("October");
break;
case11:
System.out.println("November");
break;
case12:
System.out.println("December");
break;
default:
System.out.println("请输入正确的数字!
");
}
Scannerb=newScanner(System.in);
a=b.nextInt();
}
}
}
(2)实验结果截图
3.打印图案:
一个由n行星花组成的三角形。
如n=5时的图案为:
(1)实验代码
importjava.util.Scanner;
classJava2_3
{
publicstaticvoidmain(Stringarg[])
{
System.out.println("请输入n");//从键盘接收数字n
Scannersc=newScanner(System.in);
intn=sc.nextInt();
for(inti=0;i { for(intk=0;k System.out.print(""); for(intj=0;j<=i;j++)//根据行数输出星花 System.out.print("*"+""); System.out.println(); } } } (2)实验结果截图 4.打印出所有的“水仙花数”。 所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。 例如153是一个“水仙花数”,因为153=13+53+33。 (1)实验代码 classJava2_4 { publicstaticvoidmain(Stringarg[]){ intb[]=newint[3]; inti=100;//i用作取每个位的数字的数 intk=100;//用k判断是不是等于其每个位上数的立方之和 while(i<1000) { for(intj=0;j<3;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; } } } (2)实验结果截图 5.编写一个程序,从键盘读一个年份的数字,然后判断该年是否是闰年,如果是就输出“闰年”,如果不是就输出“非闰年”。 闰年的条件是满足以下两个条件之一: 1)能被4整除,但不能被100整除; 2)能被4整除,又能被400整除。 (1)实验代码 importjava.util.Scanner; classJava2_5{ publicstaticvoidmain(Stringarg[]){ inti=0; do{ System.out.println("请输入一个年份"); Scannersc=newScanner(System.in); 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("不是闰年"); } } (2)实验结果截图 6.统计个位数是6,并且能被3整除的五位数共有多少个。 (1)实验代码 classJava2_6 { publicstaticvoidmain(Stringarg[]) { inti=10006; intcount1=0;//用于计数 while(i<100000) { if(i%3==0) count1++; i+=10; } System.out.println("共"+count1+"个"); } } (2)实验结果截图 7.编写一个程序,在其中建立一个有10个整数的数组,运行后从键盘输入10个数,然后输出其中的最小数。 8.编写一个程序,在其中建立一个有10个整数的数组,运行后从键盘输入10个数,然后排序(升序)后输出。 (7和8一起做) (1)实验代码 importjava.util.Scanner; publicclassJava2_7 { publicstaticvoidmain(Stringarg[]) { System.out.println("请输入10个整数"); inttemp=0; intb[]=newint[10]; Scannersc=newScanner(System.in); for(inti=0;i<10;i++) { b[i]=sc.nextInt(); } for(intj=9;j>=0;j--) for(intk=9;k>9-j;k--) { if(b[k] { temp=b[k]; b[k]=b[k-1]; b[k-1]=temp; } } System.out.println(); System.out.println("排序好后: "); for(intii=0;ii<10;ii++) { System.out.print(b[ii]+""); } System.out.println(); System.out.println("最小的数是"+b[0]); } } (2)实验结果截图 11.编写一个程序,在其中定义一个6´6的二维整型数组,利用随机函数产生36个10~20之间的随机整数放入,然后将数组输出到屏幕上(6行6列格式)。 最后计算出数组中对角线元素的平方根和。 (1)实验代码 importjava.lang.Math;//用于计算平方根 importjava.text.DecimalFormat;//用于格式控制输出 classJava2_11{ publicstaticvoidmain(Stringarg[]) { DecimalFormatdf=newDecimalFormat("0.00");//设定平方根和的结果是小数点保留两位 doublea=0;//用于保存平方根和 doublec=0; intb[][]=newint[6][6];//用于保存6×6二维数组 for(inti=0;i<6;i++) { for(intj=0;j<6;j++) { do{ b[i][j]=(int)(Math.random()*20);//随机数生成 }while(b[i][j]<10); System.out.print(b[i][j]+""); } System.out.println(); } for(intk=0;k<6;k++) { a=a+Math.pow((double)b[k][k],0.5);//计算平方根和 c=c+Math.pow((double)b[k][5-k],0.5);} System.out.println("从[0][0]到[5][5]的对角线的平方根和是"+df.format(a)); System.out.println("从[0][5]到[5][0]的对角线的平方根和是"+df.format(c)); } } (2)实验结果截图 (三)实验体会 本次实验意为锻炼个人的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)。 (1)实验代码 importjava.lang.Math; importjava.util.Scanner; 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[]) { System.out.println("请输入两个数! "); inta,b; Scannersc=newScanner(System.in); a=sc.nextInt(); b=sc.nextInt(); bbc=newbb(Math.max(a,b),Math.min(a,b)); //方法一 System.out.println("循环法求得最大公约数是"+c.Run()); //方法二 System.out.println("递归法求得最大公约数是"+c.Run2()); } } (2)实验结果截图 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分别为实部和虚部的数据。 (1)实验代码 importjava.util.Scanner; 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{ publicstaticvoidmain(Stringargs[]) { ComplexDemo_1=newComplex(1,2); System.out.println("产生的第一个复数为"+Demo_1.toString()); ComplexDemo_2=newComplex(3,4); System.out.println("产生的第二个复数为"+Demo_2.toString()); System.out.println("上述两个复数相加结果为"+Demo_plexAdd(Demo_2).toString()); } } (2)实验结果截图 3.编写一个包含圆类的程序,并为圆类设计几个构造方法和一般方法,在主方法中创建一个圆类对象并输出它的周长和面积。 要求: 属性有3个: x,y,r,分别放置圆心坐标和半径; 构造方法有2个。 一个是无参的,用于设置3个属性的值都为0;另一个有参的,用于设置3个属性的值,以确定一个具体的圆。 计算周长的方法: doublezc(); 计算面积的方法: doublemj()。 (1)实验代码 importjava.util.Scanner; importjava.text.DecimalFormat;//用于格式控制输出 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[]){ System.out.println("请输入圆的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); System.out.println("该圆的坐标为: "+x+","+y); System.out.println("该圆的周长为: "+df.format(a.zc())); System.out.println("该圆的面积为: "+df.format(a.mj())); } } (2)实验结果截图 4.编写一个程序,它含有一个圆类、圆柱类和主类。 要求: 1)圆类参考上一题中的圆类; 2)圆柱类: 继承圆类,并加入一个属性h(高); 构造方法(给4个属性赋值); 计算面积的方法(doublemj()); 计算体积的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中国矿业 大学计算机 学院 java 网络 编程 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)