学生自动选课系统(毕业论文)

上传人:痛*** 文档编号:41747899 上传时间:2021-11-23 格式:DOC 页数:66 大小:4.49MB
收藏 版权申诉 举报 下载
学生自动选课系统(毕业论文)_第1页
第1页 / 共66页
学生自动选课系统(毕业论文)_第2页
第2页 / 共66页
学生自动选课系统(毕业论文)_第3页
第3页 / 共66页
资源描述:

《学生自动选课系统(毕业论文)》由会员分享,可在线阅读,更多相关《学生自动选课系统(毕业论文)(66页珍藏版)》请在装配图网上搜索。

1、1网上选课系统网上选课系统 第一章 绪论1.1 系统概述 随着计算机技术和网络通迅技术的飞速发展,现在国内有很多大学的选课方式由传统的选择方式转变成了网上选课,学生可以在网上选择规定范围内的课程,并且可以在网上查询成绩。无需自己去老师那一门一门查,了解自己已得多少学分还需多少学分,即节省了学生的时间,又便于学校的管理因为传统的选课方式都是手工的,教务处通知各班进行选课,各班班长再通知每个同学,经过统计在上交教务处,这样比较浪费时间。再者选课时不知道所选课人数是否已满,要等向教务处上报统计后才会知道,然后才能重新选择。网上选课系统为同学节省了时间的同时,减少了不必要的步骤,也方便管理员管理。网上

2、选课系统为同学提供了一个自由选择的平台,学生可以选修规定范围内的课程,查看已修学分总数,还可以修改个人信息。本系统也为教师提供了很大的方便,教师可以根据统计的人数挑选一定数量的学生,也可以直接在网上公布成绩,让学生直接在网上查询成绩。 此系统方便了学生的选课,同时便于管理,减少大量的人力资源;并且给了学生提供了一个自由的空间。 1.2 系统开发的目的和意义 学生选课历来是学校课程安排工作中比较复杂的一项,为了减轻学校的工作,方便学生对选修课的选择,设计了本系统-基于 B/S 模式自动选课系统设计与实现(管理员、教师管理子模块的设计与实现),可供学生在网上自动选修选修课。管理员管理子模块功能的实

3、现,使得管理员的操作变得简单易行,减轻了管理员的工作量,提高了工作效率;其对学生档案信息、教师基本信息以及选2修课等信息的添加、修改和查询都可在此系统中实现,使得工作变得清晰且易行。教师管理子模块的功能的实现同样给广大教师带来了很大的便利,教师可直接在网上对其所授课程情况进行查询,直接发布学生的成绩,充分利用了网络这个很占优势的资源。1.3 系统开发环境硬件环境:cpu: 奔腾 4 1.7G内存: 256MB硬盘: 80GB 分辨率: 1024*768软件环境:系统平台: windows XP分析设计工具:PowerDesigner 6.0关系型数据库管理系统:Microsoft Access

4、2000开发工具: ASP(VBScript)1.4 项目分工 在这个项目中,我主要负责登陆模块,教师模块和管理员模块;登陆模块实现各个用户(教师,学生,管理员)的登陆功能,以及用户密码的修改;教师模块实现教师对个人信息以及所授课程信息的查询,以及对学生成绩的添加和修改;管理员模块实现管理员对学生档案信息、教师信息、选修课信息的添加、修改和查询;以及对选课时间段的设定。 3第二章 开发技术及工具简介2.1 ASP 技术及功能介绍ASP 是 Active Server Pages(动态服务器主页)的缩写,它是一个服务器端的脚本环境,在站点的 Web 服务器上解释脚本,可产生并执行动态、交互式、高

5、效率的站点服务器应用程序。ASP 可以胜任基于微软 Web 服务器的各种动态数据发布。 ASP 是微软开发的一种类似 HTML(Hypertext Markup Language 超文本标识语言)、Script(脚本)与 CGI(Common GAteway Interface 通用网关接口)的结合体,它没有提供自己专门的编程语言,而是允许用户使用包括VBScript,JavaScript 等在内的许多已有的脚本语言编写 ASP 的应用程序。ASP 的程序编制比 HTML 更方便且更有灵活性。它是在 Web 服务器端运行,运行后再将运行结果以 HTML 格式传送至客户端的浏览器。因此 ASP

6、与一般的脚本语言相比,要安全的多。对于广大网页技术爱好者来说,ASP 比 CGI 具有的最大好处是可以包含HTML 标签,也可以直接存取数据库及使用无限扩充的 ActiveX 控件,因此在程序编制上要比 HTML 方便而且更富有灵活性。ASP 吸收了当今许多流行的技术,如 IIS,ActiveX,VBScript,ODBC 等,是一种发展较为成熟的网络应用程序开发技术;其核心技术是对组件和对象技术的充分支持。通过使用 ASP 的组件和对象技术,用户可以直接使用 ActiveX控件,调用对象方法和属性,以简单的方式实现强大的功能。2.1.1 ASP 方法与传统静态主页的区别把信息系统纳入 Int

7、ernet/Intranet 的框架之后,首先要解决的问题是通过网页访问后台数据库信息。所有应用程序都被分割为页面的形式,用户的交互操作是以提交表单等方式来实现的,这就要求 Web 站点具有很强的动态数据发布能力。然而,目前 Web 的服务,仍以提供“静态”主页内容为主。所谓“静态”,指的就是站点的主页内容是固定不变的,无法根据用户的需求和实际情况作出相应的变化。当浏览器通过 Internet 的 HTTP 协议向站点的 Web 服务器申请主页时,站点服务器就会将已设计好的静态的 HTML 文件传送给浏览器。若要更新4主页的内容, 只能用非在线的手动方式更新 HTML 的文件数据。 ASP 所

