1、【沈师 710 寝室】Java 程序题1假定根据学生的 3 门学位课程的分数决定其是否可以拿到学位,对于本科生,如果 3 门课程的平均分数超过 60分即表示通过,而对于研究生,则需要平均超过 80 分才能够通过。根据上述要求,请完成以下 Java 类的设计:class Studentprivate String name;private int classA,classB,classC;public Student(String name,int classA,int classB,int classC)this.name=name;this.classA=classA; this.class
2、B=classB; this.classC=classC;public String getName()return name;public int getAverage()return (classA+classB+classC)/3;class UnderGraduate extends Studentpublic UnderGraduate(String name,int classA,int classB,int classC)super(name,classA,classB,classC);public void isPass()if(getAverage()=60)System.o
3、ut.println(“本科生“+getName()+“ 的三科平均分为: “+getAverage()+“,可以拿到学士学位。“);elseSystem.out.println(“本科生“+getName()+“ 的三科平均分为: “+getAverage()+“,不能拿到学士学位。“);class Graduate extends Studentpublic Graduate(String name,int classA,int classB,int classC)super(name,classA,classB,classC);public void isPass()if(getAver
4、age()=80)System.out.println(“研究生“+getName()+“ 的三科平均分为: “+getAverage()+“,可以拿到硕士学位。“);elseSystem.out.println(“研究生“+getName()+“ 的三科平均分为: “+getAverage()+“,不能拿到硕士学位。“);public class StudentDemopublic static void main(String args)UnderGraduate s1=new UnderGraduate(“Tom“,55,75,81);Graduate s2=new Graduate(“
5、Mary“,72,81,68);s1.isPass();s2.isPass();运行结果:本科生 Tom 的三科平均分为: 70,可以拿到学士学位。研究生 Mary 的三科平均分为: 73,不能拿到硕士学位。【沈师 710 寝室】Java 程序题2. 假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员(Employee ) ,不同类型的雇员按不同的方式支付工资:abstract class Employeeprivate String name;public Employee(String name)this.name=name;public String getName()ret
6、urn name;public abstract double computeSalary();class Manager extends Employeedouble monthSalary;public Manager(String name,double monthSalary)super(name);this.monthSalary=monthSalary;public double computeSalary()return monthSalary;class Salesman extends Employeedouble baseSalary;double commision;in
7、t quantity;public Salesman(String name,double baseSalary,double commision,int quantity)super(name);this.baseSalary=baseSalary;mision=commision;this.quantity=quantity;public double computeSalary()return baseSalary+commision*quantity;class Worker extends Employeedouble dailySalary;int days;public Work
8、er(String name,double dailySalary,int days)super(name);this.dailySalary=dailySalary;this.days=days;public double computeSalary()return days*dailySalary;public class EmployeeDemopublic static void main(String args)【沈师 710 寝室】Java 程序题Manager m=new Manager(“Tom“,10000);Salesman s=new Salesman(“Mary“,20
9、00,45,60);Worker w=new Worker(“John“,60,28);System.out.println(“经理“+m.getName()+“的月工资为:“+puteSalary();System.out.println(“销售人员“+s.getName()+“的月工资为: “+puteSalary();System.out.println(“工人“+w.getName()+“的月工资为:“+puteSalary();运行结果:经理 Tom 的月工资为: 10000.0销售人员 Mary 的月工资为: 4700.0工人 John 的月工资为:1680.03输入给定的 Jav
10、a Application 程序,其中文件 Rectangle.java 和 Point.java 放入 C:javaexam 中;文件TestPackage.java 包含 main( )方法的测试程序放在目录 C:javaexamtest 下,写出运行结果,并简述打包过程。(1 )文件 Rectangle.java。package graphics.twoD;public class Rectangle public int width = 0;public int height = 0;public Point origin;public Rectangle(Point p, int w
11、, int h) origin = p;width = w;height = h;public void move(int x, int y) origin.x = x;origin.y = y;public int area( ) return width*height;(2) 文件 Point.java。package graphics.twoD;public class Point public int x = 0;public int y = 0;public Point(int x, int y) this.x = x;this.y = y;(3 )文件 TestPackage.ja
12、va。import graphics.twoD.*;public class TestPackagepublic static void main(String args)Point p=new Point(2,3);Rectangle r=new Rectangle(p,10,10);System.out.println(“The area of the rectangle is: “+r.area();打包过程:(1 )将 C:mypkg 添加到 classpath 变量中,使该路径作为一个包的根路径。(2 )在命令行窗口中将 C:javaexam 作为当前目录,输入编译指令 javac
13、d C:mypkg Point.java Circle.java。(3 )在命令行窗口中改变当前目录为 C:javaexam test,输入编译指令 javac TestPackage.java,再输入解释指令java TestPackage,那么就可得到 TestPackage.java 的执行结果。运行结果: The area of the rectangle is:1004. 在类 A 中有两个默认的方法 a、b ,一个私有方法 c。在 A 的派生类 B 中有 3 个公共的方法 b、c 、d。写出定义这两个类的 Java 源代码,并说明哪些方法是多态的?(选择)class A void
14、a( ) void b( ) private void c ( ) class B extends Apublic void b( ) public void c( ) public void d( ) 只有方法 b 是多态的。注意:父类 A 中的方法 c 是私有的 private,因此不能被子类 B 重写,不属于多态。【沈师 710 寝室】Java 程序题5. 输入如下所示的 Java Application 程序,写出运行结果public class TestException public static void main (String args) int i=0;double num
15、=0;double d=2.1, 3.0, 5.6;try while(it“+filesi.getName();13.输入下面的 Java Application 程序,运行该程序,并简要分析程序的运行结果。class SimpleThread extends Thread public SimpleThread(String str) super(str); /调用其父类的构造方法public void run() /重写 run 方法for (int i = 0; i 10; i+) System.out.println(i + “ “ + getName(); /打印次数和线程的名字t
16、ry sleep(int)(Math.random() * 1000); /线程睡眠,把控制权交出去catch (InterruptedException e) System.out.println(“DONE! “ + getName(); /线程执行结束public class TwoThreadsTest public static void main (String args) new SimpleThread(“First“).start(); /第一个线程的名字为 Firstnew SimpleThread(“Second“).start(); /第二个线程的名字为 Second功
17、能:上述程序通过继承 Tread 类创建了两个线程对象,分别命名为 First 和 Second。线程体循环输出所属线程名称 10 次,并且在每次输出后随机休眠 N 毫秒(N1000) 。14补充适当语句,使下面的 Java Application 程序正常运行,并写出程序的运行结果01. public class WhatThread implements Runnable /类通过实现接口提供线程体方法02. public static void main(String args)03. WhatThread wh= new WhatThread(); / 提供线程体方法04. Thread t= new Thread(wh); /创建线程对象05. t.start();/启动线程06. 07. public void run() /定义线程体方法08. System.out.println(“Hello“);09. 10. 运行结果:Hello