wang软件综合课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件综合课程设计报告
题目名称:在线员工信息管理
班级: ___________ 计081-3 _________
学生学号:2
学生姓名: _________ 王绍辉____________
指导老师:毕远伟老师__________
程序成绩: _______ 报告成绩:__________
总成绩:优良中及格不及格
2012/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 Programmi ng In terface 、简称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系统流程图
用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。
收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
仔细分析调查有关在线员工管理信息需求的基础上,将得到如下图所示的本系统所处理的数据流程。
3.3数据库设计
331 E-R图设计
一个好的的E-R图设计对数据结构的设计很重要,ER图提供了表示实体(即数据
3.1.1.2逻辑设计
根据E-R图和相关要求,把ER模型图转换为关系表,进行数据模型转换, 得到的一下表:
用户:姓名(name,编号(id),权限(limit )
员工表:编号(id),姓名(n ame ,年龄(age),工龄(workage);
工资表:本月工资(nowsalary )上月工资(lastsalary )编号(id )
3.3.2数据库结构描述
良好的数据库结构,能够方面程序的设计,根据将E-R图进行模型转换后得到的结果,进行数据库结构的设计,如下表:
员工信息表:
员工工资表:
用户表:
333设计与实现
⑴表的设计:
用户(编号+姓名+ 权限)
员工(编号+姓名+年龄+工龄)
工资(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 驱动,同时在连接数据库的时候要检测连接是否成功,如果不成功要进行相应的异常捕获,并进行处理。
数据库的连接:
Conn ecti on conn= n ull ;
/ /定义一个Conn ection 型的对象,用来判断加载是否jdbc是否成功
try {
Class. forName ( "com.mysql.jdbc.Driver" );
//加载jdbc驱动,利用java发射机中的方法forName() 进行加载
conn=DriverMa nager. getC onnection
("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEn coding=utf8" , "root" , "mysql");
//连接数据库
} catch (Exception e) {
e.pri ntStackTrace();
}
//如果连接不成功,要捕获异常,同时打印出异常。
等,具体情况请看源码。
5总结与感想
刚开始做课程时,在外全天学习日语,只能晚上回到宿舍之后自己看书、问同学来做,
因为没网所以只能自己琢磨的做。
刚开始很辛苦,不过苦中有乐,慢慢的有了思路和想法,虽然这个系统简单,但是能做出来心里还是挺高兴的。
在开发这套系统时,java web并不
是很熟练,只能照着书上的例子慢慢的练习,在有不懂的问题就上网去查找,通过不断的练
习终于掌握了,就开始开发这套系统,其中碰到了许多问题,也询问别的同学或老师,掌握
了许多窍门。
数据库那部分,又重新看了遍数据库,又复习并学到了很多有用的东西。
刚开始配置tomcat的时候看书按着做,自己配置出现了错误,只能问同学,慢慢的终于做好了。
本来软件工程这可一知半解,在这次的课程设计对很多苦涩的东西有了深层次了理解,感谢老师,
感谢这次课程设计。
我采用的时页面传递pageld 和Actionld 的方式在Servlet 中进
行控制(读取xml的配置文件)调用哪一个action.java 类‘action 调用logic 类中的
业务逻辑类,业务逻辑类通过类似spring 的技术,即实现一个DatabaseFactory 的类,根据不同的业务逻辑,调用相对应的数据库接口.经过编写航空订票系统发现如此庞大的系
统只靠我们现在所拥有的知识是很难完成的,在编写的过程中发现自己的有很多,在SQL
语句的使用方法中有很多的不足,但是在老师和同学的帮助下慢慢的填补自己在知识上的漏
洞,在数学算法上了解了一些算法,在编写的过程中了解到不能按照自己的算法来实现所有
的存储过程,因为电脑的资源是有限的,意识道自己的想法是有一定的局限性的,通过这次
试验学到了团队合作的重要性以及SQL语言的知识。
经过这次课设,我总结如下
1、注重理论知识和动手能力的相辅相成。
平时要多动脑和多动手,多上机操作实践。
2、平时多浏览资料。
我们所学的专业知识更新很快,这就要求我们能与时俱进,图书馆
里有大量的参考书,另外网上有着更多、更新的知识宝库。
如果能很好的利用这两点,对自
己的进步会有很大的帮助
3、虚心请教,当遇到不懂的问题自己想了很多办法却无法解决时,可以请教一些其他的同学或老师,这可以很快的解决问题。
在这次课设中,提高和完善所学知识的同时也体会到了团队精神的力量,收获丰富,受益良多;从中学到的知识和吸取的经验教训将会使我的知识很好的加深。
没有课设,我们就
不可能真正的学好、掌握知识。
语言并不重要毕竟它仅仅是工具,用好一个工具并不是一件
值得为外人道的事情,主要是了解学习思想。
古语说的好:学无止境啊!以后我将更加努力
争取取得更好的成绩。
我很庆幸在老师和同学的帮助下我顺利地完成了这次数据库课程设计。
在这里,我向给
予我许多帮助的老师、同学真诚的说声:“谢谢你们!”
参考文献
[1] 沈应奎曾玲.java web数据库系统应用开发与实例:北京.人民邮电出版社2008.2
[2] 王珊等.数据库系统概论(第四版).北京:高等教育出版社,2006.6
部分代码和样式:
主页:
<body >
<div id ="wrap" >
<div id ="top_c onten t"
> <%@i nclude file ="header.jsp" %>
<div id ="c onten t"
>
<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(i nt i=0;i<employees.size();i++){ Employee e =
employees.get(i); --%>
${e.salary} <%--= e.getSalary() --%>
</ td > <td >
${e.age} <%--= e.getAge() --%> </ td > <td >
<a
href ="view.do?id=
${e.id}
<%--=
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} <%--=
<c:forEach
var ="e" items ="${employees}"
e.getId() --%>
</ a>
">${}
<%--= e.getName() --%> </ td > <td >
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员工显示图。