基于.net mvc开发学生网上管理系统_第1页
基于.net mvc开发学生网上管理系统_第2页
基于.net mvc开发学生网上管理系统_第3页
基于.net mvc开发学生网上管理系统_第4页
基于.net mvc开发学生网上管理系统_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

绪论系统的开发背景随着社会的发展,曾经不同规模的竞争现在已经成为了社会不同领域之前技术的竞争,人才与管理间的竞争,而计算机技术的进步与发展,也离不开软件的日益更新和进步。在现阶段,在电脑软件的更新和替换的过程中,已经涉及到各种领域都不断向网络化发展,如政府机关,公司基层,各大高校等。而作为学生的我,哪怕不经常旷课和请假,但是难免会遇到紧急的事情的马上请假去办,可是在学校请假的步骤却很繁琐。学生要先和老师要请假条并且写好,然后给老师批准,并且还得考虑到老师是否在办公室,所以有时候就会出现很多不必要的麻烦。因此为了学生和老师,也是为了自己的方便,我也根据了自己考虑实际情况和需求开发了这个学生网上请假系统。问题描述在考虑到做这个软件之前,我也考虑到自己所学的知识是有限的,而且在这之前自己也从来没有接触过这种类似的软件和程序,因此很多功能的具体实现也心里没底,所以我也只能用些简单的功能来代替掉目前社会商用水平的功能,比如在做系统的设置界面时,怎么做才可以让大家更适应,快捷的了解并使用到这个软件,如何优化页面的UI,如何提高这个系统未来的拓展性和开发潜力等,这些都是很多所面临的问题。技术分析现阶段社会比较主流的软件模式框架模式是ModelViewController,简称MVC。MVC每个字母都代表一个意思,分别是模型、视图和控制器三个基本部分。简单点来说,就是降低程序代码之间的耦合度。MVC的设计模式简单来说就是分成五个模块。分别是View层是程序处理显示数据的部分;DO层是对数据对象的封装;DB层是程序连接数据库的层,也是算中间层;DAO层程序对数据库操作层;Control层是程序处理用户交互的层。

相关技术介绍HTML网页技术HTML是现阶段制作网页的常用语言,它平常都是用于制作静态页面。它的命令是可以体现文字信息、链接信息、图形信息和表格信息等等。现在它被大众普遍接受广泛应用在网络上。JSP脚本语言JSP可以放在在html里使用,也可以独自使用,它同时也具备有很多种优点,可以讲,Web脚本技术的先驱是JSP。现代编程语言(像C,Java和Perl等)的一些最好的特点都融合在JSP里,Web服务器里的一部分配置标准是由JSP、Tomcat和数据库等的拼装在一起的。C#语言C#语言是微软开创的一种最新的、面向对象的编程语言。程序员可以利用这个语言快速地编写各种基于Microsoft.NET平台的应用程序,该平台还提供许多服务和工具,使得计算与通讯领域得到最大程度地开发。虽然在这普遍使用java的年代,毕竟C#是微软的,但是我还是相信C#在社会还是有自己不可动摇的地位的。

需求分析可行性分析在技术性方面,MVC框架分层可以很好做到前后端分离,这样对于程序员对项目的开发是很有帮助的。由于MVC的分层,降低了系统各层之间的耦合度,使得程序员在开发的同时可以专注负责自己的开发模块,也不会相互影响。这样对项目的后期修改也是很大帮助的,一旦一个地方出了问题或者需要修改,也不需要整体修改。实用性方面,本次设计的主要任务是在学生网上请假系统内学生请假、老师批假、学生信息添加及绑定等,符合当前潮流的发展。从用户角度出发,可以同时考虑用户的便利和学校的工作效率出发,提高网上请假的实用性。功能需求分析学生网上请假系统是用户通过正确的填写学号或者工号和密码进入系统,这个系统分为两大客户端,一个是学生端和另一个是教师端,学生端分为请假申请、销假申请、个人请假记录查询,教师端分为请假审批、销假审批、学生销假记录查询和学生请假记录查询。学生网上请假系统使用者分别为学生和教师,老师审批学生的请假,前提都是学生要在系统发出申请信息,而只有等到老师批准之后学生才可以提出申请销假。学生用例以下图3.1是学生端用例图,学生的功能模块有登录、申请请假、申请销假、查询请假记录这个的操作。图3.1学生用例图学生用例规约登录参与者学生需要用户名和密码登录到系统,才可以进行对应不同的操作,学生的登录用户名为学号,初始化密码为学号,如表3.1所示。表3.1学生登录模块用例规约表用例编号UC-001用例名称登录功能描述验证用户名和密码,确认是学生登录。执行者学生前置条件用户名和密码经过验证准确并通过后置条件学生登录成功,并可进行对系统相关事务处理。基本路径1、学生输入用户名和密码,并且登录系统1.1学生输入用户名和密码并按下登录键,系统向数据库发送验证请求1.2数据库接收请求,对用户名和密码进行验证1.3数据库将验证结果回传到请假系统扩展1.1、输入的密码只能是数字和英语单词1.2、对用户名、密码进行验证1.2.1、输入的信息与数据库的数据匹配成功,则正常登录1.2.2、输入的信息与数据库的数据匹配失败,提示重新输入字段列表用户名密码业务规则备注申请请假参与者学生需要先登录系统进入到学生在请假系统中,填写请假申请单,请假申请单会提交给老师管理系统进行审批,如下表3.2所示。

