- 612.00 KB
- 2022-04-22 13:43:08 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'分布式网络考试系统原型分析及实现/火焰晨晨分布式网络考试系统原型分析及实现毕业论文目录分布式网络考试系统原型分析及实现11.问题定义42.需求分析42.1.系统目标42.2.可行性分析42.2.1.现有的数据库应用程序的分层结构42.2.1.1.传统二层结构42.2.1.2.三层数据库应用结构52.2.1.3.多层分布式数据库系统52.2.2.网络分布式多层应用系统62.2.3.XML语言72.3.本系统的方案选择82.4.建模工具的选择83.基于UML的系统分析83.1.用例图83.1.1.用户关系图83.1.2.系统用例图93.1.3.用例图利用情况清单93.2.顺序图103.2.1.老师活动顺序图103.2.2.学生活动顺序图113.2.3.动作清单113.2.4.通讯清单123.3.类图133.3.1.类图一133.3.2.类图二133.3.3.类清单143.3.4.类方法清单143.4.网站页面布置图164.数据库的分析设计174.1.数据库概念模型(ConceptualDataModel)174.1.1.图174.1.2.资料清单174.1.3.实体清单184.1.4.实体的识别字清单184.1.5.关系清单194.2.数据库物理模型(PhysicalDataModel)194.2.1.图19-50-
分布式网络考试系统原型分析及实现/火焰晨晨4.2.2.物理模型栏位清单194.2.3.表格索引清单204.2.4.表格引键清单214.2.5.参考清单214.2.6.表格清单214.3.SQL语句215.系统实现265.1.开发平台的选择265.2.编程工具的选择275.3.XML和网页编辑工具的选择275.4.系统编码275.4.1.源程序文件清单275.4.1.1.网站文件清单:275.4.1.2.COM+组件源程序文件清单285.4.2.程序核心代码295.4.2.1.学生进行考试页面的XLST文件:Testing.xsl295.4.2.2.定制ASP对象主代码325.4.2.3.学生对象COM+组件主代码405.4.2.4.老师对象COM+组件主代码475.4.2.5.管理员COM+组件主代码505.4.3.程序运行截图535.4.3.1.登录页面(系统主界面)535.4.3.2.学生维护页主界面545.4.3.3.学生修改个人资料页面555.4.3.4.学生查询成绩页面565.4.3.5.学生参加考试页面575.4.3.6.进行考试页面585.4.3.7.老师维护页主界面595.4.3.8.老师生成试卷页面605.4.3.9.老师修改个人资料页面615.4.3.10.管理员维护页主界面625.4.3.11.管理员增加老师页面635.4.3.12.管理员增加学生页面645.4.3.13.管理员修改密码页面656.系统安装分发656.1.数据库的设置656.2.配置COM+环境676.3.IIS的配置686.4.注意事项687.系统不足与展望688.致谢699.参考文献69-50-
分布式网络考试系统原型分析及实现/火焰晨晨1.问题定义现在网络正在改变着传统的教育方式,网络教育也越来越多,就算是传统的教育方式下,把考试搬到网络上也是一种趋势。考试的无纸化网络化不仅能有效减少老师的工作量,很好的利用计算机的优势,提高工作效率,也能使考试更加公平、公正。所以就一定要构建一个性能良好安全可靠的可以满足大量学生同时使用的网络考试系统。本原型系统主要功能如下:1.学生可以在网上进行考试,考试结束后由计算机批改试题给出分数,并记录成绩。2.学生在还可以在网上查询自己的考试成绩,修改密码等个人资料。3.老师可以在网上出题,修改密码等个人资料。4.管理员可以在网上建立学生、老师等用户。2.需求分析2.1.系统目标本网络考试系统应该能满足学校几千学生在任何地方、任何时间都能参加考试。本系统要让学生、老师和管理员在网络上可以维护自己的个人资料。学生也可以在网络上通过本系统查询自己考试的成绩;老师能通过网络生成试卷;管理员在网络上通过本系统增加学生和老师;另外为了让考试比较公平,试卷的试题由计算机随机从题库抽取。2.2.可行性分析2.2.1.现有的数据库应用程序的分层结构2.2.1.1.传统二层结构传统的二层式程序,也就是客户/服务器(Client/Server)结构,这种程序相对简单、清楚、开发容易,其结构如图1。客户机都通过网络连接到同一个数据库上,不过这样结构问题很多,最主要的就是性能较差维护困难已经不适应在因特网(Internet)上使用。数据同一性和完整性难以控制。同时由于每一个客户机都必须安装特定的软件,且这种客户端软件体积还比较大,用户使用起来非常不方便,所以目前已经面临淘汰。不过这样的系统开发比较简单,对开发人员的技术要求也不高,在内部局域网上使用还有一定的市场。-50-
分布式网络考试系统原型分析及实现/火焰晨晨(图1)1.1.1.1.三层数据库应用结构三层结构是目前用得最多的,这种结构比传统的C/S结构增加了一个应用程序服务器,应用程序服务器包括了统一的界面、业务规则和数据处理逻辑等等,这样客户端程序就可以做得比较小,也就是常说的瘦客户,更由于业务规则和数据处理逻辑的集中在服务器上统一管理,客户端无须进行复杂的计算,也不会因为错误的操作而影响到其他的用户,所以他的可靠性、稳定性和效率都比较好。当然开发这样的系统在技术上和成本上要求就要多一些。(其结构如图2)图21.1.1.2.多层分布式数据库系统近年来随着因特网的快速发展,许多企业都开始上网,因此基于网络的营销系统、MIS系统、ERP系统都快速发展起来了,这个时候仅仅三层的应用程序已经不能满足实际需求了。因此又发展出来了多层分布式的数据库系统。在多层分布式系统中,人们把中间的应用服务器再拆分为很多比较小的系统,均匀分散到多台计算机中处理,这样就能得到更好的性能并且降低了程序复杂度。在多层分布式数据库系统中必须要有一个所谓的中间件来支持和管理分散的业务处理程序。在Windows平台下微软公司推出了的WindowsDNA(DistributedinterNetApplicationArchitecture,分布式网络应用结构)策略。把COM+作为Windows-50-
分布式网络考试系统原型分析及实现/火焰晨晨DNA策略中的中间件。在Windows2000以上操作系统中,COM+成为了系统的一部分。COM+为中间层提供了负载平衡、对象池(ObjectPooling)、事务特性等一系列的强力支持,并且在COM+中工作的程序受到操作系统的保护,从而最大的保证了系统的安全、稳定和高效。当然开发这样的系统要求开发人员必须掌握COM(ComponentObjectModel,组件对象模型)和COM+技术,开发难度和成本更大了。图31.1.1.网络分布式多层应用系统近几年来因特网飞速发展,人们的生活因为网络而在慢慢的改变。现在的个人电脑(PC)上都安装了浏览器(Browser)因此人们就利用浏览器来作为客户端程序,万维网服务器(WebServer)作为中间层和客户端沟通服务器,这就是现在流行的B/S(Browser/Server)结构方式。在这种结构下,本地的计算机无须安装任何客户端程序,只要有浏览器,可以使用因特网就可以使用系统了。他不仅仅减少了开发客户端带来的成本,最关键的是,大大减少了系统维护的成本和时间,当修改系统的时候不需要对客户做任何的改动。并且客户也可以在任何计算机上使用你的系统而不要做特别的设置。在B/S系统中以微软公司的IE浏览器、和IIS/ASP(InternetInformationServer/ActiveServerPages)服务器应用最为广泛,使用最方便,对中文的支持也是最好的。但是,ASP有一个天生的缺点,就是ASP代码是采用的VBScript、JScript或者PHP等脚本语言编写,运行速度相当的慢,而且和HTML代码是混在一起的,使ASP程序员既需要考虑与数据库打交道,又需要关心如何与HTML配合,有时还需要用ASP直接生成HTML代码。这样构建起来的系统当然是不能满足中、大型网络应用的需要。不过好在ASP可以通过脚本语言调用基于COM的程序,而得到功能和性能上的提升。在微软公司最新的IIS5.0系统上更可以让我们使用VC++、VB、Delphi等开发工具建立定制的运行于COM+环境中的ASP对象,这种对象,还可以和其他的COM+组件协同工作。这样一来我们就可以用B/S方式构建多层分布式的应用系统来满足大型网络应用。-50-
分布式网络考试系统原型分析及实现/火焰晨晨这也就是微软公司所推出的Web分布式多层应用程序结构(其结构如图4)也就是我们常听到的WindowsDNA策略(WindowsDistributedinternetApplicationArchitecture,视窗系统分布式网络应用结构)。不过开发这样的系统需要开发人员掌握更多的技术,如:ASP、VBScript、JavaScript、HTML/DHTML、ADO、COM/DCOM、MTS/COM+等等,同时学习这么多的技术这对程序员来说是一个不小的挑战!图41.1.1.XML语言XML(eXtendedMarkupLanguage)是一种标记语言,就象我们熟悉的HTML一样,但是XML的标签是由人们根据自己的需要来定制的,也就是说,任何词和字都可以做为标签来用,只要能准确的表达数据的属性。例如当我们要表达一个人的姓名的时候用HTML也许我们会这样做:“A11选项4Select4VA100100电子邮件EmailVA3535电子邮件EmailVA3535选项3Select3VA100100选项2Select2VA100100选项1Select1VA100100问题QuestionVA200200-50-
分布式网络考试系统原型分析及实现/火焰晨晨问题号QuestionIDNO成绩ScoreSI流水号IDNO入学时间EnterTimeDT性别SexA22年龄AgeSI学号StudentIDA1010科目SubjectVA5050密码PWDA1616姓名NameA1212老师编号TeacherIDA1010试卷号PaperIDI1.1.1.实体清单名称代码父产生管理员AdminConceptualDataModel"NetTest(CDM)"TRUE老师TeachersConceptualDataModel"NetTest(CDM)"TRUE学生StudentsConceptualDataModel"NetTest(CDM)"TRUE试卷PapersConceptualDataModel"NetTest(CDM)"TRUE试题QuestionsConceptualDataModel"NetTest(CDM)"TRUE1.1.2.实体的识别字清单名称代码父姓名Key_NameEntity"管理员"老师编号PK_TeacherIDEntity"老师"学号PK_StudentIDEntity"学生"流水号PK_IDEntity"试卷"问题号PK_QuestionIDEntity"试题"-50-
分布式网络考试系统原型分析及实现/火焰晨晨1.1.1.关系清单名称代码父实体2实体1参加考试TestingConceptualDataModel"NetTest(CDM)"试卷学生生成CreateConceptualDataModel"NetTest(CDM)"试卷老师1.2.数据库物理模型(PhysicalDataModel)1.2.1.图1.2.2.物理模型栏位清单名称代码老师编号TeacherID姓名Name密码PWD科目Subject电子邮件Email-50-
分布式网络考试系统原型分析及实现/火焰晨晨学号StudentID姓名Name年龄Age性别Sex入学时间EnterTime密码PWD电子邮件Email流水号ID老师编号TeacherID学号StudentID试卷号PaperID科目Subject成绩Score问题号QuestionID科目Subject问题Question选项1Select1选项2Select2选项3Select3选项4Select4答案Answer姓名Name密码PWD1.1.1.表格索引清单名称代码唯一的群主要的外来键代替键表格姓名Index_NameFALSEFALSEFALSEFALSEFALSE老师姓名Index_NameTRUETRUETRUEFALSEFALSE学生学号Index_StudentIDFALSEFALSEFALSETRUEFALSE试卷科目Index_SubjectIDFALSEFALSEFALSEFALSEFALSE试题姓名Index_NameFALSEFALSEFALSEFALSEFALSE管理员-50-
分布式网络考试系统原型分析及实现/火焰晨晨1.1.1.表格引键清单名称代码表格老师编号PK_TeacherID老师学号PK_StudentID学生流水号PK_ID试卷问题号PK_QuestionID试题姓名Key_Name管理员1.1.2.参考清单名称代码父表格子表格参加考试Testing学生试卷生成Create老师试卷1.1.3.表格清单名称代码老师Teachers学生Students试卷Papers试题Questions管理员Admin1.2.SQL语句/*==============================================================*//*Databasename:NetTest(PDM)*//*DBMSname:MicrosoftSQLServer2000*//*Createdon:2002-6-1111:28:20*//*==============================================================*/altertableNetTest.PapersdropconstraintFK_PAPERS_CREATE_TEACHERSgo-50-
分布式网络考试系统原型分析及实现/火焰晨晨altertableNetTest.PapersdropconstraintFK_PAPERS_TESTING_STUDENTSgoifexists(select1fromsysindexeswhereid=object_id("NetTest.Admin")andname="Index_Name"andindid>0andindid<255)dropindexNetTest.Admin.Index_Namegoifexists(select1fromsysindexeswhereid=object_id("NetTest.Papers")andname="Index_StudentID"andindid>0andindid<255)dropindexNetTest.Papers.Index_StudentIDgoifexists(select1fromsysindexeswhereid=object_id("NetTest.Questions")andname="Index_SubjectID"andindid>0andindid<255)dropindexNetTest.Questions.Index_SubjectIDgoifexists(select1fromsysindexeswhereid=object_id("NetTest.Teachers")andname="Index_Name"andindid>0andindid<255)dropindexNetTest.Teachers.Index_Namego-50-
分布式网络考试系统原型分析及实现/火焰晨晨ifexists(select1fromsysobjectswhereid=object_id("NetTest.Admin")andtype="U")droptableNetTest.Admingoifexists(select1fromsysobjectswhereid=object_id("NetTest.Papers")andtype="U")droptableNetTest.Papersgoifexists(select1fromsysobjectswhereid=object_id("NetTest.Questions")andtype="U")droptableNetTest.Questionsgoifexists(select1fromsysobjectswhereid=object_id("NetTest.Students")andtype="U")droptableNetTest.Studentsgoifexists(select1fromsysobjectswhereid=object_id("NetTest.Teachers")andtype="U")droptableNetTest.Teachersgo/*==============================================================*//*Table:Admin*/-50-
分布式网络考试系统原型分析及实现/火焰晨晨/*==============================================================*/createtableNetTest.Admin(Namechar(12)notnull,PWDchar(16)notnull,constraintPK_ADMINprimarykey(Name))go/*==============================================================*//*Index:Index_Name*//*==============================================================*/createindexIndex_NameonNetTest.Admin(Name)go/*==============================================================*//*Table:Papers*//*==============================================================*/createtableNetTest.Papers(IDbigintidentity,TeacherIDchar(10)notnull,StudentIDchar(10)notnull,PaperIDintnotnull,Subjectvarchar(50)notnull,ScoresmallintnullconstraintCKC_SCORE_PAPERScheck(Scoreisnullor(Score>=0)),constraintPK_PAPERSprimarykey(ID))go/*==============================================================*//*Index:Index_StudentID*//*==============================================================*/createindexIndex_StudentIDonNetTest.Papers(StudentID)go/*==============================================================*/-50-
分布式网络考试系统原型分析及实现/火焰晨晨/*Table:Questions*//*==============================================================*/createtableNetTest.Questions(QuestionIDbigintidentity,Subjectvarchar(50)notnull,Questionvarchar(200)notnull,Select1varchar(100)notnull,Select2varchar(100)notnull,Select3varchar(100)notnull,Select4varchar(100)notnull,Answerchar(1)notnull,constraintPK_QUESTIONSprimarykey(QuestionID))go/*==============================================================*//*Index:Index_SubjectID*//*==============================================================*/createindexIndex_SubjectIDonNetTest.Questions(Subject)go/*==============================================================*//*Table:Students*//*==============================================================*/createtableNetTest.Students(StudentIDchar(10)notnull,Namechar(12)notnull,AgesmallintnotnullconstraintCKC_AGE_STUDENTScheck(Agebetween0and100),Sexchar(2)notnull,EnterTimedatetimenotnull,PWDchar(16)notnull,Emailvarchar(35)null,constraintPK_STUDENTSprimarykey(StudentID))go/*==============================================================*//*Table:Teachers*/-50-
分布式网络考试系统原型分析及实现/火焰晨晨/*==============================================================*/createtableNetTest.Teachers(TeacherIDchar(10)notnull,Namechar(12)notnull,PWDchar(16)notnull,Subjectvarchar(50)notnull,Emailvarchar(35)null,constraintPK_TEACHERSprimarykey(TeacherID))go/*==============================================================*//*Index:Index_Name*//*==============================================================*/createindexIndex_NameonNetTest.Teachers(Name)goaltertableNetTest.PapersaddconstraintFK_PAPERS_CREATE_TEACHERSforeignkey(TeacherID)referencesNetTest.Teachers(TeacherID)goaltertableNetTest.PapersaddconstraintFK_PAPERS_TESTING_STUDENTSforeignkey(StudentID)referencesNetTest.Students(StudentID)go1.系统实现1.1.开发平台的选择本系统由于是采用的微软公司所推出的分布式Web应用构架,所以开发平台使用了Windows2000,数据库选用SQL-50-
分布式网络考试系统原型分析及实现/火焰晨晨Server2000,Web服务器程序使用IIS5.0。由于使用了XML,所以客户端必须是IE5.0以上版本的浏览器才能正常使用本系统。1.1.编程工具的选择目前比较流行的开发工具VC++、VB和Delphi等都可以实现本程序的中间件COM+程序的开发。使用VC++可以得到最好的速度,最大的灵活性,最强大的功能,但使用VC++开发系统所要花费的时间和开发成本足以抵消掉他所带来的好处;使用VB来开发花费的时间是少了,可是VB是解释性的语言,这样的系统运行速度会比VC++开发的相同的系统差不少;Delphi是Borland公司出品的Windows下的快速开发工具,具有VB的开发效率和VC++程序的运行速度,所以用来开发本系统是最合适的选择。1.2.XML和网页编辑工具的选择XML的开发工具我试过好几个,可都不理想,不是使用不方便就是对中文的支持不好。最后只能用Windows下的记事本(notepad.exe)手工书写。这样一来效率很底,也许正因为这个原因XML才没有HTML应用多。希望不久以后也能出现比较好用的XML可视化编辑工具。网页的编辑工具比较好选,Dreamweaver功能最强大使用方便,并且他还提供30天试用版,是不二之选。1.3.系统编码1.3.1.源程序文件清单1.3.1.1.网站文件清单:.nettest的目录[.][..][admin]admin.asp[images]index.htmlogin.aspNetTest.asp[student]student.aspstyle.cssSubmitPaper.asp[teacher]teacher.asptest.aspupdate.asp.nettestadmin的目录[.][..]admin.htmcreatestudent.htmcreateteacher.htmupdate.htm4个文件14,685字节.nettestimages的目录-50-
分布式网络考试系统原型分析及实现/火焰晨晨[.][..]bg1.gifmain.gifstudies_02.gif.netteststudent的目录[.][..]QueryScore.xslSelectTest.xslStudent.xslstyle.cssTesting.xslUpDate.htm.nettestteacher的目录[.][..]createpaper.htmcreatequestions.htmteacher.xslUpDate.htm1.1.1.1.COM+组件源程序文件清单1.1.2.程序核心代码因为本系统源代码比较多,在这里就仅仅列出比较重要的核心代码1.1.2.1.学生进行考试页面的XLST文件:Testing.xsl进行考试! ...::: 解放军后勤工程学院网络考试系统 :::....
进行考试 考试: 、AA-50-
分布式网络考试系统原型分析及实现/火焰晨晨BB CCD-50-
分布式网络考试系统原型分析及实现/火焰晨晨 D
设计制作(C)火焰晨晨2001-2002