实验室安排管理系统_第1页
实验室安排管理系统_第2页
实验室安排管理系统_第3页
实验室安排管理系统_第4页
实验室安排管理系统_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

实验室安排管理系统目录TOC\o"1-2"\h\z\u第一章引言 11.1项目名称 11.2项目背景 11.3管理系统概述 11.4系统开发的意义 1第二章系统分析 22.1功能模块 22.2系统流程图 42.3需求分析 5第三章系统设计 63.1数据库设计 6第四章系统实施 104.1关键技术 10第五章总结 145.1心得体会 145.2系统功能完成情况 145.3所遇到的问题及解决方法 145.4总括 14致谢 15参考文献 16附录 17

第一章引言1.1项目名称实验室安排管理系统。1.2项目背景随着我国经济的高速发展,中小企业在社会经济中扮演的角色越来越重要,已成为最多元化和最具创新精神的部分。但是随着企业的发展,客户的增多,企业账目混乱,库存不准,信息反馈不及时等问题也接踵而至。这些问题已成为制约中小企业发展的瓶颈,严重制约了中小企业的发展壮大。越来越多的企业经营者认识到:单纯靠对商品的占有,靠个人经验,已经很难把握市场,很难在激烈的竞争中取胜。如何借助IT手段、如何通过信息化,加强核心竞争力,实现持续发展已成为中小企业亟待解决的关键问题。1.3管理系统概述本实验室安排管理系统是用(c#)+SQLServer2000开发的,开发环境为:Windows2000(以上),运行于Windows操作系统IE;用户可以通过网上申请实验室,管理员可以网上管理实验室安排管理系统。本实验室安排管理系统我们学院计算机系实验室安排管理系统,它具备数据处理、控制功能,具体作用如下:(1)教师可以通过注册取得相关权限网上申请实验。(2)用户以管理自己的相关数据。(3)管理员具有最高级管理权限,包括基本资料维护(教师维护,课程维护,班级维护,实验室维护,学期维护,星期维护,节次维护,周次维护),实验室安排管理,用户管理等权限。(4)学生等可以无须受权匿名查看实验室安排表。1.4系统开发的意义本系统具有网络的优越性,便于教师在任何可以上网的地方申请实验室,提高管理人员管理维护效率。

第二章系统分析实验室安排管理系统用户登录实验室安排管理申请实验室基本资料维护用户管理个人设置查看申请情况2.1功能模块实验室安排管理系统用户登录实验室安排管理申请实验室基本资料维护用户管理个人设置查看申请情况图2-1功能框图2.1.1用户登录模块相关权限登录到实验安排管理系统,如果用户还没有注册,则跳转到注册页面注册取得相关权限才可以登录到实验安排管理系统,并且该注册页面只有我们学院的教师才有权限注册,注册成功后用户只有普通用户的权限,要有管理员的权限只有高级管理员才受权才可以。2.1.2申请实验室模块本模块的功能是注册用户和管理员可以申请使用实验室,记录在一个实验室安排初始表里。如果申请实验室和其他用户产生冲突,则系统会提示当前用户该实验室已被其他用户申请使用,但系统会为该用户安排另外一个还没有被申请的实验室。如果所有的实验室已被申请,则系统将直接将当前用户申请的提交到实验室安排初始表里由管理员进行手动安排。系统支持用户实习申请,一率给用户该周1-2,节3-4节,总共20个课时。用户可以删除自己在实验室安排排初始表里的记录,即取消申请,也可查看实验室的申请情况及实验室的最终安排情况。2.1.3基本资料维护包括教师维护、课程维护、班级维护、实验室维护、学期维护、星期维护、节次维护、周次维护。2.1.4实验室安排管理管理员对实验室安排初始表进行查看,管理,如果没有申请冲突,则确认,对初始表的数据记录到一个实验室安排最终表里。2.1.5用户管理管理员对用户进行管理,如删除用户,用户受权等。2.1.6个人设置当前用户可以在这个模块里进行个人设置:密码修改,但不支持用户名修改,用户名的修改由管理员完成。2.1.7查看申请情况可以查看实验室最终的安排情况。该页面是不用受权的,即支持匿名用户查看。

2.2系统流程图经过进一步的调查研究,我确认了实验室安排管理系统业务流程。该流程图如(图2-2系统流程图)所示。申请冲突申请冲突管理,确认申请提示用户申请冲突提示管理员申请冲突检测实验室安排终表打印安排表个人管理修改密码退出管理用户管理基本资料维护查看、分析自行安排手动安排普通用户管理员实验室安排初表申请使用申请使用或管理核对权限起始页注册模块登录模块已注册未注册成功注册申请不冲突申请不冲突检测用户管理图2-2系统流程图

2.3需求分析为了提高实验室安排管理效率,方便教师对实验室的使用情况及时查询和申请实验室,需要设计一个能提供教师实时了解当前实验室教师申请情况,并可以对闲置实验室的申请,最后通过实验室管理员对教师所做的实验申请进行安排管理。对本系统的用户需求归纳如下:(1)教师查看当前实验室被申请情况,分析出此时一周内各实验室的被申请情况。可以多种方式排序查看;(2)教师申请实验室,保存教师申请实验室信息,在保存之前检测当前时间,当前实验室是否已经安排,做出相应提醒。(3)教师维护(分任课教师和实验指导教师)、课程维护、班级维护、实验室维护、学期维护、星期维护、节次维护、周次维护;(4)对所申请实验室进行自动安排管理,对同一实验室,同一时间、不同班级进行冲突检测,可以进行手动调整,仍要进行冲突检测;(5)审核安排实验,停止当前周次实验室申请;(6)打印实验安排表

第三章系统设计3.1数据库设计数据库的建立不仅能保证数据能够尽可能地被有效地利用,还能提高应用开发的效率。鉴于实验室提供的环境和本次毕业设计的任务重心,本系统采用了本地数据库sqlserver。数据库结构如(图3-1实验室安排管理系统数据库结构)所示:实验室安排管理数据库(sysapgl)实验室安排管理数据库(sysapgl)用户信息表(用户信息表(yhxxb)实验室信息表(shiyanshixinxibiao)课程信息表(kecheng)班级表(banjibiao)教师表(jiaoshibiao)实验室安排初表(shiyanshianpaibiao)系部表(xibiao)学年表(xuenianbiao)学期表(xueqibiao)周次表(zhoucibiao)节次表(jiecibiao)实验室安排终表(zuizhonganpaibiao)实验室安排终表(zuizhonganpaibiao)图3-1实验室安排管理系统数据库结构在考虑到实验室目前及今后管理和辅助决策的需要,我们在数据库里建立的主要表格如下:户信息表(yhxxb)户信息表用于保存用户权限设置信息。用户信息表结构如表3-1所示。表3-1用户信息表字段名称字段描述主键类型长度说明yonghubianhao用户编号是字符型4系统自动分配序号。yonghuming用户名字符型8非空yonghuquanxian用户权限字符型50非空xingbie性别字符型2非空xibie系别字符型50非空mima密码字符型16非空实验室信息表(shiyanshixinxibiao)实验室信息表用于保存实验室信息。实验室信息表结构如表3-2所示。表3-2实验室信息表字段名称字段描述主键类型长度说明sysbianhao编号是字符型4系统自动分配序号shiyanshiming实验室名字符型8非空dizi机房所在地址字符型50非空shebeishumu设备数目整型4非空guanliyuan管理员字符型8非空教师表(jiaoshibiao)教师表用于保存教师的资料。教师表结构如表3-3所示。表3-3教师表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号xingming姓名字符型8非空shoukekecheng授课课程字符型50非空shoukebanji授课班级字符型50xingbie性别字符型2非空xibie系别字符型50非空课程信息表(kecheng)课程信息表用于保存课程信息。课程信息表结构如表3-4所示。表3-4课程信息表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号kechengming课程名字符型50非空班级表(banjibiao)班级表用于保存班级的信息。班级表结构如表3-5所示。表3-5班级表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号banji班级字符型50非空ruxueshijian入学时间日期非空renshu人数整型4非空xibie系别字符型50非空系部表(xibiao)系部表用于保存系部信息。系部表结构如表3-6所示。表3-6系部表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号xibie系别字符型50非空学年表(xuenianbiao)学年表用于保存学年信息。学年表结构如表3-7所示。表3-7学年表表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号xuenian学年字符型8非空学期表(xueqibiao)学期表用于保存学期信息。学期表结构如表3-8所示。表3-8学期表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号xueqi学期字符型8非空周次表(zhoucibiao)周次表用于保存周次信息。周次信息表结构如表3-9所示。表3-9周次表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号zhouci周次字符型8非空(10)节次表(jiecibiao)节次表用于保存节次信息。节次信息表结构如表3-10所示。表3-10周次表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号jieci节次日期8非空(11)实验室安排初表(shiyanshianpaibiao)该表用于保存用户申请实验室信息。实验室安排初表结构如表3-11所示。表3-11实验室安排初表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号xuenian学年字符型8非空xueqi学期字符型8非空zhouci周次字符型8非空jieci节次字符型8非空banji班级字符型8非空renshu人数字符型4非空shenqingren申请人字符型50非空kechengmingcheng课程名称字符型50shiyanmingcheng实验名称字符型50shiyanshimingcheng实验室名称字符型50(12)实验室安排终表(shiyanshianpaibiao)该表用于保存实验室最终安排信息。实验室安排终表结构如表3-12所示。表3-12实验室安排终表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号xuenian学年字符型8非空xueqi学期字符型8非空zhouci周次字符型8非空jieci节次字符型8非空banji班级字符型8非空renshu人数字符型4非空shenqingren申请人字符型50非空kechengmingcheng课程名称字符型50shiyanmingcheng实验名称字符型50shiyanshimingcheng实验室名称字符型50

第四章系统实施4.1关键技术:用NET框架创作安全性网站很多人在尝试写出带有登陆这样功能的网站,其方法几乎都是验证用户的登陆合法,然后发送一个表示验证的Cookie,或者在Session中保存信息以便于追踪接下来的访问授权,其实,这些细节化的操作,.NET都提供了一种非常有效的解决办法,能使你从繁琐的安全验证上解脱出来,而且,尽管你可能很小心地定义那些页面不能被没有权限的人访问,然而还有可能出现一些无法被检查出来的漏洞让他们跳过安全验证。

本说明书将介绍如下内容:

(1)关于登陆验证和授权很多网站都有登陆对话框,让事先已经注册的用户验证,以便为他们提供个性化的服务等。可以把这个过程看作是两件事情的发生:验证和授权!登陆的作用是验证请求登陆的用户是否合法,而授权则是验证合法的用户在请求资源时,根据他们的权限决定是访问还是拒绝。

以上这种网站本身提供对话框的作法在.NET中被称之为Forms验证模式,接下来将会讲述这种验证模式。在.NET的System.Web.Security中提供了一些网站安全方面的解决方案,尽管验证用户合法和授权的基本思路没有变化,但是授权的工作几乎已经交给.NET框架了,我们些代码之需要自己验证用户合法,并且告诉框架这个用户合法即可。(2)用Forms验证模式要使用启用Forms验证模式,这将告诉.NET,你的网站使用Forms验证模式,.NET将不参与验证用户的工作,而是将这个工作交给你完成,你必须自己编写一些代码来验证用户合法,并且报告给.NET用户是合法的。.NET将会发送一个验证Cookie到用户,随后的访问中,.NET以此Cookie为依据,来执行授权的操作。

例如我们在login.aspx界面中放置两个接受输入的文本框txtUserName和txtPassword,在数据库中,保存了用户名UserName和密码UserPassword,使用btnLogin按钮的Click事件来验证用户:privatevoidbtnLogin_Click(objectsender,EventArgse)

{

stringsql="SELECTuseridFROMUsersWHEREUserName='"+txtUserName.Text.Replace("'","_")+"'ANDUserPassword='"+System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(txtPassword.Text,"md5")+"'";

//使用上面类似的SQL语句向数据库执行查询,如果用户是合法的,将会返回数据。

if(...)//根据条件判定用户是合法的

{

//下面的语句告诉.NET发送一个验证Cookie给用户:

System.Web.Security.FormsAuthentication.SetAuthCookie(userid,false)

Response.Redirect("afterlogin.aspx");

//定位到登陆后页面

}

else

{

//用户不合法,提示错误信息

}

}以上代码中,txtUserName.Text.Replace("'","_")将用户输入的文本中单引号替换为下划线,以防止SQL注入攻击。

System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(txtPassword.Text,"md5")方法将txtPassword.Text转换为MD5散列值,通过MD5加密,即便此密文被截获,攻击者仍无法获得真实的密码。

当确认用户验证是合法的,则调用System.Web.Security.FormsAuthentication.SetAuthCookie(userid,false)方法,发送验证Cookie,此方法传递两个参数,一个是代表用户的标示,一般来说,在接下来确认用户唯一身份的就是从数据库中获得的userid。第二个参数告诉.NET是否写入持续的Cookie,如果为true,则Cookie将被持续,下次用户再次访问时,Cookie仍存在(相当于记住用户,可以提供这样的复选框让用户来决定是否持续Cookie)。发送了Cookie后,即可调用跳转语句跳转到指定地方。(3)资源的访问一旦验证了用户合法,接下来要做的事就是对于用户请求的资源,授权他们是否能够访问。重新回到web.config文件中,在网站的任何目录中都可以使用web.config,他们的设置是传递继承的。

例如在users目录中存放的均是当用户登录后才能访问的页面,则在这个目录中创建一个web.config文件,内容如下:<?xmlversion="1.0"encoding="utf-8"?>

<configuration>

<system.web>

<!--

授权

此节设置应用程序的授权策略。可以允许或拒绝不同的用户或角色访问

应用程序资源。通配符:"*"表示任何人,"?"表示匿名

(未经身份验证的)用户。

-->

<authorization>

<denyusers="?"/>

</authorization>

</system.web>

</configuration>上述内容中denyusers="?"将告诉.NET,此目录拒绝匿名用户的访问,也就是没有验证的用户。当用户试图请求此目录中的资源,将会被重新定向到login.aspx页面,要求登陆。没有登陆的情况下是无法访问的。上述仅对目录进行定义,程序员不用在页面上添加任何代码,即可完整地实现了授权方案。

User.Identity.Name属性可以获得用户的Name,即在验证时的SetAuthCookie方法中传递的userid。(4)于角色的授权其基本原理是,一旦用户验证合法,他们就被分配角色,用户可以使一个或者若干和角色,而资源的授权面向角色,这样,针对不同的角色,就可以授予不同的权限,没有某种角色类型的用户试图访问需要这种角色的资源将会被拒绝。

当网站开始接受用户请求时,就伴随着验证,将激发Application_AuthenticateRequest事件,在Global.asax文件中写代码以响应此事件。角色的分配工作就需要再这里进行。publicvoidApplication_AuthenticateRequest(objectsender,EventArgse)

{

if(this.Request.IsAuthenticated) { string[]rolesStrArr=newstring[1]; SqlConnectionconn=newSqlConnection(System.Configuration.ConfigurationSettings.AppSettings["sysapgl"]); stringsqlstr="selectyonghuquanxianfromyhxxbwhereyonghubianhao='"+this.Context.User.Identity.Name+"'"; conn.Open(); SqlCommandcmd=newSqlCommand(sqlstr,conn); cmd.ExecuteNonQuery(); stringiCount=Convert.ToString(cmd.ExecuteScalar()); if(iCount=="管理员") { rolesStrArr[0]="管理员"; } else { rolesStrArr[0]="普通用户"; }this.Context.User=newSystem.Security.Principal.GenericPrincipal(this.User.Identity,rolesStrArr); }}我们调用System.Security.Principal.GenericPrincipal方法,在原有User对象的基础上为其加入角色。

一旦用户被授予访问角色之后,在web.config中就可以配置针对不同角色的访问。例如在管理员admin目录内<configuration>

<locationpath="userabc.aspx">

<system.web>

<authorization>

<allowroles="管理员"/>

<denyusers="*"/>

</authorization>

</system.web>

</location>

</configuration>上述配置只允许管理员角色才能被授权。资源默认是任何人都访问的,所以要在下面再添加<denyusers="*"/>表示对任何用户拒绝。全局的User对象提供了一个方法IsInRole(stringRoleName)方法用来在代码中检测用户是否拥有某种角色。如果他拥有这种角色,将返回true。

第五章总结5.1心得体会通过这次的毕业设计,我对前面学过的许多课程有了更为深刻的理解。我们的专业知识还不够训练,并没有做过一个像样的动态网页,远没有做web管理系统的经验,所以参考其它的作品会使我们在开发过程中得到帮助,还有,就是网上有好多比较好的参考资料,网上论坛有好多高手,可以从他们那里得到帮助。否则遇到问题时不能自己解决,延缓开发进度,毕业设计也就不可能完成得了。5.2系统功能完成情况经过自己的努力学习和摸索,老师和其他高手的指导,我的这个实验室安排管理系统也经基本完成。实现了用户的登录,实验室的申请,实验室安排管理,用户管理,个人设置和部分基本资料维护。本系统具有较强的智能化,方便教师的实验室申请,减轻管理人员的工作,且系统的交互性也比较好,能给用户适当的提示,使用户作出相关操作。5.3所遇到的问题及解决方法(1)问题:stringyonghubianhao=this.DropDownList1.SelectedValue;语名yonghubianhao总是获得第一个选项的值。解决方法:Page_Load(objectsender,System.EventArgse)事件中用if(!IsPostBack)判断是否为第一次加该页。如果是才对DropDownList1进行绑定。(2)问题:DataGrid1删除列,点击时弹出对话框,确认则删除记录,取消则不删除记录;解决方法:在DataGrid1属性生成器中删除列的文本(T)中添加<divid="de"onclick="javascript:returnconfirm('真的要删除吗?')">删除</div>。(3)问题:点击左边子框架时,右边子框架显示的页面刷新.解决方法:调用window.parent.right.location.href=('新页面')方法。5.4总括总体上说,这次的毕业设计对我来说是非常难得的一次锻炼机会。这次毕业设计使得我对三年来所学的专业课有了更为深刻的认识,使知识得到了融会贯通,学到了比以往没有学到的知识。在解决这些困难的过程中提高了我的学习能力,解决问题的能力和实际工作的能力。

致谢我通过开发这个管理信息系统,巩固了以前所学的知识,提高了应用能力;借此机会,深深地感谢我的指导老师—杨呈永老师及支持、帮助过我的老师们。谢谢!感谢所有曾经热情帮助过我的同学和在网上论坛上留言的网友们。在此特致以殷切谢意!

参考文献[1]昊晨孙少波叶莞编著ASP.NET数据库项目案例导航清华大学出版社,2004-12[2](美RebeccaM.Riordan著)李高健孙瑛霖译著ADO.NET程序设计清华大学出版社,2002-7[3]冯昊编著ASP动态网页设计与上机指导清华大学出版社,2002-12[4]张蓓编著通用模块及大型系统开发实例导航人民邮电出版社,2006-2[5]宋朝东编著巧学巧用HTMLCSSjavascript制作网页人民邮电出版社,2006-3[6]/频道[6]/通能E书网[8]/search/search.aspASP电子书下载[9]//动态网站制作指南[10]/quickstart/aspplus/doc/quickstart.aspx//ASP.NET教程

附录申请实验室页面Shenqingshiyanshi.aspx.cs关键代码:privatevoidPage_Load(objectsender,System.EventArgse){if(!IsPostBack){stringsqlstr="select*fromxuenianbiao";stringsqlstr3="select*fromzhoucibiao";stringsqlstr4="select*fromxingqibiao";stringsqlstr5="select*fromjiecibiao";stringsqlstr6="select*frombanjibiao";stringsqlstr7="select*fromkecheng";stringsqlstr8="select*fromshiyanshixinxibiao"; SqlConnectionconn=newSqlConnection(System.Configuration.ConfigurationSettings.AppSettings["sysapgl"]);SqlDataAdapterda=newSqlDataAdapter(sqlstr,conn);SqlDataAdapterda3=newSqlDataAdapter(sqlstr3,conn);SqlDataAdapterda4=newSqlDataAdapter(sqlstr4,conn);SqlDataAdapterda5=newSqlDataAdapter(sqlstr5,conn);SqlDataAdapterda6=newSqlDataAdapter(sqlstr6,conn);SqlDataAdapterda7=newSqlDataAdapter(sqlstr7,conn);SqlDataAdapterda8=newSqlDataAdapter(sqlstr8,conn);try{conn.Open();DataSetds=newDataSet();DataSetds3=newDataSet();DataSetds4=newDataSet();DataSetds5=newDataSet();DataSetds6=newDataSet();DataSetds7=newDataSet();DataSetds8=newDataSet();ds.Tables.Add("xuenian");ds3.Tables.Add("zhouci");ds4.Tables.Add("xingqi");ds5.Tables.Add("jieci");ds6.Tables.Add("banji");ds7.Tables.Add("kechengmingcheng");ds8.Tables.Add("shiyanshiming");da.Fill(ds,"xuenian");da3.Fill(ds3,"zhouci");da4.Fill(ds4,"xingqi");da5.Fill(ds5,"jieci");da6.Fill(ds6,"banji");da7.Fill(ds7,"kechengmingcheng");da8.Fill(ds8,"shiyanshiming");DropDownList1.DataSource=ds.Tables["xuenian"].DefaultView;DropDownList3.DataSource=ds3.Tables["zhouci"].DefaultView;DropDownList4.DataSource=ds4.Tables["xingqi"].DefaultView;DropDownList5.DataSource=ds5.Tables["jieci"].DefaultView;DropDownList6.DataSource=ds6.Tables["banji"].DefaultView;DropDownList7.DataSource=ds7.Tables["kechengmingcheng"].DefaultView;DropDownList8.DataSource=s8.Tables["shiyanshiming"].DefaultView;DropDownList1.DataTextField="xuenian";DropDownList3.DataTextField="zhouci";DropDownList4.DataTextField="xingqi";DropDownList5.DataTextField="jieci";DropDownList6.DataTextField="banji";DropDownList7.DataTextField="kechengmingcheng";DropDownList8.DataTextField="shiyanshiming";DropDownList1.DataValueField="xuenian";DropDownList3.DataValueField="zhouci";DropDownList4.DataValueField="xingqi";DropDownList5.DataValueField="jieci";DropDownList6.DataValueField="banji";DropDownList7.DataValueField="kechengmingcheng";DropDownList8.DataValueField="shiyanshiming";DropDownList1.DataBind();DropDownList3.DataBind();DropDownList4.DataBind();DropDownList5.DataBind();DropDownList6.DataBind();DropDownList7.DataBind();DropDownList8.DataBind();}catch{Response.Write("<script>alert('连接数库有误,登录失败!');</script>");}finally{conn.Close();}}}#regionWeb窗体设计器生成的代码overrideprotectedvoidOnInit(EventArgse){//CODEGEN:该调用是ASP.NETWeb窗体设计器所必需的。InitializeComponent();base.OnInit(e);}privatevoidInitializeComponent(){this.Button1.Click+=newSystem.EventHandler(this.Button1_Click);this.Button2.Click+=newSystem.EventHandler(this.Button2_Click);this.CheckBox1.CheckedChanged+=newSystem.EventHandler(this.CheckBox1_CheckedChanged);this.Load+=newSystem.EventHandler(this.Page_Load);}#endregionprivatevoidButton1_Click(objectsender,System.EventArgse){if(!CheckBox1.Checked){stringniandu=DropDownList1.SelectedValue;stringxuenian=DropDownList2.SelectedValue;stringzhouci=DropDownList3.SelectedValue;stringxingqi=DropDownList4.SelectedValue;stringjieci=DropDownList5.SelectedValue;stringbanji=DropDownList6.SelectedValue;stringkechengmingcheng=DropDownList7.SelectedValue;stringshiyanmingcheng=TextBox1.Text;stringshiyanshimingcheng=DropDownList8.SelectedValue;SqlConnectionconn=newSqlConnection(System.Configuration.ConfigurationSettings.AppSettings["sysapgl"]);stringsqlstr11="selectyonghumingfromyhxxbwhereyonghubianhao='"+this.Context.User.Identity.Name+"'";conn.Open();SqlCommandcmd11=newSqlCommand(sqlstr11,conn);cmd11.ExecuteNonQuery();stringyonghuming=Convert.ToString(cmd11.ExecuteScalar());conn.Close();stringsqlstr9="select*fromshiyanshianpaibiaowhereniandu='"+niandu+"'andxuenian='"+xuenian+"'andzhouci='"+zhouci+"'andxingqi='"+xingqi+"'andjieci='"+jieci+"'andshiyanshimingcheng='"+shiyanshimingcheng+"'";SqlCommandcmd=newSqlCommand(sqlstr9,conn);try{conn.Open();cmd.ExecuteNonQuery();inticount=Convert.ToInt32(cmd.ExecuteScalar());if(icount>0){Response.Write("<script>alert('该实验室已被其他用户申请使用!系统将随机为你安排一个实验室!');</script>");inti=0;ints=0;for(i=0;i<DropDownList8.Items.Count;i++){stringsqlstr13="select*fromshiyanshianpaibiaowhereniandu='"+niandu+"'andxuenian='"+xuenian+"'andzhouci='"+zhouci+"'andxingqi='"+xingqi+"'andjieci='"+jieci+"'andshiyanshimingcheng='"+DropDownList8.Items[i].Text+"'";SqlCommandcmd13=newSqlCommand(sqlstr13,conn);cmd13.ExecuteNonQuery();inticount13=Convert.ToInt32(cmd13.ExecuteScalar());if(icount13>0){s=s+1;continue;}else{stringsqlstr12="selectrenshufrombanjibiaowherebanji='"+banji+"'";SqlCommandcmd12=newSqlCommand(sqlstr12,conn);cmd12.ExecuteNonQuery();intirenshu=Convert.ToInt32(cmd12.ExecuteScalar());stringsqlstr10="insertintoshiyanshianpaibiao(niandu,xuenian,zhouci,xingqi,jieci,banji,kechengmingcheng,shiyanshimingcheng,shiyanmingcheng,shenqingren,renshu)values('"+niandu+"','"+xuenian+"','"+zhouci+"','"+xingqi+"','"+jieci+"','"+banji+"','"+kechengmingcheng+"','"+DropDownList8.Items[i].Text+"','"+shiyanmingcheng+"','"+yonghuming+"','"+irenshu+"')";SqlCommandcmd10=newSqlCommand(sqlstr10,conn);cmd10.ExecuteNonQuery();break;}}if(s==DropDownList8.Items.Count){Response.Write("<script>alert('该节次时间实验室已全部被申请使用!系统已将你的申请提交给管理员!');</script>");stringsqlstr14="selectrenshufrombanjibiaowherebanji='"+banji+"'";SqlCommandcmd14=newSqlCommand(sqlstr14,conn);cmd14.ExecuteNonQuery();intirenshu14=Convert.ToInt32(cmd14.ExecuteScalar());stringsqlstr15="insertintoshiyanshianpaibiao(niandu,xuenian,zhouci,xingqi,jieci,banji,kechengmingcheng,shiyanshimingcheng,shiyanmingcheng,shenqingren,renshu)values('"+niandu+"','"+xuenian+"','"+zhouci+"','"+xingqi+"','"+jieci+"','"+banji+"','"+kechengmingcheng+"','"+DropDownList8.SelectedValue+"','"+shiyanmingcheng+"','"+yonghuming+"','"+irenshu14+"')";SqlCommandcmd15=newSqlCommand(sqlstr15,conn);cmd15.ExecuteNonQuery();}}else{stringsqlstr14="selectrenshufrombanjibiaowherebanji='"+banji+"'";SqlCommandcmd14=newSqlCommand(sqlstr14,conn);cmd14.ExecuteNonQuery();intirenshu14=Convert.ToInt32(cmd14.ExecuteScalar());stringsqlstr15="insertintoshiyanshianpaibiao(niandu,xuenian,zhouci,xingqi,jieci,banji,kechengmingcheng,shiyanshimingcheng,shiyanmingcheng,shenqingren,renshu)values('"+niandu+"','"+xuenian+"','"+zhouci+"','"+xingqi+"','"+jieci+"','"+banji+"','"+kechengmingcheng+"','"+DropDownList8.SelectedValue+"','"+shiyanmingcheng+"','"+yonghuming+"','"+irenshu14+"')";SqlCommandcmd15=newSqlCommand(sqlstr15,conn);cmd15.ExecuteNonQuery();Response.Write("<script>alert('该实验室还没有被其他用户申请使用,你的申请提交完成!');</script>");}}catch{Response.Write("<script>alert('连接数库有误,申请失败!');</script>");}finally{conn.Close();}}else{intk;intj;inti;stringniandu=DropDownList1.SelectedValue;stringxuenian=DropDownList2.SelectedValue;stringzhouci=DropDownList3.SelectedValue;stringxingqi=DropDownList4.SelectedValue;stringjieci=DropDownList5.SelectedValue;stringbanji=DropDownList6.SelectedValue;stringkechengmingcheng=DropDownList7.SelectedValue;stringshiyanmingcheng=TextBox1.Text;stringshiyanshimingcheng=DropDownList8.SelectedValue;SqlConnectionconn=newSqlConnection(System.Configuration.ConfigurationSettings.AppSettings["sysapgl"]);stringsqlstr11="selectyonghumingfromyhxxbwhereyonghubianhao='"+this.Context.User.Identity.Name+"'";conn.Open();SqlCommandcmd11=newSqlCommand(sqlstr11,conn);cmd11.ExecuteNonQuery();stringyonghuming=Convert.ToString(cmd11.ExecuteScalar());for(k=0;k<5;k++){for(j=0;j<2;j++){stringsqlstr14="selectrenshufrombanjibiaowherebanji='"+banji+"'";SqlCommandcmd14=newSqlCommand(sqlstr14,conn);cmd14.ExecuteNonQuery();intirenshu14=Convert.ToInt32(cmd14.ExecuteScalar());stringsqlstr15="insertintoshiyanshianpaibiao(niandu,xuenian,zhouci,xingqi,jieci,banji,kechengmingcheng,shiyanshimingcheng,shiyanmingcheng,shenqingren,renshu)values('"+niandu+"','"+xuenian+"','"+zhouci+"','"+DropDownList4.Items[k].Text+"','"+DropDownList5.Items[j].Text+"','"+banji+"','"+kechengmingcheng+"','"+DropDownList8.SelectedValue+"','"+shiyanmingcheng+"','"+yonghuming+"','"+irenshu14+"')";SqlCommandcmd15=newSqlCommand(sqlstr15,conn);cmd15.ExecuteNonQuery();}}Response.Write("<script>alert('申请实习成功!,系统将进行安排你的课时!');</script>");}}privatevoidButton2_Click(objectsender,System.EventArgse){Response.Redirect("Main.aspx");}privatevoidCheckBox1_CheckedChanged(objectsender,System.EventArgse){if(CheckBox1.Checked){DropDownList5.Enabled=false;DropDownList4.Enabled=false;Label8.Text="实习名称";DropDownList8.Enabled=false;}if(!CheckBox1.Checked){DropDownList5.Enabled=true;DropDownList4.Enabled=true;Label8.Text="实验名称";DropDownList8.Enabled=true;}}}}实验室安排管理系统目录TOC\o"1-2"\h\z\u第一章引言 11.1项目名称 11.2项目背景 11.3管理系统概述 11.4系统开发的意义 1第二章系统分析 22.1功能模块 22.2系统流程图 42.3需求分析 5第三章系统设计 63.1数据库设计 6第四章系统实施 104.1关键技术 10第五章总结 145.1心得体会 145.2系统功能完成情况 145.3所遇到的问题及解决方法 145.4总括 14致谢 15参考文献 16附录 17

第一章引言1.1项目名称实验室安排管理系统。1.2项目背景随着我国经济的高速发展,中小企业在社会经济中扮演的角色越来越重要,已成为最多元化和最具创新精神的部分。但是随着企业的发展,客户的增多,企业账目混乱,库存不准,信息反馈不及时等问题也接踵而至。这些问题已成为制约中小企业发展的瓶颈,严重制约了中小企业的发展壮大。越来越多的企业经营者认识到:单纯靠对商品的占有,靠个人经验,已经很难把握市场,很难在激烈的竞争中取胜。如何借助IT手段、如何通过信息化,加强核心竞争力,实现持续发展已成为中小企业亟待解决的关键问题。1.3管理系统概述本实验室安排管理系统是用(c#)+SQLServer2000开发的,开发环境为:Windows2000(以上),运行于Windows操作系统IE;用户可以通过网上申请实验室,管理员可以网上管理实验室安排管理系统。本实验室安排管理系统我们学院计算机系实验室安排管理系统,它具备数据处理、控制功能,具体作用如下:(1)教师可以通过注册取得相关权限网上申请实验。(2)用户以管理自己的相关数据。(3)管理员具有最高级管理权限,包括基本资料维护(教师维护,课程维护,班级维护,实验室维护,学期维护,星期维护,节次维护,周次维护),实验室安排管理,用户管理等权限。(4)学生等可以无须受权匿名查看实验室安排表。1.4系统开发的意义本系统具有网络的优越性,便于教师在任何可以上网的地方申请实验室,提高管理人员管理维护效率。

第二章系统分析实验室安排管理系统用户登录实验室安排管理系统用户登录实验室安排管理申请实验室基本资料维护用户管理个人设置查看申请情况图2-1功能框图2.1.1用户登录模块相关权限登录到实验安排管理系统,如果用户还没有注册,则跳转到注册页面注册取得相关权限才可以登录到实验安排管理系统,并且该注册页面只有我们学院的教师才有权限注册,注册成功后用户只有普通用户的权限,要有管理员的权限只有高级管理员才受权才可以。2.1.2申请实验室模块本模块的功能是注册用户和管理员可以申请使用实验室,记录在一个实验室安排初始表里。如果申请实验室和其他用户产生冲突,则系统会提示当前用户该实验室已被其他用户申请使用,但系统会为该用户安排另外一个还没有被申请的实验室。如果所有的实验室已被申请,则系统将直接将当前用户申请的提交到实验室安排初始表里由管理员进行手动安排。系统支持用户实习申请,一率给用户该周1-2,节3-4节,总共20个课时。用户可以删除自己在实验室安排排初始表里的记录,即取消申请,也可查看实验室的申请情况及实验室的最终安排情况。2.1.3基本资料维护包括教师维护、课程维护、班级维护、实验室维护、学期维护、星期维护、节次维护、周次维护。2.1.4实验室安排管理管理员对实验室安排初始表进行查看,管理,如果没有申请冲突,则确认,对初始表的数据记录到一个实验室安排最终表里。2.1.5用户管理管理员对用户进行管理,如删除用户,用户受权等。2.1.6个人设置当前用户可以在这个模块里进行个人设置:密码修改,但不支持用户名修改,用户名的修改由管理员完成。2.1.7查看申请情况可以查看实验室最终的安排情况。该页面是不用受权的,即支持匿名用户查看。

2.2系统流程图经过进一步的调查研究,我确认了实验室安排管理系统业务流程。该流程图如(图2-2系统流程图)所示。申请冲突申请冲突管理,确认申请提示用户申请冲突提示管理员申请冲突检测实验室安排终表打印安排表个人管理修改密码退出管理用户管理基本资料维护查看、分析自行安排手动安排普通用户管理员实验室安排初表申请使用申请使用或管理核对权限起始页注册模块登录模块已注册未注册成功注册申请不冲突申请不冲突检测用户管理图2-2系统流程图

2.3需求分析为了提高实验室安排管理效率,方便教师对实验室的使用情况及时查询和申请实验室,需要设计一个能提供教师实时了解当前实验室教师申请情况,并可以对闲置实验室的申请,最后通过实验室管理员对教师所做的实验申请进行安排管理。对本系统的用户需求归纳如下:(1)教师查看当前实验室被申请情况,分析出此时一周内各实验室的被申请情况。可以多种方式排序查看;(2)教师申请实验室,保存教师申请实验室信息,在保存之前检测当前时间,当前实验室是否已经安排,做出相应提醒。(3)教师维护(分任课教师和实验指导教师)、课程维护、班级维护、实验室维护、学期维护、星期维护、节次维护、周次维护;(4)对所申请实验室进行自动安排管理,对同一实验室,同一时间、不同班级进行冲突检测,可以进行手动调整,仍要进行冲突检测;(5)审核安排实验,停止当前周次实验室申请;(6)打印实验安排表

第三章系统设计3.1数据库设计数据库的建立不仅能保证数据能够尽可能地被有效地利用,还能提高应用开发的效率。鉴于实验室提供的环境和本次毕业设计的任务重心,本系统采用了本地数据库sqlserver。数据库结构如(图3-1实验室安排管理系统数据库结构)所示:实验室安排管理数据库(sysapgl)实验室安排管理数据库(sysapgl)用户信息表(用户信息表(yhxxb)实验室信息表(shiyanshixinxibiao)课程信息表(kecheng)班级表(banjibiao)教师表(jiaoshibiao)实验室安排初表(shiyanshianpaibiao)系部表(xibiao)学年表(xuenianbiao)学期表(xueqibiao)周次表(zhoucibiao)节次表(jiecibiao)实验室安排终表(zuizhonganpaibiao)实验室安排终表(zuizhonganpaibiao)图3-1实验室安排管理系统数据库结构在考虑到实验室目前及今后管理和辅助决策的需要,我们在数据库里建立的主要表格如下:户信息表(yhxxb)户信息表用于保存用户权限设置信息。用户信息表结构如表3-1所示。表3-1用户信息表字段名称字段描述主键类型长度说明yonghubianhao用户编号是字符型4系统自动分配序号。yonghuming用户名字符型8非空yonghuquanxian用户权限字符型50非空xingbie性别字符型2非空xibie系别字符型50非空mima密码字符型16非空实验室信息表(shiyanshixinxibiao)实验室信息表用于保存实验室信息。实验室信息表结构如表3-2所示。表3-2实验室信息表字段名称字段描述主键类型长度说明sysbianhao编号是字符型4系统自动分配序号shiyanshiming实验室名字符型8非空dizi机房所在地址字符型50非空shebeishumu设备数目整型4非空guanliyuan管理员字符型8非空教师表(jiaoshibiao)教师表用于保存教师的资料。教师表结构如表3-3所示。表3-3教师表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号xingming姓名字符型8非空shoukekecheng授课课程字符型50非空shoukebanji授课班级字符型50xingbie性别字符型2非空xibie系别字符型50非空课程信息表(kecheng)课程信息表用于保存课程信息。课程信息表结构如表3-4所示。表3-4课程信息表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号kechengming课程名字符型50非空班级表(banjibiao)班级表用于保存班级的信息。班级表结构如表3-5所示。表3-5班级表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号banji班级字符型50非空ruxueshijian入学时间日期非空renshu人数整型4非空xibie系别字符型50非空系部表(xibiao)系部表用于保存系部信息。系部表结构如表3-6所示。表3-6系部表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号xibie系别字符型50非空学年表(xuenianbiao)学年表用于保存学年信息。学年表结构如表3-7所示。表3-7学年表表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号xuenian学年字符型8非空学期表(xueqibiao)学期表用于保存学期信息。学期表结构如表3-8所示。表3-8学期表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号xueqi学期字符型8非空周次表(zhoucibiao)周次表用于保存周次信息。周次信息表结构如表3-9所示。表3-9周次表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号zhouci周次字符型8非空(10)节次表(jiecibiao)节次表用于保存节次信息。节次信息表结构如表3-10所示。表3-10周次表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号jieci节次日期8非空(11)实验室安排初表(shiyanshianpaibiao)该表用于保存用户申请实验室信息。实验室安排初表结构如表3-11所示。表3-11实验室安排初表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号xuenian学年字符型8非空xueqi学期字符型8非空zhouci周次字符型8非空jieci节次字符型8非空banji班级字符型8非空renshu人数字符型4非空shenqingren申请人字符型50非空kechengmingcheng课程名称字符型50shiyanmingcheng实验名称字符型50shiyanshimingcheng实验室名称字符型50(12)实验室安排终表(shiyanshianpaibiao)该表用于保存实验室最终安排信息。实验室安排终表结构如表3-12所示。表3-12实验室安排终表字段名称字段描述主键类型长度说明bianhao编号是字符型4系统自动分配序号xuenian学年字符型8非空xueqi学期字符型8非空zhouci周次字符型8非空jieci节次字符型8非空banji班级字符型8非空renshu人数字符型4非空shenqingren申请人字符型50非空kechengmingcheng课程名称字符型50shiyanmingcheng实验名称字符型50shiyanshimingcheng实验室名称字符型50

第四章系统实施4.1关键技术:用NET框架创作安全性网站很多人在尝试写出带有登陆这样功能的网站,其方法几乎都是验证用户的登陆合法,然后发送一个表示验证的Cookie,或者在Session中保存信息以便于追踪接下来的访问授权,其实,这些细节化的操作,.NET都提供了一种非常有效的解决办法,能使你从繁琐的安全验证上解脱出来,而且,尽管你可能很小心地定义那些页面不能被没有权限的人访问,然而还有可能出现一些无法被检查出来的漏洞让他们跳过安全验证。

本说明书将介绍如下内容:

(1)关于登陆验证和授权很多网站都有登陆对话框,让事先已经注册的用户验证,以便为他们提供个性化的服务等。可以把这个过程看作是两件事情的发生:验证和授权!登陆的作用是验证请求登陆的用户是否合法,而授权则是验证合法的用户在请求资源时,根据他们的权限决定是访问还是拒绝。

以上这种网站本身提供对话框的作法在.NET中被称之为Forms验证模式,接下来将会讲述这种验证模式。在.NET的System.Web.Security中提供了一些网站安全方面的解决方案,尽管验证用户合法和授权的基本思路没有变化,但是授权的工作几乎已经交给.NET框架了,我

温馨提示

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

评论

0/150

提交评论