表3.2学生申请请假用例规约表用例编号UC-002用例名称申请请假功能描述学生创建新的请假申请单,然后填写请假信息,并把申请信息提交给老师执行者学生前置条件学生正常登录到系统后,先完善好个人信息打开请假管理页面后置条件系统将保存该条请假记录创建新的请假单并生成独有的的申请编号创建新的请假申请流程实例记录提交后不能够再修改基本路径学生选择创建请假申请单学生点击“请假”按钮,系统会通过查询学生ID,查询出当前的学生是否还有没有销假的记录,如果存在没有销假的请假记录,显示你需要销假后再申请;如果没有未销假记录,则显示出请假申请单。学生录入本人外出去向、请假原因、时间范围(开始时间,结束时间)、图片附件,不能为空,向数据库发送录入请求。数据库接受到请求后,将学生的请假信息录入到数据库中,系统回传到界面,显示所有请假的界面扩展字段列表外出去向、请假原因、开始时间、结束时间业务规则备注申请销假参与者学生需要先登录系统进入到学生在请假系统中,学生在系统点击销假申请时,如果申请成功,此时请假信息中的状态会修改为申请销假,否则提示申请销假失败,如下表3.3所示。表3.3学生申请销假用例规约表用例编号UC-003用例名称申请销假功能描述学生成功进入请假界面,点击销假,然后再次确认申请销假执行者学生前置条件学生打开学生网上请假系统,成功登录后进入请假系统后置条件登录成功后,系统把相应的权限页面基本路径学生向系统发出销假申请,而且等待系统验证1.1如果显示申请成功,系统将返回请假界面等待辅导员审核1.2如果显示申请失败,系统就显示提示申请销假失败,请重新申请扩展字段列表业务规则备注查询请假记录参与者学生需要先登录系统进入到学生在请假系统中,学生通过系统点击个人“请假历史”,系统对该学生请假记录查询,如果查询成功,学生请假的记录将会显示在页面上,如表3.4所示。表3.4学生查询请假记录用例规约表用例编号UC-004用例名称查询请假记录功能描述学生进入请假界面后,点击历史请假,系统显示历史请假记录执行者学生前置条件学生打开学生网上请假系统,成功登录后进入请假系统后置条件登录成功后,系统把相应的权限页面基本路径学生点击“历史请假”按钮,系统查询请假记录1.1如果验证成功,则显示历史请假记录1.2如果验证失败,则提示查询失败或你没有历史请假记录,请重新申请扩展字段列表业务规则备注学生相关顺序图学生请假申请顺序图该顺序图反映了学生对请假申请的一系列操作如下:(1)学生登录请假系统后,发送请假申请到请假申请控制类中。(2)检验该学生是否有可以申请请假的权限,如果有,继续到下一步;否则,系统再次检验。(3)系统获取该学生是否有未销假记录到请假记录信息内系统自动查询.(4)如果该学生有未销假的信息,则显示出未销假记录的信息(不可以请假)。(5)显示请假申请单,并提示填写申请单(可请假)。(6)学生在界面上填写请假信息。(7)提交请假信息单。(8)创建请假记录对象。(9)系统验证请假信息填写的准确性。(10)验证完成正确后,保存请假记录。(11)保存成功后,系统返回请假详情。(12)显示保存成功的提示到页面中。(13)显示保存失败的提示到页面中。如图3.2所示。图3.2学生请假申请顺序图学生销假申请顺序图(1)学生点击销假按钮,系统发送销假申请到销假申请控制类中。(2)该学生的销假申请,系统对此进行异常的判断。(3)在页面中显示申请销假成功(正常)。(4)在页面中显示申请失败,同时提示重新申请(异常)。如图3.3所示。图3.3学生销假申请顺序图学生请假查询顺序图(1)学生发送查询信息。(2)创建请假记录的对象。(3)数据库将请假历史信息回送到请假管理界面。(4)显示该学生的请假详情在界面中。如图3.4所示。图3.4学生请假查询顺序图3.2.4老师用例以下图3.5是老师端用例图,学生的功能模块有登录、待审请假、查询请假记录、待审销假、查询销假记录这个的操作,如下图3.5所示。图3.5老师用例图老师用例规约登录参与者老师需要用户名和密码登录到系统,才能进行相应的操作,系统中设置老师的登录用户名为工号,初始化密码为工号,如表3.5所示。表3.5老师登录用例规约表用例编号UC-005用例名称登录功能描述验证工号和密码,确保是管理员登录。执行者老师前置条件工号和密码经过验证准确并通过后置条件老师登录成功,并可进行对系统相关事务处理。基本路径1、老师输入用户名和密码,然后登录系统1.1老师输入账户号码和密码并按下登录键,系统向数据库发送验证请求1.2数据库接收请求,对用户名和密码进行验证1.3数据库将验证结果回传到请假系统扩展1.1、输入的密码只能是数字和英语单词1.2、对账户、密码进行验证1.2.1、输入的信息与数据库的数据匹配成功,则正常登录1.2.2、输入的信息与数据库的数据匹配失败,提示重新输入字段列表用户名密码业务规则备注待审请假参与者老师需要先登录系统进入到老师管理系统中,老师通过系统查看学生请假申请单,自行审批学生是否给予请假,并填写审核意见提交,如表3.6所示。表3.6老师待审请假用例规约表用例编号UC-006用例名称待审请假功能描述老师登录系统后,审批自己学生的请假申请,并提交审核意见。执行者老师前置条件老师正常登录到系统,同时打开待审请假页面中后置条件该老师负责的学生,有学生的请假申请需要审批,并进行对系统相关事务尽心处理基本路径老师登录系统后,点击“待审请假”按钮系统显示该老师待审请假的信息老师对学生的请假申请进行审批,并填写审批意见,并向数据库发送给信息增加请求数据库接受请求后,将审批通过的信息及审批意见写入数据库,然后回传到请假历史界面中扩展审批完成后,跳转回待审请假界面字段列表审批意见业务规则备注查询请假记录参与者老师需要先登录系统进入到老师管理系统中,老师通过系统可以查看到学生请假历史记录,并可校对自己操作是否有误等,如表3.7所示。表3.7查询请假记录用例规约表用例编号UC-007用例名称查询请假记录功能描述老师登录系统后,查看学生请假记录,可查看申请人、申请时间、请假事由、当前请假状态等信息。执行者老师前置条件老师正常登录到系统之后,打开请假历史页面中后置条件已有审批完的请假信息基本路径1、老师点击请假历史按钮发出查询请假记录,并等待系统验证1.1如果验证成功,则显示审核过的学生的请假历史记录1.2如果验证失败,则提示查询失败或无历史请假记录,请重新申请扩展字段列表业务规则备注待审销假参与者老师需要先登录系统进入到老师管理系统中,老师通过系统查看学生销假申请,自行审批学生是否给予销假,并再次确认,通过则销假成功,如表3.8所示。表3.8老师待审销假用例规约表用例编号UC-008用例名称申请销假功能描述老师登录系统后,查看待审核的学生销假信息,老师对申请销假的学生进行审批。执行者老师前置条件老师正常登录到系统之后,打开请假历史页面中后置条件该老师负责的学生,有学生的销假申请需要审批,并进行对系统相关事务尽心处理基本路径1、老师登录系统后,点击待审请假按钮2、系统显示该老师待审销假的信息3、老师对学生的销假申请进行审批,并再次确认后点击通过按钮,并向数据库发送给信息增加请求数据库接受请求后,将审批通过的信息及审批意见写入数据库,然后回传到销假历史记录界面中扩展字段列表业务规则备注查询销假记录参与者老师需要先登录系统进入到老师管理系统中,老师通过系统可以查看到学生销假历史记录,并可校对自己操作是否有误等,如表3.9所示。表3.9老师查询销假记录用例规约表用例编号UC-009用例名称查询销假记录功能描述老师登录系统后,查看学生销假记录,可查看申请人、申请时间、请假事由、当前请假状态等信息。执行者老师前置条件老师正常登录到系统,并打开销假历史页面中后置条件已有审批完的销假信息基本路径1、老师点击销假历史按钮发出查询请假记录,并等待系统验证1.1如果验证成功,则显示审核过的学生的销假历史记录1.2如果验证失败,则提示查询失败或无历史销假记录,请重新申请扩展字段列表业务规则备注老师相关顺序图待审请假顺序图(1)老师在待审核请假记录界面,确认审核信息(2)提示输入审核意见(3)老师填写完审核意见,确认提交审核意见(4)老师审核信息一并审核判断结果录入到数据库中(5)界面显示审核成功如图3.6所示:图3.6待审请假顺序图请假历史顺序图(1)老师发送查询信息(2)创建学生请假记录的对象(3)数据库将请假历史信息回送到请假管理界面(4)显示学生历史请假详情在界面中如图3.7所示。图3.7请假历史顺序图待审销假顺序图(1)老师在待审核销假记录界面,确认审核信息(2)提示再次需要再次审核确认(3)再次审核确认完成(4)审核信息一并录入到数据库中(5)界面显示审核成功如图3.8所示。图3.8待审销假顺序图销假历史顺序图(1)老师发送查询信息(2)创建学生销假记录的对象(3)数据库将销假历史信息回传到请假管理界面(4)显示学生历史销假详情在界面中如图3.9所示:图3.9销假历史顺序图非功能需求分析首先主要考虑的是系统功能软件,在具体设计的环节上,是不是能够较好的满足各类用户的基本功能需求,如果不能较好的满足用户需求,那么这个系统的存在是没有价值的。软件系统的非功能性求分析,在7个方面展开,一个是性能分析,针对系统;一个是安全分析,针对系统,一个是完整度分析,针对系统,一个是可维护分析,针对系统,一个是可扩展性分析,针对系统,一个是适应业务的性能分析。面对汽车论坛管理系统存在的性能、安全、扩展、完整度等7个方面性能综合比对分析后发现,需要相应的非功能性需求分析。安全性需求分析安全性对于每个系统来说都是非常重要的一个方面。安全性很好的系统可以保护企业的信息和用户的信息不被窃取。提高系统的安全性不仅是对用户的负责,更是对企业的负责。尤其针对于学生网上请假系统来说,必须要有很好的安全性来保障整个系统。系统具有对使用者有权限控制,针对角色的不通限制使用者的权限,以此来确保系统的安全性。

