资源描述
软件综合课程设计汇报
题目名称: 在线职员信息管理
班 级: 计081-3
学生学号: 25501322
学生姓名: 王绍辉
指导老师: 毕远伟老师
程序成绩: 汇报成绩:
总 成 绩: 优 良 中 及格 不及格
/2/20
1 序言
职员信息管理作为企业管理一个关键方面,起可变原因多,管理方面繁琐复杂,时间跨度大。而人工管理方法处理这么大量信息数据,不可避免增加管理工作量和复杂程度,是管理人职员作繁杂,负担重,压力大。
1.1项目描述:
该项目步骤按系统架构、需求分析、数据库设计、编码、测试步骤进行,该项目关键实现了对职员管理和职员信息查询管理,用servlet控制整个系统转向。支持职员及其相关信息录入、增添、删除、查看。能实时管理和查询职员所关心内容,方便管理和查询。
1.2开发工具:
windows7 + myeclips8.5.01 + mysql5.5 + tomcat-6.0.35
1.3开发语言:
该项目标开发利用了java语言。
Java语言是一个支持网络计算面向对象程序设计语言。Java语言吸收了Smalltalk语言和C++语言优点,并增加了其它特征,如支持并发程序设计、网络通信、和多媒体数据控制等。
Java技术
Java是由Sun Microsystems企业于1995年5月推出Java程序设计语言(以下简称Java语言)和Java平台总称。用Java实现HotJava浏览器(支持Java applet)显示了Java魅力:跨平台、动感web,internate计算。以后,Java被广泛接收并推进了Web快速发展,常见浏览器现在均支持Java applet。其次,Java技术也不停更新。
Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)组成。Java 应用编程接口为Java应用提供了一个独立于操作系统标准接口,可分为基础部分和扩展部分。在硬件或操作系统平台上安装一个Java平台以后,Java应用程序就可运行。现在Java平台已经嵌入了几乎全部操作系统。这么Java程序能够只编译一次,就能够在多种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。现在常见Java平台基于Java1.4,最近版本为Java1.6。
Java分为三个体系JavaSE,JavaEE,JavaME。
2 需求分析
一个正规企业会很关注职员信息管理,这对企业来说能有条不紊运行,对职员来说能让职员立即正确了解自己情况是很关键。同时,面对多种不一样信息,需要合理数据库结构来保留数据信息和有序合理程序结构来支持多种数据实施,使得程序趋近于完美。
3 系统分析和设计
3.1.1功效描述
系统开发总体任务是实现多种信息系统化、规范化和自动化。系统功效分析是在系统开发总体任务基础上完成。本例中在线职员管理系统需要完成功效关键是:
管理员:
1. 职员信息添加
2. 职员信息查看
3. 职员信息删除
4. 职员信息修改
一般职员:
1. 职员信息查看
2. 自己领导
领导:
1. 经理管理人员数
2. 经理信息查看
数据输入是否正确是数据处理前提,错误输入会造成系统输出 不正确和不可用,从而使系统工作失去意义。数据输入起源是手工输入。手工输入要经过系统界面上安排系统含有容错性,而且对操作人员要进行系统培训。在系统中,数据输入往往是大量,所以系统要有一定处理能力,以确保快速处理数据。
3.1.2数据完整性和实时性
因为确保程序正常实施,所以要对数据输入时,要为其定义完整性规则,假如不能符合完整性约束,系统应该拒绝该数据。从而避免系统输入不规范。
同时对于管理者,能立即修改职员信息和录入。对于职员,当自己信息被修改时候能立即了解,并给予反馈。从而能快速而有效进行管理。
数据共享和独立性
从系统开发角度上看,共享会给设计和调试带来困难。所以,应该提供灵活配置,使各个分系统能够独立运行,而经过人工干预手段进行系统数据交换。这么,也能提供系统强壮性。
3.2系统步骤图
用户需求具体表现在多种信息提供、保留、更新和查询,这就要求数据库结构能充足满足多种信息输出和输入。搜集基础数据、数据结构和数据处理步骤,组成一份详尽数据字典,为后面具体设计打下基础。
结 束
管理员
对职员信息数据操作(增删改查)
员 工 信 息 看
领导
一般职员
登 陆
管理员登陆?
一般职员
开 始
仔细分析调查相关在线职员管理信息需求基础上,将得到以下图所表示本系统所处理数据步骤。
N
Y
图1 系统步骤图
3.3数据库设计
3.3.1 E-R图设计
一个好E-R图设计对数据结构设计很关键,ER图提供了表示实体(即数据对象)、属性和联络方法,用来描述现实世界概念模型。此系统E-R图以下所表示:
姓名
编号
编号
属于
管理员
用 户
权限
姓名
管理
属于
权限
员 工
编号
姓名
年纪
工资
图1 职员信息E-R图
3.1.1.2逻辑设计
依据E-R图和相关要求,把ER模型图转换为关系表,进行数据模型转换,得到一下表:
用户:姓名(name),编号(id),权限(limit)
职员表:编号(id),姓名(name),年纪(age),工龄(workage);
工资表:本月工资(nowsalary) 上月工资(lastsalary) 编号(id)
3.3.2 数据库结构描述
良好数据库结构,能够方面程序设计,依据将E-R图进行模型转换后得到结果,进行数据库结构设计,以下表:
职员信息表:
列名
数据类型
可否为空
说明
id
bigint
否
Key键,职员编号
name
varchar
否
职员名字
age
int
否
职员年纪
workage
int
否
职员工龄
职员工资表:
列名
数据类型
可否为空
说明
id
bigint
否
职员编号
lastSalary
double
否
职员上月工资
nowsalary
double
否
职员现在工资
用户表:
列名
数据类型
可否为空
说明
id
bigint
否
编号
name
Varchar
否
用户名称
limit
int
否
对职员信息管理
3.3.3设计和实现
⑴表设计:
用户(编号+姓名+权限)
职员(编号+姓名+年纪+工龄)
工资(id+上月工资+本月工资)
⑵ 存放过程设计:
依据职员编号id来进行管理。管理员对职员增添、删除、查看、修改,进行多种操作,使得更方面管理数据,同时增加程序可读性。
职员能够查看自己信息,假如犯错并能反馈给管理员。
4 系统实现
4.1 模块实现
该系统共分为3大模块:数据库创建于连接、页面制作和内部实现方法。这3大模块之间相互关联,一次在编写时候一定要注意格式规范化和相互之间数据共享交流。
数据库创建和连接模块:
职员信息模块:
此为在数据库中职员信息存放方法,
create table employee_c(
id bigint primary key,
//职员编号
name varchar(15),
//职员姓名
salary double,
//职员工资
workage int(4)
//职员年纪
)DEFAULT CHARSET='gbk';
//能够实现汉字输入
数据库连接模块:
当数据库创建成功以后,要实现和数据库之间链接,这需要利用了java发射机中forName()函数来加载jdbc驱动,同时在连接数据库时候要检测连接是否成功,假如不成功要进行对应异常捕捉,并进行处理。
数据库连接:
Connection conn=null;
//定义一个Connection型对象,用来判定加载是否jdbc是否成功
try {
Class.forName("com.mysql.jdbc.Driver");
//加载jdbc驱动,利用java发射机中方法forName()进行加载
conn=DriverManager.getConnection ("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8","root","mysql");
//连接数据库
} catch (Exception e) {
e.printStackTrace();
}
//假如连接不成功,要捕捉异常,同时打印出异常。
等,具体情况请看源码。
5总结和感想
刚开始做课程时,在外全天学习日语,只能晚上回到宿舍以后自己看书、问同学来做,因为没网所以只能自己琢磨做。刚开始很辛劳,不过苦中有乐,慢慢有了思绪和想法,即使这个系统简单,不过能做出来心里还是挺快乐。在开发这套系统时,java web并不是很熟练,只能照着书上例子慢慢练习,在有不懂问题就上网去查找,经过不停练习最终掌握了,就开始开发这套系统,其中碰到了很多问题,也问询别同学或老师,掌握了很多窍门。
数据库那部分,又重新看了遍数据库,又复习并学到了很多有用东西。刚开始配置tomcat时候看书按着做,自己配置出现了错误,只能问同学,慢慢最终做好了。原来软件工程这可一知半解,在这次课程设计对很多苦涩东西有了深层次了了解,感谢老师,感谢这次课程设计。我采取时页面传输pageId和ActionId方法在Servlet中进行控制(读取xml配置文件)调用哪一个action.java类,action调用logic类中业务逻辑类,业务逻辑类经过类似spring技术,即实现一个DatabaseFactory类,依据不一样业务逻辑,调用相对应数据库接口.经过编写航空订票系统发觉如此庞大系统只靠我们现在所拥有知识是极难完成,在编写过程中发觉自己有很多,在SQL语句使用方法中有很多不足,不过在老师和同学帮助下慢慢填补自己在知识上漏洞,在数学算法上了解了部分算法,在编写过程中了解到不能根据自己算法来实现全部存放过程,因为电脑资源是有限,意识道自己想法是有一定不足,经过这次试验学到了团体合作关键性和SQL语言知识。
经过这次课设,我总结以下
1、 重视理论知识和动手能力相辅相成。平时要多动脑和多动手,多上机操作实践。
2、 平时多浏览资料。我们所学专业知识更新很快,这就要求我们能和时俱进,图书馆里有大量参考书,另外网上有着更多、更新知识宝库。假如能很好利用这两点,对自己进步会有很大帮助
3、 虚心请教,当碰到不懂问题自己想了很多措施却无法处理时,能够请教部分其它同学或老师,这能够很快处理问题。
在这次课设中,提升和完善所学知识同时也体会到了团体精神力量,收获丰富,受益良多;从中学到知识和吸收经验教训将会使我知识很好加深。没有课设,我们就不可能真正学好、掌握知识。语言并不关键毕竟它仅仅是工具,用好一个工具并不是一件值得为外人道事情,关键是了解学习思想。古语说好:学无止境啊!以后我将愈加努努力争取取取得愈加好成绩。
我很庆幸在老师和同学帮助下我顺利地完成了这次数据库课程设计。在这里,我向给我很多帮助老师、同学真诚说声:“谢谢你们!”。
参考文件
[1] 沈应奎 曾玲.java web 数据库系统应用开发和实例:北京.人民邮电出版社 .2
[2] 王珊等.数据库系统概论(第四版).北京:高等教育出版社,.6
部分代码和样式:
主页:
<body>
<div id="wrap">
<div id="top_content">
<%@ include file="header.jsp"%>
<div id="content">
<p id="whereami">
</p>
<h1>
欢迎!
</h1>
<table class="table" width="770" height="62">
<tr class="table_header">
<td>
编号
</td>
<td>
姓名
</td>
<td>
薪水
</td>
<td>
年纪
</td>
<td>
操作
</td>
</tr>
<%--
List<Employee> employees = (List<Employee>)request.getAttribute("employees");
for(int i=0;i<employees.size();i++){
Employee e = employees.get(i);
--%>
<c:forEach var="e" items="${employees}" varStatus="status">
<tr class="row${status.index%2 + 1} <%--=(i%2 + 1)--%>">
<td>
${e.id} <%--= e.getId() --%>
</td>
<td>
<a href="view.do?id=${e.id} <%--= e.getId() --%>">${e.name} <%--= e.getName() --%></a>
</td>
<td>
${e.salary} <%--= e.getSalary() --%>
</td>
<td>
${e.age} <%--= e.getAge() --%>
</td>
<td>
<a href="view.do?id=${e.id} <%--= e.getId() --%>">查看</a>
<a href="del.do?id=${e.id} <%--= e.getId() --%>" onclick="return confirm('确定删除吗?');">删除</a>
<a href="load.do?id=${e.id} <%--= e.getId() --%>">修改</a>
</td>
</tr>
</c:forEach>
<%--
}
--%>
</table>
<p>
<input type="button" class="button" value="添加组员 "
onclick="location='addEmp.jsp'" />
</p>
</div>
</div>
<%@ include file="footer.jsp"%>
</div>
</body>
</html>
界面图:
图1 职员显示图
展开阅读全文