8、设计出的是动态主页,可接收用户提交的信息并作出反应, 其中的数据可随实际情况而改变,无须人工对网页文件进行更新即可满足应用需要。例如:当在浏览器上填好表单并提交 HTTP 请求时,可以要求在站点服务器上执行一个表单所设定的应用程序,而不只是一个简单的 HTML 文件。该应用程序分析表单的输入数据,根据不同的数据内容将相应的执行结果(通常是数据库查寻的结果集)以 HTML 的格式传送给浏览器。数据库的数据可以随时变化,而服务器上执行的应用程序却不必更改,客户端得到的网页信息会始终保持新鲜的魅力。2.1.2 ASP 的特点与功能从软件的技术层面看,ASP 有如下的特点: 1. 无需编译ASP 脚本

9、集成于 HTML 当中,容易生成,无需编译或链接即可直接解释执行。 2. 易于生成使用常规文本编辑器(如 WINDOWS 下的记事本),即可进行*.asp 页面的设计。若从工作效率来考虑,不妨选用具有可视化编辑能力的Visual InterDev。 3. 独立于浏览器用户端只要使用可解释常规 HTML 码的浏览器, 即可浏览 ASP 所设计的主页。ASP 脚本是在站点服务器端执行的,用户端的浏览器不需要支持它。因此,若不通过从服务器下载来观察*.asp 主页,在浏览器端见不到正确的页面内容。 4. 面向对象在 ASP 脚本中可以方便地引用系统组件和 ASP 的内置组件,还能通过定制 Activ

10、eX Server Component(ActiveX 服务器组件)来扩充功能。 5. 与任何 ActiveX Scripting 语言兼容除了可使用 VBScript 和JScript 语言进行设计外,还可通过 Plug-in 的方式,使用由第三方所提供的其它 Scripting 语言。 6. 源程序码不会外漏ASP 脚本在服务器上执行,传到用户浏览器的只是ASP 执行结果所生成的常规 HTML 码,这样可保证辛辛苦苦编写出来的程序代码不会被他人盗取。 从应用的层面看,ASP 有如下的功能: 1. 处理由浏览器传送到站点服务器的表单输入。 2. 访问和编辑服务器端的数据库表。使用浏览器即可输

11、入、更新和删除站5点服务器的数据库中的数据。 3. 读写站点服务器的文件,实现访客计数器、座右铭等功能。 4. 提供广告轮播器、取得浏览器信息、URL 表管理等内置功能。 5. 由 cookies 读写用户端的硬盘文件,以记录用户的数据。 6. 可以实现在多个主页间共享信息,以开发复杂的商务站点应用程序。 7. 使用 VBScript 或 JScript 等简易的脚本语言,结合 HTML 码,快速完成站点的应用程序。通过站点服务器执行脚本语言,产生或更改在客户端执行的脚本语言。 8. 扩充功能的能力强,可通过使用 Visual Basic、Java、Visual C + 等多种程序语言制作 A

12、ctiveX Server Component 以满足自己的特殊需要。2.2 ADO 访库的技术实现方法 ADO(ActiveX Data Objects)是一组优化的访问数据库专用对象集,为 ASP提供了完整的站点数据库访问解决方案。它可作用于服务器端,以提供含有数据库信息的主页内容。通过执行 SQL 命令,让用户在浏览器画面中输入、更新和删除站点服务器的数据库信息。 ADO 使用内置的 RecordSets 对象作为数据的主要接口。ADO 可使用 VBScript、JScrip t 语言来控制对数据库的访问,以及查询结果的输出显示。 ADO 可连接多种支持 ODBC 的数据库,如 SQL

13、Server、Oracle、Info rmix 等。在使用时,首先需在控制面板的 ODBC 中建立相应的 DSN(数据源名) 。要选择系统数据源名,指定所用的驱动程序,如SQL Server,在数据来源名称中输入 DSN名,并选定服务器和数据库。 2.3 ASP 与组件对象的使用 在利用 ASP 技术进行动态 Web 开发的时候,应遵循这样一个原则:即 ASP的服务器端脚本必须与微软倡导的组件对象( Component Object Model )配合使用才能开发出具有实用价值的信息产品。ASP 脚本相当于一种粘合剂,把一个个具有特定功能的组件对象粘合在一起,以形成最终的软件产品。这一软件制作

14、的工艺思想类似于硬件工厂生产板卡的过程,那一个个的组件对象就相当于集成电路的芯片,而 ASP 脚本只是焊接芯片的焊接剂,由此可见组件对象起着核心作用。 6 组件对象模型 COM 是微软提出的一种基于二进制的 Windows 软件标准,它是由 OLE 技术逐渐发展而来的。在使用不同语言工具写成的组件对象之间,依据COM 的标准可以进行交互。COM 是技术概念和标准, 其商业概念的称谓则使用ActiveX。 上文提到的 ADO 就是系统提供的用于访问后台数据库的组件。此外,ASP 本身还提供了五个内置的对象。这五个内置对象可被 ASP 脚本直接使用,它们是: 1.Request 取得用户信息 2.

15、Response 传递信息给用户 3.Server 提供访问服务器的方法和属性4.Application 在一个应用程序的多个主页之间保留和使用某些共同的信息5.Session 在一个用户的多个主页之间保留和使用某些共同的信息 其中,使用内置对象 1、2 可实现 Web 的交互功能,使用内置对象 4、 5 可解决具有协作机制的应用问题。 ASP 的一大特色,是可以用来编写具有协作机制的应用程序,在多个用户的多个主页之间共享信息。使用内置的 Application 和 Session 对象可实现这些功能。 Application 对象保存一个应用程序共同的信息,使用此应用程序的所有用户都可以共同

16、分享。为防止其被多个用户同时更改,提供 loc k 和 unlock 方法来实现互斥,例如: Application.lock 禁止其他用户更改 Application 的信息; Application.unlock 允许其他用户更改 Application 的信息。 Session 对象比 Application 对象的使用外延范围小,它保存仅属于一个用户的一个应用程序的信息。ASP 的应用程序可以只有一个首页,也可以有多个主页文件,所有的文件均位于一个虚拟路径下。Session 对象可让同一个用户在多个主页之间共享信息。当用户第一次在一个应用程序中申请一个*.asp 主页时,ASP 将为该