系统设计系统架构设计本次学生网上请假系统的架构设计主要分为可以3层,主要有Web层,业务层,Model层。其中web层还包括View层和Controller层,Model层包括元数据扩展层和数据访问层,如图4.1所示。图4.1系统架构系统总体设计这个学生请假管理系统分为两个模块,学生端、教师端。学生和教师在登录成功时,分别进入两个不同的页面进行操作,学生端进行请假申请、销假申请和查询个人请假记录;老师审批请假、老师审批销假、老师查询请假和老师查询销假,如图4.2所示。图4.2系统总体设计图数据库设计学生网上请假系统所拥有的数据表有主要以下几个表:请假信息表,用户信息表,审核信息表等。由于数据表较多,只展示系统主要数据表,如下表所示。Leave表:字段包括编号、本人外出去向、请假类型、请假原因、时间类型、该天内的时间、该天的开始节数、一天的结束节数、请假开始日期、请假结束日期、图片附件地址,如表4.1所示。表4.1请假条信息数据库表序号字段名称字段类型大小允许为空最大长度备注1idInt4

2ToWherenvarchar(MAX)-1

3Categoryint4

4Reasonnvarchar(MAX)-1

5TimeTypeint4

6OneDayTimedatetime87OneDayStartint48OneDayEndint49StartDatedatetime810EndDatedatetime811ImageUrlsnvarchar(MAX)-1112LeaveStatusint413AddTimedatetime814IsResumeint415ResumeTimedatetime8116Student_StudentIdnvarchar(128)128256Check表:包括审核id、审核状态、审核顺序、审核时间、审核意见、老师id、请假id,如表4.2所示。表4.2审核信息数据库表序号字段名称字段类型大小允许为空最大长度备注1idInt8

