asp.net机房管理系统学生与网络模块的设计与实现.doc_第1页
asp.net机房管理系统学生与网络模块的设计与实现.doc_第2页
asp.net机房管理系统学生与网络模块的设计与实现.doc_第3页
asp.net机房管理系统学生与网络模块的设计与实现.doc_第4页
asp.net机房管理系统学生与网络模块的设计与实现.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

河南大学2007届本科毕业论文机房管理系统学生与网络模块的设计与实现design and realization of students and net modules of computer lab management system论文作者姓名:孙航 所在学院:计算机与信息工程学院 所学专业:计算机科学与技术 导师姓名职称:于静洋(讲师) 论文完成时间:2007年5月20日 2007年5月20日河南大学2007届毕业论文(设计、创作)开题报告 学号03023209姓名孙航导师姓名职称于静洋(讲师)开题时间2006年12月1日课题题目机房管理系统学生与网络模块的设计与实现课题来源导师指定 自定 其他来源课题的目的、意义以及和本课题有关的国内外现状分析:1、目的:帮助教师管理学生的上机情况,帮助机房管理员对机房和计算机进行处理。2、意义:本系统将会减轻教师的教学任务,使得教师可以更高效的完成工作任务,学生可以得到便捷、周到的服务。3、国内外现状分析:随着网络的普及,大学每年都在增设上机实验课,计算机使用数量快速增长,机房管理工作迫切需要更为高效的管理方式。在国外,针对于机房管理的网络管理体系已经在高校中得到普及,使用了更为先进的技术和硬件设施。研究目标、研究内容和准备解决的问题:1、目标:根据目前机房发展的情况,本课题拟设计一种具有交互功能的机房管理系统,它实现一个局域网内的计算机管理,为教师和学生之间提供一个信息交互的平台,提高机房管理的效率。2、内容:教师和机房管理员可以管理学生的信息,以及对它们进行实验安排;教师可以在服务器端进行远程控制;学生可以下载服务器上与实验相关的文件。3、准备解决的问题:需求分析与数据库的设计,系统的总体架构,学生管理模块,网络模块的设计与实现。拟采取的方法、技术或设计(开发)工具:1,方法:准备采用由整体到局部,由基本架构到详细的算法设计的分析方法;首先考虑本系统的主要功能,然后考虑功能之间的协调性,复用之处;采取基本的查找排序算法。2,技术:使用c#2.0版本,可以调用c#中的system.data语言包来进行数据库访问;使用uml进行用例分析,类图设计。3,工具:采用visual studio.net开发平台,和microsoft sql server数据库系统,microsoft visio建模工具。预期成果:1、毕业设计成果机房管理系统2、毕业论文进度计划:2006.12.1 - 2007.1.1 :查找资料、搜集相关素材2007.1.2 - 2007.3.11:完成需求分析、概要设计和数据库的设计2007.3.12 - 2007.4.10: 实现基本算法和学生模块功能2007.4.11 - 2007.4.20:实现网络模块的功能2007.4.20 - 2007.4.30:与合作者进行模块组合2007.5.1 - 2007.5.20:整理资料、撰写毕业论文2007.5.20 - 2007.5.25:根据导师要求,完善毕业设计和论文指导教师对选题报告的意见: 该生选题符合要求,目的明确,进度计划安排合理,同意开题。 指导教师签名: 2006年12月1日开题报告ii河南大学2007届毕业论文(设计、创作)任务书 学号03023209姓名孙航导师姓名于静洋(讲师)任务书起止日期2006年12月8日 至 2007年5月20日论文提要:论文中将主要介绍需求分析,数据库设计,模块设计和详细设计。在需求分析中,准备介绍教师,学生和机房管理员对本系统的期望。根据需求分析论述数据库的设计。模块设计将大致包含学生管理和远程服务。最后在详细设计中,将介绍三层架构应用到系统中的方式。课题任务要求:1.实现学生基本资料查询。2.实现学生实验安排。3.实现局域网内文件下载,对局域网内电脑进行广播通信。主要参考文献:1 刘瑞新等著,c#网络编程及应用,机械工业出版社,2005年7月 2 craig larman著,uml和模式应用,机械工业出版社,2005年11月3 张跃廷等著,c#数据库系统开发完全手册,人民邮电出版社,2006年12月4 张立著,c#2.0宝典,电子工业出版社, 2007年1月5 jay hilyard等著,c#经典实例,第2版,中国电力出版社,2007年6月河南大学2007届毕业设计(论文、创作)中期检查表学院名称:计算机与信息工程学院题目名称机房管理系统学生与网络模块的设计与实现学号03023209所学专业计算机科学与技术指导教师姓 名于静洋姓名孙航一、毕业设计进展情况已经完成数据库的设计,初步实现学生管理模块的功能。对本模块的底层架构进行了更改。 在下一阶段中,准备实现局域网内文件下载,和广播通信。此外,要优化学生管理模块中的代码,建立数据的检测机制。二、存在问题类之间的相互调用比较混乱,系统内部没有层次性。没有考虑到数据的边界问题,很多异常数据没有捕获到。模块功能不明确,模块的界面设计单调,乏味。三、下一阶段的研究方法或设计思路对学生管理模块进行修改,把三层架构应用到系统中。添加网络模块,使用层次性的设计方法。根据需求分析,和数据库设计,来分析网络模块实现方法。四、指导教师对学生设计(论文、创作)进展等方面的评语 该生能按照预定计划进行,完成了数据库的设计,初步实现了学生管理模块功能,但项目进度有些缓慢,望加快进度。 指导教师签字: 2007年 4月10日 河南大学2007届毕业论文(设计、创作)综合成绩表(一)学院名称:计算机与信息工程学院学 号03023209姓名孙航专业计算机科学与技术指导教师于静洋(讲师)综合得分 80论文题目机房管理系统学生与网络模块的设计与实现指导教师评语及得分指导教师评语 该生选题具有实际意义,但功能仍可进一步完善,论文论据充足,层次分明,分析、解决问题能力较强,但语言表述尚需进一步加强。评分项目分值指导教师对毕业论文(设计、创作)评分撰写开题报告、文献综述15调查研究查阅整理资料10学习态度与规范要求10数据处理、文字表达10论文(设计、创作)质量和创新意识55合计100得分10 8 8 648 80 指导教师签名 2007年 5月20日评阅教师评语及评分评阅教师评语 该生能与实际相结合,但功能可进一步完善,论文论点鲜明,条理清晰,语句通顺,符合本科毕业论文要求。评分项目分值评阅毕业论文(设计、创作)评分撰写开题报告、文献综述15调查研究查阅整理资料10学习态度与规范要求10数据处理、文字表达10论文(设计、创作)质量和创新意识55合计100得分10 8 8 748 81 评阅教师签名 2007年5月22日河南大学2007届毕业论文(设计、创作)综合成绩表(二)学号03023209姓名孙航所在学院计算机与信息工程学院答辩委员会评语及评分答辩委员会评语该生论文答辩过程中叙述流畅,回答问题较准确、合理,达到本科毕业水平。答辩委员签字: 2007年5月26日评分 项目 分值论文答辩小组评分答辩情况论文质量合计(100)内容表达情况(15)答辩问题情况(25)规范要求与文字表达(20)论文(设计、创作)质量和创新意识(40)得分12 23 15 30 80 答辩委员会主任签字: 2007年5月26日毕业论文(设计、创作)成绩综合评定: 80 分综合评定等级: 良备注:一、论文的质量评定,应包括对论文的语言表达、结构层次、逻辑性理论分析、设计计算、分析和概括能力及在论文中是否有新的见解或创新性成果等做出评价。从论文来看学生掌握本专业基础理论和基本技能的程度。二、成绩评定采用结构评分法,即由指导教师、评阅教师和答辩委员会分别给分(以百分计),评阅教师得分乘以20%加上指导教师得分乘以20%加上答辩委员会得分乘以60%即综合成绩。评估等级按优、良、中、差划分,优90-100分;良76-89分;中60-75分;差60分以下。三、评分由专业教研室或院组织专门评分小组(不少于5人),根据指导教师和答辩委员会意见决定每个学生的分数,在有争议时,应由答辩委员会进行表决。四、毕业论文答辩工作结束后,各院应于6月20日前向教务处推荐优秀论文以汇编成册,推荐的篇数为按当年学院毕业生人数的1.5%篇。五、各院亦可根据本专业的不同情况,制定相应的具有自己特色的内容。须报教务处备案。六、书写格式要求:1、目录;2、内容提要须书写200左右汉字,开题报告(文科除外)的内容要根据不同专业的课题任务要求,阐述查阅文献、文案论证、解题思路、工作步骤等;3、正文(含引言、结论等);4、参考文献(或资料)河南大学本科生毕业论文(设计、创作)承诺书论文题目机房管理系统学生与网络模块的设计与实现姓 名孙航所学专业计算机科学与技术学 号03023209完成时间2007年5 月20日指导教师姓名职称于静洋(讲师)承诺内容:1、本毕业论文(设计、创作)是学生孙航在导师于静洋的指导下独立完成的,没有抄袭、剽窃他人成果,没有请人代做,若在毕业论文(设计、创作)的各种检查、评比中被发现有以上行为,愿按学校有关规定接受处理,并承担相应的法律责任。2、学校有权保留并向上级有关部门送交本毕业论文(设计、创作)的复印件和磁盘。备注:学生签名: 指导教师签名: 2007年5月20日 2007年5月20日说明:学生毕业论文(设计、创作)如有保密等要求,请在备注中明确,承诺内容第2条即以备注为准。目 录摘 要iabstractii第1章 绪论11.1 开发背景及意义11.2 开发工具简介1第2章 系统需求分析32.1 系统任务概述32.1.1 运行环境32.1.2 系统功能32.2 数据采集42.2.1 需要收集的数据42.2.2 数据约束条件4第3章 数据库设计53.1 数据表定义53.2 存储过程的设计73.2.1 学生信息83.2.2 学生实验9第4章 系统概要设计104.1 系统结构104.2 学生管理模块114.2.1 学生与实验管理114.2.2 自定义控件144.3 远程管理模块14第5章 系统详细设计和实现155.1 学生管理155.1.1 结构设计与实现155.1.2 辅助类195.2 文件传输215.2.1 传输协议215.2.2 工作流程22结 论23参考文献24河南大学本科毕业生学士学位论文摘 要机房实验是计算机学院必不可少的教学内容,机房管理的方式有多种,但将机房管理系统(简称clms)作为辅助工具已经是人们的首选方式。在机房管理系统中学生与网络模块是必不可少的组件,本文实现了机房管理系统学生与网络模块,此模块具备机房管理和实验安排的功能,可以为教师提供本院的学生信息,从而进行实验安排;也可以为机房管理员提供机房信息,给实验管理人员带来了极大方便。该系统是在visual studio 2005开发平台上开发的,是基于.net framework语言库的c#语言编写的。关键词 机房管理,网络管理,学生管理,ftp协议abstractthe computer experiment is the necessary content in computer college. there are many ways of the lab management, but it is the first choice for us to make the computer lab management system (clms) as the assistance. the modules of student and net are necessary in clms. we implement the modules. the modules have the function of lab management and the experiment arrangement, and could offer the student information for the arrangement of the lab regulation; meanwhile it could offer the lab information for the lab manager. so it will bring much convenience.the development is based on visual studio 2005 platform. the language is c # language of the net framework.keywords lab management, net management, student management, ftp protocol第 24 页第1章 绪论网络的发展与普及,给机房管理系统的应用提供了便利的硬件环境。机房管理系统与sql server数据库相互配合,显示出新时代教学方式的独特优势。本章主要介绍机房管理系统的背景及意义,以及开发本系统所使用的工具和平台。1.1 开发背景及意义目前,大学的网络建设趋于完善。大学的教育方式在技术上得到根本改变,教师与学生的远程通信,渐渐的在我们身边出现。远程课堂已经在部分大学取得良好效果。在大江南北,在专业性大学,综合性大学中,随着计算机进入机房实验室,尤其是计算机科学技术学院,我们迫切需要机房管理系统,来对机房,教师,学生,实验进行统一管理。通过使用此系统,教师可以高效便捷的对学生信息,学生上机实验进行管理,省去大量人力,脑力,时间和精力。而且,机房管理员使用此系统可以轻松地查询机房中的计算机使用情况,统计计算机的使用寿命,查看计算机运行情况是否良好。市场中已经出现侧向不同功能的机房管理系统,它们已经发挥了可喜的成效。而如今,机房管理的安全性,系统内部的数据结构,算法,网络协议已经提入到讨论课题之中,我们通过努力,不断地探索,来完善内部体系架构,使得系统层次分明,模块功能完整,从而加强整个系统的兼容性,安全性,可维护性,健壮性。1.2 开发工具简介c#是microsoft强力推出的新一代开发语言,它集合了java,vc的优势,成为我们现在开发web和gui信息管理系统的首选语言。c#采用了java完全面向对象机制,方便开发者对现实世界进行抽象建模;c#与visio的配合更是珠联璧合。通过我们在visio中进行建模,系统的很多代码可以自动生成,这样可以省去大量人力,精力;数字验证机制更是方便了开发者。开发者只需要调用数字验证类,传入合适的参数,就可以轻松地对各种数据进行验证,其中包括邮箱地址,电话号码和日期等;c#的开发平台主要是visual studio.net2005,vs.net独特于其它开发平台的是它自带有文件数据库。而且,vs.net的ui开发工具的逼真效果更强,使得ui界面的实现更加美观;vs提供的patial方式,可以使得一个类在不同的文件中进行编辑。这样可以使代码清晰易懂;vs.net提供语言树型向导,方便开发者对代码的输入。第2章 系统需求分析本系统的规模属于中小型的管理系统,处理信息范围属于计算机学院。提供的主要功能是满足教师,机房管理员的工作需求。本章主要论述教师,机房管理员对系统的期望。而且涉及到数据采集与数据约束。2.1 系统任务概述机房管理系统可以运行在windows用户上,它的实现主要是帮助教师,机房管理员对实验进行合理的安排。并且,本系统帮助教师与学生之间完成远程通信。本节主要论述了机房管理系统的运行环境和需求分析。2.1.1 运行环境由于本系统属于小型管理系统,硬件环境只需要128m内存空间。本系统主要运行在windows xp或者windows 2000操作系统,采用microsoft sql server数据库系统,运行在.net framework2.0版语言包基础上。2.1.2 系统功能系统共分为五大部分,本节只论述用户登录与注册,学生管理与实验安排,远程通信三大部分。共列为7项来阐述。(1)在服务器端,教师和机房管理员可以输入帐号和密码,选择登录类型,进入到操作界面中。如果账户和密码输入错误,系统可以提示报错信息。(2)机房管理员分为超级管理员和普通管理员。超级管理员打开注册对话框,添加新的机房管理员。系统确定此管理员以前没有注册过,然后进行添加处理。(3)机房管理员可以对学生的资料(包括学号,姓名,联系方式等)进行查询,修改,删除等。(4)机房管理员可以对学生实验进行添加,删除,修改等。(5)教师可以查询自己学生的信息,可以把一些学生添加到自己的班级中,把一些学生删除出自己的班级。教师可以申请机房的使用权,可以给自己学生安排上机。(6)在远程服务体系中,教师和机房管理员可以对学生进行远程通知,允许学生访问服务器,下载学习资料,实验规定等。 (7)学生登录客户端,访问服务器,来注册个人信息,更改个人信息,并且查询本机房管理系统中的所有教师信息,并且向自己教师发送实验汇报等。2.2 数据采集本系统主要收集关于机房,教师,学生的数据。而且要对数据进行验证,通过规定用户的权限,使用户访问不同类型的数据。2.2.1 需要收集的数据学生的个人资料,包括学生姓名,联系地址,联系电话,所属专业,年级,学生的相片以及上级安排等。教师的基本资料主要包括姓名,联系地址,联系方式,讲授课程。机房的基本特征主要包括机房的电脑存储容量,现在存储数量。2.2.2 数据约束条件学生只能查询自己的基本资料,查询自己所选的实验课和自己的教师信息。教师可以申请机房使用权,可以查询选报自己的实验课的学生信息,可以给自己班级的学生安排实验。机房管理员可以对本院有实验课的教师进行查询,而且可以查询本院所有学生的信息以及他们的实验安排。第3章 数据库设计本章对机房管理系统中的数据库设计进行说明。主要内容包括教师表,学生表,机房表,教师管理机房,学生机房安排表。在存储过程,数据字段的定义方面进行了详细说明。3.1 数据表定义根据需求分析,我们可以得到机房管理系统中最重要的数据是教师,学生,机房,以及他们之间的关系。根据现实中的实物进行建模,可以设计出主要的数据表,包括学生表,教师表,机房表,计算机表以及它们之间的关系表。本节详细说明了主要数据表是如何定义的。在大部分数据表中,id号用nchar来表示,这样可以把表的id号设置的更有意义。(1)计算机机房管理系统中一个重要的实体是计算机。机房管理员对计算机存入,取出,以及对计算机信息修改时,实质是系统对数据库中的本表进行操作。计算机的id号是机房号加上此电脑存入机房中的顺序来表示的。例如,存入到302机房的第52台计算机,我们就可以用30252为它的id号。计算机中另外几个属性是,存入时间,存放位置,运行情况,和它存放到某一机房的机房号。以实例来说明计算机存放位置的设置格式,当计算机存放到机房的第5排第5列,则用0505来表示。运行情况可以用bit来表示,1表示等待维修,0表示运行良好。如图3-1所示。图3-1 计算机数据表(2)机房机房的主要属性是机房号,机房中计算机存储容量,已存入此机房的计算机数量。一个外键是机房管理员id号,记录机房由哪一个管理员来管理。机房号的格式是:机房所在的楼层号+机房在此楼层中的排序,比如说:如果机房在第三层第三个房间,则它的id号是303。在数据表中,英文缩写rcomputercapcity表示机房计算机容量,rcomputernum表示存入机房中的计算机数量。如图3-2所示。图3-2 机房数据表(3)教师与学生除去教师与学生的id号与姓名外,重要的属性是联系地址,联系电话,电子邮箱。学生的属性中有年级,班级以及专业等。如图3-3和3-4所示。图3-3 教师数据表图3-4 学生数据表(4)学生机房关系表学生上机信息属于关系表,在该表中,我们可以查询到学生的上机时间与上机地点等信息。上机时间要用两个属性来表示,即一星期中的第几天与这一天中的哪个时间段。srweek 和srsegment分别表示星期几与哪个时间段。srweek的值的范围是06,7个值分别对应星期日,星期一到星期六。而上机时间段值是02,分别表示8:0010:00,10:0012:00,15:0017:00。(5)教师机房关系表教师管理机房tr(trid,tid,rid,trday,trsegment)。tid表示教师id,rid表示机房号,trday表示哪一天,取值范围是(06),分别表示星期日,星期一到星期六。trsegment表示每天的上机时间段。0表示8:00到10:00,1表示10:00到12:00,2表示15:00到17:00。数据表之间设置主键与外键。如图3-5所示。3.2 存储过程的设计存储过程是独立运行在数据库系统中的数据操作程序,它提高了数据处理的效率,而且在开发系统时,把数据库的设计部分,系统设计部分分为两大层,这样可以使得系统结构分明,有层次性,更有利于整个系统的维护。本节论述了主要存储过程的设计与实现。主要面向于学生,机房管理员,和他们之间的关系。图3-5 数据库结构图3.2.1 学生信息在数据库中,针对于学生信息,主要设计了三个存储过程。可以在数据库中对学生的基本资料进行修改。(1)添加更改学生信息添加学生信息的存储过程名称是addstuinfo,更改学生信息的存储过程名称为updatestuinfo。它们的主要参数为sid,sname,sgrade,stel,sphoto等。当添加学生信息时,首先要判断数据库中是否已经存在此学生的资料(判断语句是:if exists ( select * from student where sid=sid),然后才能添加学生的信息。(2)删除学生信息存储过程名是deletestuinfo,参数是sid,数据库根据sid把student中的特定记录删除掉。机放管理员是对学生信息从本系统中删除掉。在删除学生信息时,首先要删除教师与本学生的关系表和学生与机房的关系表,然后才能删除学生的资料;而教师执行删除语句时,只能删除本教师与此学生的关系,本教师对学生的实验安排。3.2.2 学生实验共设计了两个关于学生实验安排的存储过程。(1)把学生实验信息添加到数据表sr中,addsrinfo,参数是sid,rid,srday,srsegment。此时需要判断数据是否冲突,学生不能在同一时间内做两个实验。所以,在存储过程中,要有判断srday,srsegment是否冲突的语句。(2)从数据表中删除学生实验信息,deletesrinfo,参数是sid,rid,srday,srsegment。没有更改学生实验信息的存储过程,系统只能先对它进行删除操作,然后添加新的学生实验信息。第4章 系统概要设计模块功能是通过三层来完成的,即用户界面层,业务逻辑层,数据库操作层。自定义模块可以实现一部分特定的功能,以便于代码的重用。本章主要介绍几大模块的功能,和他们的实现方法。4.1 系统结构本系统主要解决学生,教师,机房和实验等问题。教师可以对学生信息进行查询,修改等操作,可以安排学生的上机实验等。而学生只能选择实验指导教师,以及查询个人资料。对于机房管理员,可以对教师信息进行操作,并且对机房和计算机进行管理。根据需求分析和数据库设计,可以把机房管理系统分为五大模块,系统管理,学生管理,教师管理,硬件管理,远程管理。五大模块功能完善,分工明确。各模块的主要功能如下所示。 (1)系统管理:提供用户登录,用户注册功能。(2)学生管理:对学生信息进行操作,安排学生的实验。(3)教师管理:对教师信息进行操作,提供给教师机房使用权。(4)硬件管理:对机房进行管理,对电脑的存入取出,电脑维修进行管理。(5)远程管理:提供远程通信服务,文件传输服务。系统根据用户登录的类型,可以设置不同级别的权限,使得用户只能操作与自己相联系的模块。本系统的结构是由肖超和本人共同设计,所以本章只阐述本人设计和实现的模块,即学生管理和远程管理。在系统中,把学生管理和教师管理模块并到人员管理模块中,系统结构图如图4-1所示。图4-1 系统结构图4.2 学生管理模块本模块主要是对学生实验进行安排,对学生基本资料进行操作。学生管理模块分为两部分,分别面向机房管理员和教师两种用户。系统要对学生的资料,实验安排做不同的处理,来响应两种用户的请求。在此模块中设计了自定义控件photooper,它具有照片操作功能。4.2.1 学生与实验管理本模块共分为两部分,分别是面向机房管理员和面向教师。系统根据用户类型的不同,选择不同的数据处理方法,并把处理后的数据显示在界面中和存储到数据库中。(1)面向机房管理员本模块可以帮助机房管理员查询本院所有需要上级实验的学生基本资料。包括他们的姓名,联系方式,年级,班级,照片,以及实验安排等。并且可以对他们进行添加,删除,修改等操作。本模块使用到stuquerytemplate对话框和addstudinfor对话框。并且自定义了studentdatamanage和studentmanage两个类,来处理系统内部不同类型的数据,负责对数据进行转化。采用层次结构的设计方法,学生信息查询界面只能看到学生管理类的功能。而学生数据管理类负责把消息转化生成为sql语句,调用数据库管理类。三层架构如图4-2所示。图4-2 学生管理模块结构图 用户界面类学生管理类数据管理类数据库接口数据库当添加学生信息时,本模块调用addstudinfor类来完成工作。具体工作流程是,stuquerytemplate调用addstudinfor,然后addstudinfor类采集用户输入的数据,发送给studentmanage类,studentmanage生成student结构,并把它存储在类内部数据区,标记操作类型为“添加”。当删除学生信息时,本模块的stuquerytemplate采集到学生信息传递给studentmange类,studentmange类生成student结构,同上把它存储在数据区,标记操作类型为“删除”。更改学生信息时,执行过程相似,但标记操作类型为“更改”。当用户关闭此对话框,或者选择“保存”时,本模块就把存入到studentmanage类数据区中的学生信息和相对应的操作类型,批处理地传递给studentdatamanage类,studentdatamanage类可以根据用户的操作类型和学生信息,生成sql语句,然后委托datamanager类去执行数据库操作。整个类之间的关系如图4-3所示。在图中,datarow表示采集到的学生信息,parameters表示向存储过程传递的参数。图4-3 学生管理序列图(2)面向教师本模块可以帮助教师对自己的学生进行管理,可以帮助教师申请机房使用权。不仅如此,本模块可以使教师对学生进行实验安排。在功能设计中,共使用到的对话框是:teastudialog,showstuinfo,addrm。采用了自定义类teastuinfo,teastudatainfo。在模块中,涉及到3个结构。分别表示,学生与机房的关系,学生与教师的关系,教师与机房的关系。同时不可缺少的是3个映射结构,此3个映射结构可以标记用户对三种关系的操作。teastudialog显示学生信息,学生的实验安排,本教师的实验课等信息。根据教师的操作收集与学生,机房,教师相关的数据,传递给teastuinfo来处理。teastuinfo中有三个数组字段,本类收集到的数据分别存储到三个数组中。而这里指的数据是关于三个关系结构的映射。当用户选择“保存”时,teastuinfo把三个数组中的数据批量的传递给teastudatainfo,等待它的处理。teastudatainfo类对接收到的数据进行转换,生成sql语句,委托datamanager类进行数据库操作。4.2.2 自定义控件自定义控件的设计与使用,可以提高系统的重用性,功能的封装性。提供多个数据访问接口,便于开发者理清思路,进行结构设计。我们使用photooper,可以显示用户选中的学生照片,或者删除学生记录中的照片。自定义模块photooper可以添加到对话框中,它可以打开一个文件对话框。根据用户选择的路径来创建一个bitmap位图,同时在自己的picturebox中显示出来。自定义模块有一方法是loaddatarowview(datarowview data)。它的作用为接收外界传递来的datarowview,然后取出图片的字段,自动生成bitmap,显示在picturebox中。4.3 远程管理模块本模块主要设计学生ftp文件下载,学生等待实验通知。学生注册个人资料,修改个人资料,查询教师信息的功能。使用到ftpserver对话框,采用ftp协议。当欲建立通信时,要使用到系统类tcplistener和tcpclient,而在通信过程中,我们要使用到networkstream,streamreader,streamwriter。建立在多线程机制之上的。在客户端和服务器端,分别设置两个线程。用来监听和请求服务。线程与套节字是数据传输的接口,而在客户端,对数据进行转化,整理的是clientmanage类;在服务器端,对数据进行转化,处理的是servermanage类和serverdatamanage类。clientmanage类接收到网络字节流,根据自定义的协议,生成学生结构和学生的实验安排,传送到界面中,显示信息。同时,可以把学生信息和实验安排,根据协议转化为字节流发送到服务器端。对于教师信息具有类似的工作过程。servermanage类从线程中的socket端口接收到字节流,转化数据后生成学生信息,实验安排信息,再根据得到的指令,把信息传送给serverdatamanage,它生成sql语句,进行数据库操作。并返回操作结果。第5章 系统详细设计和实现根据模块中类的关系,以及数据库的设计,可以对数据结构,映射表,算法,协议等进行详细设计。本章针对学生管理部分和远程管理部分的详细设计与实现来进行阐述。对于采用的协议,类的属性,基本算法进行论述。5.1 学生管理本节对于学生管理模块内的机制,数据库接口的实现来展开论述。同时,对于sql语句的生成,图形界面的实现做简单介绍。5.1.1 结构设计与实现学生管理模块中,为了实现对学生和学生实验安排的操作,我们定义了两个struct, 一个是stuoper,一个是sturomoper,在这两个struct中,我们使用opertype来分别标记对学生,学生上机安排等操作。实现学生信息操作,主要使用了在业务逻辑层中自己定义的studentmanage与studentdatamanage类。在用户界面中,从textbox或者combobox中接收到学生的信息,然后把数据集中到datarowview中。studentmanage与用户界面类之间的数据传输主要类型是datarowview和datatable。下面重点介绍学生信息的存储。(1)从用户界面的textbox,combobox中得到学生信息的字符串表示方法,然后把它们集中到datarowview中,把datarowview显示到用户界面的datagridview中。而这些操作过程是在addstudinfor类中的buttonok_click函数体中完成的。(2)在studentmanage类中完成学生信息的存储。studentmanage类通过函数addstu()函数把datarowview的数据转化为学生对象,并规定它的操作记录是add,存入到数组中,等待以后的批处理。(3)学生信息的删除,更改等具有类似的操作过程。(4)调用studentmanage的detach()函数来进行批处理数据。代码如下所示。在代码中,stuoper是映射结构,内部存储学生信息,和操作类型。als数组属于listarray类型。sdm1是studentdatamanage的对象。 stuoper so;/映射结构 for (int i = 0; i als.count; i+) so = (stuoper)alsi; switch (so.opertype) case structs.opertype.add: sdm1.addstuinfor(so.student); break; case structs.opertype.delete: sdm1.deletestuinfor(so.student); break; case structs.opertype.update: sdm1.updatestuinfor(so.student); break; default: break; (5)界面实现如图5-1和图5-2所示。两个对话框提供对学生信息和实验安排的操作。图5-1 学生信息对话框图5-2 学生信息编辑对话框当学生管理模块面向的用户类型是教师时,本模块需要使用teastudialog,showstuinfo,addrm和teastuinfo,teastudatainfo类。定义三种结构trinfor,srinfor,tsinfor来表示操作的数据。内部实现机制如下所示。(1) teastudialog,showstuinfo,addrm是对话框类型。teastudialog显示数据,并调用showstuinfo,addrm来完成用户的操作。教师可以在showstuinfo中选择学生记录,加入到本实验课程中。此操作流程图如图5-3所示。图5-3 学生操作流程图(2)在teastudialog对话框中,存在三个datatable,分别是dtstu,dttr,dtsr。表示的意义是,学生信息,教师实验课,学生实验安排。教师可以在dttr中,选择自己的实验课(包括时间,地点等信息),然后安排给选中的某个学生。(3)teastuinfor中有三个数组srarray,trarray,tsarray,分别记录用户的操作。当调用detach()函数时,teastuinfor把三个数组中的操作记录作为参数传递给teastudatainfor,让它通过datamanager提供的接口把数据传递给数据库。数据流转换过程如图5-4所示。图5-4 数据流图(4)教师查询学生信息,实验安排等。选择学生加入到本上机实验课中。界面实现如图5-5所示。图5-5 查询界面5.1.2 辅助类辅助工具类是系统内部各模块中都要使用到的类,它们提供一些静态方法,主要功能是数据转换,数据验证,和数据库访问。(1)数据转换类在学生管理模块中,我们反复使用一个initmach类。initmach类主要功能是实现数据的转化,和一些简单的数据验证。帮助在业务逻辑层中进行数据处理。如表5-1所示。表5-1 简单方法的定义说明函数名参数解释hasnotspecialcharstring str判断str中是否有特殊字符,返回布尔值istelphotoformatstring str判断str是否是电话号码格式,返回布尔值weeknumtostrint weeknum把阿拉伯数字转化成“星期”classnumtostrint classnum把阿拉伯数字转化成“班”gradenumtostrint gradenum把阿拉伯数字转化成“年级timespantostrint inttime把0,1,2分别转化为时间段字符串式weekstrtointstring strweek星期转化成相对应的阿拉伯数字classstrtointstring classstr把“班转化成阿拉伯数字gradestrtointstring gradestr把“年级转化成阿拉伯数字timespantointstring timespan把字符串式分别转化为0,1,2getprojectnameint projectid根据课程号查询课程在学生信息管理模块中,对学生的学号与学生的姓名的格式有严格的要求,所以在initmach类中,我们定义了hasnotspecialchar方法,来判断字符串是否存在特殊字符。特殊字符(,!,#,$,%,&,*,(,),_,-,+,=,|,)等不允许出现在学号和姓名的字符串中。可以使用字符串的contains方法来验证。(2)数据库管理员类而在数据库管理类中,主要功能是提供数据库访问接口,面向系统屏蔽掉数据库操作过程。可以采用面向连接和非面向连接两种方式。数据库管理员类通过open()函数,对sqlconnection进行创建和连接。数据库管理员类的getdatatable或getdatareader函数可以通过参数数据库查询语句查询数据库,返回sqldatatable或sqldatareader。数据库管理员可以使用makeinparam来创建存储过程中的参数。并且具有调用存储过程的几种方法。分别是:runproc,runprocreturn,runstorpro等。现以添加学生信息为例阐述存储过程的使用。datamanager是数据库管理类声明的一个对象。public void addstuinfor(student s1)sqlparameterprams =datamanager.makeinparam(

温馨提示

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

评论

0/150

提交评论