17、用户分配一个 SessionID 号,它将唯一地标识用户的身份,从而能将同一应用程序的不同用户区分开来。 根据需要还可以自行定制具有某些特色的组件对象,以完成特殊的任务。用Visual Basic、Visual C+、Delphi 和 Java 等语言都可以编写。自制的组件7对象分成两类: 一是由类打包而成的*.dll 文件,经注册器注册后,在 ASP 脚本中可通过Set 对象名 = 类名来引用。对象在这种使用过程中是在服务器的后台运行的,其运行的结果通过系统自动生成的 HTML 作用到前端浏览器。 二是生成*.ocx 文件,一般用作可视化的对象 ActiveX,可直接将其嵌入*.asp 主页

18、中,在页面中插入时需使用 HTML 语言的 标记加以引用。通常构件制作完成并按下载的要求打包后生成*.cab 文件。对象在这种使用方式下要先从服务器下载,然后在客户的前端浏览器运行。在第一次下载时被展开成相关的*.dll 和*.ocx 文件进行本地安装及注册。以后再使用时,就可直接从本地获得,免去了下载之苦,这也是 ActiveX 优于 Java Applet 的地方。 从长远来看,ASP 和组件对象的配合使用无疑是一种引人入胜的新技术,更重要的是由此而提出了一种全新的软件设计方法,把硬件的工艺思想恰如其分地融合于软件的面向对象的分析、设计和施工之中, 使面向对象的概念和方法从工具语言的层次一

19、下子跃上了系统的应用层,在快速开发多层的客户/服务器分布式应用系统中将会产生极好的效果。8第三部分 需求分析需求分析阶段的任务并不是要具体解决问题,而是准确地回答为了解决这个问题,目标系统必须做什么,主要是确定目标系统必须具备哪些功能、性能、运行规格要求,而对目标系统提出完整、清晰、准确、具体的要求。3.1 项目开发前提 并不是所有的问题都有简单明显的解决方法,事实上,许多问题不可能在预定的系统规模之内解决。如果问题没有可行的解,那么,花费在这项开发工程的任何时间、资源、人力和经费都是无谓的浪费。 可行性研究的目的就是以最小的代价在尽可能短的时间能确定问题是否能够解决。必须记住,可行性研究的目

20、的不是解决问题,而是确定问题是否值得求解。 首先澄清问题定义。在问题定义阶段,初步确定问题的规模和目标,如果是正确的就进一步加以肯定,如果有错误,就应该及时改正,如果对目标系统有任何约束和限制,也必须把它们清楚地列举出来。 在澄清了问题定义之后,分析员应该导出系统的逻辑模型。然后从系统逻辑模型出发,探索若干种可供选择的主要解法(即系统实现方案) 。对每种解法都应该仔细研究它的可行性,一般来说,至少应该从下述三方面研究每种解法的可行性:(1)技术可行性技术可行性使用现有的技术如 ASP 嵌套 VBScript 和建模分析工具PowerDesigner 6.0 以及使用 Access 数据库可以实

21、现这个系统。(2)经济可行性经济可行性开发该系统,所需经济成本不高,耗费的人力物力都很低;且系统开发实现后,其对所需运行环境的要求也很低。(3)操作可行性操作可行性用户可以在很短的时间内掌握操作,管理员经过简单的培训也可以对系统进行管理。3.2 目标系统的综合要求功能要求:目标系统实现的功能主要有对信息的添加、修改和查询以及对学生选课的处理。其系统功能层次图如图 3.1 所示:9 图 3.1 系统功能层次图a.登陆管理设置模块实现的功能:登陆处理、注册用户、修改密码。b.管理员操作设置模块实现的功能:对学生档案信息,以及教师基本信息和选修课信息的添加、修改、查询;对选课时间段的设定。c. 教师

22、操作设置模块实现的功能:对信息的查询,添加和修改学生 成绩。 d. 学生选课设置模块实现的功能:查询信息、选修课程及退选课程。性能要求:目标系统具有方便用户操作友好的界面,响应时间短,能方便快捷地供给操作人需求的信息。保证系统数据的正确性,完整性,安全性。安全要求:该系统对系统管理员、教师、学生分类开放。3.3 数据流图传统的结构化分析方法(简称 SA 方法)就是面向数据流自顶向下、逐步求精进行需求分析的方法。数据流图由数据源点或汇点、数据流、数据存学生自动选课系统登陆管理设置管理员操作设置教师操作设置学生选课设置10储组成。经过分析得到顶层数据流图如图 3.2 所示。 图 3.2 顶层数据流

23、图系统细化时需要一定的原则,数据流图分层细化时必须保持信息的连续性,即细化前后必须保持信息的连续性,细化前后对应功能的输入和输出数据必须相同。把一个功能细化到可以写程序的程度,就不应该再进行细化了。经过进一步细化第一层及第二层数据流图,如图 3.3、3.4 所示:(1).第一层数据流图:学生自动选课系统学生自动选课系统管理员学生教师1管理员管理处理2教师操作处理3学生操作处理11图 3.3第一层数据流图(2).第二层数据流图: 3.2选课处理3.1学生登陆处理1.2输入信息处理2.1教师登陆处理教师学生2.2成绩输入处理3.3退课处理2.3查询信息处理3.4查询信息处理1.1管理员登陆处理12

24、图 3.4第二层数据流图3.4 数据字典数据字典是关于数据的信息集合,也就是对数据流图中出现的所有数据.数据流: 数据流的来源去处,组成数据流的数据项,数据流的流通量.数据存储: 数据文件的结构描述及数据文件中记录的存放规则.数据处理: 数据处理的逻辑功能及其算法.数据处理一般用其它工具描述更清晰.数据源: 管理员、学生、教师数据处理:登陆处理;添加处理;修改处理;删除处理;查询处理。以下是我所负责的登陆模块,以及管理员、教师管理模块这三个模块数据字典:(1)主要数据流定义:数据流名:登陆信息别名:描述:管理员、教师、学生输入的登陆信息定义:登陆信息=用户名称+密码+使用权限来源:管理员、教师