2CheckStatusint4

3CheckOrderint4

4CheckTimedatetime85AddTimedatetime81

6CheckOpinionnvarchar(100)200

7CheckTeacher_TeacherIdnvarchar(128)2568Leave_Idint4Class表:包括自生成id、类别定义、老师类别、年纪、专业,如表4.3所示。表4.3分类数据库表序号字段名称字段类型大小允许为空最大长度备注1idInt4

2ClassDefinationnvarchar(MAX)-1

3ClassTeacher_TeacherIdnvarchar(128)256

4Grade_Idint45Major_Idint41

User表:该图是用户信息表包括id、用户名称、头像、手机号码、邮箱、确认邮箱、密码、安全验证、确认手机号,如表4.4所示。表4.4用户信息数据库表序号字段名称字段类型大小允许为空最大长度备注1idnvarchar(128)256

2UserNamenvarchar(256)512

3HeadImagenvarchar(MAX)-1

4PhoneNumbernvarchar(50)1005Namenvarchar(MAX)5121

6Emailnvarchar(256)17EmailConfirmedbit18PasswordHashnvarchar(500)5129SecurityStampnvarchar(500)51210PhoneNumberConfirmedbit1Office表:该表包括id、部门名称、描述、描述id,如表4.5所示。表4.5部门信息数据库表序号字段名称字段类型大小允许为空最大长度备注1idint4

2Namenvarchar(MAX)-1

3Descriptionnvarchar(MAX)-1

4Department_Idint4LessonInfo表:该表包括的字段有id、起始周、结束周、课程类别、工作日、教室位置、课程id、老师id、学生id,如表4.6所示。表4.6课程信息数据库表序号字段名称字段类型大小允许为空最大长度备注1idint4

2StartWeekint4

3EndWeekint4

4ClassSeqint45WeekDayint46Classroomnvarchar(MAX)-117LessonIdint48TeacherIdnvarchar(128)25619StudentIdnvarchar(128)2561

系统实现首页面该界面是简单介绍学生网上请假系统的用途和优势,使得用户对该系统有了初步的了解,用户还可对系统进行注册,登录等操作.如图5.1所示图5.1系统首页界面登录功能登录功能是每个项目都需要的一个基本功能模块,而且也是查询信息的一种,不过在查询信息的过程中系统对页面得到的输入数据和数据库的数据进行配对,如果匹配成功,系统进入到另外一个页面,如果登录失败,系统进行提示并重新登录,登录过程中在后台数据中定义了标志变量来表示学生和教师。

