软件工程课程设计报告Word格式文档下载.docx

上传人:b****5 文档编号:20336636 上传时间:2023-01-22 格式:DOCX 页数:21 大小:369KB
下载 相关 举报
软件工程课程设计报告Word格式文档下载.docx_第1页
第1页 / 共21页
软件工程课程设计报告Word格式文档下载.docx_第2页
第2页 / 共21页
软件工程课程设计报告Word格式文档下载.docx_第3页
第3页 / 共21页
软件工程课程设计报告Word格式文档下载.docx_第4页
第4页 / 共21页
软件工程课程设计报告Word格式文档下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

软件工程课程设计报告Word格式文档下载.docx

《软件工程课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计报告Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。

软件工程课程设计报告Word格式文档下载.docx

项目目标:

对单位的人事情况进行管理,完成新职工的登记、职工信息的维护、调离和退休情况的登记,并能按指定的要求完成查询、统计、排序等功能。

项目规模:

1000行代码左右

初步设想:

用Java语言编写一个简单的能达成项目目标的人事档案管理系统

可行性研究:

如下

2可行性研究

2.1系统流程图

图2-1人事档案管理系统流程图

2.2高层数据流图

图2-2人事档案管理系统数据流图

2.3可行性分析

2.3.1技术可行性

要求和目标:

本系统要求对单位的人事情况进行管理,完成新职工的登记、职工信息的维护、调离和退休情况的登记,并能按指定的要求完成查询、统计、排序等功能。

可能实现的方法:

本组准备采用java语言编写程序界面和数据处理部分,使用java链接数据库,用数据库完成人员信息的保存,修改。

用SQL语言完成对数据库中的内容进行查询排序等功能。

2.3.2操作可行性

本系统采用图形界面,有良好的中文提示和界面提示。

能保证用户能够正常使用该系统完成需求的功能。

2.3.3经济可行性

本系统为课程设计,不产生经济效益,故暂不考虑经济可行性

2.4开发计划

人事档案管理系统的粗略计划

阶段

要用的时间(天)

可行性研究

1

需求分析

3

概要设计

2

详细设计

实现

总计

10

3需求分析

3.1ER图

图3-1员工对象ER图

3.2细化的数据流图

图3-2细化的数据流图

3.3数据字典

名称:

员工信息

别名:

员工

描述:

员工的各项基本信息

定义:

员工信息=员工编号+姓名+所在部门+性别+年龄

+工资+是否退休+工龄

员工编号=4{数字}4

姓名=1{字符}4

所在部门=1{字符}10

性别=[男|女]

年龄=1{数字}2

工资=1{数字}10

是否退休=[是|否]

工龄=1{数字}2

数字=[0|1|2|3|4|5|6|7|8|9]

位置:

员工信息数据库,输出到程序界面

3.4状态转换图

图3-4人事档案管理系统状态转换图

4概要设计

4.1系统层次图

图4-1系统层次图

4.2IPO表

IPO表

系统:

模块:

修改员工信息

编号:

1.2

作者:

任毅

日期:

2011.7.7

被调用:

信息维护1.0

调用:

输入:

员工编号X

新员工信息Y

输出:

新员工信息

处理:

IFX存在;

