资源描述
中原工学院软件学院
软件工程实践一设计任务书
姓名
***
软件工程 专业 JAVA123 班
题目
学生请假管理系统的开发
设
计
任
务
开发一个基于Web的学生请假管理系统,包括教师端和学生端.主要功能包括:
1. UI设计:界面(参与)
2. 学生端:请假申请、销假申请、查询自己请假记录;(独立完成)
3。 教师端:请假审批、销假审批、查询学生请假记录;(参与)
开发工具:Java、JSP、MySQL、Photoshop、MyEclipse8。6
时
间
进
度
第1周(9-9~9—13):完成需求分析、UI设计
第2周(9-16~9-21):完成代码
第3周(9—24~9—29):完成报告
原主
始要
资参
料考
与文
献
[01]http://www.w3school。
[02]叶和亚.陈立。java2程序设计实用教程例[M]北京:电子工业出版社。 2003。5
[03]李兆峰。庞永庆。java程序设计与项目实践[M]北京:电子工业出版社。2011.6
指导教师签字: 年 月 日
学生请假管理系统
摘 要
当前信息化时代,讲究高效,准确,及时的完成事情,近年来学校都在开展信息化部署,实现了多媒体教学,网上提交作业,在线考试等学生考勤对学校教务管理是至关重要,在以前,学生请假要去找班主任或者领导批准,并且不一定每次都能顺利的找到班主任,完成请假批准。如果学生不在学校,没办法向班主任提交请假单;对于学生出勤检查,是学生会根据纸制名单逐一点名,或老师根据学生上交课堂作业来判断学生是否来上课。这些方法往往具有考勤差错率比较高,考勤效率也比较慢,没有一个总体的的记录和整理,并且纸制的点名册容易丢失遗漏,耽误时间等缺点。针对以上的问题,开发一种针对学生请假的考勤网上管理系统,通过请假管理系统,任课老师可以在课堂上直接登录考勤记录网站进行课堂查看哪些学生请假,记录学生考勤情况等。此外,在其他时间,班主任以及其他老师也可以登录该网站查询学生在某课程的出勤情况。
该系统是基于Java web的简单型设计,它体现了对一些简单的JSP标签语言的运用,该系统界面简单、操作方便.根据实际需要将系统分为学生端和教师端,学生请假和教师批假都需要首先登录,学生端实现了学生申请请假、申请销假、查询自己请假记录功能;教师端实现了教师对学生请假的批准、销假批准以及查询学生的请假记录功能。
关键词: 学生; 请假管理; Java Web
目 录
摘要2
第1章项目分析1
1。1 问题描述1
1。2技术分析1
1。3工程进度计划2
第2章系统分析与设计3
2.1 系统分析3
2。1.1 参与者3
2。1.2 用例图3
2.1。3 用例及用例规约4
2。1。3。1 UC—001 登录4
2.1 .3.2 UC—002 申请请假5
2.1.3。3 UC—003 申请销假6
2。1.3.4 UC-004 查询请假记录7
2。2 系统设计7
2。2。1顺序图8
2。2。2类图11
2。2。3系统体系结构设计11
2。2.4 设计时序图12
图 2.10 学生销假申请设计时序图14
2。3 数据库设计14
2。3。1E—R图15
2。3.2关系模式16
2。3.3表的设计16
第3章实现与测试19
3.1 请假申请功能20
3.1.1活动图21
3。1。2界面21
3。1。3代码21
3.1.4测试用例22
3。2销假申请功能22
3。2.1活动图22
3。2。2界面22
3。2。3代码22
3。2。4测试用例22
3。3请假记录查询22
3.3。1活动图23
3。3。2界面23
3。3。3代码23
3。3。4测试用例23
3。4登录功能23
3。4.1活动图23
3。4。2界面23
3。4。3代码24
3。5。4测试用例24
第4章结束语25
附录A: 附加图、表29
附录B: 主要源程序29
xxx:学生请假系统管理
第1章 项目分析
随着计算机的发展与不断进步,各个领域都出现了新的技术,曾经各种规模之间的竞争已经发展成为技术之间的竞争,管理和人才之间的竞争,然而计算机技术的发展也离不开软件的更新,在软件不断更新和替换的过程中已经渗透到各个领域,政府机关,各大高校等都不断向智能方向发展,学生请假也成为一件棘手的事情,为了请假学生需要写请假条找老师批准,结果是这个时候老师不一定在,另外学生需要请假时不一定在学校,所以为了给广大师生提供方便,我们需要开发软件系统学生请假管理系统。
1。1 问题描述
要完成这个系统最大的问题就是所学知识是有限的,在完成其中某些功能时候所需要的可能就完全没有接触过,所以只能用一些简单的功能代替或者替换掉那些用目前的水平所不能实现的功能,再者就是对目前所需求的不是很明确,比如要做出一个请假管理如何去设置友好界面让大家都喜欢适应去使用,如何把系统做到什么程度才能够投入使用,这些都是所面临的棘手问题。
1。2技术分析
该系统用到MVC设计模式,总共建立了五个包,界面View、数据对象DO、数据库连接DB、数据库操作DAO、控制层Control、业务层BO;DO层是对数据对象的封装,DB层是连接数据库,DAO层是包含对数据标的基本操作,BO层是所有和业务相关的关于对数据的判断等,调用的是DAO层然后返回一个结果,Control层是为了获取用户参数并封装,同时调用BO层,再根据调用得到的不同的结果在调用不同的View层,将处理结果显示给用户.
图1.1 包图
1。3工程进度计划
实际开发过程中,开发周期可以分为三个阶段:
第一阶段:
成果:(1)需求分析(2)对数据库进行设计
目标:设计出适合学生请假管理系统的数据库;完成数据库的连接
时间:一周
第二阶段:
成果:完成JSP页面和系统代码
目标:能在编译器中有效正确运行。
时间:一周
第三阶段:
成果:写报告;
目标:完成系统报告.
时间:一周
第2章 系统分析与设计
学生请假管理系统必须通过正确的用户名的密码方能进入系统,系统分为两大模块,学生端和教师端,学生端和教师端分别有三个模块,学生端分为请假申请、销假申请、个人请假记录查询,教师端分为请假审批、销假审批和学生请假记录查询;学生提交的请假申请需要教师的审批,只有批准之后学生方可提出销假申请。
2.1 系统分析
该系统有两个参与者,分别为学生和教师,学生请假需首先得到教师的批准方可奏效,学生与教师都需使用自己的工号作为用户名和密码进行登录。
2.1.1 参与者
学生、教师
2。1.2 用例图
图2。1 用例图
2。1.3 用例及用例规约
请假管理系统学生端共包含1个参与者、4个用例.
用例的编号及名称如表1所示:
表2。1用例列表
用例编号
用例名称
参与者
UC—001
登录
学生
UC—002
申请请假
学生
UC—003
申请销假
学生
UC—004
查询请假记录
学生
2.1。3。1UC—001登录
参与者学生需要用户名和密码登录到系统,才能进行相应的操作,系统中设置学生的登录用户名为学号,初始化密码为学号.
表2。2
功能编号
UC—001
功能名称
登录
前置条件
参与者通过浏览器打开请假管理系统的登录页面
基本事件流
1. 系统要求参与者填写用户名和密码。
2. 参与者填写相应信息,学生输入学号作为用户名,密码初始值为学号。
3. 系统验证用户输入信息是否正确
备选流
1。用户名和密码输入错误
如果系统检测到用户输入的用户名和密码与数据库中不一致,给予用户“用户名和密码不正确"的错误提示,并要求用户重新输入。
后置条件
如果用例成功,系统进入相应权限页面
界面原型
参与者
学生
2。1。3。2 UC—002申请请假
该用例的主要参与者为学生,学生通过系统填写请假申请单,请假申请单将会提交给辅导员审批。
表2。3
功能编号
UC—002
功能名称
申请请假
用例描述
学生创建新的请假申请单,录入请假资料,创建一个请假申请流程
前置条件
学生正常登录到系统中,并打开请假管理页面
基本事件流
1、 学生选择创建请假申请单,系统自动查询当前的学生是否存在没有销假的记录,如果存在没有销假的请假记录,执行异常流1。1,如果不存在未销假记录,执行基本事件流2
2、 系统展示申请单录入界面
3、 学生录入学生学号、姓名、请假事由(原因、去向),开始时间、结束时间,联系方式(个人联系方式、家长联系方式)
4、 学生提交申请单,系统进行数据校验,依据业务规则C,如果数据校验不合法,执行分支流4。1,如果数据校验合法,执行基本事件流5
5、 系统为当前的请假申请单生成唯一的编号,保存该请假申请单
6、 将该流程推进到下一环节系统应该向学生展现请假申请单的最终页面,用例结束
分支流
4。1请假信息填写有误,显示填写不正确的信息提示,并要求学生重新填写,显示填写请假申请单的页面.
异常流
1。1系统显示学生没有销假的记录详情
1。1学生确认自己的请假记录是否属实,用例终止
后置条件
1、 系统将保存该条请假记录.
2、 创建新的请假单并生成唯一的申请编号
3、 创建新的请假申请流程实例
4、 记录提交后不能够再修改
界面原型
无
业务规则
A、 包括学生姓名、辅导员姓名、请假开始时间(必须选择当天及当天之后的时间)、请假结束时间(大于请假开始时间),请假理由,家长联系电话
B、 系统首先判断是否存在没有销假的记录,存在的话,将该记录显示给当前学生学生进行确认,如果确认是没有销假,学生继续执行销假流程,否则,辅导员进行异常处理
C、 学生姓名、辅导员姓名、请假开始时间(必须选择当天及当天之后的时间)、请假结束时间(大于请假开始时间),请假理由,家长联系电话信息为必填,不能为空.联系方式是否合法,请假开始时间是否在请假结束时间之前。
执行者
学生
涉及的实体
1、 学生
属性:学号、姓名、班级、性别、联系方式、宿舍、标志变量(tag=1)
2、 请假申请单
属性:学生(学号、姓名),请假事由(原因、去向),开始时间、结束时间,联系方式(个人联系方式、家长联系方式)、操作1(已批准、待批准)、操作2(申请销假、已销假、未销假)
2。1。3。3 UC—003申请销假
该用例的主要参与者为学生,学生通过系统提出销假申请,若申请成功,此时请假信息中操作2的状态将修改为申请销假,否则提示申请销假失败。
表2。4
功能编号
UC-003
功能名称
申请销假
前置条件
参与者通过浏览器打开请假管理系统的登录页面成功登录进入系统主页面
基本事件流
1. 学生发出销假申请,并等待系统验证
2. 如果提示申请成功,执行基本事件流3
3. 等待辅导员销假
4. 如果提示申请失败,执行基本事件流5
5. 提示申请销假失败,请重新申请
备选流
无
后置条件
如果用例成功,系统进入相应权限页面
界面原型
无
参与者
学生
2。1。3。4 UC-004查询请假记录
该用例的参与者为学生,学生通过系统提出请假记录查询,若查询成功,学生请假的记录将会显示在页面上。
表2.5
功能编号
UC—004
功能名称
查询请假记录
前置条件
参与者通过浏览器打开请假管理系统的登录页面成功登录进入系统主页面
基本事件流
1.学生发出查询请假记录,并等待系统验证
2.如果提示验证成功,执行基本事件流3
3。显示请假记录
4.如果提示验证失败,执行基本事件流5
5。提示查询失败或者无请假记录,请重新申请
备选流
无
后置条件
如果用例成功,系统进入相应权限页面
界面原型
无
参与者
学生
2。2 系统设计
该系统分为3个部分,第一部分是登录,学生和教师都需要登录,第二部分是学生端,学生端3个功能学生申请请假、学生申请销假、查询个人请假记录,第三个部分是教师端,教师端3个功能教师批准请假申请、教师批准销假申请、教师查询学生请假记录。
2。2.1顺序图
图2。2 登录时序图
图2。3 学生请假申请时序图
图2。4学生销假申请时序图
图2。5 学生请假查询时序图
2.2。2类图
图2。6 类图
2。2.3系统体系结构设
学生请假管理系统
统
学生端
教师端
学生申请请假
学生申请销假
学生查询请假
教师审批请假
教师审批销假
教师查询请假
登录
图 2.7 体系结构图
该系统包括基本的3各模块,登录、学生端、教师端.学生和教师在登录成功时分别进入不同的页面进行操作,学生端进行请假申请、销假申请、查询个人请假;教师审批请假、审批销假、查询学生请假记录。
2。2.4 设计时序图
图2。8登录设计时序图
该图是学生端登录设计时序图,首先学生发送请求到控制类,然后跳出登录页面,学生填写登录信息并提交到控制类,控制类封装数据创建对象调用逻辑层进行数据校验并返回结果,逻辑层调用DAO层最终根据结果判断如果登录成功将跳转到学生端主页,如果登录失败将给以提示信息并请重新登录.
图2.9请假申请设计时序图
该图是学生请假申请设计时序图,首先学生需要成功登录,发出请假申请,这时候控制类会自发调用逻辑层,逻辑层调用DAO层,如果该学生之前请过假并且未曾销假,这时该学生是不能够再请假的,倘若该学生发出请假申请,系统将会把该学生之前的请假未销假记录显示出来,如果没有未销假记录,将会显示请假申请页面,学生需要填写请假申请单将请假详细信息填写并提交倘若正确无误,系统将会提示请假申请成功.
图 2.10 学生销假申请设计时序图
该图是学生销假申请设计时序图,在学生成功登录之后,学生在申请请假时候必须不存在未销假记录,所以在学生请假完成到校报到后必须进行销假,然而这时需要发出销假申请,这时候在业务逻辑层将会给予判断,如果销假申请成功将会提示申请成功,如果有错误将会提示申请失败或者不存在未销假记录。
2。3 数据库设计
数据库在该系统中是为了存储数据,学生所提交的请假记录是通过保存到数据库中来实现申请请假、销假等功能的,在我们目前所学的有限的知识内,没有数据库该系统是没法运行和实现的.
2.3。1关系模式
(1)学生信息:(学号、姓名、班级、性别、宿舍、联系方式、tag)(2)教师信息:(工号、姓名、联系方式、性别、年级、tag)(3)登录:(用户名(学号、工号),密码)
(4)请假信息:(学号、姓名、事由、请假开始时间、请假结束时间、联系方式)
2。3.2 E—R图
E—R图在数据库设计里面是至关重要的一步,它是整个数据库设计的关键,下面使用实体联系(E—R)模型来描述系统的概念结构,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑设计打下基础。
图2.11E—R图
请假记录
理由
开始时间
学号
操作2
操作1
结束时间
姓名
联系方式
用户 1
教师 n
学生n
属于
姓名
联系
班级
学号
性别
宿舍
Tag
属于
性别
年级
电话
姓名
工号
Tags
用户名:学号、工号
密码
2.3.3表的设计
表 2.6用户登录信息表(login)
编号
字段名称
数据类型
约束条件
说明
1
userid
Varchar(14)
无
学号、工号
2
password
Varchar(12)
无
密码
3
Tag
Varchar(2)
无
标志
该表是用户登录信息表,表中包括3个属性,用户名和密码、还有标志变量tag,tag是为了控制学生端和教师端,用户名分别为学号和教师的工号;
表 2.7 学生信息表(Student)
编号
字段名称
数据类型
约束条件
说明
1
sid
Varchar(14)
无
学号
2
Sname
Varchar(20)
无
姓名
3
Classes
Varchar(20)
无
班级
4
Ssex
Varchar(6)
无
性别
5
Sphone
Varchar(12)
无
联系电话
6
Dormitory
Varchar(6)
无
宿舍
7
Tag
Varchar(2)
1
标志
该表是学生信息表,表中包括7个属性,都是字符串类型,其中tag标志变量默认为1,并且不可修改;
表 2。8 教师信息表(teacher)
编号
字段名称
数据类型
约束条件
说明
1
tid
Varchar(14)
无
工号
2
tname
Varchar(16)
无
姓名
3
tsex
Varchar(4)
无
性别
4
grades
Varchar(20)
无
所带年级
5
tphone
Varchar(12)
无
电话
6
tag
Varchar(2)
2
标志
该表是教师信息表,表中包括6个属性,都是字符串类型,教师也包括一个标志变量tag,也存在一个默认值为2 ,并且不能修改;
表 2。8 请假信息表(leaverecords)
编号
字段名称
数据类型
约束条件
说明
1
sid
Varchar(14)
无
学号
2
Sname
Varchar(16)
无
姓名
3
Starttime
date
无
开始时间
4
endtime
date
无
截止时间
5
Sphone
Varchar(12)
无
联系电话
6
Operate1
Varchar(20)
操作1
7
Operate2
Varchar(20)
操作2
8
reason
Varchar(255)
无
理由
该表示请假信息表,包括8个属性,其中有字符串和日期类型,操作1和操作2分别是默认值,其值是根据学生的请假申请成功,销假以及教师的审批有关。
第3章实现与测试
每一个项目的核心部分都是功能的实现,功能的完成标志着一个系统的完成,然而这些结果都需要一个需求和设计来作为基本的要求,以下就是该系统详细功能的实现过程:
需求分析:需求分析阶段我采用了StarUML工具做了详细的分析,根据自己的需要画出了包图、时序图、用例图、类图、活动图、设计时序图等所需要的几类基本图,项目的框架是根据包图来创建的,时序图主要就是项目的每一个功能所要求的基本流程,设计时序图就是将时序图给详细化,具体到每一步所走的流程返回什么样的数据或者类型,也就是说画设计时序图时基本上已经把代码在脑子里有了型,用例图其实就是项目所有的功能,每一个用例就代表一个基本的功能,数据库的设计是根据类图来实现的,类图就表示了数据库中的表以及各表之间的关系。
界面设计:用户界面设计要求友好合理,要充分考虑到用户的操作习惯,而且要有良好的显示效果.此外界面的配色方案要协调,使用的主色,背景色,前景色,按钮大小,文字,格式,表格等要统一标准。由于该系统主要用于公司人员管理的,所以界面框架的主色采用较为严肃的浅蓝色,在此基础上用到了PhotoShop技术,dreamweaver以及css和Java script等,里面的登录那个信息是一个图片用ps加工修改写上了艺术字,界面的代码是在dreamweaver里面直接设计好的,然后将代码复制粘贴过去,因为在dreamweaver里面设计的界面在MyEclipse里面是不能运行的,需要一个脚本来支持,所以只需要在MyEclipse里面建好jsp页面只需将dreamweaver里面body里面的东西复制粘贴到MyEclipse里面就可以运行了;每一个界面里面都有一个表格,表格里面有许多其他的元素之类,比如:按钮,标题,下拉框等许多细小的知识,外面有一个表单,这个表单是必须有的,他是为了在前台与后连接时候提交一个数据来运行这个项目的;在这些界面里面,时间是用js来完成的,统一的css样式表;还有就是在查询过程中将所显示的数据设置为某一属性他将无法在查询显示这个页面来任意修改一些信息
功能描述:首先这个系统除了界面其他的代码分别写在5个包中,第一个DO包,它里面从某种意义上说在这个包里面的每一个类都是创建某一个实例的方法,它里面定义了相对属性,以及get()和set()方法;第二个是DAO包,它里面是对于每一个管理模块的一些基本小的功能的实现,说白了主要就是增删改查之类的它是对数据库语句的一个应用;第三个包是DB包,这个包可以说是只为了一件事,就是数据库的连接,之所以这样写专门用一个包来写关于数据库的连接目的只是为了看到数据与的封装,体现一个面向对象的思考,从而在某些方面也能够减少代码的重复率,提高代码的可读性;第四个包是control包,这个包是最重要的,因为在web应用开发的过程中每一个项目要想与前台数据连接并能够成功把数据相互传递,servelet里面有两个方法,一个是doGet(),一个是doPost(),两者最大的区别就是前者对数据没有保密,就是随时都会泄露一些重要的信息,因为每一提交的表单都会随着浏览器的浏览网址显示出来,然而要想从前台获得数据,就好比添加员工就得用到客户端所发出的请求request。getParameter()得到。第五个包是BO包,这个是业务逻辑层,主要是调用DAO包里面的方法,数据校验等功能。
在该系统中我主要完成的是学生端的功能,以下为学生端的功能:
3。1请假申请功能
在学生请假申请这个功能里面其实所做的就是对数据的添加,界面是简单采用了CSS样式的界面,如果学生登录成功点击申请请假,如果该学生存在未销假记录系统将会把该学生的未销假记录显示出来,如果不存在未销假记录,此时学生请假信息界面会显示出来,在学生填写完请假信息出发右下方的一个提交按钮,倘若提交成功会提示申请成功,如果失败会跳转到信息填写页面并提示错误信息.
3。1.1活动图
图 3。1 学生申请请假活动图
3.1.2界面
图 3.2 学生请假申请页面
3。1.3代码
publicvoid doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request。setCharacterEncoding(”UTF—8");
response.setContentType(”text/html;charset=UTF-8”);
String str="已销假”;
String type=request。getParameter("type”);
LeaveRecordDO ld=null;
LeaveRecordDO lrd=new LeaveRecordDO();
StudentBO sb=new StudentBO();
if(type.equals(”add")){
lrd.setSname(request.getParameter("sname”));
lrd。setSid(request.getParameter(”sid”));
lrd。setSphone(request。getParameter("sphone"));
lrd.setStarttime(Date。valueOf(request。getParameter("starttime")));
lrd。setEndtime(Date。valueOf(request。getParameter(”endtime”)));
lrd.setReason(request。getParameter("reason”));
String results=sb。validate(lrd);
if(results==null){
String id=request.getParameter(”sid”);
ld=sb。queryrecords(str,id);
if(ld==null){
sb。save(lrd);
request.getRequestDispatcher(”。。/success.jsp”).forward(request, response);
return;
}else{
request.setAttribute("ld”, ld); request。getRequestDispatcher(”。。/deleteleave。jsp").forward(request, response);
return;
}
}else{
request。setAttribute(”message”, results);
request。getRequestDispatcher(”。./askforleave。jsp")。forward(request, response);
return;
}
}
3.1.4测试用例
表 3。1
序号
功能模块
测试数据
预期结果
1
请假申请
姓名:韩一正
学号:123
电话:15903613946
理由:回家
申请成功
3.2 请假记录查询
在学生请假记录查询里面和学生请假申请基本是一样的,这个实际上的就是对数据库里面的数据的一个查询,并将查询记录显示到网页上,如果不存在请假记录,将不会显示任何记录.
3.2。1界面
图 3。3 请假记录
3。2。2代码
HttpSession session=request。getSession();
session。setAttribute("username”, request。getParameter(”sid”));
ArrayList<LeaveRecordDO〉 list=(ArrayList<LeaveRecordDO〉) sb.getrecords(request。getParameter(”sid"));
request。setAttribute(”list", list);
request.getRequestDispatcher("。。/SseclectDisplay。jsp")。forward(request, response);
return;
3。2.3测试用例
序号
功能模块
测试数据
预期结果
1
请假查询
学号:123
查询成功
3.4登录功能
登录是该项目最基本的一个功能,这其实也是一个查询,只不过是根据数据库中的数据和从网页中得到的数据进行对比,如果匹配成功将会进入到另外一个页面,如果登录失败将会进行提示并重新登录,登录过程中在后台数据中定义了标志变量来表示学生和教师,所以在登录时候根据这个属性来判断登录成功后跳转到学生端还是教师端.
登录过程中进行了简单的数据校验,就是说用户名和密码不能为空,倘若为空将会提示错误信息并提醒重新登录.
3.4。1代码
publicvoid doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request。setCharacterEncoding(”UTF—8”);
response.setContentType(”text/html;charset=UTF—8”);
LoginDO ld=new LoginDO();
LoginBO lb=new LoginBO();
int tags;
String userid=request。getParameter("username”);
String passwd=request。getParameter("password");
ld。setUserid(userid);
ld.setPasswd(passwd);
String message=lb。validate(ld);
if(message!=null){
request。setAttribute("message", message);
request.getRequestDispatcher(”。./loginerror.jsp”).forward(request, response);
}else{
tags=lb。login(ld);
if(tags==1){
HttpSession session=request。getSession();
session.setAttribute(”username”, ld。getUserid());
request。getRequestDispatcher(”。。/smain.jsp”).forward(request, response);
return;
}elseif(tags==2){
HttpSession session=request.getSession();
session。setAttribute("username", ld.getUserid());
request。getRequestDispatcher("。./tmain。jsp”)。forward(request, response);
return;
}
else{
request.getRequestDispatcher(”。。/error.jsp”)。forward(request, response);
return;
3。4。2界面
图 3.4登录界面
3。4。1活动图
图 3。5登录活动图
3。5。4测试用例
序号
功能模块
测试数据
预期结果
1
学生登录
用户名:123
密码:123
登录成功
23
第4章 结束语
这次的课题我用的web开发来完成的,从我对这三个字母的不理解到学习它再到用它们来完成我的课题,这个过程并不是想象的那么容易,今天终于完成了,长呼了一口气,同时在内心深处,也默默地为接下来的学习,做一个前段时间的项目总结,也是学习的总结,吸取之前的经验教训,错误并不可怕,可怕的是再在同一个地方犯同样错误,所以对于我来说,更多的去自我认知,知我批评要比表扬和赞许来的更加深刻,非常有必要做一个总结.虽然时间略显仓促,但在项目开发过程中我学习到了很多之前没有接触过的内容,也发现了自己的很多不足,感悟颇深.主要包括以下几个方面:
1。在需求分析阶段,由于对学生请假管理系统真正的需求并不了解,还有就是自己在做这个需求的过程当中总觉得想到了自己做不出来,就好比没想到一个需求的功能脑子里就会闪现出一个画面,我该如何去实现它,正是因为这些错误的想法导致了这次课题实践的进度,因此我觉得在做需求时我们应该根据实际不必考虑怎么做怎么实现.
2.数据库采用的是Mysql,在编写sql语句经常会出现一些语法错误,例如sql语句不之一次的出错,在修改的过程当中我发现了自己知识的欠缺,或者说对过去所学的东西并没有完全理解甚至吸收;尤其是数据库中的乱码问题,我从一开始数据库中导入数据我就一直被乱码问题纠结着,我先上网查阅相关资料,看书寻找改变乱码的方法,甚至解决不了向同学请教,但是最终我都没有解决,最后在老师的帮助下检测出乱码不是编码的问题而是我的数据库安装过程中字符编码选择错误,所以一直回出现乱码问题,而且解决之后再将自己遇到的问题记录下来,使得以后出现同样的问题时能够快速解决。
3。由于该系统在学生申请成功后需要教师端的批准,在学生端才能进行下一次的操作,这些之前很少用到,通过这次实习也将自己在课本上学到的内容用到了实际项目中;感受最深的就是MVC模式和在两个客户端操作。
4。团队合作.我们完成一个项目总是需要一个团队的,而不是个人,在开发过程中小组之间的沟通非常重要。如果组内成员没有很好的交流,则在项目后期各模块合并时,会出现许多意想不到的错误,例如路径问题、页面间跳转等.所以我们完成系统时,小组间要定期开例会,相互交流,对于有分歧的地方,一定要及时讨论,采取一致措施,这样才有利于团队工作。
总之,这次的课题真的使我受益匪浅。在这个过程中,我学习到的不仅仅是以上技术上的收获,更还有生活中的的人际交往以及其他的许多经验。而这些,都将作为我迈入社会的根本,我将以此为我的基础,尽量将学到的知识运用到实际工作中,去迎接一个又一个的挑战.
回想在这不到一个月的学习时间里,我学到了许许多多让我感觉比较充实的知识,掌握了更多的学习的方法,作为一个程序员,我们更需要信心,面对项目时我们要仔细分析,想法尝试,想法去实现,这样才能进步,才能找到自己的不足.同样在职场中,工作需要自信心,不相信自己,任何工作都做不好。没有信心,成功的机会就会少些。自信心能让你做什么都不难。生活需要自信心。现实是残酷的,没有自信心是难以生存的。道路是坎坷的,自信心能帮你顺利地走过。有时希望是渺茫的,但是自信心能让你看到美好明天。
在写程序时,总是在看到功能后,立即投入到代码编写工作中。后期出现的错误总是很多很多,经常返回重新修改。经过这次旳实践,又对软件这个东西有了新的认识,新的收获,而且我对软件工程又有了新的理解,说白了软件工程就是在为这个软件做铺垫,也就是说需求分析就是软件工程,而我在做需求分析阶段能顺利完成,我十分的感激我的老师郭丽,如果不是在课堂上老师让我在同学们面前或那个设计时序图,我想我现在仍然不会明白软件工程怎么去做需求,不是老师一步步的教导,我根本不可能完成今天这么简单的并且不完善的项目,所以在此我对老师表示深深的敬意与感激!
参考文献
[01]李明。java程序设计与应用[M]:北京.交通大学出版社。 2010.3
[02]叶和亚.陈立。java2程序设计实用教程例[M]北京:电子工业出版社. 2003。5
[03]李兆峰。庞永庆。java程序设计与项目实践[M]北京:电子工业出版社.2011。6
[04]Y。Daniel Liang。java语言程序设计[M]西安;机械工业出版社。2011。5
[05] http://www。w3school。
[06] http://www。w3school。com。cn/html/html_forms。asp
[07]刘京华。Java Web整合开发王者归来[M]:清华大学出版社. 2010。1
[08]何富贵。DreamweaverCS4网页设计与制作[M]: 机械工业出版社. 2010。3
[09]郑阿奇MySQL实用教程[M]:电子工业出版社。2012。5
[10] 叶和亚.陈立。java2程序设计实用教程例[M]北京:电子工业出版社。 2003。5
指导教师评语
成绩:
指导教师签名:
年 月 日
附录A: 附加图、表
图 1 学生端主页面
图 2 教师端学生请假信息页面
附录B: 主要源程序
DAO包
/*
* 请假审批
*/
publicboolean LeaveAllow(String sid){
//获取数据库连接
Connecti
展开阅读全文