25、、学生去向:登陆处理数据项名 类型 长度用户名称 字符型 8密码 字符型 6使用权限 字符型 6数据流名:教师信息查询要求别名:描述:教师对个人基本信息的查询定义:教师信息查询要求=教师姓名+教师编号来源:教师去向:教师基本信息查询处理13数据流名:学生情况查询要求别名:描述:教师对所授课程的学生情况进行的查询定义:学生情况查询要求=教师姓名+教师编号+所授课程来源:教师去向:授课学生情况查询处理数据项名 类型 长度教师姓名 字符型 8教师编号 字符型 8数据项名 类型 长度教师姓名 字符型 8教师编号 字符型 8所授课程 字符型 10数据流名:选修课信息别名:描述:管理员输入的选修课的安排信

26、息定义:选修课信息=课程名+授课时间+授课地点+授课教师+授课学期来源:管理员去向:选修课表处理数据项名 类型 长度课程名 字符型 10授课时间 日期型授课地点 字符型 20授课教师 字符型 8授课学期 日期型14(2)数据存储定义:名字:管理员登陆表别名:描述:用于管理员登陆自动网上选课系统,进行管理,修改,添加和维护等操作。定义:管理员登陆表=用户名称+密码+使用权限位置:管理员登陆表 管理员登陆处理数据项名 类型 长度 用户名称 字符型 8密码 字符型 6 使用权限 字符型 6名字:教师基本信息表别名:描述:记录教师的基本信息定义:教师基本信息表=教师姓名+教师编号+教龄 +所授课程+授

27、课时间+授课地点位置:教师基本信息 教师信息处理名字:选修课信息表别名:描述:记录选修课的信息定义:选修课信息=课程名+授课时间+授课地点+授课教师+授课学期位置:选修课信息表 选修课表处理数据项名 类型 长度课程名 字符型 10授课时间 日期型授课地点 字符型 20授课教师 字符型 8授课学期 日期型15 名字:教师登陆表别名:描述:用于教师登陆自动网上选课系统,进行查询及学生成绩录入工作定义:教师登陆表=用户名称+密码+使用权限位置:教师登陆表 教师登陆处理数据项名 类型 长度教师姓名 字符型 8教师编号 字符型 8教龄 字符型 2所授课程 字符型 10授课地点 字符型 20授课时间 日期

28、型 名字:学生档案信息表别名:描述:记录学生的基本信息定义:学生档案信息表=学生姓名+学号+学生性别+班级+系别+籍贯+出生年月位置:学生档案信息表 学生信息处理数据项名 类型 长度学生姓名 字符型 8学号 字符型 8学生性别 布尔型班级 字符型 10系别 字符型 20籍贯 字符型 10出生日期 日期型数据项名 类型 长度用户名称 字符型 8密码 字符型 6使用权限 字符型 6数据项名 类型 长度教师姓名 字符型 8教师编号 字符型 816名字:个别课程学生情况表别名:描述:记录选修某一门课程的学生名单及人数,以供该授课教师查询及打印定义:个别课程学生情况表=课程名+学生姓名+学号+班级名称+

29、总人数+授课地点+授课时间位置:个别课程学生情况表授课学生查询处理 | 打印处理数据项名 类型 长度课程名 字符型 10学生姓名 字符型 8学号 字符型 8班级名称 字符型 10总人数 数值型 3授课地点 字符型 20授课时间 日期型 数据项名 类型 长度课程名 字符型 10学生姓名 字符型 8学号 字符型 8班级名称 字符型 10总人数 数值型 3授课地点 字符型 20授课时间 日期型 17第四章 总体设计总体设计的基本目标是如何解决问题,通过这个阶段的工作,设计人员将划分出组成系统的物理元素总体设计的另一项任务是确定软件结构,即确定系统中的每一个程序由哪些模块组成以及模块和模块之间的关系.

30、4.1 系统功能划分这套学生自动选课系统,可以供学生在网上直接自主的进行选课,具体有以下功能:a. 支持学生自主修改保存密码;b. 教师可添加、修改学生成绩,以及对信息的查询;c. 管理员对信息可以进行添加、修改工作;d. 学生可以查询选修课情况,并根据个人条件进行选修选修课;e. 支持学生一人选多门选修课,但是最多不能超过 3 门;f. 支持学生对选修课进行退选或补选;g. 开课前,本系统自动导入选课学生名单到学生信息中,教师可在此可获取名单。使用这套系统的人员有管理员 、教师和学生,他们对系统有不同的使用权限。 1、管理员可以进行使用权限的设置,只有拥有正确的用户名和相应的密码 的人,才可

31、以使用系统并访问系统中的资源;可对学生的基本信息进行管理,学生个人密码遗忘,管理员可取回学生密码。2、教师可对全体选课学生进行查询,及所有选课情况,以及对学生成绩的添加和修改权限。3、学生只能进入自己的档案,进行个人选课、查询以及个人密码的修改工作。本系统在实行过程中,在时间上分三个阶段来实行:第一阶段:为选课阶段,这一阶段学生不能有退课权利,只能进行选课;第二阶段:为可退选阶段,在这一阶段学生既可以选课,也可以进行退选课程;18第三阶段:为确定阶段,在这一阶段里,学生既不能再进行选课,也不可再退选,即所选课程已确定。这三个阶段实行日期由管理员所确定。4.2 模块功能化分对上述各项功能进行集中

