毕业设计(论文)-VB课程管理系统.doc_第1页
毕业设计(论文)-VB课程管理系统.doc_第2页
免费预览已结束,剩余49页可下载查看

下载本文档

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

文档简介

课程管理系统摘 要:本文为适应高校分校管理体制下校区教学管理信息化的需要,采用visual basic数据库技术,开发了一套简单灵活、方便通用的学生课程管理系统。本文主要介绍的是该系统的设计与实现。关键词:课程管理系统;数据库abstract: in order to meet management at the university campus under the system of teaching management information needs, using visual basic database technology, developed a simple and flexible to facilitate a common course management system students. this paper describes the system is the design and implementation. key words: course management system, database目录第一章 绪论3第二章 visual basic 6.0 简介4第三章系统需求分析63. 1需求获取方法63. 2业务需求的描述73. 2. 1总体业务流程73.2.2业务描述73. 3需求分析93. 3. 1系统需求获取93. 3. 2系统分析模型14第四章系统设计174. 1系统功能框架174.1.1功能框架总述174. 2设计类建模194. 3数据库建模214. 3. 1数据库建模步骤214.3.2成绩报表的视图设计23第五章系统实现275. 1课程管理系统的实现275. 2培养方案管理的实现285. 3 xml配置部署文件的实现305. 4成绩表的实现345. 5内容管理挂接问题365. 5. 1课程表实现方式365. 5. 2 svg实现方式36参考文献39致 谢40附件1:外文资料翻译译文41第一章 绪论学生课程管理系统是一个学校不可缺少的部分,它的内容对于管理者和学生来说都至关重要,所以学生课程管理系统应该能够为管理者提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理学生课程,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对人事劳资信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。如今随着学生的扩招各个高校都有好几个校区,如果没有相应的管理系统互相衔接,仍然停留在传统的纸质和手工管理方式上,则必将成为高校发展的瓶颈、制约管理效能的提高。针对这一情况,我们结合学校教学管理实际,利用viusal basic数据库技术开发了一套简单灵活的学生课程管理系统。第二章 visual basic 6.0 简介20世纪60年代初,美国dartmouth学院的两位学者g.keneny和thomos e.kurty发明了一种称为“basic”的语言,它的诞生称得上是计算机语言发展史上的一件大事,对计算机的推广应用起到了重要的作用。自从basic语言问世以来,“basic”已经成为了编程入门者学习语言的代名词。basic语言以其易学易用的特点风靡全球。然而自从微软公司推出了划时代的 visual basic,basic又从一门“玩具语言”一跃而成为功能强大的应用软件开发语言。它功能强大,语法简单,执行代码效率高。据统计,开发同样的应用软件,采用 vb开发要比用 vc+的效率提高 70。因此,vb已经成为每一个编程工作者学习时的首选语言14。1991年,微软推出了visual basic1.0版。这在当时引起了很大的轰动。接着于1992年微软推出visual basicb2.0,1993年推出visual basic3.0,1995年推出visual basic4.0,1997年推出visual basic5.0,1998年推出visual basic6.0。并且从visual basic3.0开始,微软将access的数据库驱动集成到了visual basic中,这使得visual basic的数据库编程能力大大提高。从visual basic4.0开始,visual basic也引入了面向对象的程序设计思想。而且,visual basic还引入了“控件”的概念,使得大量已经编好的visual basic程序可以被我们直接拿来使用,如今,visual basic已经有了6.0版。visual basic已逐渐成为简单易学、功能强大的编程工具15。它不但在一般程序设计方面比传统的程序设计语言具有明显的优势,而且可作为多媒体创作工具,支持程序跳转,具有脱机播放动画的能力,并采用了动画过渡技术等。它的软件费用支出低,易学习的突出特点,使其易于被许多非专业人员掌握使用。通过几年的发展,它已成为一种真正专业化的开发语言和环境。用户可用visual basic快速创建windows程序,在现在还可以编写企业水平的客户服务器程序及强大的数据库应用程序。visual basic 6.0作为visual studio 6.0的一员发布,证明微软正在改变visual basic的产品定位,他想让visual basic成为企业级快速开发的利器。visual basic 6.0在数据访问方面有了很大的改进,新的ado组件让对大量数据快速访问成为可能。数据环境和新的报表功能也让数据开发有了全新的体验。visual basic 借助com/com+强大的功能,可以开发具有n层结构的分布式应用程序。同时,visual basic还可以在iis上开发性能超群的web应用程序。visual basic 6.0在语言方面和ide方面的改进都不大,但是许多新增的组件成为visual basic开发人员手中的利器,如file system object等16。新的字符串函数split和replace等也给visual basic的程序员带来很大方便。总之visual basic 6.0已经是非常成熟稳定的开发系统,能让企业快速建立多层的系统以及web应用程序,成为当前windows上最流行的visual basic版本。第三章系统需求分析本章对系统采用需求的获取方法进行描述,分析了系统各个模块的功能性需求,针对系统中的需求描述和分析的问题,采用面向对象的思想和uml中的用例模型和分析模型对系统需求进行分析描述,并且得出系统中各部分的用例模型。3. 1需求获取方法需求阶段包括需求获取和需求分析两个主要的过程。需求获取的主要任务在于明晰用户的业务流程,获取用户需求。与学院及培养办人员组成项目组,共同负责需求的设计,系统采用下面需求获取方法。 图3-1业务需求获取方法业务流程的确定,鉴于项目组作为系统得开发者和使用者的双重角色,熟悉需要开发的系统的主要业务流程。通过与业务人员的交流协商确定业务基本流程。业务字段的获取,由于系统需要考虑与学校已有的信息系统的数据兼容问题,针对系统中的业务字段主要从己有的系统中的字段获取。另外,从学校所具备的特点来看需要得到的主要是各种类型的上报表格,所以也可以由己有的各种业务表格中获取业务字段。业务需求确认,获取以上业务信息后对需求进行描述,然后与学校业务人员进行交流并且确认。业务需求的挖掘,鉴于开发人员的特殊性,作为两重角色的项目组可以从系统中发掘出业务人员不曾关注的需求。及时沟通是指开发人员在开发过程中遇到的业务问题以及发掘出的新需求及时与学校业务人员沟通;同时,由于学校业务流程的更新性,在开发周期中业务流程发生变化也需要与开发人员及时沟通。3. 2业务需求的描述3. 2. 1总体业务流程课程管理系统是针对培养过程中,从培养方案的制定,到学生教学计划安排再到学生选课和学生成绩管理等一系列连贯性的教学活动的管理。由系统的业务描述可以发现,整个系统的业务是依据培养过程为主线,实现了整个系统的可跟踪性和可维护性;通过各个单独的模块可以完成对某一业务需求的管理,另外系统各个模块间又是可依赖的,比如说成绩的录入需要学生选课的结果、学生选课又与各个班级的排课结果密切相关。培养过程中各业务之间的流程如图3-2;首先,由各个学院确定本学院各个专业的培养方案;然后,在具体每个学期的培养过程中由学院确定该学期需要上的课程以及课程安排;学生依据教学计划和本人的培养计划选定自己需要上的课程;最后,本学期末通过考试由教师或者秘书录入学生成绩;通过学生各个学期直到毕业的各门课程成绩最终生成软件工程的培养计划;另外通过学院教学计划的安排结果可以计算出教师个人的工作量。3.2.2业务描述系统的目的在于通过系统对培养过程中课程管理形成一个统一的管理,通过系统提高课程管理的效率,并可以很方便的提取各个学期各学院的课程基本情况如新申请的课程的统计、学生课程的安排情况、教师各个学期工作量的计算情况、学生每个学期的选课情况以及学生各个学期和最终教学成绩、各个学院的培养方案等。通过对系统的分析得到系统业务需求主要包括课程基本维护、新课程申请、选课管理、排课管理以及培养方案和成绩的管理,其主要的描述如下。1、课程基本维护,主要是由学院秘书和院管理人员对课程进行维护,包括添加、删除、修改、查询课程。院管理少、员可以维护整个学校的课程,学院秘书维护各自学院的课程。2、新课程申请,每年各个学院都会增加很多新的课程,而增加的课程院不能够很好的掌握和控制;该部分功能就是更好的掌握新课程的增加情况。教师网上提交开设新课程申请,经过院系和学校审核后转为正式课程。教师、院系、学校可分别查看本人、本院、本校的历史申请记录和申请结果。业务流程如图3-3所示,每个学期开始首先由各个学院的教师填写 图3-3新课程申请3、培养方案管理,由各院系向学校提交本院各专业的培养方案。主要包括课程要求和学分、以及对学生培养情况的要求,学校进行统一管理。并且能按照专业和学科一级代码对培养方案进行查询,学生可以通过界面查看各个专业的培养方案。4、选课管理,各院系秘书设置选课的起止期限,学生根据学校教学任务的安排在网上选课,系统自动统计选课结果供秘书进行综合查询和打印,如每门课有多少人选,学生都选了哪些课等。5、成绩管理,系统根据选课结果初始化成绩单,由各院系秘书和任课教师网上在线录入学生成绩,秘书对成绩进行统计和排名,学生可查询自己的成绩;秘书和学生可以选择打印学生的个人成绩表。6、课程内容管理,课程内容管理主要包括课程静态模板的制定和动态交互部分,静态部分包括课程简介、教学资源、教师师资等内容,动态交互部分包括网上答疑和作业管理两部分。另外,还包括与系统其它部分的无缝链接,为学生的学习和浏览提供方便。3. 3需求分析应用软件系统,就其本质来说,是使用计算机对现实世界进行的数字化模拟。应用软件的制造过程,按照uml的方法,就是建立这一系列模型的过程。系统需求阶段主要包括需求获取和需求分析两个重要阶段。需求获取主要就是获取用户的业务需求,而需求分析就是将业务需求转化为软件需求的过程。在面向对象的软件工程方法中,用例模型是系统需求获取的有效手段,它定义系统用来做什么; 需求分析是从开发者的角度来描述问题,其建模过程包括静态模型和动态模型建立。下面通过成绩管理系统建模的实例对需求获取和需求分析阶段的需求方法进行描述。3. 3. 1系统需求获取在成绩管理系统中,通过用例模型获取系统的需求。用例模型由“角色”(actor)和“用例”(usecase)组成。在构建一个用例的时候,通常要做的第一件事情是识别角色,或者说,参与者。然后识别系统为参与者提供的服务,或者说,参与者的行为,也就是用例。最后确定角色和用例之间的关系。确定有效用例的关键是,检查用例是否包含了一个完整的功能。用例不能定的过细,不能把一个完整的功能的一个部分作为一个用例,也不能在一个用例中包含过多的功育旨。1、用例建模用例模型由用例图和用例描述两部分组成。用例图描述系统中的角色和参与者提供的服务;用例描述是从软件系统角度对用例工作流程和工作参与者进行的一段规范的文字性描述。为了保证在用例建模过程中描述的一致性,在课程管理系统中采用rup推荐的描述用例的完整结构。用例模型是在业务流程和描述的基础上建立的,主要包括软件系统实现的部分,对业务功能需求进行了描述。用例描述模板如表3-1所示; 表3-1用例模板在用例描述中,用例名称用来书写用例的名称,使用形象的词语对用例进行概括描述,一般采用动宾结构的词组来为用例取名如添加成绩:用例参与者说明了系统发出请求人;用例的前置条件声明了用例启动之前的系统必须满足的条件,该条件由系统负责实施,并要求确保为真;用例的后置条件表示一个条件列表,如果其中包含条件,则这些条件将在用例成功完成以后得到满足;用例基本事件流是指参与者在用例中所遵循的主逻辑路径。因为它描述了各项工作都正常进行时用例的工作方式,通常称其为适当路径(happy path)或主路径(mainpath);用例扩展事件流是用例中很少使用的逻辑路径,包括在变更工作方式、出现异常或发生错误的情况下所遵循的路径;修改记录是指当系统业务需求发生改变时,相应的用例也要进行修改;修改记录用来记录修改的内容。 图3-4成绩管理用例图如图3-4,系统成绩管理部分的用例图,成绩管理中主要包括秘书(教务员)、教师、学生三种角色;主要用例有学生成绩查询、管理员录入、修改成绩、秘书初始化成绩设置、成绩汇总以及教师录入成绩等。系统中的用例图及其用例描述是对系统中包括的主要功能进行描述,但是在整个功能运行的流程上不能够很好的显示和描述,对于跨角色的业务细节也不能够清晰的描述。在课程管理系统需求的分析过程中,引入了uml中的活动图对需求进行分析和描述。图3-5为成绩录入设置流程的活动图。各院系秘书登陆系统后进入成绩初始化设置界面,选择具体的学年学期和班级,系统显示该班级本学年学期的所有课程;秘书可依据实际情况选择对某一门课程或全部课程进行初始化操作;同时选择邮件提醒功能,提醒相应课程的教师进行成绩录入操作,系统返回邮件提醒结果。 图3-5成绩设置活动图2、系统中主要的用例模型由需求分析方法可以得出系统中各主要部分的用例模型,主要包括选课管理、培养方案管理以及课程维护管理等。其描述分析如下。图3-6为选课管理的用例图,主要包括了学生和秘书两个角色;其主要用例有学生选择课程、查看选课结果,秘书设置选课时间、查询选课结果等。 图3-6选课管理用例图图3-7为培养方案管理的用例图,主要包括学院秘书和院管理人员以及学生等三种角色。主要用例包括学院管理添加专业培养方案、修改和删除专业培养方案;学校院管理人员审核各个专业的培养方案;学生通过专业或者是一级学科查询培养方案。图3-7培养方案用例图其中,主要用例学院秘书添加培养方案的用例描述如表3-3。 表3-3添加培养方案用例描述图3-8描述了系统中关于新课程申请审核、课程基本维护的主要用例。主要包括教师填写、修改课程申请,查看个人课程审核结果;学院秘书查看教师审核,并且填写学院审核意见、维护课程;学校院管理人员填写各个学院教师申请的审核意见、为审核通过的课程赋予课程号、维护各个学院课程等用例。图3-8课程维护管理用例图3. 3. 2系统分析模型在系统分析过程中,所关注的仍然是问题。但同用例模型不同的是,用例模型是从最终用户的角度来看待问题,而分析模型是从开发者的角度来描述问题。用例模型的主要工作是描述现实世界的业务流程,而很少涉及系统的概念。分析,则是从系统的角度来来看待软件应该为用户提供的服务。1、静态模型的建立分析建模通常是识别对象和提取类的过程。考虑著名的htvc模式需要识别实体、控制和边界三种对象。按照mvc模式来为识别对象做指导,是非常好的做法。对象识别的结果,就是需要的静态模型。首先识别出实体对象,这些对象通常是比较明显的,例如系统中的角色,系统需要处理的资料等;有些实体对象需要分析后得到,例如,在本系统中,为了记录学生成绩等的信息,需要一个对象来专门记录这一信息。然后识别为了完成系统业务逻辑而需要的业务逻辑对象,以及同用户进行交互的界面类,在mvc模式中,他们分别对应于控制类(control)和边界类(view)。在分析阶段,这些对象通常都按照比较自然的方式来组织,例如,为了完成一个业务功能,通常需要一个控制类和一个边界类,控制类执行业务逻辑,边界类同客户进行交互。当然,这不是绝对的,在进行进一步深入的分析后,这些类可能会被分解和合并,同时需要对用例进行逐个分析。.下面以系统中初始化设置成绩用例为例进行分析。在这个用例中首先可以识别出一些直接的对象,包括秘书(teacher),课程(subject);分析会发现需要实体类studentmark和实体类mail,分别用来处理选课信息和邮件提醒;完成了实体对象的识别。同时需要一个控制类和一个界面类(工nit工nterface)来接受用户的交互操作以及需要一个业务逻辑类(markmanger)完成对数据库操作。最后完成系统模型的建立。根据以上描述得出初始化用例的静态模型图。 图3-9静态模型在分析模型中还要识别出类的一些属性和方法。为了避免过早的陷入细节当中,并且适应将来在设计类时的变化,在分析模型中,一般只是识别一些主要的属性和方法。例如,teacher类只需要id和password,对于subject类只需要课程id和课程名称name等。2、动态模型的建立在面向对象的系统中,业务流程表现为对象之间的交互,利用分析得到的对象可以描述他们是怎样进行交互和协作的。在uml中可以使用顺序图、活动图或者状态图来建模这些静态过程。在图3-10成绩设置的顺序图中,用成绩设置的顺序图来说明需求分析的动态模型的建立。矩形框表示一个基本类,在矩形框内标有类的名称。垂直虚线称为类的生命线,代表在各个类之间的交互作用中概念的生命期。在生命线上的窄矩形条被称作激活,表示该对象正在执行某个操作。激活矩形的长度表示计划的持续时间,顶部表示动作的开始,底部表示动作的结束。 图3-10成绩设置顺序图图中清楚显示了成绩设置用例中各个静态模型之间进行消息传递的顺序。成绩管理员选择需要初始化的班级和学期,提交初始化请求到控制类,控制类获取某门课程选课结果后,传递选课结果到成绩逻辑类对数据库进行操作完成初始化过程并且返回成功信息。第四章系统设计本章对系统的功能框架以及各个功能模块之间的关系进行描述;使用面向对象的思想对系统的设计方法进行分析,设计了系统中的相关类和数据库模型;着重分析了成绩单打印功能中的数据库视图设计以及培养方案的数据库设计,排课管理的相关设计将在第6章中给出详细描述,本章不再祥述。4. 1系统功能框架在设计系统的功能架构时,按照软件工程中子系统划分的思想,尽量实现各个子系统之间的独立性以及减少系统间的依赖性。子系统的划分采用了功能划分的方法,其具体描述如下。4.1.1功能框架总述课程管理系统是整个学院信息化系统的一部分,同时包括基本资料维护、权限管理系统和新闻系统等辅助功能模块。其基本信息库功能模块如图4-l; 图4-1基本信息库基本信息库主要包括学校基本资源及教学单位信息等功能模块。其中,院系管理是指学校各个院、系、所的添加、删除等基本维护;班级管理是指某个系所辖下的班级的管理维护;学期管理是指学生各个学年学期的基本维护。数据字典管理是指,对于系统中经常使用但平时数据变化不频繁的一类数据,作为数据字,典的一个数据项进行存储,并且可以对该数据项进行维护;这样即满足了数据的动态变化又减少了系统维护量。为了实现系统的网络粼数据安全问题,系统中采用基于角色的访问控制(rbac)思想,实现了系统的权限管理系统。在基于角色访问控制(role-based;access control, rbac )中,权限和角色相关,用户被当作相应角色的成员而获得角色的权限,简化了权限的管理。角色针对组织中的各种功能创建,用户依据责任和资历被指派角色,并且可以容易地完成角色的转换。用户对信息的访问在指派角色的基础上被管制.rbac的策略基于角色,可以使用映射组织结构的方式来阐述安全策略。基于角色的访问控制允许管理员根据组织结构来指定访问控制 , rbac通过创建称为角色( role )的新对象来达到此目的。可以为用户分派执行某种工作职能的角色,然而与组不同的是,角色将授权权限定义在资源的某些局部上。在rbac模型中,管理员使用角色来管理和分派权限。 图4-2课程管理系统功能框架如图4-2,课程管理系统主要描述了从学生入学到离校期间培养过程中的课程管理。按照培养过程,系统主要分为培养方案管理、新课程申请管理、课程基术维护、课程内容管理、排课管理、选课管理和成绩管理等功能模块。课程基本维护模块作为各个功能模块的基础,包括各个学院课程的基本维护。新课程申请模块包括教师提交新课程申请、学院审核、学院审核以及跟踪新课程申请情况等功能、培养方案模块包括学院秘书提交培养方案、学院审核发布培养方案以及对培养方案查询等功能。排课管理模块包括教学任务设置、教师申请、管理员交互式排课以及课程表查询等功能。选课管理模块主要包括管理员时间设置、学生网上选课、选课查询等功能。成绩管理模块包括成绩表的初始化、学生成绩录入、学生成绩补录、学生成绩查询以及学生成绩和培养计划报表等功能。课程内容管理主要包括课程内容模板设计、交流平台的建立、内容管理的挂接等功能。2、功能模块间的流程由系统的业务描述可以发现,整个系统的业务以培养过程为主线,包括了培养过程中课程管理各环节。通过各单独的模块可以完成对某一环节的管理,另外系统各个模块间又是可依赖的,比如成绩录入需要学生选课的结果、学生选课又需要各个班级的开课结果作为前提。这样,为了保持各个模块间的低祸合性,系统每一模块又增加了秘书手工维护功能,而在学生成绩单生成过程中增加了学生手动选择需要打印成绩的功能。各功能模块之间的流程关系如图4-3。秘书维护本学院的所有课程,当有教师申请新的课程的时候进行审核,通过后添加到学院课程中去。学院依照实际情况指定本学院各个专业的培养方案,其中包括课程信息。每个学期开学前,秘书按照教学计划进行排课,然后学生依照培养方案选定课程,选课后通过成绩管理最终生成学生在校期间的成绩单。图4-3模块流程图4. 2设计类建模在系统的设计阶段,按照面向对象的方法对系统详细描述并且提供具体可行的解决方案。设计同分析所使用的工具一样,也需要建立静态和动态的模型,并且使用类图、顺序图、协作图、活动图、状态图等来表示。设计类图是对静态模型的进一步细化的过程,在课程管理系统中是指在struts框架mvc模式的指导下对类进行细化并且按照struts框架的结构来分解和描述整个静态模型。从静态模型得到设计类图的过程就是设计类建模的过程,主要流程包括依据mvc模式把静态模型的类进行分离,然后再根据系统中需要的方法和属性给各个类添加属性和方法,最终为各个类之间添加依赖和关联关系。在mvc设计模式中,有一个宗旨就是不能将功能性的代码和显示性的代码混合在一起,否则再更改页面或者扩展新功能时会增加修改难度。首先,系统中需要把表现的细分为视图(view)、控制器(controller)和业务对象模型(businessobject model)。按照mvc设计模式把interface类定义为视图层,把初始化类initial细分为控制器和业务对象模型。按照struts框架的各部分结构,视图类就是jsp页面并且通过actionform类initialform与action之间交换数据。initial初始化类定义为控制器initialaction和markmanager。然后,需要为每个静态模型中的属性添加到实体类中,为每个类添加方法。在实体类中除了创建方法和属性的存取方法,其余实体相关的添加、删除以及查询方法我们把它封装在系统管理类中也就是markmanager中。最后,在各个类之间添加关联和依赖关系。最终的初始化成绩设计类模型如图4-40 图4-4各个类之间的关系为由view配置文件struts-config.xml初始化成绩的设计类模型层的jsp页面发送请求,通过服务器和struts找到控制器类initialaction。然后,调用markmanager中的业务逻辑方法initialmethod最后得到结果。通过系统的用例建模和用例分析以及设计类过程,最终形成系统的核心业务逻辑类图。如图4-6系统中的核心逻辑处理集中在subjectmanager, electmanager, markmanager,cultivatemanaer中。4. 3数据库建模4. 3. 1数据库建模步骤数据库建模主要包括两个过程:第一步是在细化类图中寻找需要持久化的类,第二步将需要持久化的类的逻辑模型进行整合转化为物理模型并完成数据库建模。在系统开发过程中,通过分析各部分功能模块并且从中获取需要的持久化类,然后采用powerdesigner工具把系统的逻辑模型转化为数据库物理模型并完成整个系统的数据库设计。1、需要持久化的类在系统开发过程中主要把课程管理相关模块中的持久化类抽取出来。在成绩初始化过程中持久化类主要包括成绩类mark、课程类subjecl:、选课类elective 。通过相同的方法,抽取系统中其余模块的持久化类,主要包括培养类、成绩类、课程类、选课类、新课程申请类等。2、建立的数据库模型依据抽取出来的持久化类对数据库进行建模,需要对持久化的类进行持久化。建立模型的过程就是将逻辑模型转化成物理模型并最终完成数据库建模的过程。持久化是指把暂时性的对象永久保留下来并把对象转换成一定格式的数据,存放到磁盘或其他媒介。正如一般的持久数据一样,持久对象由数据库管理系统负责管理。一般采用“映射法”将对象存到关系数据库。普遍原则是一个类映射为一个表格,表格的列或字段对应类的属性,而行记录则对应类的实例。系统开发过程中,选择powerdesigner数据库建模工具对数据库进行建模;最终生成的课程相关的主要的数据库模型如图4-7 。图4-6数据库物理模型图表4-1是对数据库主要表格及其具体内容的说明。系统中主要包括课程主表、学生成绩表、选课表、排课相关表格以及培养方案相关的培养方案和培养方案课程表。 表4-1课程相关表格及说明除了课程相关的主要表外,系统还牵涉到系所、班级、学年学期、学生、教师、教室场所、权限维护等相关基本信息的数据库设计,本文对其他的表的细节不再详述。4.3.2成绩报表的视图设计学生成绩相关的信息主要存储在成绩表中。在设计数据库表格的时候,为了保持数据库设计的3nf范式,与其余表格相关的字段主要以外键关联。在成绩报表打印的时候,需要显示相关实体的具体信息。由于成绩表中需要关联的字段过多,如果利用数据库的联合查询势必增加系统的复杂性和不可读性。所以在设计成绩单报表的数据库时,引入了相关的两个视图。成绩报表中具体的字段包括学生基本信息和学生成绩信息等。学生基本信息如学号、姓名、性别、入学时间、学生专业、导师信息以及研究方向;学生的成绩基本信息包括课程名称、学分、备注、学生已修总学分、实践学分等。通过分析,在系统中设计了学生信息视图marksheetbaseinfoview和学生成绩视图base_ cjxx_viewo如表4-2所示,视图base_ cjxx_v工ew主要关联以下九个表格和视图,其中以成绩表为主表然后从其余各个表格中获取课程名称、课程学分、课程类别、考核方式、指导教师等信息。 表4-2成绩信息视图说明如表4-3所示,视图marksheetbaseinfoview是学生成绩单需要的学生基本信息视图,主要包括五个表格。其中以学生基本信息为主表,从学生教师表中获取学生的指导教师信息,从其余表中获取学生所属专业等信息。表4-3学生成绩单基本信息视图说明4.3.3培养方案数据库设计培养方案管理包括网上提交培养方案、网上审核方案以及网上查询、查看培养方案。培养方案主要包括三种类型,而且不同的类型其培养方案又包括不同的内容项。另外,培养方案中又包括具体的培养方案课程和文献要求信息。通过系统数据库建模过程对培养方案的数据库进行分析建模。该部分的数据库表格包括培养方案表、培养方案审核表以及培养方案课程表,其中培养方案表为系统主表,培养方案课程表为辅表。考虑到培养方案课程表中包括课程的一些基本信息,培养方案课程表中由培养方案id和课程id作为联合主键;培养方案审核表中存储培养方案的审核信息和审核跟踪情况。培养方案表中包括了三种类型培养方案所包括的所有内容,通过方案类别进行区分。表格中主要的字段如学位论文、参考文献等由于字段过长,在数据库中采用了大数据字段text进行存储。如表4-4所示, 表4-4培养方案表由培养方案表可以发现,培养方案包括院系、专业以及类型三个与其它表信息相关的信息,为了方便对培养方案的读取以及处理学生专业、院系、学生类型相关信息设计了culti_ xszy_view视图。如表4-5,列出了视图所关联的所有表格,主要包括培养方案以及专业、院系信息。从视图中可以获取已经提交的所有培养方案的所属专业、院系以及学生类型信息,从而简化了培养方案显示部分的数据库处理。表4-5培养专业视图表说明由于基于周模板的交互排课的设计比较复杂,与之相关的类和数据库的设计这里不再给出,排课管理的设计与实现将在第6章中给出详细描述。第五章系统实现本章阐述了培养方案管理系统的实现并且对系统实现中的主要问题进行了分析并且提出了解决方案。实现过程中的主要问题包括xml配置文件问题、成绩报表的实现以及课程内容管理的人性化挂接问题。5. 1课程管理系统的实现课程管理系统是为了满足校、院两级建制的业务需要而设计和实现的。课程管理中的培养方案和新课程申请子系统是依据学院的业务需求进行开发的;其余子系统包括课程维护、选课管理、排课管理以及成绩管理是依据软件学院的实际情况进行开发的。后者作为学院综合系统中的一部分与学院其它部分整合在一起,采用了学院系统的统一登陆和管理;前者是面向全校培养管理的系统,采用了独立的界面设计风格以及独立的登陆界面。1.系统软硬件环境 课程管理系统目前已经在学院部署使用。系统部署机器操作系统采用windows操作系统,web服务器采用开源的tomcat服务器,数据库服务器采用sqlserver2000。数据库连接采用了tomcat服务器自带的数据库连接池。2、系统实现功能课程管理系统实现了课程维护、新课程申请、选课管理、排课管理、成绩管理、培养方案管理功能。课程维护功能包括课程的增加、删除、修改和院系课程查询;新课程申请功能包括教师申请、学院审核、院审核;选课管理包括时间设置、学生网上选课、管理员选课查询;排课管理包括教学任务设置、交互式排课、各种课表的生成查询、教师工作量计算;成绩管理包括成绩初始化、成绩录入、成绩查询、成绩表打印、培养计划打印;培养方案管理包括培养方案维护、培养方案审核、培养方案发布等功能。软件学院课程管理登陆入口为软件学院主页,系统中的各类用户包括学生、教师等都可以从页面登陆。系统资源的分配采用了基于资源角色的权限管理系统,不同角色的用户登录后看到不同的资源。在系统中,课程管理员是作为秘书角色分配的权限,除了课程维护、选课管理以及成绩管理的权限外还包括教务通知发布、论文工作管理等权限。课程管理员的界面如图5-1所示。略图5-1学院课程管理界面5. 2培养方案管理的实现培养方案管理作为系统中的重要部分,主要是由系统中的课程维护、新课程申请以及培养方案的网上提交等各部分组合而成。系统中主要的功能为培养方案的网上提交、审核以及网上展示等功能。1、系统的界面设计由于该部分是面向全校管理的系统,因此设计了独立的用户界面风格以符合院风格。如图5-1,为培养管理系统的主界面。略图5-2培养管理主界面 2、培养方案的提交院系管理员主要包括基本信息和课程信息的添加。系统依据管理员的身份确定管理员所属院系并且在系统界面下列不同学生类型所对应的专业;然后由管理员选择专业和学生类型并添加相应的培养方案以及培养方案对应的课程。院系添加并且提交后,由院对培养方案进行审核、修改,通过后在网上发布。3、培养方案的展示培养方案提交审核通过后,需要通过网页的形式展示给学生和教师。学生可以依据本专业的培养方案制定个人的培养计划。为了能够为学生提供便捷的浏览方式,系统把学校培养方案按照院系及专业划分显示。如图5-2所示,系统从设计的视图culti_ xszy view中读取数据,在页面上按照院系和专业进行显示。用户进入该页面后只需要点击相应的专业名就可以查看该专业的培养方案。略 图5-3查看培养方案如图5-3所示,某专业某学生类型的培养方案主要包括培养目标、研究方向以及学习年限等内容。另外,培养方案还包括具体课程要求和文献要求页面,由于两者的显示相对独立所以在附页中进行显示。课程要求部分主要把课程分为选修课、必修课以及补修课,系统从培养方案课程要求表中读取某一培养方案的课程要求并且在课程要求页面上显示。略图5-4培养方案图由第四章的数据库设计可知,系统培养方案中的重要字段需要从数据库中读取并且在web页面上显示。数据库字段中存储的字符串中的回车、换行、空格等与web页面的字符不一致。如果对字符串不进行处理直接显示将会导致字符串不显示空格,也不进行换行。在系统中我们引入了dataformat类中的格式转换方法tohtml来实现两种字符之间的转化。具体实现代码如下:public static string tohtml(string s) if (s是null) return s; 调用strreplace,s中的”用” ”代替; 调用strreplace,s中的”n”用”代替: 调用strreplace,s中的”用”"”代替: return s:public static string strreplace(string sbody,string sfrom,string sto)int i, j, k, 1;if(sbody是null或者sbody是空串) return“”;i=0:j=sfrom的长度:k=sto的长度;创建stringbuffer的实例buf,大小是sbody的长度:定义布尔值bfirst初始化为true;1=i;while(sbody中有与sfrom匹配的字符子串) i=从第i个字符开始,找到sbody中与sform匹配的字符串第一个字符的位置;取出sbody中从1到i的字符子串,加到buf中; 在buf中加入需要替换的字符串sto;i+=j1=i:return buf转为的字符串类型;5. 3 xml配置部署文件的实现在系统中有很多系统的配置和部署参数需要不时的修改,比如说选课系统中的选课时间设置参数、发送邮件的信箱地址参数等都需要进行设置而不能在系统中定死。在系统中,以上的配置文件主要使用xml进行存储。 xml称为可扩充标记语一言,是类似于html定义文档标记语言的一个框架。xml以结构严谨著称,因此用来保存数据是非常合适的,这样在数据库之外,又多了一个持久化保存数据的方式。1, xml的选择系统中提到的配置和部署文件在这之前主要使用properties文件来保存。该类配置文件使用方法简单直接,但是只适合配置文件简单的情况。在配置文件复杂的情况下就不适合了。相对而言,用xml文档存储监控信息,具有下面的这些优点:1)具有良好的可读性xml文档的结构决定了用这种格式存储监控信息,具有良好的可读性。用xml格式存储监控信息,结构清晰,含义明确,易于理解。2)易于信息的解析现在己经有了成熟的xml文档的解析工具,如sax, dom, jdom等。利用这些工具,能够很方便的对xml文档形式的配置信息进行解析并且获得相应的结构和含义,对于复杂的信息解析比较容易。2, xml的配置文件依据系统的需要,把系统中不同模块的配置和部署参数存在xml文件中,然后放在web应用系统目录下面进行存储,系统的设置文件设计如下。xml配置文件中各部分配置信息依照树型结构存储。在以上配置文件中,表示总的模块列表,代表系统中的课程管理模块,下一级目录代表系统中的某个功能,再下一级表示该功能下的某一个属性。通过以上xml文件存储系统中的配置参数,使得系统的配置文件简单明了。3, xml的操作实现通过以上xml文件对数据进行存储,使复杂的配置问题得以解决。分析读取xml数据有很多工具,如dom和sax。这两种是标准的xml分析器,可以使用任何语言来实现。dom分析xml数据时,是将整个文档一下子读入内存,如果文档很大,性能就发生影响;而sax则是动态的对每一行进行分析,无需全部读入,因此在解析大文档时速度比较快。但是,这两种分析方法都是围绕xml树形结构展开的。在编制这两种分析器时,会涉及到大量的xml概念的api,需要一定的基础知识,使用起来有一定难度。系统采用了jdom对xml文件进行解析,jdom封装了dom/sax的具体使用技术,在分析速度方面比dom要快但比sax要慢。但在配置文件分析上,分析速度不是重要的,因此可以使用lazy initialization。它类似于缓存机制,在第一次读取后就保存到内存,以后每次直接从内存读取。在系统中,其解析工作主要是由xmloperation类来完成的。从下面代码中可以发现,通过以上方法对xml文件读写非常方便。首先通过loadproperties()方法转入xml文件,然后使用properties.getproperty(name)就可以获得name的配置值。通过properties. setproperty(name, value)一句就可以将name和其值value保存到xml文件中,非常类似与hashtable的读取和存入。 xmlproperties是jdom的一个属性文件辅助包,它主要是对属性名进行分解和合成。如上面配置文件中的数据项planscore的值是28,在系统中使用properties. getproperty( mark. planscore)得到数据项的值。注意到,这里的key的组合是mark.planscore,这种特定写法是xmlproperties可以支持的。在对xml文件保存细节中,由xmlproperties将这种属性名称写法具体转化成xml文档操作。具体内部代码如下,代码首先从缓存中获取xml文件,然后把mark.planscore转化为string数组,并且通过propname数组循环、遍历树形结构层次,寻找出对应属性。5. 4成绩表的实现通过上一节成绩单视图的数据库建模,系统可以获取成绩单需要的基本数据。系统的结构是基于mvc设计模式,主要分为数据展示的view层、逻辑控制的controller控制器和后台逻辑数据获取的model层。通过nfvc设计模式的实现,当成绩表单的样式发生变化而系统需要显示的数据不发生变化时,系统只需要改变系统的前台显示也就是view层,减少了系统的维护量。在系统中,数据报表的显示和生成采用了开源的ireport和jasperreport结合的b/s报表设计工具。后台数据的获取是由具体的action调用业务逻辑类并且对成绩单的两个逻辑视图进行操作获取。3、业务逻辑的处理成绩报表主要内容包括学生基本信息部分、学生成绩列表部分、学生学分情况和毕业年级等部分。学生基本信息的获取主要通过查询视图marksheetbaseinfoview获得:学生成绩列表部分的获取主要是通过查询学生成绩基本信息视图bass_ cjxx一iew获得;学生的总学分也通过sql语句查询视图base_ cjxx_ view获取;毕业年级以及总学分、毕业实践学分等信息主要存放在以上提到的xml配置文件中,系统通过jdom解析xml文件获取。4、报表生成的实现数据报表的生成系统中使用了开源项目jasperreport以及jasperreport的报表设计器ireport完成。通过以上工具可以很快完成成绩报表的设计工作,并且能够达到以上成绩单报表的表现效果。1报表生成原理系统中采用的报表生成系统主要包括jasperreport和ireport。其中,jasperreport作为web报表服务器引擎用来在web服务器端解析报表内容。该引擎

温馨提示

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

评论

0/150

提交评论