在系统登录过程中进行了简洁的数据校验,就是用户名和密码不能为空,如果为空,系统将会提示错误信息,并提醒重新登录。登录的界面如图5.2所示图5.2登录界面登录界面代码。///<summary>///登录///</summary>///<returns></returns>publicActionResultLogin(stringreturnUrl){if(User.Identity.IsAuthenticated){returnRedirectToAction("Index");}ViewBag.ReturnUrl=returnUrl;returnView();}[HttpPost][AllowAnonymous][ValidateAntiForgeryToken]publicActionResultLogin(UserLoginViewModellogin,stringreturnUrl){if(login.VerificationCode.ToUpper()!=TempData["VerificationCode"].ToString()){ModelState.AddModelError("VerificationCode","验证码错误");}else{if(ModelState.IsValid){varuser=_userService.Find(login.UserName);if(user==null){ModelState.AddModelError("UserName","用户名不存在");}elseif(user.Password==Security.Sha256(login.Password)){_userService.Update(user);varidentity=_userService.CreateIdentity(user,DefaultAuthenticationTypes.ApplicationCookie);AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);AuthenticationManager.SignIn(newAuthenticationProperties{IsPersistent=login.RememberMe},identity);Session["User"]=user;if(string.IsNullOrEmpty(returnUrl)){returnRedirectToAction("Index","Home");}if(Url.IsLocalUrl(returnUrl)){returnRedirect(returnUrl);}returnRedirectToAction("Index","Home");}else{ModelState.AddModelError("Password","密码错误");}}}returnView();}注册界面功能用户自行规范填写学生号或工号,及设定密码,和通知邮箱,最后填写随机验证码,并接受协议,然后点击“确认注册”按钮进行注册操作;用户注册成功后,系统将返回到登录界面。如图5.3所示。图5.3注册界面用户注册界面代码:///<summary>///注册///</summary>///<paramname="register"></param>///<returns></returns>[HttpPost][ValidateAntiForgeryToken]publicActionResultRegister(UserRegisterViewModelregister){if(TempData["VerificationCode"]==null||TempData["VerificationCode"].ToString()!=register.VerificationCode.ToUpper()){ModelState.AddModelError("VerificationCode","验证码错误");returnView(register);}if(ModelState.IsValid){if(_userService.Exist(register.UserName)){ModelState.AddModelError("Username","用户名已存在");}elseif(register.Password!=register.Password2){ModelState.AddModelError("Password","两次密码不一致");}else{AppUseruser=newAppUser{UserName=register.UserName,//默认用户组代码写这里Password=Security.Sha256(register.Password),//邮箱验证与邮箱唯一性问题Email=register.Email,//用户状态问题Status=0,DisplayName=register.UserName,};user=_userService.Add(user);if(!string.IsNullOrEmpty(user.Id)){Session["User"]=user;varidentity=_userService.CreateIdentity(user,DefaultAuthenticationTypes.ApplicationCookie);AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);AuthenticationManager.SignIn(identity);returnRedirectToAction("Index","Home");}else{ModelState.AddModelError("","注册失败");}}学生个人设置学生登录/注册成功之后可以完善自己的基本信息。配置完权限的后,信息表单中每一个input的name值都要与实体类中的参数相匹配,学生可以根据个人的手机号,宿舍号,家庭住址,家庭电话进行写入,点击保存,数据就会提交到数据库内进行添加或者修改。如图5.4所示图5.4学生个人设置界面学生请假下图5.5是学生请假模块的界面图,界面上包含了学生请假需要填写的基本信息,如本人外出去向、请假原因、请假时间范围、请假开始时间、请假结束时间、附加图片等,当学生填写完所有基本信息之后,点击下一步;如果信息填写完整,弹出确认请假窗口,学生确认请假,否则显示信息填写不完全,返回界面让学生继续修改或填写。图5.5学生请假界面学生申请请假界面代码:publicLeaveController(){_leaveService=newLeaveService();}//GET:Student/Leave[Authorize]publicActionResultIndex(){inttotalRecord;varlist=_leaveService.FindPageList(1,10,outtotalRecord,0,User.Identity.GetUserId());List<LeaveListViewModel>list2=newList<LeaveListViewModel>();foreach(varleafinlist.ToList()){list2.Add(newLeaveListViewModel{Leave=leaf,Status=_leaveService.GetLeaveStatus(leaf.LeaveId,leaf.UserId)});}returnView(list2);}[Authorize]publicActionResultNotice(){returnView();}///<summary>///申请请假///</summary>///<returns></returns>[Authorize]publicActionResultApply(){returnView();}[HttpPost][ValidateAntiForgeryToken][Authorize]publicActionResultApply(LeaveApplyViewModelleavemoModel){if(ModelState.IsValid){//判断是否需要图片附件switch(leavemoModel.Category){//病假caseLeaveCategory.病假:break;//事假caseLeaveCategory.事假:break;}varuserId=User.Identity.GetUserId();Leaveleave=newLeave{Category=leavemoModel.Category,StartDate=leavemoModel.StartDate,EndDate=leavemoModel.EndDate,ImageUrls=leavemoModel.ImageUrls,OneDayTime=leavemoModel.OneDayTime,OneDayStart=leavemoModel.OneDayStart,OneDayEnd=leavemoModel.OneDayEnd,Reason=leavemoModel.Reason,ToWhere=leavemoModel.ToWhere,TimeType=leavemoModel.TimeType,UserId=userId,LeaveStatus=1,AddTime=DateTime.Now,ResumeTime=DateTime.Now,IsResume=0,Checks=new[]{newCheck{CheckStatus=0,CheckTime=DateTime.Now,UserId=int.Parse(userId),CheckOrder=0},newCheck{CheckStatus=0,CheckTime=DateTime.Now,UserId=int.Parse(userId),CheckOrder=1}}};try{leave=_leaveService.Add(leave);if(leave.LeaveId>0){returnRedirectToAction("Success",leave);}else{ModelState.AddModelError("","请假失败");}}catch(Exceptionex){ModelState.AddModelError("","请假失败,"+ex.Message);}}returnView(leavemoModel);}[Authorize]publicActionResultSuccess(Leaveleave){returnView(leave);}[Authorize]publicActionResultDetail(int?id){if(id==null||id<1){returnRedirectToAction("Index");}varleave=_leaveService.Find((int)id,User.Identity.GetUserId());varmodel=newLeaveDetailViewModel{Leave=leave,Checks=leave.Checks};returnView(model);}[Authorize][HttpPost]publicintGetLeaveTimes(stringuserid){return_leaveService.GetLeaveTimes(userid);}}}学生销假图5.6是学生销假功能模块的界面图,系统会根据登录的学生Id自动查询出学生请假的状态及是否销假,这个界面最大的用处是,学生若要再次请假一定要撤销掉上次的请假才可以继续请假,学生可点击就“销假”,让老师审批销假。图5.6学生销假界面学生历史请假图5.7是学生历史请假模块的界面,该界面主要是学生可以查询自己的历史请假记录、请假状态、销假记录等,学生点击“历史请假”按钮,系统显示出该学生的历史请假信息。图5.7学生历史请假界面老师待审请假以下图5.8是老师待审核请假模块的界面,该界面是老师登录系统后,点击“待审请假”按钮,界面显示出该老师所管理的学生的所有待审核请假信息,老师审批完后,通过点击“通过”或“拒绝”按钮,系统弹出审核意见界面,老师需填写给予学生审核意见,然后点击“确认”后,审核信息传入数据库中,数据转为请假历史信息表中。图5.8待审请假界面老师查询历史请假以下图5.9是老师查询历史请假功能模块的界面,该界面主要是老师查看学生请假历史信息,也可包括老师还未审核完成的学生申请请假信息,可是该界面中的按钮没办法进行“通过”或“拒绝”操作,只能点击“详细”按钮,老师可查看到学生请假信息的详细信息。图5.9老师查询历史请假界面老师查询历史销假以下图5.10是老师查询历史销假功能模块的界面,该界面主要是系统通过老师所绑定管理的学生,显示出所管理学生的销假历史信息,其中包含编号、申请人、申请时间、请假事由、当前状态等信息,老师只能对其进行查阅,但不能进行修改。图5.10老师查询历史销假界面老师个人设置以下图5.11是老师个人设置信息功能模块的界面,该界面老师可以对自己个人信息进行设置,其中包括手机号和办公室,老师确认好信息后,点击“保存”按钮,信息就会保存到老师个人信息的数据库表里。图5.11老师个人设置界面