32、、分块,按照结构化程序设计的要求,得到我所负责的模块的功能层次图如图 4.1 所示。4.1 细化的功能层次图我负责设计的是登陆管理、管理员操作、教师操作三个模块.学生自动选课系统管理员操作设置登陆管理设置登陆处理注册用户修改密码添加修改查询学生档案信息添加修改查询教师信息添加修改查询选修课信息设定选课时间段教师操作设置查询信息添加成绩修改成绩学生选课设置19a.在登陆管理设置模块中,实现了登陆处理、注册用户、修改密码功能。b.管理员操作设置模块实现的功能有:对学生档案信息,以及教师基本信息和选修课信息的添加、修改、查询;对选课时间段的设定。c.教师操作设置模块实现的功能:教师对个人信息、以及所

33、授课程的学生信息的查询,和添加和修改学生成绩的功能。通过对所负责模块功能的细化,可以对这些模块的数据流图进行进一步的细化,得到第三层数据流图如图 4.2 所示。1.2.1输入信息分类1.2.2必修课表处理1.2.3选修课表处理1.2.4教师信息处理1.2.5学生信息处理2.3.1查询信息分类2.3.2教师基本信息查询处理2.3.3授课学生情况查询处理20图 4.2第三层数据流图最后得到细化数据流图如图 4.3 所示:教师教师登陆处理教师登陆信息教师基本信息查询处理成绩输入处理学生信息表授课学生情况查询处理个别课程学生情况表打印处理个别课程学生情况表学生信息表学生信息表管理员登陆信息管理员登陆处

34、理管理员必修课表处理必修课信息表选修课表处理选修课信息表教师信息处理学生信息处理学生档案信息表教师基本信息21图 4.3细化数据流图4.3 概念模型 CDM4.3.1 系统 CDM 模型的概述Power Designer 的概念数据模型(Conceptual Data Model ,简称CDM)以实体联系(EntityRelationship,简称 E)理论为基础,并对这种理论进行了扩充,建立了概念数据模型。CDM 把现实世界中的信息简化为体育实体之间的联系,它与数据库管理系统(Database Management System ,简称 DBMS)无关。使用 CDM,可以把主要精力集中在分析

35、设计上,先考虑很多物理实现的细节,只考虑实体和实体之间的联系,这样便于分析和理解。ER 模型是由 P.P.Chen 在 1976 年提出的,主要的公共构件是实体(Entity)和联系(Relationship)。实体是现实世界中可区别于其他对象的“事件”或“物体” ,它可能是有形的或无形的、具体的或抽象的、有生命的或无生命的。例如学校中的每个学生是一个实体,每个实体有一组性质,称为实体的属性,用来描述实体的特征。实体可以通过联系相互关联,通常可将联系分为四类,即一对一(One to One)联系,一对多(One to many)联系,多对一(Many to One)联系,多对多(Many to

36、 Many)联系。在熟悉了 CDM 的理论基础以后,在创建 CDM 时,应该明确模型所描述的业务问题。4.3.2 系统 CDM 模型的建立该概念模型如图 4.4 所示 ,反映了网络环境下的学生自动选课系统中的各实体之间的联系,它把用户的数据要求清楚的表达出来,即系统需要那些数据、数据之间是什么联系、数据本身有什么性质、数据的结构是什么等都有清楚的表达。系统的概念模型(CDM)如图 4.4 所示:22 图 4.4 系统的概念模型 CDM4.4 系统 PDM 的建立4.4.1 数据结构设计数据结构设计主要是利用软件分析设计工具 Power Designer 来设计系统的数据存储结构。该工具用图表化

37、的形式来描述数据之间的关系,这样不仅形象直观,而且便于与用户和程序员进行交流。通过该工具设计出的系统物理数据模型可以通过该工具提供的与数据库的接口,直接生成数据库表,23而不用在数据库管理系统中建立数据表。下面介绍一下该系统的数据结构模型(物理数据模型 PDM) 。4.4.2 数据库 PDM 模型的建立建立 PDM 模型有四种方法,分别为:使用设计环境直接建立 PDM;从现存数据库或数据库 SQL 脚本逆向工程建立 PDM;从 CDM 采用内部模型生成的方法建立 PDM;从面向对象模型(OOM)中的类图采用模型的内部生成方法建立 PDM。本系统采用的是第三种方法生成的 PDM 模型。该系统的

38、PDM 模型如图 4.5 所示:USNA = USNATEANUM = TEA_TEANUMCOURSNO = COURSNOTEACNO = TEACNOPASSWORD1 = PASSWORD1USERNAME = ADM_USERNAMEUSERNAME = USERNAMEUSERNAME = USERNAMEUSERNAME = USERNAMETEA_USNA = TEA_USNATEA_TEA_TEANUM = TEA_TEA_TEANUMTEA2_TEANO = TEA2_TEANOUSNA = USNATEA_TEANUM = TEA_TEANUMTEANUMBER = TE

39、ANUMBERCOUNUM = SPE_COUNUMUSNA = TEA_USNATEA_TEANUM = TEA_TEANUMTEANO = TEA2_TEANOUSNA = USNATEANUM = TEA_TEANUMSTU_TEACNO = STU_TEACNOPASSWORD1 = PASSWORD1STU2_STUDNO = STU2_STUDNONO = NOSTUNUM = STUNUMSTU_TEACNO = STU_TEACNOPASSWORD1 = STU_PASSWORD1STUDNO = STU2_STUDNOTEACNO = STU_TEACNOPASSWORD1

40、= PASSWORD1USNA = TEA_USNATEA_TEANUM = TEA_TEA_TEANUMTEANO = TEA2_TEANOSTU_TEACNO = STU_STU_TEACNOPASSWORD1 = STU_PASSWORD1STU2_STUDNO = STU2_STUDNONO = STU_NOSTUNUM = STU3_STUNUMSTU_TEACNO = STU_TEACNOPASSWORD1 = PASSWORD1STUDNO = STU2_STUDNONO = NOCOURSNO = COURSNOSTU_TEACNO = STU_TEACNOPASSWORD1

