学生选课系统的设计与实现

上传人:ba****u6 文档编号:172697322 上传时间:2022-12-06 格式:DOCX 页数:49 大小:513.97KB
返回 下载 相关 举报
学生选课系统的设计与实现_第1页
第1页 / 共49页
学生选课系统的设计与实现_第2页
第2页 / 共49页
学生选课系统的设计与实现_第3页
第3页 / 共49页
点击查看更多>>
资源描述
防灾科技学院毕业设计题 目学生选课系统的设计与实现学生姓名涂语楠学 号系 别灾害信息工程系专 业信息管理与信息系统班 级07302开题时间2011年1月1日答辩时间2011年06月11日指导教师白灵职 称讲师学生选课系统的设计与实现作者:涂语楠指导老师:白灵摘要:随着我校大学生人数的不断增加,使得教务管理系统的数据量也不断上涨。 为了减轻教务处的教务管理工作,以及方便学生选择自己所喜欢的科目。学生选课系统针 对这一环节,实现教学资源实体与学生两个集合的协调统一,规避课程分配冲突,更加有 效衔接教学管理系统的各子系统的关系。本系统是一个典型的信息管理系统,其开发主要 包括后台数据库的建立和维护,以及客户端程序的开发两个方面。本文通过分析客户端/服务器结构的特点并结合选课的实际情况,提出了基于客户端/ 服务器结构选课系统的基本设计思想,简要介绍了系统需求分析和系统的功能设计、 ACCESS数据库设计、C#程序设计及系统实现过程。重点描述了如何利用C#以及ACCESS数据 库管理系统相结合的方法来开发基于客户端的选课系统。并在试运行的基础上对系统进一 步完善提出了改进方案。通过该系统,使学生可以方便地在局域网内的计算机上安装客户 端进行选课。关键词:学生选课,客户端/服务器结构,C#,ACCESS数据库管理系统The Design and Implementation of Student Select Course SystemAuthor: TU Yu-nanInstructor: BAI LingAbstract: With the increasing number of college students, the amount of data continue to rise greatly in educational system. In order to reduce the work of office of Academic Affairs , and make each student to better select their own favorite subjects , this paper designs a student select course system.Elective for students in this part of the system achieve a credit system management entity-based teaching resources and student correspondence. The system is a typical information management system, which mainly includes the establishment and maintenance of back-end database, and the client development.This analyzes the C/S architecture combined with the characteristics of the actual situation of course selection which is proposed based on C/S architecture,a brief description of the system functional requirements analysis ,and system design, database design, ASP.NET design and system implementation process. How to use ASP.NET and the database management system develop client-based enrollment system is the focuse. And on the basis of the trial operation of the system,the proposed improvements are further improved. Students can easily install it on a computer within the LAN client courses.Key words: Student Select Coure System, C/S, C #, Access DBMS弓|言11. 概述21.1课题背景21.2课题目标31.3课题意义32. 需求分析42.1需求分析42.2系统分析42.2.1通用功能52.2.2用户具有的功能52.3系统结构63. 相关技术背景83Visual studio 28 Team System 开发工具83.2 Access 数据库83.3C#开发语言103.4 MD5力口密算法114. 系统总体设计124.1功能模块简介124.2面向对象分析135. 系统详细设计165.1数据库设计165.2数据库逻辑设计165.3数据物理设计176. 系统实现196.1客户端登录界面实现196.2主界面的实现及权限管理196.3学生信息管理的实现206.4课程管理的实现206.5学生选课信息管理的实现216.6个人信息的实现226.7系统用户管理的实现236.8系统帮助的实现246.9找回密码的实现24结论26致谢27参考文献28附录30引言在信息发展全球化,网络化的今天,校园局域网已成为每所高校所必备的信息基础设 施,各种管理信息系统凭借于校园局域网应运而生。在各大高校的教务系统管理过程中, 课程表的编排是一项非常复杂的工作。在排课的过程中,除了必须满足大量的制约条件以 外,还需要解决很多冲突与矛盾,例如:两位老师不能同一个时间在同一间教室上课,一 位教师不能在同一个时间上两门课等等。利用计算机的辅助进行课程表编排工作,不但可 以提高排课工作的科学性,还大大减轻了管理人员工作的强度,提高工作效率,使得学校 教务管理迈上了一个新的台阶。现在,我国的高等教育事业正在蓬勃发展,高等学校的规 模不断的扩大,在此,高等学校的教学改革也在全面的推行,学分制在各大高校全面启动。 所谓学分制就是允许学生在计划的指导下,根据自己的条件、能力、兴趣,有选择的支配 自己的学习时间和内容。因此,学生选课管理成为了推行实施学分制管理的重要任务。由 于学生选课时的制约条件较多、较复杂,工作量也比较大,而且往往需要在很短的时间内 完成,因此运用计算机辅助选课,即能实时地检验和统计大量的选课数据,又能十分方便 地输出选课结果,同时也避免了在人工处理时产生的错误。学生选课系统是以数据库作为后台,数据库从60年代初发展起来到今天,经过了四十 多来年的发展,数据库技术己经逐渐成熟。就数据库应用来说,呈现了多样化的空间,例 如数字图书馆、电子出版物、电子商务、远程教育系统等,给数据库技术的发展提出了更 多、更高的要求。本文引言部分主要介绍了学生选课的背景,第一章概述,介绍学生选课系统的背景, 做这个设计的目标以及意义;第二章介绍该选课系统的需求分析,系统分析和系统结构; 第三章主要介绍了系统设计相关的背景,主要包括Visual Studio 2008 Team System开 发工具、Access数据库、C#开发语言;第四章系统总体设计的介绍,主要是各模块功能的 简介,和面向对象分析;第五章是数据库的详细设计,具体介绍了数据库的设计,物理设 计和逻辑设计;第六章是系统各个功能的实现,详细介绍了各个模块实现的功能;论文最 后是结论、致谢及参考文献。1. 概述1.1课题背景二十一世纪是科学技术竞争与民族素质竞争的时代,其本质就是人才与教育的竞争。 教育的历史让我们知道,教育的每次重大改革和发展都与科学技术息息相关,科学技术是 第一生产力,也是发展教育的重要动力。随着科学技术的不断进步,计算机科学技术日渐 成熟,计算机在各个领域所扮演的角色越来越重要。很长时间以来,人们都在用人工的方 式来管理文件档案,这种管理方式存在着很多的缺点,例如:效率低,保密性差,除此之 外时间一长,将有大量的文件和数据产生,这对于查询、更新和维护都带来了很大的困难。 选课信息管理系统作为计算机应用的一个部分,其优点是手工管理所无法比拟的,例如: 查询方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点是学校的科学 化、正规化管理的重要条件。选课管理系统属于教学信息管理系统的一个部分。随着高等教育的发展与社会需求, 各大高校尽可能多地开设各类课程,使得学生的知识面得到拓展,塑造学生的个性,培养 了学生的创造能力,使学生的综合素质有所提高。但是而传统的手工选课方式非常的烦琐 与复杂,由学校统一发布可选课程表,让学生事先了解可选的课程和各班选课报名的时间, 然后按规定的时间到指定的地方去报名。这种方式存在着明显弊病。主要是:许多学生一 起去报名,十分拥挤,很难组织;由于各班选课报名时间不同,排在后面的各班的学生常 常选不到理想的课程。传统的选课方式已经不适应现代教务教学的改革和发展,迫切需要 一种新的选课方式。为使教学管理工作的科学化、规范化,就必须采用计算机辅助管理。 计算机管理使选课更加高效准确,省去了大量的人力劳动,提高了教学管理的信息化水平。 因此,学生选课是一项非常重要的工作,主要负责对整个学校学生的选课进行管理,除此 之外,还需对学生信息及课程信息进行维护,对学生所选课程的考试成绩进行记录,学生 选课是实现高校学分制的一个重要环节。随着学校硬件水平的提高、信息化进程的加快, 教务工作急切希望能够抛开原有繁琐的管理方式,希望能够根据学校现状的实际需求开发 一套能够系统化、科学、有效、易于掌握的管理软件。现在学院已经基本实现了网络化管理,各部门已有了计算机,原来的计算机管理系统 可以实现简单的信息管理,现在需要一个学生选课管理平台。为了切实解决课程管理中存 在的诸多问题,提高教务管理的水平和质量,使学院选课的管理更加规范,经过几个月的 努力,我设计开发了防灾科技学院选课系统。此系统基本上实现了一些选课相关的功能。1.2课题目标该选课系统的主要目的是实现学生选择课程的公平性和方便性,让他们可以在学校内 任一安装客户端的机器上查询课程,选择课程,删除课程;对于课程管理员,可以通过登 陆客户端添加、修改、查询、删除课程信息;对于学生管理员,可以通过登陆客户端添加、 修改、查询、删除学生信息;对于教学管理部门,能够实现学生信息的管理,对课程信息 的管理,以及对这个系统的维护。1.3课题意义选课系统是学校不可或缺的一个部分,它的内容对于学校来说都是非常的重要,所以 选课管理系统应该能够为学生用户提供大量的课程信息,方便学生快速的查询。随着科学技术的不断进步,计算机科学也在不断地成熟,其强大的功能已经被人们所 深刻的认识,它已经深入到人类社会的各个领域并在这些领域里发挥着越来越重要的作 用。作为计算机应用的一部分,使用计算机对选课信息进行管理,有着手工管理所无法比 拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本 低等。这些优点能够极大地提高人事劳资管理的效率,也是教学的科学化、正规化管理, 与世界接轨的重要条件。开发此系统无论是从课题的研究上还是从技术方面考虑都是很有必要的。本课题的研 究开发可以解决以往传统效率低、工作繁琐的人工管理选课方式,省去了大量的人力劳动, 并且方便更有效的、更合理的完成教务人员对选课管理的效率。技术运用上也有利于加快 学校信息化建设的步伐。实现教育的现代化、科技化,从而提高教学管理的信息化水平。2. 需求分析2.1需求分析选课系统需求满足来自三方面的需求,这三个方面分别是学生、管理员和超级用户。 学生的需求是查询院系的课程、学生选课情况及学生信息的修改;管理员的功能比较复杂, 其中包含三种:学生管理员、课程管理员和管理员;超级用户主要是系统状态的查看、维 护。学生可以直接查看选课情况,学生可以根据自己的学号和密码登录学生选课系统,还 可以修改查询个人相关的部分信息。一般情况下,学生只能查询和修改自己所选课程的情 况还有个人信息,若需要查询和修改其他学生的选课以及成绩查询,就需要知道其他学生 的学号和密码。这些是很难得到的,特别是密码,所以不但满足了学生的要求,还保护了 学生的个人隐私。管理员分为学生管理员,课程管理员和管理员。学生管理员可根据学校学生的学号, 增加学生用户,给新的学生用户建立新的用户名和密码,学生可以通过学生管理员提供的 用户名和密码进行登录操作,学生管理员还可以对没有进行选课的学生进行删除操作,数 据安全性和保密性要求最高;课程管理员是对课程进行操作,课程的增加、删除,根据学 校的规定,安排选课的课时、学分、开课的时间都是由课程管理员执行的;管理员除了能 操作学生管理员和课程管理员所有的内容,还能添加、删除学生管理员和课程管理员。超级用户拥有最高权限,是用来系统初步实施的,在此系统中,超级用户可以管理系 统中的所有用户,所有操作。本系统的主要功能是完成我校教务管理对学生选课的功能。实现学生在客户端上进行 独自的选课,学生能根据自己的意愿来选择自己感兴趣的课程。在教务管理的同时,教务 处能全面的管理本学校的学生信息,学生,老师,课程以及上课的时间等。达到学生和老 师都有合理的安排。2.2系统分析在本系统中,有五类用户:超级用户、管理员、学生管理员、课程管理员、学生用户。 五种不同的用户所具有的功能。根据要求,从功能上可以分为两个类:一个是通用功能,登录、个人信息管理、切换 用户、找回密码、系统帮助和退出是所有用户都具有的功能;另一种是为不同用户定制不同功能。2.2.1通用功能1、登录功能登录功能是验证登录的用户信息,不同的用户在验证登录信息后,进入主界面会有不 同的操作内容。2、个人信息管理个人信息管理是用来查询、修改用户的信息。3、切换用户切换用户功能是用户登录主界面后,需要切换到其他的用户时使用。4、找回密码找回密码是用户忘记自己的登录密码,可以通过找回密码设置的问题,找回自己的登 录密码。5、系统帮助系统帮助是用户在不了解系统的使用方法时,可以查看系统帮助。6、退出在用户使用完学生选课系统后,不在进行其他的操作,选择退出即可退出选课系统界 面。2.2.2用户具有的功能1. 超级用户主要用来系统的初步实施时使用,登录后具有系统所有的功能:1)学生管理:可以添加、修改、查询、删除学生信息。2)课程管理:可以添加、修改、查询、删除课程信息。3)学生选课管理:可以为学生选课及查询、删除学生的选课信息。4)系统用户管理:可以增加及删除管理员、学生管理员、课程管理员用户。2. 管理员用户登录后,可以进行学生管理、课程管理、系统用户管理。1)学生管理:可以添加、修改、查询、删除学生信息。2)课程管理:可以添加、修改、查询、删除课程信息。3)系统用户管理:可以增加及删除学生管理员、课程管理员用户。3. 学生管理员用户登录后,可以进行学生管理。1)学生管理:可以添加、修改、查询、删除学生信息。4. 课程管理员用户登录后,可以进行课程管理。1)课程管理:可以添加、修改、查询、删除课程信息。5. 学生用户登录后,可以进行选课管理。1)选课管理:可以选择各个学期开设的课程,查看自己所有已经选上的课程,删除已选 课程。2.3系统结构本系统应用Visual Studio 2008 Team System开发工具,使用ACCESS作为数据库。系统采用的是基于客户端的三层C/S(Client/Server,客户端/服务器)结构,它是软 件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到 Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是 Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的 Web应用发 展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻 辑组件;因此,内部的和外部的用户都可以访问到新的和现有的应用系统,通过现有 应用系统中的逻辑可以扩展出新的应用系统。即界面层、业务逻辑层和数据处理层。界 面层是一个建立在windows平台上应用程序界面;数据处理层包含访问后台数据库,提供 后台数据库支持,同时包括与数据存储的接口。第一层为界面层,客户机为校园网上的任何一台计算机,没有特殊要求,只需具有 windows平台即可。学生通过客户端查看相关的选课信息,并进行选课操作。客户端把学 生的数据交给业务实体实例化,再将实例化的对象交给业务接口。第二层为业务逻辑层,业务逻辑层是封装商业逻辑,提供校验、逻辑实现,处理业务逻 辑,实现业务逻辑处理方法,处理逻辑后交给数据层(调用数据接口)处理数据。第三层为数据层,数据最终处理的地方,首先定义数据加工处理方法(调用数据工厂), 处理数据加工方式,实现数据加工处理方法,加工后交给数据服务层提交数据库,常用的 SqlHelper.cs。选用这样的结构模型主要出于以下几方面的考虑:1. C/S模式一般都建立在专用的网络上,小范围的网络环境,局域网之间再通过专门服务 器提供连接和数据交换服务,一般面向相对固定的用户群,对信息安全的控制能力很强, 一般高度机密的信息系统采用C/S结构较为适宜,而仅通过C/S发布部分可公开信息,程 序更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。2. 应用服务器运行数据负荷较轻,最简单的C/S体系结构的数据库应用由两部分组成, 即客户应用程序和数据库服务器程序,二者可分别称为前台程序与后台程序。一旦服务器 程序被启动,就随时等待响应客户程序发来的请求。当需要对数据库中的数据进行任何操 作时,客户程序就自动地寻找服务器程序,并向其发出请求;服务器程序根据预定的规则 做出应答,送回结果,应用服务器运行数据负荷较轻。3. 数据的储存管理功能比较透明,数据的储存管理功能,是由服务器程序和客户应用 程序分别独立进行的。对于工作在前台程序上的最终用户是“透明”的,他们无须过问(通 常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中, 前台程序并不是非常“瘦小”,并没有将麻烦的事情都交给了服务器和网络。在C/S体系 下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。3. 相关技术背景3.1 Visual Studio 2008 Team System 开发工具微软公司推出 Visual Studio开发环境可以用来创建 Windows操作平台下的 Windows应用程序和网络应用程序,同时网络服务、智能设备应用程序和Office插件也 可以用Visual Studio来创建。目前,windows操作平台应用程序开发环境要数 Visual Studio最流行。Microsoft Visual Studio 2008是为 Windows Vista、Office 2007、Web 2.0 或更高 发展的下一代开发工具,代号 Orcas”。VS2008中推出超过250种新功能,融合了对象、 关系型数据、XML的访问方式,更加简洁了语言。使用Visual Studio 2008可以高效开发 Windows应用。设计器中的变更可以实时的反映出来,XAML中智能感知功能使得开发效率 得以提高。同时Visual Studio 2008支持项目模板、调试器和部署程序。Visual Studio 2008可以高效开发Web应用,集成了 AJAX 1.0,包含AJAX项目模板,它还可以高效开发 Office应用和Mobile应用。Visual Studio 2008提供了高级的开发工具、调试功能、数据库功能和创新功能, 有助于在各种平台上迅速的建立一个当前最先进的应用程序。Visual Studio 2008包含了各种增强功能,例如可视化设计器(使用.NET Framework 3.5加速开发)、大幅改善Web开发工具,以及能够加速开发和处理所有 类型数据的语言增强功能。Visual Studio 2008提供了所有相关的工具和框架支持为 开发人员使用,引人注目的、令人印象深刻的帮助创建,并且支持AJAX的Web应用程序。利用这些大量的客户端和服务器端框架的优势,开发人员能够轻松的构建以客户 为中心的Web应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当 前浏览器内运行并完全访问 ASP .NET应用程序服务和Microsoft平台。Visual Studio 2008提供了帮助开发团队改进协作的扩展的和改善的服务项目, 包括帮助将数据库专业人员和图形设计人员加入到开发流程的工具。3.2 Access数据库Access是微软公司推出的基于 Windows的桌面关系数据库管理系统(RDBMS,即 Relational Database Management System),是 Office 系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种 向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化; 为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。Access/Jet Microsoft SQL Server Oracle(甲骨文软件公司),或者任何 ODBC 兼 容数据库内的资料都能够被 Access所存取。熟练的软件设计者或者资料分析者利用 Access来开发应用软件,而一些不熟练的程序员和非程序员的“进阶用户”同样能 使用Access来开发简单的应用软件。Access不能成为一种完整的面向对象开发工具, 因为它只支持部份面向对象(OO)技术。Microsoft Access在很多地方得到广泛的应用,例如小型企业,大公司的部门, 或者开发人员利用它来制作处理数据的桌面系统。简单的WEB应用程序也常用来它来 开发。这些应用程序主要使用 ASP技术在Internet Information Services运行,较为 复杂的WEB应用程序则使用PHP/MySQL或者ASP/Microsoft SQL Server。Access为初级程序员的使用方便程度和强大的设计工具提供了很多功能。不过,这种易于使用可能使人产生误解。这样的开发者基本上都是没有在应用或者数据设计 方面经过训练的办公室工作人员。因此,很多人认为这样的开发人员能够创建一个可 用的系统,但也有很多人认为工具本身的局限性产生了这样的误导。Access用作快速应用开发被一些较为专业的应用程序开发者使用,尤其是给街 道上的推销员制作一个早型或单独应用程序的工具。但是,如果是通过网络访问数据的话,Access的访问可扩放性并不高。因此当使用者较多使用此程序时,他们往往 选择倾向于一些客户端-服务器为主的方案,例如Oracle、DB2、Microsoft SQL Server、 Windows SharePoint Services、PostgreSQL、MySQL、Alpha Five、MaxDB,或者 Filemaker。 在任何情况下,数据库的后期应用很多使用Access的功能(表单,报告,序列和VB代码),例如JET (档案为主的数据库引擎,Access缺省使用)Microsoft SQL Server、 Oracle和任何其他跟ODBC兼容的产品。对本开发系统选用Access2000作为后台数据库。数据库在信息管理系统中有着相当 重要的地位,作为信息管理系统的后台,数据库存储着所有的信息,而数据库的设计直接 影响到整个系统运行的效率。良好的数据库设计,可以有效提高数据信息的存储,从而保 证数据信息的完整性和一致性。美国Microsoft公司于1994年推出的Access管理系统。它具有界面友好、易于 学习和使用、开发较为简单、接口灵活等功能,是一个典型的新一代桌面数据库管理 9系统。其主要特点如下:(1) 各种数据库对象得到了完善的管理,具有强大的数据组织、用户管理、安全 检查等功能。(2) 数据处理能力极其强大,在网络环境下的一个工作组级别,使用Access开发 的多用户数据库管理系统具有传统的 XBASE(DBASE、FoxBASE的统称)数据库系统所无 法实现的客户端服务器(Cient/Server)结构和相应的数据库安全机制,Access具备 了许多先进的大型数据库管理系统所具备的特征,如事务处理 /出错回滚能力等。(3) 可以方便地生成各种数据对象,利用存储的数据建立窗体和报表,可视性好。(4) 作为Office套件的一部分,可以与Office集成,实现无缝连接。(5) 能够利用Web检索和发布数据,实现与Internet的连接。Access主要适用 于中小型应用系统,或作为客户机/服务器系统中的客户端数据库。3.3 C#开发语言C#(C Sharp)是微软(Microsoft)为.NET Framework量身订做的程序语言,C#拥有C/C+ 的强大功能以及Visual Basic简易使用的特性,是第一个组件导向(Component-oriented) 的程序语言,和C+与Java 一样亦为对象导向(object-oriented)程序语言微软c#语言的定义主要是从C和C+继承而来的,而且语言中的许多元素也反映 了这一点。C#在设计者从C+继承的可选选项方面比Java要广泛一些(比如说 structs),它还增加了自己新的特点(比方说源代码版本定义)。但它还太不成熟,C# 还需要进化成一种开发者能够接受和采用的语言。类是C#从JAVA继承而来的特点,在C#中类的申明与Java很相似。这是因为 Java模型工作得很好。C#的关键字import已经被替换成using,它起到了同样的作 用。一个类开始执行的起点是静态 Main()方法。C#从C和C+继承而来的两个特点:一个是编译,一个是结构体。编译,程序直接 编译成标准的二进制可执行形式。例如一个Hello World程序被保存成一个文本文件 并被命名为Hello.cs,它将被编译成命名Hello.exe的可执行程序;结构体,一个 C#的结构体与C+的结构体是相似的,因为它能够包含数据声明和方法。但是,不象 C+,C#结构体与类是不同的而且不支持继承。但是。与Java相同的是,一个结构体可以实现界面。C#最引人入胜的地方是它和Java的不同,而不是相似的地方。C#拥有比C,C+ 或者Java更广泛的数据类型。这些类型是bool,byte,ubyte,short,ushort,int,防灾科技学院毕业设计(论文、综合实践报告) uint, long , ulong , float, double 和 decimal o 象 Java 一样,所有这些类型都有 一个固定的大小。又象C和C+一样,每个数据类型都有有符号和无符号两种类型。与Java相同的是,一个字符变量包含的是一个16位的Unicode字符C#新的数据类 型是decimal数据类型,对于货币数据,它能存放 28位10进制数字。C#对Windows程序最大的优点可能就是它与COM的无缝集成了,COM就是微软的 Win32组件技术。实际上,最终有可能在任何.NET语言里编写COM客户和服务器端。 C#编写的类可以子类化一个已存在的COM组件;生成的类也能被作为一个COM组件使 用,然后又能使用,比方说,JScript语言子类化它从而得到第三个COM组件。这种 现象的结果是导致了一个运行环境的产生, 在这个环境里的组件是网络服务,可用任 何.NET语言子类化。3.4 MD5加密算法MD5的全称是Message-Digest Algorithm 5 (信息-摘要算法),它是由MD2、MD3和 MD4发展而来得一种单向加密算法,也就是哈希(HASH)算法,是由国际著名的公钥加密算法 标准RSA的第一设计者R.Rivest于上世纪90年代初开发出来的。加密算法一般有两种,即单向加密算法和双向加密算法。双向加密是加密算法中最常 用的,它将可以直接理解的明文数据加密为不可直接理解的密文数据,在需要的时候,又 可以使用一定的算法将这些加密以后的密文数据解密为原来的明文数据,双向加密适合于 隐秘通讯。双向加密既可以加密,又可以解密。而单向加密则刚好相反,它只能对明文数据进行 加密,而不能对加密了的密文数据再解密成原来的明文数。在实际应用中,对软件系统数 据库中的系统用户信息(如用户密码)以及银行账号信息(如银行账号密码)加密,例如: 当用户注册一个新的账号或者使用银行账号时,这些绝密信息不是直接保存到数据库,而 是经过单向加密后再保存,这样,及时这些绝密信息被泄露,别人也不能得到相应的明文 数据,当然也就达不到盗窃账号的目的。MD5算法就是单向加密的加密算法。它有两个很重要的特征,第一是任意两段明文数 据,加密以后的密文数据一定不是相同的;第二是任意一段明文数据,经过加密以后,其 密文数据永远是相同的。由于MD5算法的可靠性,已经被广泛应用于项目实践中。经过许多程序员的努力,MD5 算法已经被各种语言实现,.asp,.php,.java ,c,c#,vb,vc+,delphi等语言。4. 系统总体设计4.1功能模块简介在前面的系统的系统功能分析中,将系统划分成9个模块,如下图4.1所示。图4.1系统模块结构图用户登录模块验证用户名和密码,并根据不同的用户类型,进行不同的操作。设置学 生信息管理模块是提供给学生管理员增加、修改、删除学生信息。课程管理模块提供给课 程管理员,用来增加、修改、删除选课信息。学生选课模块提供给学生用户,用来查询或 者删除自己已选的课程。个人信息管理模块提供给学生用户,编辑学生自己的个人信息。 用户管理模块用于用户超级管理员,可以对用户管理员经行增加、删除。系统帮助模块包 括查看系统帮助信息。找回密码功能是对学生用户在忘记密码是找回密码。4.2面向对象分析 根据上面的分析,将模块结构图转换成系统用例图如下图4.2所示。图4.2 系统Use Case图1. 系统中包含的类。系统中的类从系统包含的人员及事物开始。学生选课系统中包括对人员有:超级用户、 管理员、课程管理员、学生管理员、学生用户。这些人员可以统称为“系统用户”,即系 统中应该有一个“系统用户”类。系统包含的事物有:学生、课程。同时学生也是一类系统用户。学生和课程是系统用 户的操作对象。因此,系统还应包含“学生”类及“课程”类。2. 定义类的属性。“系统用户”类主要用于系统登录及系统各个功能的使用,因此应该包含“用户名” 和“密码”属性;系统中共有5种类型用户,因此,添加“用户角色”记录用户的类型。“学生”类包括“学号”,“姓名”,“性别”,“年龄”,“所在系”。“课程”类包括“课程编号”,“课程名”,“学分”,“开课学期”,“总学时”。3. 定义类的方法。初步定义的各个类的方法,各个类都包含添加、删除、修改、获取信息等常规操作, 系统用户如若是“超级用户”或“学生用户”的话,还可以进行“选课”及“取消选课” 操作。4. 建立类之间的关系。“学生”和“课程”类为“系统用户”类的操作对象,因此,“学生”和“课程”对 象的存在依赖于“系统用户”,同样,“系统用户”本身也可以操作“系统用户”,对用户 进行添加、修改、删除等操作,因此本身也是一种依赖关系。“学生”和“课程”之间存 在一定的关联。在分析阶段中,系统用户和个人信息之间存在着组合关系,学生和系统用户之间存在 着聚合关系。由于在实际实现时,系统将所有的数据存储关系数据库中,现在不一定非要 在系统用户和个人信息两个类之间保持组合关系,而只需要在个人信息类中保持其所属用 户名就可以了;学生和系统用户类也不用保持聚合关系,学生是一类特殊的系统用户,只 需在用户表中保持学生用户的一份拷贝即可,令学号的值为用户名。专业和班级,班级和 学生,以及音乐类别和音乐之间的关系也是如此。系统用户在添加一个新的用户的时候要首先判断是否此用户已经添加过,因此,添加 “判断某个用户是否存在”方法。系统用户的密码在存储的时候为了安全起见需进行加密处理,因此,添加“加密密码” 方法,密码采用MD5哈希算法进行加密,MD5是一种单向加密算法,即能加密但不能进行 解密操作。添加某种机制令用户忘了密码的时候可以重新设置密码。机制规则:用户首次登录时 提示用户输入一些信息,以后在忘记密码时,通过回答这些信息找回密码;若用户首次登 录时没有输入这些信息,可以在以后的时候过程中在输入。因此,“系统用户”类需添加 属性“是否首次登录”,添加额外的“个人信息”类记录这些额外的信息。当添加一名学生时,需要判断这名学生是否已经添加过,因此,添加“是否已经存在” 方法判断一个学生是否已经添加过。当删除一名学生时,需要保证该名学生没有选过课,然后再进行删除操作,因此,添 加“是否选过课”方法。获取学生信息时,有时需要获取全部学生信息,有时需要按照条件获取部分学生的信 息,添加“获取全部学生信息”和“获取部分学生信息”。当添加一门课程时,需要判断这门课程是否已经添加过,因此,增加“是否已经存在” 方法判断一门课程是否已经添加过。当删除一门课程时,需要保证此课程没有学生选择,然后再进行删除操作,因此,增 加“是否被选过”方法。获取课程信息时,有时需要获取全部课程信息,有时需要按照条件获取部分课程的信 息,添加“获取全部课程信息”和“获取部分课程信息”。将对数据库的操作封装成一个类,其他的类对数据库的操作通过此类进行。将上述关系建立一个类图如下图2.3所示。+判断是否存在()bool-设置个人信息()bool+添加个人信息()int+删除个人信息()int+修改个人信息()int+获取个人信息()DataSet+回答个人信息问题()bool系统用户-用户名:string-密码:string-用户角色:string-是否首次登录:string学生-学号 :string-姓名 :string-性别 :string-年龄 :int_-_所在系_: string+添加()int+是否选过课()bool+删除()int+修改()int+是否已经存在()bool+获取所有学生信息()DataSet+获取部分学生信息()DataSet7数据库操作+添加新用户():int+删除已有用户():int+设置密码():void+修改密码():void+加密密码():string+ 登录():bool+判断某个用户是否存在():bool+ 选课():int+取消选课():int+获取部分用户信息():DataSet+查询():DataSet+更新():int+删除():int+插入():int+获取字段值():int-数据库连接字符串:string课程-课程编号:-课程名称:-学分:-开课学期:-总学时:string string int int in十+添加():int+是否被选过():bool+删除():int+修改():int+是否已经存在():bool+获取所有课程信息():DataSet+获取部分课程信息():DataSet个人信息-用户名:string-提示问题1答案:string-提示问题2答案:string提示问题3答案:string图4.3系统类图5. 系统详细设计5.1数据库设计本系统的数据库实体主要有“学生”、“课程”。其中“学生”与“课程”存在“选课” 联系,一个学生可以学习N门课程,一门课程可以有M个学生学习,即“学生”与“课程” 之间是多对多的关系。“学生”还包括很多的属性,如姓名、性别、年龄、学号、所在系 等信息;“课程”也包括很多的属性,如学时、课程学分、课程名、课程号等信息。整个 数据库可以用一个E-R图表示,如下图,图5.1所示:图5.1 E-R图5.2数据库逻辑设计数据库逻辑就是指确定数据库的逻辑结构,是将E-R图转换为关系模型的过程,即 将所有实体和关系转换成一系列的关系模式。转换过程中常见规则有:(1) 一个实体型转换为一个关系模式;(2) 一个一对一的联系可转换成一个独立的关系模式,也可与任意一端对应的关系 模式合并;(3) 一个一对多的联系可以转换成一个独立的关系模式,也可与多的那一端对应的 关系模式合并;(4) 一个多对多的关系转换成一个关系模式。学生表(学号,姓名,性别,年龄,所在系)课程表(课程号,课程名,课程学分,学时)学生选课表(学号,课程号,成绩)系统用户表(用户名,密码,角色,是否第一次登录)个人信息表(用户名,问题1答案,问题2答案,问题3答案)5.3数据物理设计根据数据库的分析,建立如下五个数据表。学生表(Student),其结构见表5.1所示表5.1 学生表字段数据类型说明Sno文本学号Sname文本姓名Ssex文本性别Sage数字年龄Sdept文本所在系课程表(Course),其结构见表5.2所示表5.2 课程表字段数据类型说明Cno文本课程编号Cname文本课程名称Ccredit数字学分Csemester数字开课学期CHours数字总学时学生选课表(SelectCourse),其结构见表5.3所示表5.3学生选课表字段数据类型说明Sno文本学号Cno文本课程号grade数字成绩系统用户表(User),其结构见表5.4所示表5.4 系统用户表字段数据类型说明userName文本用户名userPwd文本密码Role文本角色firstLogin文本是否第一次登录个人信息表(Informatian),其结构见表5.5所示表5.5 个人信息表字段数据类型说明userName文本用户名Answer1文本问题1答案Answer2文本问题2答案Answer3文本问题3答案6. 系统实现6.1客户端登录界面实现登录模块是系统不可缺少的模块,登录模块还可以保证系统的可靠性和安全性。登录 模块提供用户登录界面,登录时,若输入的用户名和密码都正确,则登录成功,进入系统 的主窗体,然后可以选择进入相应的子系统。本系统,设计了5种系统用户类型:超级用户、管理员、课程管理员、学生管理员和 学生用户。用不同的身份,登录成功后,可在主界面选择使用系统不同的功能模块。客户端的登陆界面如图6.1所示。图6.1登录界面6.2主界面的实现及权限管理主界面在用户登录后进入学生选课系统后,可以选择不同的子系统,其中包括选课管 理、系统管理和系统三个部分,其中选课管理包括学生管理、课程管理和选课管理,系统 管理包括个人信息管理、系统用户管理和切换系统用户,系统包括系统帮助和退出。超级用户可以使用全部的子系统;管理员只有选课管理系统不能使用;课程管理员能 使用的系统有课程管理、个人信息管理、切换系统用户、系统帮助和退出;学生管理员能 使用的系统有学生管理、个人信息管理、切换系统用户、系统帮助和退出;学生用户能使 用的系统有选课管理、个人信息管理、切换系统用户、系统帮助和退出。主界面如图6.2所示:图6.2主界面图6.3学生信息管理的实现学生信息管理模块主要用于管理学生的基本信息,包括学号、姓名、性别、年龄和所 在系,能对学生信息进行添加、删除、修改和查询等操作。并且,在添加或删除学生信息时,同时需要在系统用户表中注册或删除相应的“学生 用户”。在本系统中,设定默认用户名为学生号,密码也设定为学生学号。学生管理的界面如图6.3所示。图6.3学生管理界面图6.4课程管理的实现课程信息管理模块主要用于管理课程信息,包括课程号、课程名、学分、开学学期和 总学时,能对课程信息进行添加、删除、修改和查询等操作。课程管理界面如图6.4所示:图6.4课程管理界面图6.5学生选课信息管理的实现选课信息管理模块主要用于管理学生选课信息,以记录的形式表示学生的选课情况, 每条记录都包括选课学生的学号、学生的姓名、所选课程的课程号、课程名称、开课学期 和该课程的考试成绩。选课信息管理模块提供了选课和选课信息查询等功能。以“超级用户”身份登录,可以为所有学生选课;以“学生用户”身份登录,可以为 自己选课。学生选课的界面分为“超级用户”(如图6.5所示)和“学生用户”(如图6.6所示) 两种。图6.5超级用户选课界面图图6.5学生用户选课界面图6.6个人信息的实现个人信息管理模块主要用于管理系统用户的个人信息,包括设置找回密码问题的答 案,修改用户密码等。在本系统中,“管理员”是由“超级用户”注册的,“课程管理用户” 和“学生管理用户,是由“超级用户,或者“管理员,注册的,而“学生用户,是在添加 学生信息时注册的,所以注册用户时无法为用户提供设置“找回密码问题”答案的功能。 而又因为系统中的用户密码是用MD5加密后存储的,为了能够在忘记密码的情况下,通过 提供“找回密码问题”的答案来修改用户密码,这就需要用户在初次登录系统时提示用户 设置“找回密码问题”的答案,否则一旦忘记用户密码,将无法找回。个人信息的界面如图6.7所示。图6.7个人信息图6.7系统用户管理的实现用户管理模块主要用于管理(注册和删除)系统用户。注册和删除用户的权限分配规 则是:“超级用户”可以注册和删除“管理员”、“课程管理员”和“学生管理员”,“管理 员”可以注册和删除“课程管理员”和“学生管理员”,“课程管理员”、“学生管理员”和 “学生用户”则不具有本子系统的使用权限,即不能进行注册和删除系统用户的操作。用户管理的界面如图6.8所示。紊新户管瑁当葡用广日血i 口 权眼-趣级用方用户列表郭:叫田户图6.8系统用户图6.8系统帮助的实现帮助模块用于给用户提供一些帮助信息,如软件版本、作者联系方式、系统使用说明 等信息系统帮助的界面如图6.9所示。r-i学生选课系貌版本号:1如。联系作者: SelBGtGoursmlg 12&匚口爪|查看系统帮助信息|关闭 |图6.9系统帮助图6.9找回密码的实现找回用户密码模块用于提供“找回”用户密码功能。因为系统用户密码是用MD5加密算法加密再存 储的,故用户一旦忘记密码,系统将无法知道用户的当前密码。设计本模块的目的就是当用户忘记密码 的时候,可以通过本模块提供“找回密码问题”的答案来重设用户密码。找回密码的界面如图6.10所示:图6.10找回密码界面图结论本系统从学生选课的需求设计、功能的设计以及数据库的设计等几个方面探讨了学生 选课系统的设计与实现,最终采用了基于Client / Server结构应用c#和Access数据库 相结合的方法实现学生选课系统,该系统在Windows操作系统上运行,可以方便快捷完成 以往需要大量人力的繁杂工作,极大地方便了教学管理。此系统是针对防灾科技学院的实 际情况开发的。本系统基本上达到了最初设计的目的,由于知识上还有一些不足,有些地方还有少许 的错误,但是系统所需的九大模块已经完成,能够实现不同的用户使用不同的系统子功能, 可满足不同的用户在安装有客户端的机器上进行不同的操作。本系统在正常运行中需要对 学生信息、课程信息进行管理,利用学生系统及时了解各个关节中信息的更变,有利于提 高管理。致谢紧张而忙碌的毕业设计就要结束了,在完成了系统的功能设计后,我感到由衷的喜悦和自豪。在我 做毕业设计期间,许多老师、同学和朋友给了我无私的关怀和帮助。在此,我要向他们表示衷心的感谢。首先非常感谢防灾科技学院给予我人生中最宝贵四年的培养,感谢学院各位老师,老师们治学严谨, 学识渊博,思想深邃,视野雄阔,为我营造了一种良好的学习氛围。授人以鱼不如授人以渔,置身其间, 耳濡目染,不仅使我接受了全新的思想观念,领会了基本的思考方式,掌握了灵活的学习方法,而且还 明白了许多待人接物与为人处世的道理。我得特别感谢白灵老师在毕业设计期间给了我悉心的关怀与帮助,并且给了我许多关键的、建设性 的指导。在毕业设计中,我得到了导师白老师大量的理论和实践指导。老师渊博的知识、严谨的作风、 诲人不倦的态度和学术上精益求精的精神让我受益终生。在此论文完成之际,首先向我的导师白灵老师 表示衷心的感谢,感谢他让我能够更好地完成毕业设计。其次,我要深深地感谢大学四年来的所有老师,是他们教给了我们很多有用的知识以及学习新知识 的方法,激发了我们学习的热情。这次的毕业设计让我受益匪浅。在理论课的学习中,我掌握了基础课 和专业课的理论知识,感谢大学四年来所有的老师,为我们打下专业知识的基础。另外,还要感身边朋友的热心帮助,感谢他们在设计过程中无私的对我大力帮助,感谢他们对我的 信任和支持,没有他们的支持与关心,就没有我今天的毕业设计最后,我要特别感谢我的爸爸妈妈。我的父亲母亲对我影响至深,一直默默地支持我的成长道路, 对我的学习也给予了极大的鼓励与帮助。可怜天下父母心,今后我将竭尽所能,加倍补偿这份一辈子也 还不清的深情。参考文献1孙铁鑫编著,浅谈B/S和C/S结构的对比J,今日科苑,2007.2吴毅杰,张志明编著,C/S与B/S的比较及其数据库访问技术J,舰船电子工程,2003.3周晓娟,王法能,毛劲松编著,基于B/S的WEB数据库技术J,航空计算技术,2005.4王鑫编著,基于B/S模式的学生选课系统的设计与实现J,天津大学,20
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!