系统测试测试目的对任何系统而言,测试都是必不可少的环节,测试可以发现系统存在的很多问题,所有的软件上线前,都应该进行充足的测试后才能保证上线后不会Bug频发,或者是功能不满足需求等问题的发生。下面分别从单元测试,功能测试和用例测试来对系统进行测试以保证系统的稳定性和可靠性。功能测试下表是系统登录功能测试用例,检测了用户名和密码的不同的输入情况,观察系统的情况,查看该功能块是否达到设计预期,如表6.1所示表6.1系统登录功能测试用例功能描述用于系统登录测试目的检测登录时的合法性检查测试数据以及操作预期结果实际结果输入的用户名和密码带有非法字符提示用户名或者密码错误与预期结果一致输入的用户名或者密码为空提示用户名或者密码错误与预期结果一致输入的用户名和密码不存在提示用户名或者密码错误与预期结果一致输入正确的用户名和密码登录成功与预期结果一致下表是用户注册功能测试用例,检测了该模块中对信息包括用户名、密码、邮箱和验证码填写操作是否正确及完整,观察系统的情况,查看该功能块是否达到设计预期,如表6.2所示。表6.2系统注册功能测试用例功能描述用于用户注册测试目的检测注册时的合法性检查测试数据以及操作预期结果实际结果输入的用户名不合法提示用户名不符合规则与预期结果一致输入的字段为空提示必填项不能为空与预期结果一致输入的邮箱不合法提示邮箱不符合规则与预期结果一致输入的密码少于6位提示密码必须为6-12位与预期结果一致输入的密码少于12提示密码必须位6-12位与预期结果一致下表模块是学生个人信息功能测试用例,检测了该模块中对信息包括手机号、宿舍号、家庭住址、家庭电话填写操作是否成功运行,观察系统的情况,查看该功能块是否达到设计预期,如表6.3所示。表6.3学生个人信息测试用例功能描述用于用户注册测试目的检测注册时的合法性检查测试数据以及操作预期结果实际结果输入的手机号不合法提示请输入正确的手机号与预期结果一致输入的字段为空提示必填项不能为空与预期结果一致输入的宿舍号不合法提示请输入正确的宿舍号与预期结果一致输入的家庭电话少于7位提示家庭电话必须为7-12位与预期结果一致输入的家庭电话少于12位提示家庭电话必须位7-12位与预期结果一致输入的家庭住址不合法提示请输入正确的家庭住址与预期结果一致下表模块是老师个人信息功能测试用例,测试了该模块中对信息包括手机号、办公室填写操作是否成功运行,观察系统的情况,查看该功能块是否达到设计预期,如表6.4所示。表6.4老师个人信息测试用例功能描述用于用户注册测试目的检测注册时的合法性检查测试数据以及操作预期结果实际结果输入的手机号不合法提示请输入正确的手机号与预期结果一致输入的字段为空提示必填项不能为空与预期结果一致输入的办公室不合法提示请输入正确的办公室与预期结果一致性能测试使用阿里云PTS(PerformanceTestingService)性能测试服务对线上系统进行压力测试。线上服务器环境为:1核心CPU,1G内存,1Mbps公网带宽,Centos7.0操作系统。压测过程中使用了2台并发机器,每台机器20个用户并发,对系统主页,登录,数据查询和数据维护等模块进行并发访问,测试结果是有40个用户并发时,数据管理相关页面的响应时间甚至达到了7s,通过查看服务器出网流量发现已经达到1381kb/s,可以看出服务器的带宽已经达到峰值,如果系统使用5Mbps的带宽,系统的响应时间和TPS将会大大增加。在整个测试的过程中,CPU的使用率占用仅8%,也提现出带宽瓶颈对系统的影响非常严重。

