1、全国Java语言程序设计自考试题全国2011年1月Java语言程序设计自考试题实验指导书。 运行结果:使用 switch 语句1)编写程序用swith语句实现从键盘读如1,2,3时,屏幕提示不同信息。代码见实验指导书。运行结果: 3、使用循环结构使用for语句1)程序源代码见实验指导书。 2)改正源程序中错误:public static void main (String args) throws java.io.IOException 运行结果: 使用while语句1)程序源代码实验指导书: 运行结果:多重循环,输出九九乘法表的程序。 运行结果:4、编程题,编写程序并写出运行结果1)用分支语
2、句编程,输入一个学生成绩,给出相应等级: 90100 优 8089 良 7079 中 6960 及格 059 不及格代码:import java.io.*;class aaa public static void main(String args) throws IOException BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in); System.out.println(Please press the score in:); int num=Integer.parseInt(stdin.r
3、eadLine(); num=(int)(num/10); switch(num) case 10: case 9: System.out.println(The students level is A!); break; case 8: System.out.println(The students level is B!); break; case 7: System.out.println(The students level is C!); break; case 6: System.out.println(The students level is D!); break; case
4、5: case 4: case 3: case 2: case 1: case 0: System.out.println(The students level is E!); break; default: System.out.println(The key press is wrong!); 结果:2) 采用for循环求1至1000之内的所有“完全数”。所谓“完全数”是指一个数,恰好等于它的因子之和。例如,6是一个完全数,因为6的因子为1、2、3,而61十2十30 代码:class aaa public static void main(String args) System.out.p
5、rintln(Now looking for the number between 1 to 1000 :); for(int i=1;i=1000;i+) int sum=0; for(int j=1;j=i/2;j+) if(i%j=0) sum+=j; if(sum=i) System.out.print(t+i+t); System.out.println(); System.out.println(select over!); 结果:3)一个整数的各位数字之和能被9整除,则该数也能被9整除。编程验证给定的整数能否被9整除。代码:import java.io.*;class sss p
6、ublic static void main(String arg) throws IOException BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in); int num=0; int NO; System.out.print(请输入给定的整数:); String str=stdin.readLine(); NO=Integer.parseInt(str); for(int i=0;istr.length();i+) num+=NO%10; NO=(int)(NO/10); if(num%9
7、=0) System.out.println(str+可以被9整除。); else System.out.println(str+不可以被9整除。); 结果:4)已知XYZ+YZZ=532,其中X、Y和Z为数字,编程求出X,Y和Z的值。 代码:class sss public static void main(String arg) int X,Y,Z; for(X=1;X=4;X+) for(Y=1;Y=4;Y+) for(Z=0;Z=2;Z+) int sum=(100*X+10*Y+Z)+(100*Y+10*Z+Z); if(sum=532) System.out.println(X=
8、+X+ , Y= +Y+ , Z= +Z); 结果:实验二:面向对象编程实验目的:通过编程和上机实验理解 Java 语言是如何体现面向对象编程基本思想,熟悉类的封装方法以及如何创建类和对象,熟悉成员变量和成员方法的特性,熟悉类的继承性和多态性的作用,熟悉包、接口的使用方法,掌握OOP方式进行程序设计的方法。实验要求: 1、编写程序实现类的定义和使用。2、编写不同成员和不同成员方法修饰方法的程序。3、编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序和多态性(成员方法重载、构造方法重载)的程序。4、编写接口的定义和使用的程序。5、编写包的定义和使用的程序。实验内容: 1、类的定义和使用
9、代码:class Table public String name; public int weight,X,Y,high; public Table(String nwname,int nwweight,int nwX,int nwY,int nwhigh) this.name=nwname; this.weight=nwweight; this.X=nwX; this.Y=nwY; this.high=nwhigh; public int Area(int X,int Y) int Area=X*Y; return Area; public void ChangeWeight(int Ne
10、wWeight) weight=NewWeight; public void Display() System.out.println(The Tables Name: Name= +name); System.out.println(The Tables Size: X= +X+ ,Y= +Y); System.out.println(The Tables Area: Area= +Area(X,Y); System.out.println(The Tables Weight: Weight= +weight); System.out.println(The Tables High: Hig
11、h= +high); public static void main(String arg) System.out.println(Now Display MyTables Information:); Table tb=new Table(Mytable,170,10,15,75); tb.Display(); System.out.println(Now Change MyTables Weight to 200!); tb.ChangeWeight(200); System.out.println(Now Display MyTables New Information:); tb.Di
12、splay(); 结果:2、修饰符的使用程序功能:通过两个类StaticDemo、TestDemo说明静态变量/方法与实例变量/方法的区别,程序源代码见实验指导书。对源程序进行编译,查错并运行。静态方法不能访问实例变量。3、继承和多态的作用代码:abstract class Rodent String name; public String getName() return name; public void setName(String name) this.name=name; public abstract void run();class Mouse extends Rodent pu
13、blic void run() class Gerbil extends Mouseclass Hamster extends Mouse 4、接口的定义和使用5、包的定义和使用 创建自定义包Mypackage 在包中创建类,编译Test_YMD.java文件,分析运行结果。 编写使用包Mypackage中Test_YMD类的程序,编译并运行程序,分析程序的运行结果。6、编程题,编写程序并写出运行结果 (1)创建一个名称为Pay的类,该类包括工作小时、每小时工资、扣缴率、应得工资总额和实付工资等5个双精度型的成员变量。创建3个重载的
14、应得工资computeNetPay()方法。应得工资是工时乘以每小时工资的计算结果。当computeNetPay()接收代表小时、扣缴率和工资率的数值时,计算出应得工资=工作小时*每小时工资*(1扣缴率)*(1工资率)。当computeNetPay()接收两个参数时,扣缴率假定为15%,计算出应得工资=工作小时*每小时工资*(10.15)*(1工资率) 当computeNetPay()接收一个参数时,扣缴率假定为15%,每小时工资率为4.65%。同时编写一个测试类,该测试类的main方法测试所有3个重载的方法。代码:class Pay double work_hour,price=100,de
15、duct_rate; double should_pay,real_pay=0; public double computeNetPay(double work_hour) should_pay=work_hour*this.price*(1-0.15)*(1-0.0465); return should_pay; public double computeNetPay(double work_hour,double price_rate) should_pay=work_hour*this.price*(1-0.15)*(1-price_rate); return should_pay; p
16、ublic double computeNetPay(double work_hour,double price_rate,double deduct_rate) should_pay=work_hour*this.price*(1-deduct_rate)*(1-price_rate); return should_pay; public void display() System.out.println(The employee should be pay $ +should_pay); public static void main(String args) Pay pay=new Pa
17、y(); System.out.println(The first employee worked 8hour); puteNetPay(8.0); pay.display(); System.out.println(The first employee worked 8hour and price_rate 8%); puteNetPay(8.0,0.08); pay.display(); System.out.println(The first employee worked 8hour and price_rate 10% and deduct_rate is 18%); puteNet
18、Pay(8.0,0.1,0.18); pay.display(); 结果:(2)商店销售某一件商品,商店每天公布统一的折扣(discount)。同时允许销售人员在销售时灵活掌握价格(price),在统一折扣的基础上,对一次购入10件以上者,还可以销售9.5折优惠。现已知当天5名售货员的销售情况为: 售货员编号(num) 销售件数(quantity) 销售单价(price) 101 3 126.8 221 8 125.6 325 10 124.8 108 45 123.4 901 100 121.5 编写销售商品类Sale和含有main方法的公共类Test,计算当天此商品的总销售额sum,以及每
19、件商品的平均售价,并在显示器上显示。代码:import java.io.*;class Sale double discount,price; int sale_sum=0; double sum=0.0,price_avg=0.0; public void change_discount(double discount) this.discount=discount; public void SaleCount(int person_sale_num,double price) if(person_sale_num10) sum+=price*discount*person_sale_num
20、; else sum+=0.95*price*discount*person_sale_num; sale_sum+=person_sale_num; price_avg=sum/sale_sum; /return sale_sum; public void display() System.out.println(The total sale namber is: +sale_sum); System.out.println(The total sale money is: +sum); System.out.println(The avg of the price is: +price_a
21、vg); class Test public static void main(String args)throws IOException Sale sale=new Sale(); System.out.println(Press the discount :); BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in); double disc=Double.parseDouble(stdin.readLine(); sale.change_discount(disc); System.out.p
22、rintln(The saler 101 saled 3 goods at price 126.8;); sale.SaleCount(3,126.8); System.out.println(The saler 221 saled 8 goods at price 125.6;); sale.SaleCount(8,125.6); System.out.println(The saler 325 saled 10 goods at price 124.8;); sale.SaleCount(10,124.8); System.out.println(The saler 108 saled 4
23、5 goods at price 123.4;); sale.SaleCount(45,123.4); System.out.println(The saler 901 saled 100 goods at price 121.5;); sale.SaleCount(100,121.5); sale.display(); 结果:(3)定义接口Shape及其抽象方法getArea()和getPerimeter()用于计算图形和面积和周长。定义类Rectangle(矩形)、类Circle(圆形)、类Triangle(三角形),要求这些类继承点类Coordinates()并实现接口的抽象方法。代码:
24、class Test public static void main(String args) circle c=new circle(); c.display(); rectangle r=new rectangle(); r.display(); triangle t=new triangle(); t.display(); interface cal_Shape final double PI=3.14; abstract double getArea(double r); abstract double getArea(double a,double b); abstract doub
25、le getArea(double a,double b,double c); abstract double getPerimeter(double r); abstract double getPerimeter(double a,double b); abstract double getPerimeter(double a,double b,double c);class Coordinates implements cal_Shape public double getArea(double r) return PI*r*r; public double getPerimeter(d
26、ouble r) return 2*PI*r; public double getArea(double a,double b) return a*b; public double getPerimeter(double a,double b) return 2*(a+b); public double getArea(double a,double b,double c) double s=(a+b+c)/2; return Math.sqrt(s*(s-a)*(s-b)*(s-c); public double getPerimeter(double a,double b,double c
27、) return a+b+c; class circle extends Coordinates public void display() double circle_area,circle_perimeter; Coordinates x=new Coordinates(); circle_area=x.getArea(2.0); circle_perimeter=x.getPerimeter(2.0); System.out.println(半径为2的圆的面积为:+circle_area+,周长为:+circle_perimeter); class rectangle extends C
28、oordinates public void display() double rectangle_area,rectangle_perimeter; Coordinates y=new Coordinates(); rectangle_area=y.getArea(2.0,3.0); rectangle_perimeter=y.getPerimeter(2.0,3.0); System.out.println(长,宽为2,3的矩形的面积为:+rectangle_area+,周长为:+rectangle_perimeter); class triangle extends Coordinates public void display() double triangle_area,triangle_perimeter; Coordinates z=new Coordinates(); triangle_area=z.getArea(3.0,4.0,5.0); triangle_perimeter=z.getPerimeter(3.0,4.0,5.0); System.out.println(三边长为3,4,5的三角形的面积为:+