41、= PASSWORD1STUDNO = STUDNONO = NOSTU_TEACNO = STU_STU_TEACNOPASSWORD1 = STU_PASSWORD1STUDNO = STU2_STUDNONO = NOSTU_TEACNO = STU_TEACNOPASSWORD1 = PASSWORD1STUDNO = STUDNOADMINIEUSERNAMEchar(8)PASSWORDchar(6)ACCESSSPECOUSTUINSTANCETABTEANUMBERCOUNUMsmallintCOUchar(10)STNAchar(8)NUMBERchar(8)CLANAcha

42、r(10)STUNOnumeric(3)PLAchar(20)TIdateTEANAMEchar(8)TEA_USNAchar(8)TEA_TEA_TEANUMintegerTEA2_TEANOchar(8)USNAchar(8)TEA_TEANUMintegerSTUSCOREintegerTEACHERUSNAchar(8)TEANUMintegerPASSchar(6)ACCTEA_USNAchar(8)TEA_TEANUMintegerTEA2_TEANOchar(8)TEABASICINTTABTEANOchar(8)USNAchar(8)TEA_TEANUMintegerTEANA

43、MEchar(8)TEAAGEchar(2)COURchar(10)TEACHINGPLACEchar(20)TEACHINGTIMEdateADM_USERNAMEchar(8)SELIFOTABCOURSNOintegerSTUDENTNOnumericTERNAMchar(8)LESTERdateLESTIMEtimestampCOURSENAMEvarchar(20)USERNAMEchar(8)REQCOURIFOTABCOURNOintegerSTUNUMintegerCOURNAMEchar(18)STUDENTNO2numericLECTEAchar(8)COURTERMtim

44、eTIMEtimestampSTU_TEACNOchar(6)PASSWORD1char(6)STU2_STUDNOintegerNOintegerUSERNAMEchar(8)STUARCINFTABSTUNAMEchar(8)NOintegerSTU_TEACNOchar(6)PASSWORD1char(6)STUSEXchar(2)STUDNOintegerSTUNATvarchar(20)BIRTHdateSTUDEPvarchar(20)STUCLAvarchar(20)STU_STU_TEACNOchar(6)STU_PASSWORD1char(6)STU2_STUDNOinteg

45、erUSERNAMEchar(8)STUIFOTABNOintegerTEANUMBERSPE_COUNUMsmallintSEXchar(8)DEPvarchar(20)CLAvarchar(20)COURSENAME2varchar(20)COURSNUMintegerRESULTdecimal(4)STU_TEACNOchar(6)PASSWORD1char(6)STUDNOintegerSTU_STU_TEACNOchar(6)STU_PASSWORD1char(6)STU2_STUDNOintegerSTU_NOintegerSTU3_STUNUMintegerTEA_USNAcha

46、r(8)TEA_TEA_TEANUMintegerTEA2_TEANOchar(8)USNAchar(8)TEA_TEANUMintegerSTUCOURSETABSTUNUMintegerNOintegerCOURSNUMintegerSTUDENTNO3numericTERNAM2char(8)LESTER2dateLESTIME2timestampSTU_TEACNOchar(6)PASSWORD1char(6)STU2_STUDNOintegerSTUDENTTEACNOchar(6)PASSWORD1char(6)STNAMchar(8)ACCESSTU_TEACNOchar(6)S

47、TU_PASSWORD1char(6)STU2_STUDNOintegerCOURSENOSTU_TEACNOchar(6)PASSWORD1char(6)STUDNOintegerNOintegerCOURSNOintegerXUANXIUTEACNOchar(6)PASSWORD1char(6)COURSNOinteger24图 4.5 系统的物理模型4.5 E-R 模型 对所负责的子模块:管理员模块、教师模块的 E-R 模型如图 4.6 所示:nm mnnm图 4.6 子模块 E-R 模型4.6 数据库设计在一个系统中占有非常重要地位,数据库结构设计的好坏将直接对应系统的效率以及实现的效

48、果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据完整性和一致。另外合理的数据库结构非常有利于程序的实现。针对学生自动选课系统的需求,通过对学生选课的工作过程的内容和数据流程分析,设计如下的数据项和数据结构:管理员姓名编号教师已开课程规定课程名称课程编号主讲教师授课地点授课时间输入姓名编号教授性别教龄25studentinfo(学生档案信息表):包括的数据项有:学号、姓名、性别、出生年月、系别、所在专业、班级、籍贯、备注;teacherinfo(教师基本信息表):包括的数据项有:教师编号、教师姓名、性别、教龄、所授课程、课程号、授课地点、授课时间、备注;UserInfo(用户登陆

49、信息表):包括的数据项有:user-id、username、password、purview-level、usertype;students(学生选课信息表):包括的数据项有:student-num、student-name、student-sex、select-course、course-id、remark;select-courseinfo(选修课信息表):包括的数据项有:课程号、课程名、主讲教师、上课时间、上课地点、学生人数;scores(成绩表):包括的数据项有:id、student-id、course-id、score;Interval(选课时间段表):包括的数据项有:BEGIN-T

50、IME、END-TIME; 26第五章 详细设计详细设计阶段的根本目标是确定怎样具体实现所需要求的系统,这个阶段的设计任务不是具体编写程序,而是要设计出程序的”蓝图”,以后程序员根据这个蓝图写出实际的程序代码.5.1 程序结构设计本次毕业设计是两人分工,以下主要介绍我主要负责的模块的设计,即登陆模块,及管理员、教师管理这三个模块。5.1.1 登陆模块:本登陆模块可供管理员、教师、学生登陆,且其身份不同进入的界面将不同。对于管理员、教师用户在他们登陆系统之前,首先由管理员在数据库中添加用户名和密码;学生的用户名和密码在登陆前可自己先注册。在登录系统时用户必须在输入用户名和密码都正确的情况下才能进

