1、11 前言课程设计是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的、必不可少的一个教学环节。通常,课程设计中的问题比平时的习题复杂得多,也更接近实际。课程设计着眼于原理与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力。另一方面,使书上的知识变活,起到深化理解和灵活应用教学内容的目的。平时的习题局限于一个和二个知识点,而课程设计题是软件设计的综合训练,包括问题分析,总体结构设计,用户界面设计、程序设计、基本技能和技巧,以及一整套软件工作规范的训练和科学作风的培养。我们这组选的课题是工资管理系统的设计与开发。从接到任务书开始,我们首先完成了
2、系统的需求分析与概要设计,在完成这些任务时,我们深感理论与实践的结合的是需要一个过程。从个人分工到整个系统分析,从设计到测试之所以能顺利完成是和大家的努力分不开的。虽然还有一些不足之处,但是我们还是从中获益不少。下面简要介绍一下我们课题组的分工,我们这组的分工其实借鉴了 Shari Lawrence Pfleeger 和 Joanne M.Atlee 合著的 SOFTWARE ENGINEERING Theory and Practice (高等教育出版社第三版影印版)中的一些理论,这些知识可以参考此书的第 25 页中关于“开发团队的角色分工”一节。根据分工的细化和部分重叠原则,我们组的具体分
3、如下:(1)项目管理 : 王培(2)需求分析 : 钟耀明、贺纯(3)概要设计 : 贺纯、赵亦娴(4)详细设计 : 赵亦娴、王培、钟耀明、杨安、陈华、贺纯(5)程序编码 : 王培、陈华(6)系统测试 : 陈华、杨安 我的主要任务是概要设计和详细设计22 需求分析2.1 任务概述 现代企业基本上都引进了计算机软件对公司业务进行管理,这样做有很多优点,一是提高了工作的效率,同时也减少了手工操作的错误以及人员的开支。本课题开发的工资管理系统正是基于这样的目的实现的,系统完成的主要功能是对员工工资的管理,同时还包括对员工信息、部门信息以及附属于员工、部门的职称和职务信息的管理。系统主要采用事务型数据库设
4、计,但对于员工工资的信息,系统能够保留其相应的历史记录,包括员工的请假信息,出差信息以及工资结算信息等。本系统面向员工和管理人员同时开放,普通用户可以进行查询以及对个人相关信息的修改等操作,管理账户则拥有系统的全部功能。系统不允许非经认证通过的用户使用系统。系统采用 ASP.NET 语言开发,系统的数据使用 SQL 数据库进行管理。2. 功能需求分析(1)系统能够维护员工的基本信息,部门、职务、职称以及工资记录等信息。(2)系统应该能记录员工的每一个职称信息,并授予相应的职称,系统在计算员工工资的时候选取职称对应的最高职称津贴。(3)工资表应当由系统自动生成。系统负责员工的工资表以及员工工资的
5、历史记录及记录员工的请假信息和出差信息等意外情况。(4)系统可以给管理员提供权限增加删除修改系统用户以及其它实体信息,系统的部分权限不能下放给普通用户以保证系统的安全性以及数据的正确性。2.3 外部接口需求分析系统人机交互界面为半屏幕大小,采用上下左右居中方式显示,系统分辩率默认设置为 1280*800,实际的界面大小由具体的屏幕决定。主界面包括标题栏,菜单栏,快捷工作区,帮助信息区(默认是隐藏的)。每一个菜单对应一个键盘快捷键区。2.4 性能需求分析3系统在主频 1.5GHZ,内存 512MB,总线频率 667MHZ 的硬件平台上运行时,系统的响应时间、更新处理时间、数据转换与传输时间、运行
6、时间均能达到毫秒级。系统支持用户并发操作,事务采用可串行化隔离级别,防止在读写过程中产生的丢失修改、读脏数据、不可重复读等一系列由并发操作带来的不一致问题。系统的运行主存控制在 1024KB 以内,响应时间控制在 1000ms 以内,系统对数据的存储空间取决于数据库系统表空间的约束限制。2.5 软件属性需求分析系统必须保证所有操作结果以及存储数据的正确性,对于用户的非法操作,系统必须能够提出告警信息,对于用户的错误操作,系统能够提供错误信息以及错误源。在数据库操作上的异常,系统也应捕捉到并提供界面化的提示信息,对于可能会产生错误的操作,应当能够防范。另外系统必须提供一定的安全保密性,一些保密信
7、息只针对特定的用户提供。它人员无法访问。软件必须为中文操作界面,并且所有的中文功能菜单项描述须与其实际对应的功能相一致,不能存在功能不足或者功能不对的情况,软件采用面向对象技术架构,遵循代码编写规范,提供适当的代码注释,尽可能地采用可复用技术,提高软件的可维护性。 概要设计3.1 系统设计总体思想当工资管理系统处理的事务主要有工资管理,员工信息管理,部门信息管理,职务信息管理,职称信息管理。职务和职称以及部门信息管理主要服务于工资管理和员工信息管理,系统接收的输入项目有员工信息,部门信息,职务信息,职称信息,请假信息,出差信息等。系统能够接受用户的请求,显示相应的查询信息,增加、删除、修改相应
8、的合法的信息。4图 3.1.1 工资管理系统 HIPO 图图 3.1.1 是工资管理系统的 HIPO 图,上图主要说明了系统的各个主要功能以及各功能模块之间的层次关系。上图的基本框架也是整个系统界面的基要框架。系统的人机交互采用图形化用户界面,考虑到系统的平台无关性,系统由JAVA 语言实现,系统的界面元素也是采用了 JAVA 的 JFC 图形类库。系统可以在安装了 JAVA 运行环境的平台上运行。系统从登录界面开始,要求验证用户信息,用户通过验证后,进入系统主界面。主界面提供了一个菜单框架,可以通过各个菜单类的一个实例来加载菜单,这一步不是由主界面完成的,而是由所需要被加载的类完成的,但需要
9、主界面类去生成这些菜单英的实例。系统加载的功能主要包括系统管理,用户管理,工资管理,部门管理,职务管理,职称管理以及适当的帮助信息。系统管理主要向用户提供用户更改密码的操作以及退出程序的功能。用户管理允许管理员新建一个员工信息,比如当公司新增加了一个员工时,系统为该员工生成相应的工资关系,但新建这个员工的信息则是第一环节,当然如果公司离任了一名员工时,此员工与公司的工资关系已解除,则没有必要保留该员工的信息,系统应向管理员提供删除该员工的功能,同时删除与该员工相关的所有其它信息。公司所在的员工可能有部分具有相应5的职称,考虑到职称的种类繁多,系统只添加本公司员工所拥有的职称的一个集合,而不考虑
10、外界的因素,因此系统提供了增加、删除、修改、查询等对职称的相关操作。例如,当公司一员工拿到高级职称后,管理员首选应该查看系统是否记录了相应职称的信息,如果有,则直接将该职称信息添加到员工信息中去,如果没有,则应当先增加这一职称信息,再执行上述操作。另外在删除一个职称的时候,系统要求必须没有员工拥有此职称,否则系统不能删除,如果确实要删除,则只能先删除拥有此职称的所有员工或者撤销拥有此职称的所有员工的此职称。3.2 系统功能模块设计图 3.2.1 系统功能模块设计3.3 系统数据库设计通过对工资管理系统的数据分析并根据业务之间的联系,我们可以得出与系统相关的实体有:员工、部门、职务、职称、请假信
11、息、出差信息、工资。工资管理系统的数据据库管理模式用语义描述如下:(1)每一个员工只能属于一个部门,担任一个职务,但是可以拥有多个职称.6(2)每个部门可以有多名员工,有不同的职务.(3)每个职务可以由多名员工担任,可以在相同的部门,也可以在不同的部门.(4)每个职称可以授予不同的员工.(5)每个员工每个月都会有一份工资记录,并且会有一份历史工资记录.(6)员工每个月可以请假多次或者出差多次.但是要扣除相应的工资或者获得相应的补助.每个员工都有一分历史请假记录和历史出差记录。综合上述语义,可以得出系统的 ER 图如图 3.3.1 所示:3.3.1 工资管理系统 ER 图根据实体之间的联系,以及
12、分析实体的属性,得出了工资管理系统中各个实体的属性,相关属性列表见表 3.3.1。表 3.3.1 工资管理模型的相关属性列表实体或联系 属性员工 员工编号、姓名、性别、部门号、职务部门 部门编号、名称、人数、电话职务 职务编号、名称、基本工资7职称 职称编号、名称、职称津贴出差信息 出差编号、员工编号、天数、出差年份、出差月份、出差补助员工职称信息员工编号、职称编号请假信息 请假编号、员工编号、天数、年、月、扣除工资、请假原由工资工资编号、员工编号、工资所属年月、基本工资、扣除工资、出差补助、岗位工资、职称津贴、工资总额说明:加粗部分为主键,加底线部分为外键图 3.3.2 实体及其相关属性图
13、详细设计4.1 数据结构设计4.1.1 数据库表结构设计Employee员工信息表8字段名 数据类型 约束 名称 说明empno number(6) 主键 员工编号 ename varchar2(20) not null 员工姓名 sex varchar2(4) not null 性别 deptno number(6) 外键 department(deptno) 部门编号 dutyno number(6) 外键 duty(dutyno) 职务编号 Department-部门信息表字段名 数据类型 约束 名称 说明deptno number(6) 主键 部门编号 deptname varchar
14、2(20) not null 部门名 empnum number 部门人数 tel number 电话 Duty-职务信息表字段名 数据类型 约束 名称 说明dutyno number(6) 主键 职务编号 dutyname varchar(20) not null 职务名 dutypay number default(0), check(dutypay=0) 职务基本工资Title-职称信息表字段名 数据类型 约束 名称 说明titleno number(6) 主键 职称编号 titlename varchar2(20) not null 职称名 titlepay number defaul
15、t(0), check(titlepay=0) 职称津贴 TitledEmployee-员工职称联系表字段名 数据类型 约束 名称 说明empno number(6) 员工编号 titleno number(6)组合主键, 外键employee(empno) 职称编号 year number(4) 年month number between 1 and 12 月记录职称授予时间Leave-员工请假信息表9字段名 数据类型 约束 名称 说明leaveno number(6) 主键 请假编号 empno number(6) 外键 employee(empno) 请假员工 leavedays num
16、ber not null 请假天数 leaveyear number(4) not null 请假年份 leavemonth number not null 请假月份 deduction number not null 扣除工资 reason varchar(60) 请假原因 BusinessTravel-出差信息表字段名 数据类型 约束 名称 说明travelno number(6) primary key 出差编号 empno number(6) 外键 employee(empno) 员工编号 traveldays number not null 出差天数 travelyear numbe
17、r(4) not null 出差年份 travelmonth number not null 出差月份 travelpay number not null 出差补助 Reward-奖励信息表字段名 数据类型 约束 名称 说明rewardno number(6) primary key 奖励编号 empno number(6) 外键 employee(empno) 员工编号 rewardyear number(4) not null 奖励年份 rewardmonth number not null 奖励月份 rewardpay number 奖励金额 reason varchar(60) 奖励原
18、由 Penalty-罚金信息表字段名 数据类型 约束 名称 说明penaltyno number(6) primary key 罚金编号 empno number(6) 外键 employee(empno) 员工编号 penaltyyear number(4) not null 罚金年份 penaltmonth number not null 罚金月份 penaltynum number 罚金额度 reason varchar(60) 罚金原由 Salary-职工工资信息表字段名 数据类型 约束 名称 说10明salno number(6) primary key 工资编号 empno num
19、ber(6) 外键 employee(empno) 员工编号 payyear number(4) 工资年份 paymonth number between 1 and 12 工资月份 basepay number 基本工资 deduction number 请假扣除金额travelpay number 出差补助 dutypay number 职务工资 titlepay number 职称津贴 rewardpay number 奖励金额 penaltynum number 罚金 totalpay number 工资总额 4.1.2 程序数据结构设计(1)ADT DepartmentBean数据对
20、象:D=deptNo,deptName,empNum,tel|deptNo,empNumt 和 tel 均为整数,deptName为字符串数据关系:R1=|deptNo 为部门编号,deptName 为部门号,tel 为部门电话R2=|deptNo 为部门编号,empNum 为部门人数基本操作:setDeptNo(int no):设置部门的部门号为 no.getDeptNo ():返回部门的部门号。setDeptName(String name):设置部门的部门名为 name.getDeptName():返回部门的部门号.setEmpNum(int num):设置部门的员工人数为 num.ge
21、tEmpNum():返回部门的人数.setTel(int telephone):设置部门的电话号码为 telephone.getTel():返回部门的电话号码。ADT DepartmentBean11(2)ADT Jdbc数据对象:D=dbUrl,theUser,thePsw,c,stmt,rs|dbUrl 提供数据库对象,theUser,thePsw 指定用户名和密码,c 与数据库建立一个连接,stmt 声明一条 SQL 语句,rs 保存执行 SQL 语句的结果集.数据关系:R1:用户登陆的验证信息用户名和密码.R2:rs 为语句 stmt 执行的结果集.基本操作:Jdbc():加载数据库驱
22、动,建立数据库连接.executeUpdate(String sql):执行 SQL 更新语句,成功返回 TRUE,失败则返回 FALSE.executeQuery(String sql):执行 SQL 查询语句,返回结果集 rs.close():关闭与数据库的连接.ADT Jdbc4.2 模块功能详细设计4.2.1 部门信息删除模块设计(1)类图设计12图 4.2.1.1 部门信息删除模块类图以下对部分类的属性和方法的说明:DepartmentMenu 类:属性名称 属性类型 属性说明deptMenu JMenu 顶层菜单项deptInqueryItem JMenuItem 部门信息查询菜单
23、项deptDeleteItem JMenuItem 部门信息删除菜单项deptUpdateItem JMenuItem 部门信息更新菜单项User UserBean 用户业务类说明: 当点击各菜单项时,会弹出相应的操作界面。DepartmentDelete 类:方法名称 返回值类型 功能说明isDeptExist() boolean 判断输入的部门号是否存在isDeptEmpty() boolean 判断输入的部门号是否为空executeDelete() void 执行删除操作13ShowAction 类:该类为内部类,是将各功能集成到系统的框架之中.ShowAction 类的构造函数提供了一
24、个命名菜单项的方法,主要功能引入了DepartMentDelete 这个类到系统中。通过监听器 ShowAction 执行actionPerformed()方法,系统就应该可以产生期望的动作。(2)界面设计图 4.2.1.2 界面设计界面设计说明:该文本框为单行文本框,可以输入要删除的部门号,当系统监听到文本框中选项被确定,将会自动地将该部门信息从数据库中删除。(3)核心代码public class DepartmentDeleteprivate static final long serialVersionUID = -8537661840347605772L;public Departme
25、ntDelete() executeDelete();private boolean isDeptExist(int deptno)ResultSet rs; Jdbc conn=null;boolean flag = false;try conn = new Jdbc();14rs = conn.executeQuery(“select deptno from department “); while(rs.next()if( deptno = rs.getInt(“deptno“)flag = true; break; catch (InstantiationException e1) e
26、1.printStackTrace(); catch (IllegalAccessException e1) e1.printStackTrace(); catch (ClassNotFoundException e1) e1.printStackTrace(); catch (SQLException e1) e1.printStackTrace(); return flag;public boolean isDeptEmpty(int deptno)ResultSet rs; Jdbc conn=null;boolean flag = false;try conn = new Jdbc()
27、;rs = conn.executeQuery(“select count(*) from employee where deptno=“+deptno); while(rs.next()if( rs.getInt(1) = 0)15flag = true; break; catch (InstantiationException e1) e1.printStackTrace(); catch (IllegalAccessException e1) e1.printStackTrace(); catch (ClassNotFoundException e1) e1.printStackTrac
28、e(); catch (SQLException e1) e1.printStackTrace(); return flag;private void executeDelete() String deptnoStr = JOptionPane.showInputDialog(null,“请输入待删除部门编号!“);int deptno=0;boolean flag =true;trydeptno = Integer.parseInt(deptnoStr);catch(Exception e) flag=false; if( isDeptExist(deptno) = true )if( is
29、DeptEmpty(deptno) = false )JOptionPane.showMessageDialog(null,“部门中有员工存在,无法删除!“);else16Jdbc conn = null;int res=0;try conn = new Jdbc();PreparedStatement pstmt = conn.c.prepareStatement(“delete from department where deptno=?“);pstmt.setInt(1, deptno);res = pstmt.executeUpdate();if( res !=0 )JOptionPa
30、ne.showMessageDialog(null, “成功删除部门“+deptno);else JOptionPane.showMessageDialog(null, “删除失败“); catch (InstantiationException e) e.printStackTrace(); catch (IllegalAccessException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();e
31、lse if(flag) JOptionPane.showMessageDialog(null, “您输入的部门号不存在!“); /executeDelete174.2.2 部门信息增加模块设计(1)类图设计根据系统的需求,我们需要使得系统能够通过图形化的界面来增添一个部门,并将输入的部门信息长久得保存在数据库文件中,为此我们需要一个从界面类到与数据库连接的底层类的一系列类的组合来实现这样的需要. 图 4.2.1.2 所示的类图就是一个增加新员工的实现过程,DepartmentAdd 类是一个继承自javax.swing.JFrame 类的界面类,它提供了一个供录入员工信息的操作界面,所有录入
32、的信息,则通过 DepartmentBean 类生成一个实例对象来保存,departmentAdd 类的构造函数负责调用 createAddInterface()私有方法来构造出界面,以及初始化各控件中的数值,如 generateDeptNo()是生成部门编号,部编号并不能由用户或者管理员确定,而是由系统查询数据库后,遵循唯一性原则生成出来的编号.这样做不仅避免用户管理编号的繁琐性,而且也增强了系统的安全性.图 4.2.2.1 部门信息的增加功能模块类图以下部分类的属性和方法的说明:DepartmentMenu 类:属性名称 属性类型 属性说明18deptMenu JMenu 顶层菜单项dep
33、tInqueryItem JMenuItem 部门信息查询菜单项deptDeleteItem JMenuItem 部门信息删除菜单项deptUpdateItem JMenuItem 部门信息更新菜单项User UserBean 参数传递说明: 当点击各菜单项时,会弹出相应的操作界面。Load Department 方法是用来加载 Departmentmenu 类 。DepartmentAdd 类:属性名称 属性类型 属性说明deptNoText JTextFied 部门编号输入文本框deptNameText JtextFied 部门名称输入文本框deptTelText JTextFied 部门
34、电话输入文本框confirmButton JButton 确定按钮cancelButton JButton 取消按钮dept DepartmentBean 参数传递DepartmentAdd 类:方法名称 返回值类型 功能说明DepartmentAdd() void 是 Departmentadd 类的构造函数InitDeptInfo() void 初始化部门信息genertateDeptNo() void 产生部门编号CreateAddInterface() void 创建增加信息界面StoreDepartment() void 将新的信息保存到数据库中ShowAction 类:该类为内部类
35、,是将各功能集成到系统的框中.ShowAction类的构造函数提供了一个命名菜单项的方法,主要功能是引入 DepartMentDelete这个类到系统中。通过监听器 ShowActionactionPerformed()方法,系统就应该可以产生期望的动作。监听器 ConfirmAction 和 CancelAction 这两个监听器实现的均是 java.awt.event.ActionListener 接口,系统通过监听器响应用户的保存或者取消操作,调用数据库类 Jdbc 来执行 SQL 存储语句实现与数据库的连接以及对数据库的增加信息操作。19(2)界面设计图 4.2.2.2 增加部门信息界
36、面界面说明:以上文本框都是单行文本框,可以输入部门编号,部门名称,部门电话,当系统监听到文本框中的内容被确定,将会新的部门信息保存到数据库中。(3)核心代码public class DepartmentAdd extends JFramethis.setTitle(“Add a new Department!“);this.setSize(WIDTH,HEIGHT);this.setLayout(null);this.setResizable(false);vDimension scr=Toolkit.getDefaultToolkit().getScreenSize();Dimension
37、frm=this.getSize();this.setLocation(int)(scr.getWidth()-frm.getWidth()/2,(int)(scr.getHeight()-frm.getHeight()/2-50);createAddInterface();20generateDeptNo();initDeptInfo();private void initDeptInfo() dept.setDeptName(“某部门“);dept.setTel(1000000);dept.setEmpNum(0);private void generateDeptNo() ResultS
38、et rs; Jdbc conn=null;int no = 102001;try conn = new Jdbc();rs = conn.executeQuery(“select deptno from department order by deptno“); while(rs.next()if( no = rs.getInt(“deptno“) +no;else break;dept.setDeptNo(no);deptNoText.setText(“ + no); catch (InstantiationException e1) e1.printStackTrace(); catch
39、 (IllegalAccessException e1) e1.printStackTrace(); catch (ClassNotFoundException e1) e1.printStackTrace();21 catch (SQLException e1) e1.printStackTrace(); private void createAddInterface()Container contentPane = getContentPane();JLabel label1 = new JLabel(“部门编号:“);JPanel panel1 = new JPanel();deptNo
40、Text = new JTextField(10);deptNoText.setEditable(false);panel1.add(label1);panel1.add(deptNoText);JLabel label2 = new JLabel(“部门名称“);JPanel panel2 = new JPanel();deptNameText = new JTextField(10);panel2.add(label2);panel2.add(deptNameText);JLabel label3 = new JLabel(“部门电话“);JPanel panel3 = new JPane
41、l();deptTelText = new JTextField(10);panel3.add(label3);panel3.add(deptTelText);confirmButton = new JButton(“保存“);cancelButton = new JButton(“重置“);JPanel panel4 = new JPanel();panel4.add(confirmButton);22panel4.add(cancelButton);confirmButton.addActionListener(new ConfirmAction();cancelButton.addAct
42、ionListener(new CancelAction();panel1.setSize(WIDTH,50);panel1.setLocation(0, 0);panel2.setSize(WIDTH,50);panel2.setLocation(0,50);panel3.setSize(WIDTH,50);panel3.setLocation(0,100);panel4.setSize(WIDTH,50);panel4.setLocation(0,150);contentPane.add(panel1);contentPane.add(panel2);contentPane.add(pan
43、el3);contentPane.add(panel4); private void storeDepartment()int rs;Jdbc conn = null;try conn = new Jdbc();PreparedStatement pstmt = conn.c.prepareStatement(“insert into department values(?,?,?,?)“);pstmt.setInt(1, dept.getDeptNo();pstmt.setString(2, dept.getDeptName();pstmt.setInt(3, dept.getEmpNum(
44、);pstmt.setInt(4, dept.getTel();23rs = pstmt.executeUpdate();if( rs !=0 )JOptionPane.showMessageDialog(null, “保存成功“);this.dispose();else JOptionPane.showMessageDialog(null, “保存失败“);this.dispose();5 测试5.1 部门信息删除和增加模块测试模块采用黑盒测试策略,设计测试用例实例如下:表 5.1.1 测试用例序号 输入数据 预期结果1 从文本框中输入一个要删除的部门号(102005) 正常删除2 从文本框
45、中输入一个要删除的部门号(102007) 异常删除3 在各文本框中输入相应的内容并保存 正常添加4 在部门编号文本框中输入数字并保存 异常添加测试结果如下:图 5.1.1 测试用例 1 输入 图 5.1.2 测试用例 1 结果24图 5.1.3 测试用例 2 输入 图 5.1.4 测试用例 2 输出结果图 5.1.5 测试用例 3 输入 图 5.1.6 测试用例 4 输出结果图 5.1.5 测试用例 4 输入 图 5.1.5 测试用例 4 输出结果 测试结论:该模块功能基本正常,能够接受合法的输入,并能产生相应的输出结果,对于非法的输入,系统采取的策略时忽略非法请求,直到用户输入正确的合25法
46、的数据才给以响应并产生正常的输出.6 课程设计的总结与体会这次课程设计中我负责的是概要设计和详细设计这两个模块。概要设计中包括:系统设计总体思想,系统功能模块设计,系统数据库设计。其中系统设计总体思想主要说明了该系统是主要处理的事务以及系统的各个主要功能以及各功能模块之间的层次关系。系统功能模块主要说明了该系统是的实现各操作的流程。系统数据库设计则主要说明了各业务之间的联系,以及各个实体之间的联系。详细设计这个模块中包括:数据结构设计,程序数据结构设计,模块功能详细设计。数据库表结构设计则主要定义了该系统所需的表格结构。程序数据结构设计则定义了该系统所用到的数据结构。模块功能详细设计则主要用来
47、实现各功能的模块。在这个模块中我们通过类图来实现各类之间的调用关系,设计好操作界面,编写好实现部分模块的功能。而详细设计这个模中,我主要的工作是负责部门管理这个模块功能的设计。在这个模块中,我为部门管理增加了两个功能:一个部门信息的增加,另一个是部门信息的删除。这两个操作主要是通过菜单操作实现的。如要删除某个部门信息则在部门菜单上选择删除菜单项,在弹会的对话框中输入要删除的部门号再单击确定即可实现删除操作。通过次课程设计使我明白了合作的重要性,分工明确,培养了我良好的团队合作精神。同时我也掌握了软件开发的具体流程以及开发方式。26参考文献1任胜兵、邢琳软件工程M北京:北京邮电大学出版社2006:762442Shari Lawrence Pfleeger 、Joanne M.Atlee.软件工程理论与实践(第三版影印版). 北京:高等教育出版社2008.5:141209,337-362.3阎菲.Java 程序设计教程.北京:中国水利水电出版社.2004:154-233.4Harvey M.Deitel Paul J.Deitel.Java 程序设计教程.北京:机械工业出版社.2006.1.5孙风栋 等.Oracle 数据库基础教程.北京:电子工业出社.2008.6:276-358.致谢在这里我要特别感谢我们的指导老师姚老师和组长王培同学,谢谢他们不厌其烦的帮助我。