中国矿业大学计算机学院java网络编程实验报告_第1页
中国矿业大学计算机学院java网络编程实验报告_第2页
中国矿业大学计算机学院java网络编程实验报告_第3页
中国矿业大学计算机学院java网络编程实验报告_第4页
中国矿业大学计算机学院java网络编程实验报告_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录实验一 开发工具和语言基础1实验二 流程控制程序设计3实验三 面向对象设计13实验六 图形用户界面程序设计基础23实验七 图形用户界面应用程序设计37实验八 Applet程序设计54实验九 异常处理、线程控制62实验一 开发工具和语言基础(一)实验目的和要求 1掌握JDK的安装、环境配置和使用;掌握JBuilder或Eclips的安装和使用。使用JDK、JBuilder或Eclips编辑、编译和运行Java程序。2掌握Java的语言基础。3掌握简单语句、标准输入输出和选择语句的编程。(二)实验内容6编写一程序,运行后从键盘输入三个整数,输出其中的最大数。(if语句)(1)实验代码impor

2、t java.util.Scanner; /导入需要的Scanner 类class Java1_6 public static void main(String arg) System.out.println("please input three numbers:"); /输出需要信息 intb=new int3; for(int i=0;i<3;i+)/循环输入所需要的三个数 利用for循环控制 Scanner sc = new Scanner(System.in); bi=sc.nextInt(); System.out.println("最大的数是:

3、");/输出信息 if(b0>b1)/if语句判断哪个数最大 if(b0>b2) System.out.println(b0); else System.out.println(b2); else if(b1>b2) System.out.println(b1); else System.out.println(b2); (2)实验结果截图7编写一程序,将从键盘输入的一个百分制考试成绩转化为五分制输出。百分制与五分制的对应如下: (switch语句)10090 A, 8980 B, 7970 C, 6960 D, <60 E(1)实验代码import java

4、.util.Scanner; /导入需要用的类class Java1_7 public static void main(String avg) System.out.println("请输入一个考试成绩:");Scanner sc=new Scanner(System.in);/输入数int a=sc.nextInt();System.out.println("换算后:");switch(a/10)/除以10以找到匹配case中的数 case 10: case 9:System.out.println("A"); break; ca

5、se 8:System.out.println("B"); break; case 7:System.out.println("C"); break; case 6:System.out.println("C"); break; default:System.out.println("E"); (2)实验结果截图(三)实验体会 本次实验内容较为简单,主要是熟悉java环境的搭配以及练习java编程的简单过程,还是 很容易掌握的。实验二 流程控制程序设计(一)实验目的和要求1. 掌握Java流程控制语句、Math类、

6、数组的编程方法。2. 要求至少完成实验内容题的70%。(二)实验内容1打印一个三角形的19的乘法表。(1)实验代码import java.util.Formatter;/导入格式控制的类class Java2_1 public static void main(String args) System.out.print("*"+" ");/去掉println中的ln表示不换行输出for(int i=1;i<=9;i+)/输出第一行System.out.print(i); System.out.print(" "); System

7、.out.println(); for(int j=1;j<=9;j+) System.out.print(j+" ");/输出行标 for(int k=1;k<=j;k+) System.out.format("%2s",k*j);/格式控制输出,输出两个字符如果前面不够用空格补 System.out.print(" "); System.out.println(); (2)实验结果截图2编写一程序,将从键盘输入的每个月份数(整数)显示出其对应的英文,直至输入0结束,注意对非法数据的处理。 (while,switch语句

8、)(1)实验代码import java.util.Scanner;class Java2_2 public static void main(String avg) System.out.println("请输入一个月份(0为结束)"); Scanner sc=new Scanner(System.in); int a=sc.nextInt(); while(a!=0) switch(a) case 1:System.out.println("January"); break; case 2:System.out.println("Februa

9、ry"); break; case 3:System.out.println("March"); break; case 4:System.out.println("April"); break; case 5:System.out.println("May"); break; case 6:System.out.println("June"); break; case 7:System.out.println("July"); break; case 8:System.out.pri

10、ntln("August"); break; case 9:System.out.println("September"); break; case 10:System.out.println("October"); break; case 11:System.out.println("November"); break; case 12:System.out.println("December"); break; default:System.out.println("请输入正确的数

11、字!"); Scanner b=new Scanner(System.in); a=b.nextInt(); (2)实验结果截图3.打印图案:一个由n行星花组成的三角形。如n=5时的图案为:(1)实验代码 import java.util.Scanner;class Java2_3public static void main(String arg) System.out.println("请输入n"); /从键盘接收数字n Scanner sc=new Scanner(System.in); int n=sc.nextInt(); for(int i=0;i&l

12、t;n;i+) /控制循环输出几行 for(int k=0;k<n-i;k+) /控制输出开头的空格有几个 System.out.print(" "); for(int j=0;j<=i;j+) /根据行数输出星花 System.out.print("*"+" ");System.out.println(); (2)实验结果截图4打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如153是一个“水仙花数”,因为153=13+53+33。(1)实验代码class Java2_4 pu

13、blic static void main(String arg) int b=new int3; int i=100;/i用作取每个位的数字的数 int k=100;/用k判断是不是等于其每个位上数的立方之和 while(i<1000) for(int j=0;j<3;j+)/由于一共三位,循环三次 bj=i%10; bj=bj*bj*bj;/使用b这个数组来存储每位的立方 i/=10; if(k=(b0+b1+b2)/判断是否符合水仙花数的条件 System.out.print(k); System.out.println(); k+; i=k; (2)实验结果截图5编写一个程

14、序,从键盘读一个年份的数字,然后判断该年是否是闰年,如果是就输出“闰年”,如果不是就输出“非闰年”。闰年的条件是满足以下两个条件之一:1)能被4整除,但不能被100整除;2)能被4整除,又能被400整除。(1)实验代码import java.util.Scanner;class Java2_5 public static void main(String arg) int i=0; do System.out.println("请输入一个年份"); Scanner sc=new Scanner(System.in); i=sc.nextInt(); if(i<0) S

15、ystem.out.println("年份不合法");while(i<0); if(i%4=0&i%100!=0)|i%400=0)System.out.println("是闰年"); else System.out.println("不是闰年"); (2)实验结果截图6统计个位数是6,并且能被3整除的五位数共有多少个。(1)实验代码class Java2_6 public static void main(String arg) int i=10006; int count1=0;/用于计数 while(i<10

16、0000) if(i%3=0) count1+; i+=10; System.out.println("共"+count1+"个"); (2)实验结果截图7编写一个程序,在其中建立一个有10个整数的数组,运行后从键盘输入10个数,然后输出其中的最小数。8编写一个程序,在其中建立一个有10个整数的数组,运行后从键盘输入10个数,然后排序(升序)后输出。(7和8一起做)(1)实验代码import java.util.Scanner;public class Java2_7 public static void main(String arg) System.

