第 11 页
2.编写Java程序,定义一个表示学生的类Student。这个类的属性有“学号”、“班号”、“姓名”、“性别”、“年龄”,方法有“获得学号”、“获得班号”、“获得性别”、“获得姓名”、“获得年龄”、“获得年龄”。另外再为类Student增加一个方法public String toString( ),该方法把Student类的对象的所有属性信息组合成一个字符串以便输出显示。编写一个Java Application程序,创建Student类的对象,并验证功能。
请将下列程序源代码补齐,并写出程序运行结果。
class Student{
【代码段1】
public Student(long studentID,int classID,String name,String sex,int age) { this.studentID=studentID; this.classID=classID; this.name=name; this.sex=sex; this.age=age; } public long getStudentID() { return studentID; } public int getClassID() { return classID; } public String getName() { return name; } public String getSex() { return sex; } public int getAge() { return age; } public String toString() {
【代码段2】 } }
public class StudentDemo { public static void main(String[] args) { Student s1=new Student(902,22,\ System.out.println(s1.toString()); } }
第 12 页
3.阅读如下所示的3个Java类的定义,分析它们之间的关系,写出运行结果。 class SuperClass {
int x;
SuperClass() { x=3; System.out.println(\ }
void doSomething()
{ System.out.println(\
} }
class SubClass extends SuperClass
{
int x;
SubClass() {
super(); //调用父类的构造方法 x=5; //super( ) 要放在方法中的第一句 System.out.println(\ }
void doSomething( )
{ super.doSomething( ); //调用父类的方法
System.out.println(\ System.out.println(\} }
public class Inheritance {
public static void main(String args[]) { SubClass subC=new SubClass(); subC.doSomething(); } }
4.假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均超过80分才能够通过。根据上述要求,请完成以下Java类的设计:
(1)设计一个基类Student描述学生的共同特征。
(2)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。 (3)设计一个描述研究生的类Graduate,该类继承并扩展Student类。
(4)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相关信息。
要求从键盘输入学生姓名、学历、课程成绩,然后在显示器上输出结果。
第 13 页
5.(选做)假定某个公司编写雇员工资支付程序,这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资:
(1)经理(Manager)——每月获得一份固定的工资
(2)销售人员(Salesman)——在基本工资的基础上每月还有销售提成。 (3)一般工人(Worker)——则按他每月工作的天数计算工资。
根据上述要求试用类的继承和相关机制描述这些功能,并编写一个Java Application程序,演示这些类的用法。(提示:应设计一个雇员类(Employee)描述所有雇员的共同特性,这个类应该提供一个计算工资的抽象方法ComputeSalary( ),使得可以通过这个类计算所有雇员的工资。经理、销售人员和一般工人对应的类都应该继承这个类,并重新定义计算工资的方法,进而给出它的具体实现。)
第 14 页
下篇 数据结构
实验一 递归
【实验目的】
1.掌握栈和递归程序执行的关系; 2.递归程序的编写方法; 3.掌握递归程序的分析方法。
【实验内容】
实验1.1 阶乘计算公式如下所示,请用递归的方法计算4的阶乘问题。
?1,当 n?0 时 n!???n?(n?1)!,当 n?1 时
实验1.2 费波那契数列计算公式如下,请用递归的方法计算10期费波那契数列的值并输出。
第 15 页
1,n?0,1? Fib(n)???Fib(n?1)?Fib(n?2),n?1
实验1.3 用递归的方法解决汉诺塔问题。
在19世纪末,布拉玛神庙(Temple of Bramah)里的传教士玩着一种游戏,他们的游戏装置是由一块铜板上有三根金刚石针,针上放有64个直径大小不等的金盘组成的。 游戏的目标是把左面针上的金盘以动到右面的针上,移动过程中一次只能移动一个盘子,不允许大盘放在小盘上面,只能借助于中间的针。他们认为这种游戏的结束就意味着世界末日的到来。