总结与展望伴随着计算机互联网技术的飞速发展,社会中各行各业都实现采用计算机的技术对日益增长的庞大数据进行管理。该课题是学生网上请假系统为核心进行展开的,主要是实现请假信息化管理和用户现阶段需求。学生网上管理系统是以C#编程语言为基础,在VisualStudio平台上完成编码工作,系统运用的框架是MVC框架,数据库系统使用的是SQLSever2008。文中已经详细的分析了学生网上请假系统的研究背景、研究目的和意义、相关技术以及系统功能需求、系统详细设计和系统测试等一系列内容。该系统在实现了所需的一些基本功能,并且通过测试对这些实现的基本功能进行完善,不断地提高了系统的整体实用性。在这次开发中,大量的使用了C#相关的知识,前端开发使用到的html、javascript等,同时也涉及到非常多组件和更新包。系统开发差不多投入运行时,系统各系统都可以运行正常。系统的每一个界面操作都符合了常规的逻辑,对初始使用者来说操作简单,界面相对美观,还加了操作说明。系统的每个功能设计合理,总体体现了人性化思想。但是由于自己在系统的开发过程中,一些用到相关更为深入的知识和技术掌握不够老顾,并且我自己的开发经验极度欠缺,所以系统还是有些不够完善和考虑不够周全的地方,待自己日后逐步完善。

参考文献[1]宋宇辉,林春梅.基于ASP.NET的高校教代会提案系统的研究与实现[J].信息与电脑(理论版);2018年[2]高洪涛..NET分布式软件体系结构的设计应用[J].无线互联科技;2018年[3]韩立刚.计算机网络(修订版)北京:清华大学出版社,2013年[4]杨国,肖祥林.基于ASP.NETMVC的在线购物网站设计与实现[J].教育教学论坛;2017年[5]张超,董恬恬.基于ASP.NET的《计算机应用基础》课程网站的设计[J].电脑知识与技术;2016年[6]贾宗星.基于ASP.NET的信息发布网站的设计与实现[J].计算机时代;2019年[7]韩道军,贾培艳.新建构主义在ASP.NETMVCWeb程序设计课程中的应用[J].软件导刊;2018年[8]生家锋.《ASP动态网站》课程教学项目设计与实践研究[J].亚太教育;2015年[9]ChristianNagel;BillEvjen;JayGlynn:ProfessionalC#2008;WroxPres;2008[10]Wagner:EffectiveC#;MachineryIndustryPress;2006年[11]LiuQuanZhuYiwenLiFangminProf.,SchoolofInformationEngineering,WUT,Wuhan430070,China.InformationSecurityFramesBasedonVPNTechnology.JournalofWuhanUniversityofTechnology,2003,(05):3.

[12]GUOH,CHENF,WANGY.Areusablesoftwarearchitecturemodelformanufactorymanagementinformationsystem[C].26thIEEEInternationalConferenceonComputerSoftwareandApplication.Oxford:IEEE,2002,

致谢本次设计历时3个多月。在这次毕业设计中,每天都离不开卞丽情指导老师的细心指导,使事情基本顺利。起初我刚开始论文写作时心里是很没有底的,中间也遇到了无数的困难和障碍,不过还好都在同学和老师的互相讨论的帮助下度过了。指导老师也很督促我论文的进度,让我慢慢知道论文的重要性,不厌其烦的帮助我进行论文的修改和改进。另一方面,老师认真负责的工作态度,谨慎的教学指导也给我留下了特别深的感觉,也让我知道的细节决定了很多东西。在此,我特向老师表示由衷的感激。经历自己对该毕业设计的全过程研究与开发,我的系统从需求分析到实现详细功能,再到最终测试和维护的特殊进展。让我对系统研发有了深层次的理解,也知道一个系统的开发也不是一件容易的事。这次也让我自己的动手能力和单独处理问题的本领有了更好的提升。最后,在整个系统的开发过程中,我还是要感谢我身边的同学和部分有工作经验的朋友给了我很多的意见,让我加快对问题的解决和项目的设计,我由衷地感谢他们。

捷键与一些电脑小技巧HYPERLINKwinkey+d:

这是高手最常用的第一快捷组合键。这个快捷键组合可以将桌面上的所有窗口瞬间最小化,无论是聊天的窗口还是游戏的窗口……只要再次按下这个组合键,刚才的所有窗口都回来了,而且激活的也正是你最小化之前在使用的窗口!

--这个就是winkeywinkey+f:

不用再去移动鼠标点“开始→搜索→文件和文件夹”了,在任何状态下,只要一按winkey+f就会弹出搜索窗口。

winkey+r:

在我们的文章中,你经常会看到这样的操作提示:“点击‘开始→运行’,打开‘运行’对话框……”。其实,还有一个更简单的办法,就是按winkey+r!

alt+tab:

如果打开的窗口太多,这个组合键就非常有用了,它可以在一个窗口中显示当前打开的所有窗口的名称和图标●,选中自己希望要打开的窗口,松开这个组合键就可以了。而alt+tab+shift键则可以反向显示当前打开的窗口。

winkey+e:

当你需要打开资源管理器找文件的时候,这个快捷键会让你感觉非常“爽”!再也不用腾出一只手去摸鼠标了!

小提示:

winkey指的是键盘上刻有windows徽标的键●。winkey主要出现在104键和107键的键盘中。104键盘又称win95键盘,这种键盘在原来101键盘的左右两边、ctrl和alt键之间增加了两个windwos键和一个属性关联键。107键盘又称为win98键盘,比104键多了睡眠、唤醒、开机等电源管理键,这3个键大部分位于键盘的右上方。

再补充点

F1显示当前程序或者windows的帮助内容。

F2当你选中一个文件的话,这意味着“重命名”

