面向对象的程序设计Java_课程设计
内容与要求说明
姚远
编写时间:2012-12-17
第一题 智能化学生信息提取程序
假设教务处将每个学生的信息用对应的每个字符串表示:
如:
张三:1992-12-12:信息工程系:男:2012
李不四:1991-01-11:艺术系:女:2011
编写程序从该字符串中提取信息,并“智能化”随机显示为以下任意1种:
如:张三:1992-12-12:信息工程系:男:2012
可以通过程序转化输出为:
1. 姓名:张三,年级:12级,系别:信息工程系,性别:男,年龄:20
2. 张三是大一学生,在信息工程系已经学习1年了,是个有为的男青年,二十岁呢。
3. 张三是个新来的,好像对计算机有点兴趣,属于公菜鸟级别,鸟龄20.
相关要求:
1. 编写Student类,用于封装name、birthdate、department、sex等信息。
2. 编写ManageStudent类,提供方法用于字符串信息提取,并编写测试类测试字符串提取功能。
3. 上述2步骤均完成的前提下,新建Dynamic Web Project程序.将上述步骤编写的代码整合到新程序中。并新增JSP页面,要求通过JSP页面的输入框来输入字符串。当页面“信息提取”按钮被点击时,跳转到输出页面,输出转化后的信息。
4. 写出需求分析与设计思路
第二题 专任教师工资计算程序
根据要求,完成工资计算系统。
需求描述:
某高校教师分为兼职和全职教师,兼职教师的工资来源为实际课时课酬:按照职称不同,每课时课酬不同。如:教授:150元/课时;副教授100元/课时;
全职教师的工资来源为基本工资和超基本课时以外的超课时课酬(简称超课时课酬):按职称不同,每课时课酬不同。如:教授:基本工资5000元,超课时课酬为100元/课时;副教授基本工资4000元,超课时课酬为80元/课时;
每个月各系教学秘书会上报数据供人事处进行工资结算。上报数据包括:教师名、职称、实际课时数/超额课时数
要求:
1) Ex2_Payroll是参考的包名,IHandleBaseInfo和IHandleWage是接口,分别定义在IHandleBaseInfo.java文件和IHandleWage.java文件中.其中:
IHandleBaseInf需要定义的方法为:
String getName();
void setName(String name);
String getTitle();
void setTitle(String title);
IHandleWage接口中需要定义方法的为:
void calculateWage();
float getWage();
2) Employee是抽象类,必须定义在自己的类文件中Employee.java中。且该Employee必须“实现”IHandleBaseInf接口和IHandleWage接口,因类Employee的calculateWage方法是抽象方法,所以未能完全实现上述2个接口的全部方法。
3) Ex2_Payroll包中除Employee抽象类以外,还包括:
类FulltimeTeacher:是一个Public类,继承Employee类;必须定义在自己的类文件中:FulltimeTeacher.java
类ParttimeTeacher:是一个Public类,继承Employee类;,必须定义在自己的类文件中:ParttimeTeacher.java
上述接口、抽象类、一般类的对象模型图见图1所示.
图1 简单高校工资管理程序的对象模型图
1. 程序完成后,以”张三”、”副教授”、10等测试数据在测试类中测试全职教师的工资计算功能是否正常。程序运行时应能在Console窗口输出相应的工资总额,如:
该教师工资为:4800.0
2. 重构上述类设计:在Employee类中增加一个构造方法
Employee(String name,String title)
看看程序要做相应的如何改动?修改完毕后,仍然以”张三”、”副教授”、10作为测试数据进行测试。
3. 上述2步骤均完成的前提下,新建Dynamic Web Project程序.将上述步骤编写的代码整合到新程序中。并新增JSP页面,通过WEB页面进行数据输入,并通过WEB页面进行数据输出:
输入张三、副教授、12学时数据。
点击计算按钮:
4.在上述3个步骤均完成的前提下,将专任教师的工资计算功能整合到“教师工资计算系统”中,完成至少2个功能:
4.1 学院情况介绍
4.2专任教师工资计算
以下为参考程序结构:
参考页面设计:
第三题 兼职教师工资计算程序
具体内容和要求参考第二题
第四题 教师信息浏览程序
具体内容和要求参考第二题,另外要达到如下要求:
教师信息需要通过“新增教师”页面进行信息录入,在点击提交按钮时应跳转到另一个“确认提交”页面,该页面完成的功能是将每次录入的信息 “放到“一个FulltimeTeacher对象中,然后将这个对象“放到”一个ArrayList中;同时该页面能够将前一页面录入的信息在页面上进行显示。
除employee、FulltimeTeacher等类以外,还需要定义OperateSalary类,在类中定一个方法:
如:
public ArrayList<FulltimeTeacher> getFulltimeTeachersfromList()
该方法即是返回这个ArrayList给页面,让页面从ArrayList中提取数据并显示。