51、入该系统,并到达用户相应权限的界面(即管理员、教师、学生所进界面受自己权限的限制) 。在用户名输入错误情况下,或密码错误的情况下,系统会弹出 “改用户名不存在或密码不正确,请重新输入!” ;在输入次数超过三次时,系统会自动退出。用户登陆成功后,可自行修改自己的密码。 【使用说明使用说明】:系统启动运行后,将出现管理员登录界面,用户输入用户名,然后输入密码。密码正确就可进入。 【程序结构设计程序结构设计】:登陆时要对用户密码进行验证,其程序结构如图 5.1 所示27 图 5.1 密码程序流图5.1.2 添加功能在管理员模块中,管理员对学生档案信息、教师基本信息、选修课信息、选课时间段的添加都用到

52、该添加功能;a.管理员对学生档案信息的添加中,学生姓名与学号在程序中被指定为指定文本框,这两项信息不能为空;b.管理员对教师基本信息的添加中,教师姓名与教师编号在程序中被指定为指定文本框,这两项信息也是不能为空的;c.管理员对选修课信息的添加是,选修课名称及课程号同样在程序中也被指定为指定文本框,它的这两项信息同样不能为空;在教师模块中,教师对学生成绩的添加也是该添加功能,只不过这时时学生的成绩在程序中被指定为指定文本框,这项信息也是不能为空的。退出进入下一个界面判断密码是否正确判断用户名是否为空?没有这个用户请重新输入开始28【使用说明使用说明】:在用户登陆成功,进入添加界面时,逐项输入所要

53、添加的信息到每个相应得文本框,只要程序中被指定的指定文本框内容不为空,点击确定按钮添加即可成功。 【程序结构设计程序结构设计】:该添加功能程序结构如下图 5.2 所示:图 5.2 添加程序结构 先判断程序中被指定的文本框是否为空,如果为空的话弹出“该文本框不能为空” ,再判断有没有和库中的记录相同的编号,有的话则提示其点击修改按钮,并返回。没有则把新记录添加到数据库中,并显示添加成功。5.1.3 修改功能:在管理员模块中,管理员对学生档案信息、教师基本信息、选修课信息的修改,用到该修改功能;a.管理员对学生档案信息的修改中,学生的学号被指定为输入的指定信息,学生姓名及学号同样被程序指定为指定文

54、本框;b.管理员对教师基本信息的修改中,教师编号被指定为输入的指定信息,教师姓名及教师编号同样被程序指定为指定文本框;c.管理员对选修课信息的修改中,选修课的课程号被指定为输入的指定信息,选修课名称及课程号被程序指定为指定文本框;在教师模块中,教师对学生成绩的修改都也是用到此修改功能,学生的学开始检查指定文本框是否为空?再输入一次是否有相同记录?该记录已存在,若修改请点击修改按钮加入新记录记录添加成功29号与课程名在程序中被指定为指定信息,学生的成绩被指定为程序中的指定文本框。【使用说明使用说明】:在用户登陆成功,进入修改界面时,按界面提示输入指定信息,在提交后若存在该记录,则会在屏幕上显示该

55、记录信息,这时用户就可进行修改;若修改后的指定文本框的内容不为空,则点击确定按钮修改即可成功。【程序结构设计程序结构设计】:该修改功能程序结构如图 5.3 所示图 5.3 修改程序流图输入指定信息判断是否存在该记录?该记录不存在,重新输入列表初始化显示该记录信息修改信息判断程序中指定文本框是否为空?删除数据库中的原记录把新记录添加到原记录位置显示修改成功30先判断是否有要修改的记录,如果没有的话重新输入要修改的记录的信息;有的话,要修改的记录从库中调入到基本信息的窗体中,然后修改再保存,保存前判断程序中指定的文本框是否为空,为空要重新输入,不为空则保存。5.1.4 查询功能在管理员模块中,管理

56、员对学生档案信息、教师基本信息、选修课信息的查询用到此查询功能;在教师模块中,教师对个人基本信息、所授课程学生信息的查询,都是用到的该查询功能;【使用说明使用说明】:用户只要按照屏幕提示,输入指定查询信息即可进行所需信息的查询。【程序结构设计程序结构设计】:此查询功能程序流程图如图 5.4 所示:ssql 为查询条件 图 5.4 查询程序流程图根据查询条件 ssql 开始查询显示符合条件的记录列表结束ssql=“”?查询条件不能为空,请重新输入!开始输入查询条件 ssql判断是否有符合条件的纪录?没有找到符合条件的纪录,请重新输入!31先判断查询条件是否为空,不为空的话,按照查询条件进行查询,

57、如果查询到的记录条数不为空的话,将在屏幕上显示所有记录,把结果显示到列表上。5.2 主要界面设计与主要代码5.2.1 登陆模块界面与代码1.其登陆界面如图 5.5 所示: 图 5.5 登陆界面登陆时所用到的查询语句 ssql =select * from userinfo where username=&_username&and password=&password& ,向 userinfo 表中查询用户名及密码是否存在,并验证是否正确,其主要代码见附录 3.1.1。2. 其注册界面如图 5.6 所示请输入注册信息请输入注册信息用户名:密码:提交全部重写图 5

58、.6 注册界面注册时所用到的注册语句 sSQL =select * from userinforst.open ssql,conn,1,3 rst.addnew rst(username)=usernamerst(password)=password rst(purview_level)=3rst(usertype)=学生 在此把用户类型规定为学生,也就是自行注册的用户权限只能为学生。32其主要代码见附录 3.1.2。3. 其修改密码界面如图 5.7 所示:修改个人密码修改个人密码用户名用户名:原始密码原始密码:新密码新密码:密码确认密码确认:提交 重置 图 5.7 修改密码界面修改密码是用到

