JAVA上机题.docx_第1页
JAVA上机题.docx_第2页
JAVA上机题.docx_第3页
JAVA上机题.docx_第4页
JAVA上机题.docx_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

第二次上机/定义一个复数类,完成复数的加减运算,并进行测试。public class Complex /定义复数类float real, image;/定义数据成员,实部、虚部void setComplex (float real, float image)/方法,为变量成员赋值this.real = real;this.image = image;Complex add(Complex c2)/复数相加Complex k = new Complex();k.real = this.real + c2.real;/this可以省略k.image= this.image + c2.image;return k;Complex subtract(Complex c2)/复数相减Complex k = new Complex();k.real = real - c2.real;k.image= image - c2.image;return k; void print()/输出复数 System.out.print(real); if (image0) System.out.print(-);System.out.println(-image+i); else System.out.print(+);System.out.println(image+i); class Test/定义测试类public static void main(String args)Complex c1 = new Complex();c1.setComplex(5, -7);Complex c2= new Complex();c2.setComplex(8, 18);Complex sum = c1.add(c2);/两个复数相加Complex sub = c1.subtract(c2);/两个复数相加System.out.print(第一个复数为:);c1.print();/输出复数System.out.print(第二个复数为:);c2.print();System.out.print(两个复数相加的结果为:);sum.print();System.out.print(两个复数相减的结果为:);sub.print();/定义并实现一个矩形类,有长、宽两个属性(长、宽均设置成private成员),由方法计算矩形的周长和面积,并进行测试。class Rectangle /定义矩形类private double height, wide;/成员变量void setValue(double height, double wide )/方法,为数据成员height和wide赋值 this.height = height; /局部变量与成员变量同名,此时必须使用this来引用成员变量 this.wide = wide; void setHeight(double height )/方法,为数据成员height赋值this.height = height; /局部变量与 void setWide(double wide )/方法,为数据成员wide赋值this.wide = wide;double area() /方法,计算面积return(height * wide);double size() /方法,计算周长return(2*height + 2*wide);void display()/方法,输出数据成员System.out.println(矩形高=+height+,+矩形宽=+wide);class Test/定义测试类public static void main(String args) Rectangle r = new Rectangle(); /创建对象,调用相应构造函数r.setValue(2, 5);/为矩形对象r的宽、高赋值r.display();/调用方法System.out.println(面积为:+r.area(); System.out.println(周长为:+r.size(); Rectangle r2 = new Rectangle(); /创建对象,调用相应构造函数r2.setValue(6, 10);r2.display();/调用方法System.out.println(面积为:+r2.area(); System.out.println(周长为:+r2.size(); r2.setWide(18);/调用方法,为矩形r2的宽赋值,即改变r2的宽度r2.display();/调用方法System.out.println(面积为:+r2.area(); System.out.println(周长为:+r2.size(); 第三次上机/定义一个复数类,完成复数的加减运算,并进行测试。要求:定义2个以上的构造函数,并用其完成属性值的初始化。public class Complex /定义复数类float real, image;/定义数据成员,实部、虚部Complex() /构造函数Complex(float real,float image) /重载构造函数this.real = real;this.image = image;void setComplex (float real, float image)/方法,为变量成员赋值this.real = real;this.image = image;Complex add(Complex c2)/复数相加Complex k = new Complex();k.real = this.real + c2.real;/this可以省略k.image= this.image + c2.image;return k;Complex subtract(Complex c2)/复数相减Complex k = new Complex();k.real = real - c2.real;k.image= image - c2.image;return k; void print()/输出复数 System.out.print(real); if (image0) System.out.print(-);System.out.println(-image+i); else System.out.print(+);System.out.println(image+i); class Test/定义测试类public static void main(String args)Complex c1 = new Complex();/用不带参数的构造函数初始化对象c1c1.setComplex(5, -7);/用setComplex方法给对象的数据成员赋值Complex c2= new Complex(8,10);/用带2个参数的构造函数初始化对象c2Complex sum = c1.add(c2);/两个复数相加Complex sub = c1.subtract(c2);/两个复数相加System.out.print(第一个复数为:);c1.print();/输出复数System.out.print(第二个复数为:);c2.print();System.out.print(两个复数相加的结果为:);sum.print();System.out.print(两个复数相减的结果为:);sub.print();/定义并实现一个矩形类,有对角线顶点坐标属性,定义方法计算矩形的周长和面积,并进行测试。要求:定义2个以上的构造函数,并用其完成属性值的初始化。class Rectangle /定义矩形类private double x1,y1,x2,y2;/成员变量,代表两个顶点坐标Rectangle()/构造函数Rectangle(double x1, double y1, double x2, double y2)/重载构造函数 this.x1 = x1; /局部变量与成员变量同名,此时必须使用this来引用成员变量 this.y1 = y1; this.x2 = x2; this.y2 = y2;void setValue(double x1, double y1, double x2, double y2)/方法,为数据成员赋值 this.x1 = x1; /局部变量与成员变量同名,此时必须使用this来引用成员变量 this.y1 = y1; this.x2 = x2; this.y2 = y2; double area() /方法,计算面积return(Math.abs(x2-x1)*Math.abs(y2-y1);double size() /方法,计算周长return(2*(Math.abs(x2-x1)+Math.abs(y2-y1);void display()/方法,输出数据成员System.out.println(顶点坐标分别为:+(+x1+,+y1+)+,+(+x2+,+y2+);class Test/定义测试类public static void main(String args) Rectangle r = new Rectangle(); /创建对象,调用相应构造函数r.setValue(2, 5,10,19);/为矩形对象r的两个顶点赋值r.display();/调用方法System.out.println(面积为:+r.area(); System.out.println(周长为:+r.size(); System.out.println(-); Rectangle r2 = new Rectangle(3,3,7,-9); /创建对象,调用相应构造函数直接完成给数据成员赋值r2.display();/调用方法System.out.println(面积为:+r2.area(); System.out.println(周长为:+r2.size(); /声明一个 Employee 类,其中包括单位名称,姓名、街道地址、城市和邮编等私有属性,以及change_name()和 display()等方法。display()显示单位名称、姓名、街道地址、性别和邮编等属性,change_name()改变对象的姓名属性。声明包含 5 个元素的对象数组,每个元素都是 Employee 类型的对象,并输出这5个对象的数据成员。要求:单位名称定义成类变量(也称静态变量,用static修饰);定义2个以上的构造函数,并用其完成属性值的初始化。class Employee/定义Employee static String company=成都信息工程学院;/定义单位名称为静态变量private String name, address, sex, postcode;Employee()/构造函数Employee(String name,String address,String sex,String postcode)/构造函数 = name; this.address = address;this.sex = sex;this.postcode = postcode;public static void change_company(String c) /设置单位名称company = c;public void change_name(String name) /设置姓名 = name;public String getName() /获取姓名,由于name是私有成员,只能在本类访问,所以若要在其他类中获取姓名,必须依靠函数,其他私有成员同理return name;public String getAddress() return address;public void setAddress(String address) this.address = address;public String getSex() return sex;public void setSex(String sex) this.sex = sex;public String getpostcode() return postcode;public void setpostcode(String postcode) this.postcode = postcode;public void setEmp(String name,String address,String sex,String postcode)/为数据成员赋值 = name;this.address = address;this.sex = sex;this.postcode = postcode;public void display() /输出职工各项数据System.out.println(单位:+company+ 姓名:+name+ 性别:+sex+ 地址:+address+ 邮编:+postcode); class Test /定义测试类public static void main(String args)Employee emp = new Employee5;/定义数组,5个元素for(int i=0;i=4;i+)empi = new Employee();/调用相关构造函数初始化对象emp0.setEmp(李勇,3013,女,610333);/引用数组元素,并调用相关函数为数据成员赋值emp1.setEmp(张三,3015,女,613211);emp2.setEmp(王芳,3015,男,621555);emp3.setEmp(春春,3016,男,643222);emp4.setEmp(吴璧,3014,女,612229);for(int i = 0; i4;i+)/以下输出各员工数据empi.display();System.out.println(-);emp0.change_name(王五);/改变姓名Employee.change_company(成都信息工程大学);emp0.display();System.out.println(=);第四次上机abstract class Vehicleprivate int wheels;/定义车轮个数private double weight;/定义车重public Vehicle (int wh, double we)/构造函数weight = we;wheels = wh;public Vehicle ()/重载构造函数public void show()/输出数据成员System.out.println(车轮数为:+ wheels+个 +n+车重为:+ weight+吨);class Car extends Vehicle/继承,定义Vehicle的子类Carprivate int loader;/新增载客人数成员loaderpublic Car(int wh, double we,int l)/子类构造函数super(wh,we);/调用父类构造函数loader = l;/为新增成员赋值 public Car()/重载构造函数public void show()/重写父类方法super.show();/调用父类的show()方法System.out.println(载客人数为:+ loader+个);class Truck extends Car /继承,定义Car的子类Truckprivate double payload;/新增子类成员载重量payloadpublic Truck(int wh, double we,int l,double pl)/构造方法super(wh, we, l);/调用父类构造方法payload = pl; public Truck()/重载构造方法public void show() /重写父类方法super.show();System.out.println(载重量为:+payload+吨); class Test /定义测试类public static void main(String args) / Vehicle vv=new Car(3,2.2);/这句是错的,抽象类不能实例化,即不能new,可定义对象Car cc=new Car(4,1.24,5);/定义Car对象System.out.println(Car的信息如下:);cc.show();System.out.println(-);Truck tt = new Truck(6, 2.1, 4, 10);/定义Truck对象System.out.println(Truck的信息如下:);tt.show();bstract class Shape/定义抽象类protected String name;/图形名称public Shape(String name)/构造方法 = name;System.out.println(名字:+name);abstract public double getArea();abstract public double getLength();class Circle extends Shape/定义子类圆Circleprivate double radius;/新增子类数据成员private double pi = 3.14;public Circle(String shapename,double radius)/构造方法super(shapename);/调用父类构造方法this.radius = radius;public void setRadius(double radius)/新增方法this.radius = radius;public double getArea()/实现面积方法return pi*radius*radius;public double getLength()/实现周长方法return 2*pi*radius;class Rectangle extends Shape/定义子类矩形Rectangleprivate double width;private double height;public Rectangle(String shapename,double width, double height)/构造方法super(shapename);this.height = height;this.width = width;public double getArea()return width*height;public double getLength()return 2*(width + height); class Test public static void main(String args) /Shape s1=new Shape(4,1.2);错误,抽象类不能实例化对象,但Shape cir = new Circle(圆形, 5);是对的,即对象的上转型对象Circle cir = new Circle(圆形, 5);/定义圆对象System.out.println(面积=+cir.getArea();System.out.println(周长=+cir.getLength();/System.out.println(-);cir.setRadius(11);/改变cir的半径System.out.println(改变半径后的圆信息如下:);System.out.println(面积=+cir.getArea();System.out.println(周长=+cir.getLength();System.out.println(-);Rectangle rect = new Rectangle(长方形, 3.8,5.8);/定义矩形对象System.out.println(面积=+rect.getArea();System.out.println(周长=+rect.getLength();第五次上机mport javax.swing.*; class Sanjiaoxing double a,b,c; public Sanjiaoxing(double a1,double b1,double c1)/构造方法 a=a1;b=b1;c=c1; /求面积的方法 public double getArea() throws R_Exception double p; /当不能构成三角形时抛出异常 if(a+bc|a+cb|b+ca) R_Exception e = new R_Exception(); throw e; p=(a+b+c)/2; return(Math.sqrt(p*(p-a)*(p-b)*(p-c); class SanjiaoxingException public static void main(String args) Sanjiaoxing c1=new Sanjiaoxing(3,3,3); Sanjiaoxing c2=new Sanjiaoxing(1,2,5); try System.out.println(三角形的面积是:n+c1.getArea(); System.out.println(三角形的面积是:n+c2.getArea(); catch(R_Exception e) /处理异常时,打印出异常信息,并弹出异常对话框 / System.out.println(e.e_message(); JOptionPane.showMessageDialog(null,e.e_message();/这句要生效的话则前面的import javax.swing.*;必须要,Java中提供了JOptionPane类来实现类似Windows平台下的MessageBox的功能 /自定义异常类class R_Exception extends ExceptionString str;/显示异常信息的方法public String e_message() str = 出现异常:n三边不能构成三角形,无法计算三角形面积; return str;abstract class Person /父类 public String name; public int age; public String sex; public Person()/构造函数 public Person(String name,int age,String sex) /重载构造函数 =name;this.age=age;this.sex=sex; interface Jiekou /定义接口String country=中国;/定义常量void printinfo();/定义接口中的方法class Student extends Person implements Jiekou /子类Student ,它继承父类Person并使用接口JiekouString school;String zhuanye;Student(String name,int age,String sex,String school,String zhuanye) super(name,age,sex);/调用父类构造函数 this.school=school;this.zhuanye=zhuanye;/为子类新增成员赋值public void printinfo()/实现接口中的方法,注意要显示写出public System.out.println(country=+country+,name=+name+,age=+age+,sex=+sex+,school=+school+,zhuanye=+zhuanye); class Teacher extends Person implements Jiekou /子类Student ,它继承父类Person并使用接口Jiekou String school; String zhicheng; String teach; Teacher(String name,int age,String sex,String school,String zhicheng,String teach)/构造方法 super(name,age,sex); this.school=school;this.zhicheng=zhicheng;this.teach=teach;public void printinfo() /实现接口中的方法,注意要显示写出public System.out.println(country=+country+,name=+name+,age=+age+,sex=+sex+,school=+school+,zhicheng=+zhicheng+,teach=+teach);class JiekouTest /测试类public static void main(String args) Student s1=new Student(王勇,18,男,清华大学,计算机应用);/s1.printinfo();Teacher t1=new Teacher(李杰,24,女,北京大学,讲师,数据库原理);Person p1;p1=s1;/对象的上转型对象 =张三;/正确,引用子类继承的成员变量name/p1.school=复旦大学;/错误,通过上转型对象不能引用子类新增成员,只能引用父类成员/*Jiekou j1; j1=s1;j1.printinfo();/接口回调 j1=t1;j1.printinfo();/接口回调 */s1.printinfo();t1.printinfo();第六次上机* 编写一个多线程程序,主方法中有两个线程, 一个用来计算并显示21000之间的质数及个数, 一个用来计算并显示500010000之间的质数及个数*/class Prime implements Runnable/定义线程类Prime ,使用Runnable接口int m,n;Prime()/构造函数Prime(int a,int b)/构造函数m=a;n=b;public void run()/实现接口的Run()方法getPrime(m,n);void getPrime(int m,int n)/判断并输出m到n之间的素数int sum=0;for(int i=m;in;i+)int j;for(j=2;ji) sum+;System.out.println(i);System.out.print(m+至+n+之间的素数个数是+sum+n);public class PrimeThreadTest public static void main(String args) Prime p1=new Prime(2,1000);Prime p2=new Prime(5000,10000);Thread th1=new Thread(p1);Thread th2=new Thread(p2);th1.start(); /th2.setDaemon(true);/定义后台线程 th2.start();/* 编写一个多线程程序,主方法中有两个线程, 一个用来计算并显示21000之间的质数及个数, 一个用来计算并显示500010000之间的质数及个数改成联合线程,先输出21000之间的素数及个数,再输出500010000之间的素数及个数。*/class Prime implements Runnable/定义线程类Prime ,使用Runnable接口int m,n;Prime()/构造函数Prime(int a,int b)/构造函数m=a;n=b;public void run()/实现接口的Run()方法getPrime(m,n);void getPrime(int m,int n)/判断并输出m到n之间的素数int sum=0;for(int i=m;in;i+)int j;for(j=2;ji) sum+;System.out.println(i);System.out.print(m+至+n+之间的素数个数是+sum+n);public class ThreadDemo2 public static void main(String args) Prime p1=new Prime(2,1000);Prime p2=new Prime(5000,10000);Thread th1=new Thread(p1);Thread th2=new Thread(p2);th1.start();try th1.join(); catch(Exception e) System.out.println(e.getMessage(); th2.start();第七八次上机import java.awt.*; import java.applet.*; import java.awt.event.*; public class Draw extends Applet implements ActionListener String choice1;TextField text1;public void init() /改写父类的init()方法 Label lab1=new Label(输入欲绘制的图形);text1=new TextField(10); /初始化文本框add(lab1); /添加组件到浏览器窗口 add(text1); text1.addActionListener(this); /对text1注册监视器public void actionPerformed(ActionEvent e) /实现接口中的抽象方法choice1=text1.getText(); /获取文本框中的数据repaint(); /重新调用paint方法public void paint(Graphics g) /改写父类的paint方法 if(choice1.equals(线) for(int i=1;i=5;i+) g.drawLine(10,50,250,50+i*10); elseif (choice1.equals(圆) for(int i=1;i=5;i+) g.drawOval(1

温馨提示

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

评论

0/150

提交评论