17、out.println("请输入10个整数"); int temp=0; int b=new int10; Scanner sc=new Scanner(System.in); for(int i=0;i<10;i+) bi=sc.nextInt(); for(int j=9;j>=0;j-) for(int k=9;k>9-j;k-) if(bk<bk-1) temp=bk; bk=bk-1; bk-1=temp; System.out.println(); System.out.println("排序好后:"); for(in

18、t ii=0;ii<10;ii+) System.out.print(bii+" "); System.out.println(); System.out.println("最小的数是"+b0); (2)实验结果截图 11. 编写一个程序,在其中定义一个6´6的二维整型数组, 利用随机函数产生36个1020之间的随机整数放入,然后将数组输出到屏幕上(6行6列格式)。最后计算出数组中对角线元素的平方根和。(1)实验代码import java.lang.Math;/用于计算平方根import java.text.DecimalFormat;/

19、用于格式控制输出class Java2_11 public static void main(String arg) DecimalFormat df = new DecimalFormat( "0.00 "); /设定平方根和的结果是小数点保留两位 double a=0;/用于保存平方根和double c=0; int b=new int66; /用于保存6×6二维数组 for(int i=0;i<6;i+) for(int j=0;j<6;j+) do bij=(int)(Math.random()*20); /随机数生成 while(bij<

20、;10); System.out.print(bij+" "); System.out.println(); for(int k=0;k<6;k+) a=a+Math.pow(double)bkk,0.5);/计算平方根和 c=c+Math.pow(double)bk5-k,0.5); System.out.println("从00到55的对角线的平方根和是"+df.format(a); System.out.println("从05到50的对角线的平方根和是"+df.format(c); (2)实验结果截图(三)实验体会 本次

21、实验意为锻炼个人的java面向过程编程思想,通过这次实验,本人对面向过程的编程思路有了进一步的提升和了解,同时更熟悉了Java中的一些用于处理数据和格式控制等的类,在编程的掌握上有了更好的理解和应用实验三 面向对象程序设计(一)实验目的和要求 1掌握类、对象、方法、继承、接口的编程技术。2要求至少完成实验内容题的70%。(二)实验内容1编一程序,求两个正整数m、n的最大公约数。 要求程序中有两个方法,分别使用循环和递归求最大公约数,最后在主方法中分别调用这两个方法求解56与91的最大公约数。 提示:用辗转相除法。方法:1) 求m除n的余数r; 2) 如果r为0,则n为最大公约数,结束。否则转(

22、3); 3) 用n置m,用r置n ,回到(1)。 (1)实验代码import java.lang.Math;import java.util.Scanner; class bb int x,y,c;int Gong; bb(int x,int y) this.x=x; this.y=y; this.c=x%y; public int Run()/循环法 while(c!=0)/在这里要注意除数为0的情况,不然会报错 x=y; y=c;c=x%y; return y; public int Run2()/递归法 if(c=0) return y; elsereturn new bb (y,x%y

23、).Run2();/匿名对象 public class Java3_1 public static void main(String args)System.out.println("请输入两个数!");int a,b;Scanner sc=new Scanner(System.in);a=sc.nextInt();b=sc.nextInt();bb c=new bb(Math.max(a,b),Math.min(a,b);/方法一System.out.println("循环法求得最大公约数是"+c.Run();/方法二System.out.printl

24、n("递归法求得最大公约数是"+c.Run2();(2)实验结果截图 2编写一个完整的Java Application程序,其中设计一个复数类Complex,利用它验证两个复数 1+2i 和3+4i 相加产生一个新的复数 4+6i 。复数类Complex的设计必须满足如下要求:1)Complex 的属性有:realPart:int型,代表复数的实数部分;maginPart:int型,代表复数的虚数部分。2)Complex 的方法有:Complex():构造方法,将复数的实部和虚部都置0;Complex(int r , int i ):构造方法,形参 r 为实部的初值,i为虚

25、部的初值。3)Complex complexAdd(Complex a):将当前复数对象与形参复数对象相加,最后的结果仍是一个复数对象,返回给此方法的调用者。4)String toString(): 把当前复数对象的实部、虚部组合成 a+bi 的字符串形式,其中a 和 b分别为实部和虚部的数据。(1)实验代码import java.util.Scanner;class Complexprivate int realPart,maginPart;/定义复数的实数部分和虚数部分Complex()realPart=0;maginPart=0;Complex(int r,int i)realPart=