THEN{删除编号为X的员工信息;

添加新员工信息Y,该员工编号为X;

局部数据元素:

注释:

图4-2

(1)修改员工信息模块的IPO表

 

显示员工信息

2.1

信息查询2.0

员工信息表

显示全部员工信息

图4-2

(2)显示员工信息模块的IPO表

4.3数据库设计

此系统中为员工信息涉及一个名为person的数据库,数据库中包含一个名为person的表。

Person表含有8个字段,用来保存员工的各项信息。

分别为:

pID,员工编号

pname,姓名

psex,性别

pdept,所在部门

pwages,工资

pretire,是否退休

pworkyear,工龄

表设计如图:

图4-3数据库表设计

5详细设计

5.1人机界面设计

图5-1

(1)编辑员工信息模块界面图

图5-1

(2)显示员工信息模块界面图

5.2过程设计

图5-2

(1)修改员工信息模块的N-S图

图5-2

(2)显示员工信息模块的N-S图

5.2.1修改员工信息模块代码

importjava.awt.GridLayout;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.ResultSet;

importjava.sql.Statement;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JOptionPane;

importjavax.swing.JTextField;

publicclassEditpersonextendsJFrameimplementsActionListener{

**

*

*

privatestaticfinallongserialVersionUID=1L;

privateJLabelLID=newJLabel("

员工编号"

);

privateJTextFieldTID=newJTextField();

privateJLabelLname=newJLabel("

姓名"

privateJTextFieldTname=newJTextField();

privateJLabelLsex=newJLabel("

性别"

privateJTextFieldTsex=newJTextField();

privateJLabelLage=newJLabel("

年龄"

privateJTextFieldTage=newJTextField();

privateJLabelLdept=newJLabel("

所在部门"

privateJTextFieldTdept=newJTextField();

privateJLabelLwages=newJLabel("

工资"

privateJTextFieldTwages=newJTextField();

privateJLabelLretire=newJLabel("

是否退休"

privateJTextFieldTretire=newJTextField();

privateJLabelLworkyears=newJLabel("

工龄"

privateJTextFieldTworkyears=newJTextField();

privateJButtonBque=newJButton("

查询"

privateJButtonBedi=newJButton("

编辑"

Stringsql="

"

;

publicEditperson(){

super("

编辑员工信息"

this.setSize();

this.setDefaultCloseOperation(HIDE_ON_CLOSE);

this.setVisible(true);

this.setLayout(newGridLayout(9,2));

this.add(LID);

this.add(TID);

this.add(Lname);

this.add(Tname);

this.add(Lsex);

this.add(Tsex);

this.add(Lage);

this.add(Tage);

this.add(Ldept);

this.add(Tdept);

this.add(Lwages);

this.add(Twages);

this.add(Lretire);

this.add(Tretire);

this.add(Lworkyears);

this.add(Tworkyears);

this.add(Bque);

this.add(Bedi);

Bque.addActionListener(this);

Bedi.addActionListener(this);

}

@Override

publicvoidactionPerformed(ActionEvente){

TODOAuto-generatedmethodstub

if(e.getSource()==Bque)

{

StringID=TID.getText();

sql="

SELECT*FROMpersonWHEREpID='

+ID+"

'

try{

Class.forName("

sun.jdbc.odbc.JdbcOdbcDriver"

catch(ClassNotFoundExceptiona){

JOptionPane.showMessageDialog(null,"

lianjieshibai"

}

Connectioncon;

con=DriverManager.getConnection("

jdbc:

odbc:

person1"

"

Statementsta=con.createStatement();

ResultSetrs=sta.executeQuery(sql);

if(rs.next())

{

Stringname=rs.getString("

pname"

Stringsex=rs.getString("

psex"

Stringage=rs.getString("

page"

Stringdept=rs.getString("

pdept"

Stringwages=rs.getString("

pwages"

Stringretire=rs.getString("

pretire"

Stringworkyears=rs.getString("

pworkyear"

Tname.setText(name);

Tsex.setText(sex);

Tage.setText(age);

Tdept.setText(dept);

Twages.setText(wages);

Tretire.setText(retire);

Tworkyears.setText(workyears);

else

JOptionPane.showMessageDialog(null,"

失败"

}

catch(Exceptionee){JOptionPane.showMessageDialog(null,"

jfkdalgj"

};

}

if(e.getSource()==Bedi)

Stringname=Tname.getText();

Stringsex=Tsex.getText();

Stringage=Tage.getText();

Stringdept=Tdept.getText();

Stringwages=Twages.getText();

Stringretire=Tretire.getText();

Stringworkyears=Tworkyears.getText();

delete*frompersonwherepID='

inti=sta.executeUpdate(sql);

if(i>

0){

sql="

INSERTINTOpersonVALUES('

'

+name+"

+sex+"

+age+"

+dept+"

+wages+"

+retire+"

+workyears+"

)"

sta.executeUpdate(sql);

更新成功"

更新失败"

publicstaticvoidmain(String[]args){

newEditperson();

}

5.2.2显示员工信息模块代码

importjavax.swing.JTextArea;

publicclassAllinfoextendsJFrame{

privateJTextAreainfo=newJTextArea();

publicAllinfo(){

员工信息"

this.setLayout(newGridLayout(1,1));

this.add(info);

sql="

select*fromperson"

try{

Class.forName("

catch(ClassNotFoundExceptiona){

JOptionPane.showMessageDialog(null,"

Connectioncon;

con=DriverManager.getConnection("

Statementsta=con.createStatement();

ResultSetrs=sta.executeQuery(sql);

Stringtext="

ID\t姓名\t性别\t年龄\t所在部门\t工资\t是否退休\t工龄"

text+="

\n"

info.append(text);

while(rs.next()){

info.append(rs.getString("

pID"

)+"

\t"

catch(Exceptionee){JOptionPane.showMessageDialog(null,"

6测试报告

6.1修改员工信息模块

设定原数据库中含有如下图的员工信息:

图6-1

(1)数据库中原有信息

输入一个不存在的员工编号进行查询,显示查询失败:

图6-1

(2)输入错误员工号的结果

按下图所示修改存在的编号为0003的员工信息:

图6-1(3)修改员工信息

观察数据库,修改员工信息成功

图6-1(4)成功修改员工信息

6.2显示员工信息模块

能成功显示员工信息

图6-2显示员工信息

7总结

本系统基本能够完成需求分析中要求的各项功能,既能够对员工信息进行添加,编辑,、删除操作,能够查看员工信息,能够编号、年龄、工资、工龄四个条件对员工信息进行排序查看。

本系统还有很多能够改进之处。

比如本系统数据库中只设计了一个表用来存储员工信息,我设想还可以再设计一个部门信息的表,与员工信息表连接。

这样做能够更加完善系统结构,使系统更加实用。

而且,本系统还可以增加按性别,部门等条件查看员工信息的功能(比如查看开发部的所有员工)。

总之,虽然程序还有很多不足。

但是经过这次课程设计,我还是有很多收获。

在这次课程设计中,我第一次用java进行连接数据库操作,并且第一次设计比较复杂的程序界面。

使我对数据库的重要性和易用性有了更深的理解。

参考文献

[1]张海藩编著.软件工程导论(第5版).北京:

清华大学出版社,2008

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1