毕业设计-实验室安排管理系统的设计与实现论文.doc_第1页
毕业设计-实验室安排管理系统的设计与实现论文.doc_第2页
毕业设计-实验室安排管理系统的设计与实现论文.doc_第3页
毕业设计-实验室安排管理系统的设计与实现论文.doc_第4页
毕业设计-实验室安排管理系统的设计与实现论文.doc_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

实验室安排管理系统目 录第一章 引言11.1 项目背景11.2 实验室安排管理系统概述11.3 系统开发的意义1第二章 系统分析22.1 系统功能分析22.2 用户管理流程22.3 实验管理流程22.4 实习管理流程22.5 实验室安排系统管理2第三章 系统设计33.1 项目规划33.2 功能框图43.3 数据库设计41、数据项设计42、概念结构设计53、逻辑结构设计5第四章 系统实施74.1 关键技术74.2 主窗体设计84.3 登录和退出管理模块设计84.4 用户管理模块设计84.5 实习管理模块设计94.6 实验管理模块设计9第五章 总结10致 谢10参考文献10附录111第一章 引言1.1 项目背景随着信息技术的普及,对计算机应用的普及,高等学校的计算机实验室在逐年上升,面对众多的计算机实验课,如何有效安排实验室,成为实验室管理人员的重要工作之一。为了提高实验室安排管理效率,方便教师对实验室的使用情况及时查询和申请实验室,需要设计一个能提供教师实时了解当前实验室教师申请情况,并可以对闲置实验室的申请,最后通过实验室管理员对教师所做的实验申请进行安排管理。本系统基于b/s结构,主要由前台教师对实验室申请和后台基本资料的维护及实验室的安排,主要包括以下功能:登录、申请实验、基本资料维护、实验室安排管理、用户管理,个人设置等。1.2 实验室安排管理系统概述实验室安排管理系统是一门新兴的集管理科学、信息科学、系统科学级计算机科学为一体的综合性学科,研究的是大学校园的实验室安排管理的全过程,以便有效的安排管理实验室信息,提高校园的实验室使用率,提供各类管理决策信息辅助实验室管理部门进行现代化管理。实验室安排管理系统是大学校园的实验室信息管理系统,它具备数据增加、修改、删除和查询功能,具体如下:(1)对用户信息增加、修改、删除管理;(2)对实验室信息增加、修改、删除管理(3)对日期和课程信息增加、修改、删除管理(4)实验室安排管理1.3 系统开发的意义为了有效的安排管理实验室信息,提高校园的实验室使用率,提供各类管理决策信息辅助实验室管理部门进行现代化管理需要设计一个能提供教师实时了解当前实验室教师申请情况,并可以对闲置实验室的申请,最后通过实验室管理员对教师所做的实验申请进行安排管理。本系统基于b/s结构,主要由前台教师对实验室申请和后台基本资料的维护及实验室的安排,主要包括以下功能:登录、申请实验、申请实习、基本资料维护、用户管理,个人设置、实验室安排管理等。第二章 系统分析2.1 系统功能分析通过讨论分析,要求系统需要有以下功能:(1)要有良好的人机界面功能。(2)支持多用户操作,要求有较好的权限分配功能。(3)支持实验申请和实习申请多行录入功能。(4)为了方便用户能快速正确地申请到实验室,提供实验室申请浏览。(5)每个用户,课程,实验,实习,实验室都有惟一的编号即id,编号需要是整型标识,能自动生成有序id。(6)支持用户,课程,班级,实验室的修改,增加,删除功能。(7)支持实验室的安排浏览。2.2 用户管理流程用户登录系统修改密码退出系统2.3 实验管理流程用户登录系统申请实验修改申请查询申请结果2.4 实习管理流程用户登录系统申请实习修改申请查询申请结果2.5 实验室安排系统管理流程管理员登录查询实验、实习申请期安排实验室审核安排第三章 系统设计3.1 项目规划本系统分为如下的几大模块:1、主界面模块该模块提供管理系统的主界面,是主系统的唯一入口和出口,该界面提供用户选择并调用各子模块。(1)登录模块(公共用户)根据用户管理分配不同的角色权限,核对用户,进入系统进行相应的操作。子模块:(2)用户控制面版(公共用户)该模块提供用户的基本信息的界面,用户可在此修改密码、基本资料;查看本人申请实习或实验的情况。(3)查询模块该模块提供用户(仅管理员)、班级(仅管理员)、课程(仅管理员)、实习、实验、实验室的查询的界面。(4)用户管理(管理员)该模块提供对用户信息进行更改、删除的界面。(5)实验室管理(管理员)该模块提供对实验室信息进行更改、删除和新增和手动安排实验室的界面。2、实验室安排浏览该模块提供全部实验室安排情况的界面。主界面登录模块实验室安排浏览模块用户控制面版实验室查询实验室管理报表用户管理图3.1 系统模块图3.2 功能框图系统主要数据流程如下图:用户浏览查询更新系统安排管理员审核实验室安排表查询条件查询结果申请表查询查询条件查询结果更新条目更新结果更新更新结果更新条目图3.2 主数据流程图3.3 数据库设计创建数据库是设计系统的第一步,其关键问题在于确定所需的表结构并为之建立索引。为了使系统设计精练实用,体现关系型数据库的特点,本系统还为各相关表建立关系。1、数据项设计通过需求分析,可确定系统的数据项和数据结构如下:实验申请表:shiyansq(实验申请id,周次,星期,节次,实验名称,实验班级,实验人数,任课教师,实验教师,申请时间实习申请id ,周次, 实习内容, 实习课程名称,实习班级,实习人数,任课教师,申请时间)实习申请表shixisq(实习申请id ,周次, 实习内容, 实习课程名称,实习班级,实习人数,任课教师,申请时间)用户表:user(用户id,用户名,用户类型)。班级表:classdb(班级id,班级名称,班级入学时间)课程表:kedb(课程id,课程名称)实验室表:sysdb(实验室id,实验室名称,实验室座位)为了方便安排,本系统还设定了几个用于安排的临时表:学年表:xuenian(学年id,学年名称)。学期表:xueqi(节次id,节次名称)。周次表:weekdb(周次id,周次名称)。节次:jieci(节次id,节次名称)。实验表:shiyan(实验id,实验名称)实习表:shixi(实习id,实习名称)2、概念结构设计本系统在需求分析的基础上设计出能够满足用户需求的各种实体。根据上面的分析所得的实体有:实验室安排实体、用户实体。3、逻辑结构设计数据项描述数据项名,数据类型,长度,数据项含义说明,可否为空(1)用户表:userdb数据项名数据类型(长度)数据项含义说明可否为空user_idint(4)用户id否user_namechar(20)用户名否user_perchar(20)用户类型否(2)班级表:classdb数据项名数据类型(长度)数据项含义说明可否为空class_idint(4)班级id否class_namechar(50)班级名称否class_inyearchar(20)班级入学时间否(3)实习申请表:shixisq数据项名数据类型(长度)数据项含义说明可否为空shixisq_idint(4)实习申请id否shixisq_weekchar(20)周次否shixisq_namechar(100)实习内容否shixisq_kechar(100)实习课程名称否shixisq_classchar(100)实习班级否shixisq_menint(4)实习人数否shixisq_manchar(20)任课教师否shixisq_timechar(20)申请时间可(4)实验申请表:shiyansq数据项名数据类型(长度)数据项含义说明可否为空shiyansq_idint(4)实验申请id否shiyansq_weekchar(20)周次否shiyansq_xqchar(20)星期否shiyansq_jcchar(20)节次否shiyansq_namechar(100)实验名称可shiyansq_classchar(100)实验班级可shiyansq_menint(4)实验人数可shiyansq_manchar(20)任课教师可shiyansq_syteacherchar(20)实验教师可shiyansq_timechar(20)申请时间可(5)实验教师表:teacherdb数据项名数据类型(长度)数据项含义说明可否为空teacher_idint(4)教师id否teacher_namechar(20)教师名称否(6)课程表:kedb数据项名数据类型(长度)数据项含义说明可否为空ke_idint(4)课程id否ke_namechar(100)课程名称否(7)实验室表:sysdb数据项名数据类型(长度)数据项含义说明可否为空sys_idint(4)实验室id否sys_namechar(100)实验室名称否sys_menint(4)实验室座位否(8)学年表:xuenian数据项名数据类型(长度)数据项含义说明可否为空xuenian_idchar(20)学年id否xuenian_nameint(20)学年名称否(9)周次表:weekdb数据项名数据类型(长度)数据项含义说明可否为空week_idchar(20)周次id否week_nameint(20)周次名称否(10)星期表:xinqi数据项名数据类型(长度)数据项含义说明可否为空xinqi_idchar(20)学年id否xinqi_nameint(20)学年id否(11)节次表:jieci数据项名数据类型(长度)数据项含义说明可否为空jc_idchar(20)班级名称否jc_nameint(20)编级人数否第四章 系统实施4.1 关键技术用户管理,课程管理,班级管理,实验室管理,实验管理,实习管理用户管理,课程管理,班级管理,实验室管理,实验管理,实习管理这几个管理原理大至相同,主要是对这些对象进行增加,修改删除管理等操作,本系统中只有管理员能做这些工作,普通用户只能查看和修改自己申请的记录,管理自己的个人信息,比如密码和申请记录的修改和删除操作。这此管理操作的界面如下:图4.1.1用户登录图4.1.2修改密码图4.1.3修改,删除申请记录4.2 主窗体设计本系统要求用户必须先登录才能进行申请,修改和删除操作,系统主界面有一个登录页面和一个主框架,框架包括主标题框架,左框架和右框架。如下:图4.2.1登录页面图4.2.2框架页面4.3 登录和退出管理模块设计登录和退出管理模块的主要技术是使用cookie实现分权限的登录管理,提高了系统的安全性。另外系统还借助了.net的登录控件使系统登录信息更可靠。退出管理就是退出整个系统,返回登录页面,结束对系统对象的修改增加和删除操作。如要继续操作则须再次登录。4.4 用户管理模块设计管理员可以增加删除和修改用户信息,普通用户只能修改自己的密码。本模块要求运用sql语句非常灵活,各类数据的查询的修改都要使用到sql语句。4.5 实习管理模块设计普通用户可以申请实习,修改本人申请的记录管理员可以申请实习,也可以修改任何申请记录,并安排申请本模块除了灵活运用sql语句还要能灵活使用.net的服务控件来完成修改删除工作。4.6 实验管理模块设计普通用户可以申请实验,修改本人申请的记录管理员可以申请实验,也可以修改任何申请记录,并安排申请本模块除了灵活运用sql语句还要能灵活使用.net的服务控件来完成修改删除工作。第五章 总结致 谢这次设计我学会了很多东西,不只是技术上,逻辑思维也有很大的提高。这要感谢我们的指导老师杨呈永和我们的我任课老师陈前军。还有一直在我身边帮忙的同学们,她们所教我的方法是最实用最现实的,可以说没有这些方法,我是做不完毕业设计的。我衷心的感谢他们对我的帮助。参考文献1、作 者: 埃斯波西托 书 名: 出版单位: 清华大学出版社发行部 2、作 者: 盖江南、王勇、阎文丽 书 名: 出版单位: 电子工业出版社 3、作 者: g.andrew duthie书 名: 出版单位: 清华大学出版社 4、作 者: 赵增敏书 名: 出版单位: 电子工业 5、作 者: 哈特 书 名: 出版单位: 清华大学出版社 6、 者: joe martin brett tomson书 名: 出版单位: 人民邮电出版社 7、作 者: 网冠科技书 名: 出版单位: 机械工业出版社 8、作 者: 赵增敏书 名: 出版单位: 西安交通大学出版社 9、作 者: 郭馨君等编著书 名: 出版单位: 机械工业出版社 10、作 者: 熊松明书 名: 出版单位: 航空工业出版社 11、作 者: 奚江华书 名: 出版单位: 电子工业出版社 附录(1) 分权限的登录代码:private void loginbutton_click(object sender, system.eventargs e)string text1=this.usernametextbox.text;string text2=this.passwordtextbox.text;string part=超级管理员;string sql=select count(*) from userdb where user_name=+text1+ and user_pwd= +text2+;sqlconnection conn=new sqlconnection(system.configuration.configurationsettings.appsettingssqsys);conn.open();sqlcommand cmd=new sqlcommand(sql,conn);int count=convert.toint32(cmd.executescalar();conn.close();if (count0)response.cookies.clear();request.cookies.clear();httpcookie cookie1 = new httpcookie(userinfo);/定义cookie对象cookie1.values.add(user_name,text1);/保存cookie对象string sql1=select * from userdb where user_name=+text1+and user_per=+part+;sqlconnection con=new sqlconnection(system.configuration.configurationsettings.appsettingssqsys);con.open();sqlcommand cmd1=new sqlcommand(sql1,con);int cou=convert.toint32(cmd1.executescalar();if(cou0)cookie1.values.add(user_per,超级管理员);/保存cookie对象base.response.appendcookie(cookie1);/添加base.response.write(top.location.href=(webform1.aspx););else cookie1.values.add(user_per,普通用户);/保存cookie对象base.response.appendcookie(cookie1);/添加base.response.write(top.location.href=(webform2.aspx););elseerrorlabel.text =用户名或者密码错误,请重试!; errorlabel.visible=true;private void rebutton_click(object sender, system.eventargs e) this.usernametextbox.text=;this.passwordtextbox.text=;(2) 退出代码:private void tuichu_click(object sender, system.eventargs e)if (base.request.cookiesuserinfo= null)/判断cookie是否为空base.response.redirect(login.aspx);elsehttpcookie cookie1 = base.request.cookiesuserinfo;cookie1.expires = datetime.now.adddays(-10); /删除cookiebase.response.cookies.add(cookie1);/执行cookiebase.response.redirect(defaule.aspx);/返回到登录页面/ 在此处放置用户代码以初始化页面(3) 修改密码的代码:private void button_tj_click(object sender, system.eventargs e)httpcookie cookie1=request.cookiesuserinfo;string str=cookie1.valuesuser_name;sqlconnection conn=new sqlconnection(system.configuration.configurationsettings.appsettingssqsys);conn.open();string sql=update userdb set user_pwd=+this.newpwd2.text.tostring()+where user_name=+str+;sqlcommand comm=new sqlcommand(sql,conn);comm.executenonquery();response.write(alert(密码修改成功);window.location.href=pwdedit.aspx;);(4) 增加班级、用户、课程、实验室的代码:private void button_tj_click(object sender, system.eventargs e)if(this.isvalid)sqlconnection acconn=new sqlconnection(system.configuration.configurationsettings.appsettingssqsys);tryacconn.open();string acsqli=insert into classdb(class_name,class_men,class_inyear) values(+this.classname.text+,+this.classnum.text+,+this.clss_inyear.text+);sqlcommand accommi=new sqlcommand(acsqli,acconn);accommi.executenonquery();response.write(alert(增加班级成功););catch(exception ex)response.write(ex.tostring();finallyacconn.close();private void button_tj_click(object sender, system.eventargs e)if(this.isvalid)sqlconnection acconn=new sqlconnection(system.configuration.configurationsettings.appsettingssqsys);tryacconn.open();string acsqli=insert into kedb(ke_name) values(+this.kech.text+);sqlcommand accommi=new sqlcommand(acsqli,acconn);accommi.executenonquery();response.write(alert(增加课程成功);); catch(exception ex) response.write(ex.tostring(); finally acconn.close(); (5) 申请实习或实验的代码:private void page_load(object sender, system.eventargs e)sqlconnection conn=new sqlconnection(system.configuration.configurationsettings.appsettingssqsys);conn.open(); if(!this.ispostback) string sqlstr1=select * from weekdb order by week_id;sqldataadapter mydataadapter1= new sqldataadapter(sqlstr1,conn);/创建适配器dataset ds1= new dataset(); /定义数据集mydataadapter1.fill(ds1,weekdb);/填充数据dropdownlist1.datasource=ds1.tablesweekdb.defaultview;dropdownlist1.datatextfield=week_name;dropdownlist1.datavaluefield=week_name;dropdownlist1.databind();string sqlstr2=select * from shixi order by shixi_id;sqldataadapter mydataadapter2= new sqldataadapter(sqlstr2,conn);/创建适配器dataset ds2=new dataset(); /定义数据集mydataadapter2.fill(ds2,shixi);/填充数据dropdownlist2.datasource=ds2.tablesshixi.defaultview;dropdownlist2.datatextfield=shixi_name;dropdownlist2.datavaluefield=shixi_name;dropdownlist2.databind();string sqlstr3=select * from classdb order by class_id;sqldataadapter mydataadapter3= new sqldataadapter(sqlstr3,conn);/创建适配器dataset ds3=new dataset(); /定义数据集mydataadapter3.fill(ds3,shixi);/填充数据dropdownlist3.datasource=ds3.tablesshixi.defaultview;dropdownlist3.datatextfield=class_name;dropdownlist3.datavaluefield=class_name;dropdownlist3.databind();string sqlstr4=select * from kedb order by ke_id;sqldataadapter mydataadapter4= new sqldataadapter(sqlstr4,conn);/创建适配器dataset ds4=new dataset(); /定义数据集mydataadapter4.fill(ds4,kedb);/填充数据dropdownlist4.datasource=ds4.tableskedb.defaultview;dropdownlist4.datatextfield=ke_name;dropdownlist4.datavaluefield=ke_name;dropdownlist4.databind();conn.close();/ 在此处放置用户代码以初始化页面private void button2_click(object sender, system.eventargs e)if(this.isvalid)sqlconnection acconn=new sqlconnection(system.configuration.configurationsettings.appsettingssqsys);tryacconn.open();httpcookie cookie1=request.cookiesuserinfo;string sqtr1=this.dropdownlist1.selectedvalue;string sqtr2=this.dropdownlist2.selectedvalue;string sqtr3=this.dropdownlist3.selectedvalue;string sqtr4=this.dropdownlist4.selectedvalue;string sqtr5=cookie1.valuesuser_name;string sqtr6=system.datetime.now.tostring();int i;for(i=0;i=9;i+)string acsqli=insert into shixisq(shixisq_week,shixisq_nyong,shixisq_class,shixisq_ke,shixisq_men,shixisq_man,shixisq_time) values(+sqtr1+,+sqtr2+,+sqtr3+,+sqtr4+,+this.textbox_men.text+,+sqtr4+,+sqtr5+);sqlcommand accommi=new sqlcommand(acsqli,acconn);accommi.executenonquery();response.write(alert(提交成功););catch(exception ex)response.write(ex.tostring();finallyacconn.close();private void button2_click(object sender, system.eventargs e)if(this.isvalid)sqlconnection acconn=new sqlconnection(system.configuration.configurationsettings.appsettingssqsys);tryacconn.open();httpcookie cookie1=request.cookiesuserinfo;string sqtr1=this.dropdownlist1.selectedvalue;string sqtr2=this.dropdownlist2.selectedvalue;string sqtr3=this.dropdownlist3.selectedvalue;string sqtr4=this.dropdownlist4.selectedvalue;string sqtr5=this.dropdownlist4.selectedvalue;string sqtr6=cookie1.valuesuser_name;string sqtr7=system.datetime.now.tostring();string acsqli=insert into shiyansq(shiyansq_week,shiyansq_xq,shiyansq_jc,shiyansq_name,shiyansq_class,shiyansq_men,shiyansq_man,shiyansq_time) values(+sqtr1+,+sqtr2+,+sqtr3+,+sqtr4+,+sqtr5+,+this.textbox_men.text+,+sqtr6+,+sqtr7+);sqlcommand accommi=new sqlcommand(acsqli,acconn);accommi.executenonquery();response.write(alert(提交成功););catch(exception ex)response.write(ex.tostring();finallyacconn.close();private void button1_click(object sender, system.eventargs e)this.textbox_men.text=;(6) 修改班级、用户、课程、实验室、申请记录的代码:private void page_load(object sender, system.eventargs e)/ 在此处放置用户代码以初始化页面if(!this.ispostback)string sqlstr=select * from classdb order by class_id;sqlconnection conn=new sqlconnection(system.configuration.configurationsettings.appsettingssqsys);conn.open();sqldataadapter adapter1 =new sqldataadapter(sqlstr,conn);/创建适配器dataset ds = new dataset(); /定义数据集adapter1.fill(ds,classdb);/填充数据dg1.datasource=ds.tablesclassdb.defaultview;dg1.databind();adapter1.dispose();/释放ds.clear();ds.dispose();private void dg1_cancelcommand(object source, system.web.ui.webcontrols.datagridcommandeventargs e)string sqlstr=select * from classdb order by class_id;sqlconnection conn=new sqlconnection(system.configuration.configurationsettings.appsettingssqsys);conn.open();sqldataadapter adapter1 =new sqldataadapter(sqlstr,conn);/创建适配器dataset ds = new dataset(); /定义数据集adapter1.fill(ds,classdb);/填充数据dg1.edititemindex=-1;dg1.datasource=ds.tablesclassdb.defaultview;dg1.databind();private void dg1_deletecommand(object source, system.web.ui.webcontrols.datagridcommandeventargs e)string sqlstr=select * from classdb order by class_id;sqlconnection conn=new sqlconnection(system.configuration.configurationsettings.appsettingssqsys);conn.open();sqldataadapter adapter1 =new sqldataadapter(sqlstr,conn);/创建适配器dataset ds = new dataset(); /定义数据集adapter1.fill(ds,classdb);/填充数据int id=int.parse(e.item.cells0.text);string sql_del = delete from classdb where class_id =+e.item.cells0.text; sqlcommand sqlcommanddel = new sqlcommand(sql_del,conn); sqlcommanddel.executenonquery();/classdb.deletearea(id);dg1.datasource=ds.tablesclassdb.defaultview;dg1.databind();private void dg1_editcommand(object source, system.web.ui.webcontrols.datagridcommandeventargs e)string sqlstr=select * from classdb order by class_id;sqlconnection conn=new sqlconnection(system.configuration.configurationsettings.appsettingssqsys);conn.open();sqldataadapter adapter1 =new sqldataadapter(sqlstr,conn);/创建适配器dataset ds= new dataset(); /定义数据集adapter1.fill(ds,classdb);/填充数据dg1.edititemindex =e.item.itemindex;dg1.datasource=ds.tablesclassdb.defaultview;dg1.databind();private void dg1_pageindexchanged(object source, system.web.ui.webcontrols.datagridpagechangedeventargs e)string sqlstr=select * from classdb order by class_id;sqlconnection conn=new sqlconnection(system.configuration.configurationsettings.appsettingssqsys);conn.open();sqldataadapter adapter1 =new sqldataadapter(sqlstr,conn);/创建适配器dataset ds = new dataset(); /定义数据集adapter1.f

温馨提示

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

评论

0/150

提交评论