59、的主要语句是 Update 更新语句。Update UserInfo set password=“Pwd” where username=&Username&And password=&OriPwd&将用户密码更新为新设定的密码;其主要代码见附录 3.1.3。5.2.2 管理员模块界面与代码管理员登陆成功可进入管理员主页,其主界面如图 5.8 所示。在这个界面中系统菜单有添加、修改、查询学生档案信息;添加、修改、查询教师基本信息;添加、修改、查询选修课信息;设定选课时间段。因此,对其添加、修改、查询功能分别介绍一个。 图 5.8 管理员主界面1.1.添加界面添加

60、界面33以管理员对选修课信息的添加为例(其对学生档案信息、教师基本信息以及选课时间段的添加与此类似) ,添加界面如图 5.9 所示。 添加选修课信息添加选修课信息课程号:课程名:主讲教师:上课时间:上课地点:学生人数:保存数据全部重写 图 5.9 添加选修课信息界面添加信息时所用到的主要语句为:ssql=“Insert into select_courseinfo(课程号,课程名,) Values (&courseid&,&coursename&,)”conn.Execute(ssql)把所添加的信息插入到数据库所特定表中;其主要代码见附录 3.2.1。2.2.

61、修改界面修改界面 以管理员对学生档案信息的修改为例(管理员对教师基本信息、选修课信息的修改与此同) ,修改界面如图 5.10 所示 图 5.10 修改学生档案信息修改信息时用到的主要语句:34ssql=SELECT * from studentinfo where 学号=&studentnumssql=Delete From studentinfo Where 学号=&studentnumssql=Insert Into studentinfo(学号,姓名,)Values(&studentnum&,&studentname&,)” 根据输入条件,

62、通过 Select 语句搜索到记录信息,并显示在列表中,修改后通过 Delect 语句将原记录删除,并执行 Insert 插入语句,将修改信息插入到数据库中。其主要代码见附录 3.2.2。查询界面见教师模块,在此就不再介绍。 5.2.3 教师模块界面与代码教师登陆成功可进入教师主页,在这个界面中系统菜单有查询教师基本信息;查询所授课程的学生信息;添加学生成绩;修改学生成绩;因此,在这主要介绍教师的查询界面,其对学生成绩的添加与修改见管理员模块的添加与修改界面。1. 查询界面查询界面以教师对个人信息的查询为例,教师对所授课程的学生信息的查询,以及在管理员模块中管理员对学生档案信息、教师基本信息以

63、及选修课信息的查询与此相同,就不在一一介绍。查询界面如图 5.11 所示。请输入教师编号: 确定(点击确定后将显示如下信息)教师编号教师姓名性别教龄所授课程课程号授课地点授课时间备注图 5.11 查询教师个人信息查询信息时所用到的主要语句:strSql=Select*From teacherinfo Where 教师编号 Like%&Trim(Request(teacher_num)&%通过 Select 查询语句查询到所需记录,并将其显示到屏幕的列表中,其主要代码见附录 3.3.1。添加成绩界面见管理员模块的添加界面,修改成绩界面见管理员模块的添加界面,在此就不再介绍。35第

64、六章 系统测试6.1 系统测试的目的、原则和方法软件测试作为软件质量保证的一个重要组成部分,在整个软件开发中占据了一半或一半以上的工作量,所以软件测试是系统开发的一个重要环节,也是成功开发软件系统的重要保证之一。软件测试阶段的主要任务是发现并排除在分析、设计、编程各阶段中产生的各种类型的错误,以得到可使用的软件系统。目的:由于程序员本身能力的局限性,所编写的代码,即使经过反复检查也难免出错,所以在本阶段力求使用有限的时间找出尽可能多的错误,通过对本系统的基本功能和错误处理能力进行初步测试,达到完善系统的目的,使系统基本符合用户要求,尽量正确,能够交付使用。 原则:设计测试用例来尽可能的发现错误

65、,通过发现错误来修改错误方法:根据设计思路和用户实际使用中可能出现的各种情况设计测试用例。故意出错,来测试系统处理错误的能力;根据要求输入相应数据,看系统能否达到设计目的,如登记入库、查询出结果、统计出结果、打印出相应材料等;进行系统的各种维护功能,看其能否满足设计要求。有一点需要说明,系统测试的通过并不是说系统不存在错误,只能说明测试用例没能发现错误,系统中可能还有错误,在系统今后的使用中还需要进行大量的维护工作,以进一步完善系统功能,改进系统性能。下面采用黑盒测试法来对软件进行测试。黑盒测试就是已经知道了软件产品的功能,通过测试来检查是否每个功能都符合要求。6.2 系统具体测试用例6.2.

66、1 用户登陆模块测试1.1. 登陆界面登陆界面(1)已存在的用户名和密码。输入:用户名:袁松梅 ,密码:1预期的输出:进入主界面,身份不同进入的界面将不同;如管理员进入得界面如第五章图 5.8 所示。36(2)不存在的用户名和存在的密码。输入:用户名:a ,密码:1预期的输出:提示“用户名或密码错误!重新登录”,如图 6.1 所示。 图 6.1 登录出错界面(3)存在的用户名和不存在的密码。输入:用户名:袁松梅 ,密码:c预期的输出:提示“用户名或密码错误!重新登录”,如图 6.1 所示。(4)不存在的用户名和不存在的密码。输入:用户名:c ,密码:c预期的输出:提示“用户名或密码错误!重新登录”,如图 6.1 所示。(5)输入空值。输入: 预期的输出:提示“用户名或密码错误!重新登录”,如图 6.1 所示。 2.2. 注册用户注册用户(1)输入新的用户名和密码。输入:用户名:11 ,密码:1预期的输出:保存用户名,密码,提示“注册成功,立即登录” ,如图 6.2 所示。 图 6.2 注册成功界面 图 6.3 注册失败界面(2)输入已有的用户名和密码。输入:用户名:袁松梅 ,密码:1预期的输出:提示“用户名已被占用,返回注册页面” ,如图 6.3 所示。373.3. 修改密码修改密码(1)输入用户名、密码正确,且新密码与确认密码相同。输入:用

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

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

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


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