26、r;maginPart=i;/定义构造参数 public Complex complexAdd(Complex a)/复数相加函数 Complex result=new Complex(); /采用不破坏的相加方式result.realPart=this.realPart+a.realPart; result.maginPart=this.maginPart+a.maginPart; return result; public String toString()/复数类输出函数 return realPart+"+"+maginPart+"i" publ

27、ic class Java3_2 public static void main(String args)Complex Demo_1=new Complex(1,2);System.out.println("产生的第一个复数为"+Demo_1.toString();Complex Demo_2=new Complex(3,4);System.out.println("产生的第二个复数为"+Demo_2.toString();System.out.println("上述两个复数相加结果为"+Demo_plexAdd(Demo_2).t

28、oString();(2)实验结果截图3编写一个包含圆类的程序,并为圆类设计几个构造方法和一般方法,在主方法中创建一个圆类对象并输出它的周长和面积。要求: 属性有3个:x,y,r,分别放置圆心坐标和半径; 构造方法有2个。一个是无参的,用于设置3个属性的值都为0;另一个有参的,用于设置3个属性的值,以确定一个具体的圆。 计算周长的方法:double zc();计算面积的方法:double mj()。(1)实验代码import java.util.Scanner;import java.text.DecimalFormat;/用于格式控制输出class Circle final double P

29、i = 3.1416;private double x,y,r;/定义坐标和半径Circle()x=0;y=0;r=0;Circle(double xx,double yy,double rr)x=xx;y=yy;r=rr;double zc()return 2*Pi*r;double mj()return Pi*r*r;public class Java3_3 public static void main(String args)System.out.println("请输入圆的x坐标,y坐标以及半径");DecimalFormat df = new DecimalFo

30、rmat( "0.0000 "); /double x,y,r;Scanner in = new Scanner(System.in);x=in.nextDouble();y=in.nextDouble();r=in.nextDouble();Circle a=new Circle(x,y,r);System.out.println("该圆的坐标为:"+x+","+y);System.out.println("该圆的周长为:"+df.format(a.zc();System.out.println("该圆

31、的面积为:"+df.format(a.mj();(2)实验结果截图4编写一个程序,它含有一个圆类、圆柱类和主类。要求: 1)圆类参考上一题中的圆类; 2)圆柱类:继承圆类,并加入一个属性h(高); 构造方法(给4个属性赋值); 计算面积的方法(double mj(); 计算体积的方法(double tj()。 注意,要充分利用父类的方法。3)主类:在主方法中创建圆和圆柱类的对象,然后计算并输出它们的面积及圆柱的体积。(1)实验代码import java.util.Scanner;import java.text.DecimalFormat;/用于格式控制输出class Circle

32、final double Pi = 3.1416;private double x,y,r;/定义坐标和半径Circle()x=0;y=0;r=0;Circle(double xx,double yy,double rr)x=xx;y=yy;r=rr;double zc()return 2*Pi*r;double mj()return Pi*r*r;class Column extends Circleprivate double h;Column(double xx,double yy,double rr,double hh)super(xx,yy,rr);h=hh;double mj()r

33、eturn super.mj()*2+super.zc()*h;double tj()return super.mj()*h;public class Java3_4public static void main(String args)double x,y,r,h;System.out.println("请输入x,y,r,h");Scanner sc=new Scanner(System.in);x=sc.nextInt();y=sc.nextInt();r=sc.nextInt();h=sc.nextInt();Circle Demo_1=new Circle(x,y,

34、r);Column Demo_2=new Column(x,y,r,h);System.out.println("圆的面积是"+Demo_1.mj();System.out.println("圆柱的面积是"+Demo_2.mj();System.out.println("圆柱的体积是"+Demo_2.tj();(2)实验结果截图5编写一个含有5个类的程序: 类Person: 属性:编号、姓名、性别; 构造方法:确定编号和姓名; 一般方法:修改编号、姓名,获取编号、姓名。 类Teacher:继承类Person并增加: 属性:系别; 构造

35、方法:调用父类的构造方法; 一般方法:修改、获取系别。 类Student:继承类Person并增加: 属性:班级; 构造方法:调用父类的构造方法; 一般方法:修改、获取班级属性值。 类Classes: 属性:班级名称,学生名单(Student类对象的数组); 构造方法:确定班级名称; 一般方法:建立学生名单,输出学生名单。 类Main:主类。主方法中创建一个班级,然后建立该班级的学生名单,最后 输出学生名单。 (1)实验代码import java.util.Scanner;/用于输入class Person/Person类private String number;/学号private Str

36、ing name;/姓名private String sex;/性别Person(String nu,String na,String se)/构造函数number=nu;name=na;sex=se;public void Chgnum(String num)/改变学号方法number=num;public void Chiname(String name_)/改变姓名方法name=name_;public String Getnum()/获取学号方法return number;public String Getname()/获取姓名方法return name;class Teacher e

37、xtends Person/Teacher类private String Department;/部门Teacher(String De,String nu_,String name_1,String sex_)super(nu_,name_1,sex_);/调用父类构造方法Department=De;public void ChgDepartment(String De_)/改变部门方法Department=De_;public String GetDepartment()/获取部门方法return Department;class Student extends Person/Studen

38、t类private String class_;Student(String num,String na,String sex,String class_)super(num,na,sex);/调用父类构造方法class_=class_;public void ChgClas(String clas)class_=clas;/改变班级方法public String GetClas()/获取班级方法return class_;class Classes/Classes类private String classname;/班级名称private Student NameList=new Stude

39、nt100;/注意在这里仅仅是声明Classes(String class_name)/classname=class_name;public int CreateNameList()/创造班级学生名单方法System.out.println("请输入该班级人数");/动态生成数组int i;/接收班级人数String number;/学号String name,sex;/姓名和性别Scanner sc=new Scanner(System.in);i=sc.nextInt();System.out.println("请输入该班级的学生的 学号,姓名和性别&quo

40、t;);for(int j=0;j<i;j+)number=sc.next();name=sc.next();sex=sc.next();NameListj=new Student(number,name,sex,classname);return i;public void Output(int i)System.out.printf("学号t");System.out.printf("姓名t");System.out.printf("班级名称t");System.out.println();for(int k=0;k<

41、i;k+)System.out.printf(NameListk.Getnum()+"t");System.out.printf(NameListk.Getname()+"t");System.out.printf(NameListk.GetClas()+"t");System.out.println();/t用于对齐输出 public class Java3_5 public static void main(String args) Scanner sc_2=new Scanner(System.in); System.out.p

42、rintln("请输入班级名称:"); String Demo_Class; Demo_Class=sc_2.next(); Classes Demo=new Classes(Demo_Class); Demo.Output(Demo.CreateNameList(); (2)实验结果截图(三)实验体会 本次实验是在已经体会了java面向过程的基础上,继续进行面向对象的编程。总体上来说,对面向对象编程知识掌握的还可以,编程过程中也没有什么大问题,难点是数组对象的建立。总而言之,本次面向对象Java编程收获颇多。实验六 图形用户界面程序设计基础(一)实验目的和要求1掌握窗体、

43、容器组件、基本组件、菜单的创建和设置;熟悉图形绘制方法和程序结构。2要求至少完成实验内容题的75%。(二)实验内容1使用编写代码的方式写三个用户界面程序,窗口中都是只放一个按钮,但布局方式分别为FlowLayout、BorderLayout和GridLayout(3行3列),运行后界面如下面所示:(1)实验代码import javax.swing.*;import java.awt.*;public class Java_6_1_1 extends JFrame private static final long serialVersionUID=1L;private JButton jBut

44、ton=null;/* * Launch the application. */public static void main(String args) int i=0;/在这里用参数个数控制构造函数的调用new Java_6_1_1();new Java_6_1_1(i);new Java_6_1_1(i,i);/同时生成三个/* * Create the frame. */public Java_6_1_1() this.setLayout(new FlowLayout();this.setSize(411,253);jButton=new JButton("FlowLayout

45、 布局");add(jButton);this.setTitle("了解布局");this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public Java_6_1_1(int i)this.setLayout(new BorderLayout();this.setSize(411,253);jButton=new JButton("BorderLayout 布局");add(jButton);this.setTitle("了解布局&quo

46、t;);this.setLocation(400, 0);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public Java_6_1_1(int i,int j)this.setLayout(new GridLayout(3,3);/首先设置这个对象的布局/在这里表示3行3类this.setSize(411,253);/设置这个框架的宽和高jButton=new JButton("GridLayout 布局");/生成一个按钮add(jButton);/Container

47、 c=this.getContentPane(); /c.add(jButton); 与这两行效果相同this.setTitle("了解布局");/设置标题this.setLocation(800, 0);/设置窗体位置this.setVisible(true);/设为可见。this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);(2)实验结果截图2. 一个图形用户界面程序如下图,窗口中只有一个标签:请编写该程序代码,布局方式为FlowLayout。要求用二种方式写该程序:1)在主方法中用Frame创建窗口并布置窗口。2)将自

48、己的类构造成框架类,在构造方法中布置窗口,在主方法创建窗口。(1)实验代码1)在主方法中用Frame创建窗口并布置窗口。(Java_6_2.java)import java.awt.*;import javax.swing.*;/这个文件中的方法是:/在主方法中用Frame创建窗口并布置窗口public class Java_6_2 extends JFrame /* * */private static final long serialVersionUID = -5159256802988669267L;public static void main(String args) JFrame f=new JFrame();/创建一个新框架对象Container c=f.getContentPane();/获取内容面板c.setLayout(new FlowLayout();/设置布局JLabel label = new JLabel("有标签的窗口!");/创建一个标签 c.add(label);/将标签加入面板中 f.setSize(160, 100); f.setVisible(true);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/* * Crea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论