F3当你在桌面上的时候是打开“查找:所有文件”对话框

F10或ALT激活当前程序的菜单栏

windows键或CTRL+ESC打开开始菜单

CTRL+ALT+DELETE在win9x中打开关闭程序对话框

DELETE删除被选择的选择项目,如果是文件,将被放入回收站

SHIFT+DELETE删除被选择的选择项目,如果是文件,将被直接删除而不是

放入回收站

CTRL+N新建一个新的文件

CTRL+O打开“打开文件”对话框

CTRL+P打开“打印”对话框

CTRL+S保存当前操作的文件

CTRL+X剪切被选择的项目到剪贴板

CTRL+INSERT或CTRL+C复制被选择的项目到剪贴板

SHIFT+INSERT或CTRL+V粘贴剪贴板中的内容到当前位置

ALT+BACKSPACE或CTRL+Z撤销上一步的操作

ALT+SHIFT+BACKSPACE重做上一步被撤销的操作

Windows键+D:最小化或恢复windows窗口

Windows键+U:打开“辅助工具管理器”

Windows键+CTRL+M重新将恢复上一项操作前窗口的大小和位置

Windows键+E打开资源管理器

Windows键+F打开“查找:所有文件”对话框

Windows键+R打开“运行”对话框

Windows键+BREAK打开“系统属性”对话框

Windows键+CTRL+F打开“查找:计算机”对话框

SHIFT+F10或鼠标右击打开当前活动项目的快捷菜单

SHIFT在放入CD的时候按下不放,可以跳过自动播放CD。在打开wo

rd的时候按下不放,可以跳过自启动的宏

ALT+F4关闭当前应用程序

ALT+SPACEBAR打开程序最左上角的菜单

ALT+TAB切换当前程序

ALT+ESC切换当前程序

ALT+ENTER将windows下运行的MSDOS窗口在窗口和全屏幕状态间切换

PRINTSCREEN将当前屏幕以图象方式拷贝到剪贴板

ALT+PRINTSCREEN将当前活动程序窗口以图象方式拷贝到剪贴板

CTRL+F4关闭当前应用程序中的当前文本(如word中)

CTRL+F6切换到当前应用程序中的下一个文本(加shift可以跳到前

一个窗口)

在IE中:

ALT+RIGHTARROW显示前一页(前进键)

ALT+LEFTARROW显示后一页(后退键)

CTRL+TAB在页面上的各框架中切换(加shift反向)

F5刷新

CTRL+F5强行刷新1.打开“我的电脑”-“工具”-“文件夹选项”-“查看”-在“显示所有文件和文件夹”选项前打勾-“确定”

2.删除以下文件夹中的内容:

x:\DocumentsandSettings\用户名\Cookies\下的所有文件(保留index文件)

x:\DocumentsandSettings\用户名\LocalSettings\Temp\下的所有文件(用户临时文件)

x:\DocumentsandSettings\用户名\LocalSettings\TemporaryInternetFiles\下的所有文件(页面文件)

x:\DocumentsandSettings\用户名\LocalSettings\History\下的所有文件(历史纪录)

x:\DocumentsandSettings\用户名\Recent\下的所有文件(最近浏览文件的快捷方式)

x:\WINDOWS\Temp\下的所有文件(临时文件)

x:\WINDOWS\ServicePackFiles(升级sp1或sp2后的备份文件)

x:\WINDOWS\DriverCache\i386下的压缩文件(驱动程序的备份文件)

x:\WINDOWS\SoftwareDistribution\download下的所有文件

3.如果对系统进行过windoesupdade升级,则删除以下文件:x:\windows\下以$u...开头的隐藏文件

4.然后对磁盘进行碎片整理,整理过程中请退出一切正在运行的程序

5.碎片整理后打开“开始”-“程序”-“附件”-“系统工具”-“系统还原”-“创建一个还原点”(最好以当时的日期作为还原点的名字)

6.打开“我的电脑”-右键点系统盘-“属性”-“磁盘清理”-“其他选项”-单击系统还原一栏里的“清理”-选择“是”-ok了

7、在各种软硬件安装妥当之后,其实XP需要更新文件的时候就很少了。删除系统备份文件吧:开始→运行→sfc.exe/purgecache近3xxM。(该命令的作用是立即清除"Windows文件保护"文件高速缓存,释放出其所占据的空间)

8、删掉\windows\system32\dllcache下dll档(减去200——300mb),这是备用的dll档,只要你已拷贝了安装文件,完全可以这样做。

9、XP会自动备份硬件的驱动程序,但在硬件的驱动安装正确后,一般变动硬件的可能性不大,所以也可以考虑将这个备份删除,文件位于\windows\drivercache\i386目录下,名称为driver.cab,你直接将它删除就可以了,通常这个文件是74M。

10、删除不用的输入法:对很多网友来说,WindowsXPt系统自带的输入法并不全部都合适自己的使用,比如IMJP8_1日文输入法、IMKR6_1韩文输入法这些输入法,如果用不着,我们可以将其删除。输入法位于\windows\ime\文件夹中,全部占用了88M的空间。

11、升级完成发现windows\多了许多类似$NtUninstallQ311889$这些目录,都干掉吧,1x-3xM

12、另外,保留着\windows\help目录下的东西对我来说是一种伤害,呵呵。。。都干掉!

13、关闭系统还原:系统还原功能使用的时间一长,就会占用大量的硬盘空间。因此有必要对其进行手工设置,以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论