学生选课系统课程设计报告.docx
《学生选课系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《学生选课系统课程设计报告.docx(8页珍藏版)》请在冰豆网上搜索。
学生选课系统课程设计报告
学生选课系统课程设计报告
学生选课管理系统 学生选课管理系统 摘要 随着社会的发展,学生的人数和课程的种类急速增加,传统的选课管理模式已经无法满足当前的实际需求,为此,我们开发了学生选课管理系统。
本人结合学生选课管理的实际需要,完成了对学生选课管理系统的需求分析、功能模块划分、数据库模式分析等,并此设计了后台数据库以及前台应用程序。
文中首先对课题背景,数据库基础理论和SQL语言进行了简单的讨论;接着,对系统前台开发工具,学生选课管理系统进行了详细分析,划分了具体的功能模块;最后,给出了学生选课系统应用程序的设计过程,以及每个功能模块的核心代码。
系统可以实现学生选课的一些重要功能,如:
课程的添加、删除,信息查询、选课、生成课表,以及学生选课管理人员、用户个人信息的维护等。
关键词管理系统;数据库;;SQLServer2000 目录 摘要........................................................IABSTRECT.....................................错误!
未定义书签。
1绪论........................................................3 课题的背景...........................................3课题的设计...........................................2的结构...........................................2 I 学生选课管理系统 2相关知识基础...............................................3 数据库的基础知识....................................3关系型数据库.........................................5开发工具简介.......................7SQL概述..............................................8本章小结............................................113系统分析...................................................13 系统分析............................................13 用户要求........................................13业务流程分析....................................13系统实体E-R图分析..............................14 本章小结.............................................154系统实现...................................................16 创建一个工作空间和应用程序对象...................16创建数据库表........................................16创建主窗口...........................................17创建主菜单..........................................18系统管理模块的实现..................................19 创建课程查询窗口.................................19创建添加选课窗口................................21创建生成课表窗口................................25创建个人信息窗口................................27生成课表窗口的设计..............................28创建登录窗口....................................30splash界面的实现................................31 结束语.......................................................33致谢.......................................错误!
未定义书签。
II 学生选课管理系统
学生选课管理系统 数据库系统是一个具有管理数据库功能的计算机系统,它包括应用软件、数据库、数据库管理系统和数据库管理人员几部分。
图2-1直观地表示了数据库应用的架够。
数据库管理人员一般是针对大型的数据库应用而言的,主要负责数据库的日常运行和维护,如数据库备份等工作。
数据库及数的研究领域 数据库学科的研究范围十分广泛的,概括地讲可以包括以下三个领域:
数据库管理系统软件的研制 DBMS[3]是数据库系统的基础。
DBMS的研制包括DBMS本身及以DBMS为核心的一组相互联系的软件系统,包括工具软件和中间件。
研制的目标是提高系统的可用性、可靠性、可伸缩性;提高性能和提高用户的生产率。
DBMS核心技术的研究和实现是三十余年来数据库领域所取得的主要成就。
DBMS是一个基础软件系统,它提供了对数据库中的数据进行存储、检索和管理的功能。
数据库设计 数据库设计的主要任务是DBMS的支持下,按照应用的要求,为某一部门或组织设计一个结构合理、使用方便、效率较高的数据库及其应用系统。
其中主要的研究方向是数据库设计方法学和设计工具,包括数据库设计方法、设计工具和设计理论的研究,数据建模和数据建模的研究,计算机辅助数据库设计方法及其软件系统的研究。
数据库设计规范和标准的研究等。
数据库理论 数据库理论的研究主要集中于关系的规范化理论、关系数据理论等。
近年来,随着人工智能与数据库理论的结合、并行计算技术等的发展,数据库逻辑演绎和知识推理、数据库中的知识发现、并行算法等成为新的理论研究方向。
计算机领域中其他新兴技术的发展对数据库技术产生了重大影响。
数据库技术和其他计算机技术的互相结合、互相渗透,使数据库中新的 4 学生选课管理系统 技术内容层出不穷。
数据库的许多概念、技术内容、应用领域,甚至某些原理都有了重大的发展和变化。
建立和实现了一系列新型数据库系统,如分布式数据库系统、并行数据库系统、知识库系统、多媒体数据库系统等。
它们共同构成了数据库系统大家族,使数据库技术不断地涌现新的研究方向。
关系型数据库 关系数据库表组成。
一个关系是一个二维表来定义的:
表的行保存事物的一组属性数据,表的列定义了事物的属性。
以下是关系型数据库系统[5]的一些特点:
·几乎当今所有的关系型数据库系统都采用SQL语言来操纵数据库中的数据。
SQL语言是在20世纪70年代IBM发展起来的,后来成为工业标准。
·最重要的是必须保证数据的完整性。
否则,存储在数据库中的数据就是毫无价值的。
关系型数据库系统包括许多特性,目的是阻止不符和要求的数据进入数据库。
·关系型数据库系统被设计为一个便于修改的系统,因为商业需求几乎每天都在变化。
·在文件系统阶段,相同的数据常常重复出现在许多记录中,而关系型数据库系统则会排除大多数的冗余数据。
这就减少了对存储空间的需求,加快了数据访问的速度。
·应用程序可以通过多级的安全检查来限制对数据的访问。
数据模型 模型是现实世界特征的模拟和抽象。
数据模型是对现实世界中数据特征的抽象。
存在于人们头脑之外的客观世界,称为现实世界。
数据库系统中保存的数据实际上是对现实世界的一种描述,它是采用数据模型对现实世界进行描述的。
数据模型是数据库系统中用于提供信息表示和操作手段的形式框架,是数据库系统的核心和基础。
数据模型分为两种,一种是概念数据模型,它是用来描述现实世界 5 学生选课管理系统 中数据及数据之间关系的模型,跟计算机没有关系。
这种模型主要描述高层次的概念,按照用户的观点对数据和信息进行建模,把现实世界中的客观对象抽象为某种信息结构,如被描述对象的意义、相互关系等。
另外一种就是实体数据模型,它是用来描述信息世界中数据及数据之间的关系及存储、处理特征的模型,主要包括层次模型、网状模型、关系模型,它是按照计算机的观点对数据建模,主要用于DBMS的实现。
在信息世界中,把客观存在并可相互区别的事物称为实体,同型实体的集合称为实体集,实体所具有的某一特性称为属性。
实体之间的联系 在现实世界中,各种事物之间往往有着各种各样的联系,这种联系必然在信息世界中有所反映。
实体之间的联系可以分为两类,一类是实体内部的联系,如组成实体的属性之间的联系,这种联系往往比较容易理解。
另外一种联系就是实体之间的联系,如学生和班级之间的联系:
一个学生属于某一个班级,而另一个班级有多个学生。
实体完整性规则规定基本关系的所有主属性都不能去空值,而不仅是主码整体不能取空值。
对于实体完整性规则说明如下:
1.实体完整性规则是针对基本关系而言的,一个基本表通常对应现实界的一个实体集。
例如学生关系对应于学生的集合。
2.现实世界中的实体是可区分的,即它们具有某种唯一性标识。
3.相应地,关系模型中以主码作为唯一性标识。
4.主码中的属性即主属性不能取空值。
所谓空值就是“不知道”或“无意义”的值。
如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第2点相矛盾,因此这个规则称为实体完整性。
规范化设计方法 构造数据库时,必须遵循一定的规则。
在关系数据库中,这种规则就是范式。
或者说,满足一定条件的关系模式,称为范 6 学生选课管理系统 式。
在1971年至1972年,E.F.Codd系统地提出了第一范式、第二范式和第三范式的概念。
1974年Codd和Boyce共同提出BCNF范式,为第三范式的改进。
关系数据库中的关系必须满足一定的要求,即需要满足不同的范式。
目前除了前面提到的三种范式,还有第四范式、第五范式和第六范式。
开发工具简介 是Sybase公司2003年推出的新一代4GLPlus数据库开发工具,它不仅继承了以往版本的各种先进技术,而且适应目前开放试软件的发展潮流,在快速集成开发环境中增加了构建WebService、JSPWeb、EJB的功能,满足了在4GLRAD环境中创建完整应用和应用组件的需求,并使企业应用可以平滑过度到基于浏览器和Web的应用模式下。
同时,卓越的应用开发效率及强大的Web功能为新版本增色不少。
完整的应用系统有工作空间、目标、应用对象。
窗口上的菜单对象。
数据窗口对象和控件对象,以及这些对象的事件处理程序构成。
(1)工作空间和目标 在以前的版本中,程序员一次只能开发一个应用程序,这样使得应用程序无法取得多个可用的组件信息,因此在构件复杂应用时会大大增加难度。
提供了Workspace功能,这让开发人员同时在多个应用或组件上进行开发,同时用Target来描述加到Workspace中的应用或组件。
[11]PowerBuilder中存在三类Target是:
Window客户、EAServer组件和Web站点。
在PowerBuilder中,只有打开Workspace才能更有效地工作,开发者可以在Workspace中定义一个新的Target或者加入一个已经存在的Target。
因此,Workspace已经变成了PowerBuilder中所有活动的中心。
(2)窗口、控件、事件和程序 在PowerBuilder中,窗口(Window)是主要的用户界面,软件开发人员往往把各种控制功能(如录入、查询、打印、统计等)做成按扭或其它控件放在窗口上有用户选择。
应用对象、窗口对象、菜单对象,窗口上 7 学生选课管理系统 的数据窗口控件和其他控件对象都对应着若干个可能发生的事件[12-13],如应用对象和窗口对象上有Open(打开),Close(关闭)等事件,菜单项上有Clicked(鼠标左键单击或按回车键)等事件,窗口上的控件有Clicked、DoubleClicked(用鼠标左键双击)Getfocus(得到焦点),EditChanged(数据被修改)等事件[14]。
PowerBuilder的程序是嵌套在事件中的,也就是说事件驱动的,一旦用户选定了控件也就触发了某个事件。
软件开发人员只需为各个控件的事件编写事件处理程序,指定该事件被触发时要进行的处理,应用系统就这样构造出来了。
事件处理程序用PowerBuilder的专用语言PowerScript语言编写。
PowerScript语言是一种高水准。
面向对象的语言,提供了丰富的内置函数供软件开发人员使用。
事件处理程序有PowerScript语句和函数组成,来响应被触发的事件并做相应的处理。
例如,菜单项上有Clicked事件此事件的处理程序可能是打开另一个窗口,用户用鼠标左键单击此菜单时,Clicked事件被触发,指定的窗口被打开。
又如窗口上有一个数据窗口和一些按扭,按扭上的文字为“录入”、“删除”、“存盘”等,这些按扭的功能分别为数据窗口中插入一行,删除一行,将结果修改存盘,我们只需为这些按扭的Clicked事件编写相应的程序完成这些功能。
(3)函数 函数是PowerScript语言的重要组成部分,PowerBuilder为软件开发人员提供了近800个内置函数[15-16],主要用于完成以下工作:
访问和操作数据,操纵对像的数字或文本,进行计算,字符串处理,数据类型转换,处理日期和时间,文件的输入和输出,生成商务图形,打印数据,与其他窗口的数据通信,处理邮件,Web应用,分布式应用等。
此外,软件开发人员还可以通过建立用户自定义函数来满足某个应用系统的特殊要求。
需要时还可调用Windows的SDK函数和外部DLL函数。
SQL概述 SQLServer2000概述 SQLServer2000是一个大型关系数据库管理系统,它是微软公司推 8
学生选课管理系统 出的新一代数据库产品。
它是微软公司在SQLServer版的基础上经过改进和提高而推出的数据库产品。
它的性能、可靠性、质量以及易用性都比以前的版本大有提高。
它提供了许多提高系统运行性能的新功能,并使数据库的管理工作变得更加轻松容易。
把SQLServer2000作为OLTP、数据仓库以及电子商务应用程序的后台数据库是一个不错的选择。
在SQLServer2000关系数据库中,信息被存放在二维表格结构的表中。
数据库中的表之间可以是相互关联的,表之间的这种关联性是通过主健和外键所体现的参照关系来实现的。
数据库中不仅包括表,还包括其他数据库对象,如:
视图、存储过程、索引等。
SQLServer2000采用了客户/服务器计算模型,即中央服务器用来存放数据库,该服务器可以被多台客户机访问,数据库应用的处理过程分布在客户机和服务器上。
客户/服务器计算模型分为两层的客户/服务器结构。
在两层的客户/服务器系统中,客户机通过网络与运行SQLServer2000实例的服务器相连,客户机用来完成数据表示和大部分业务逻辑的实现,服务器完成数据的存储,这种客户机被称为“胖客户机”。
在多层的客户/服务器系统中,应用至少要经历三个处理层,第一层仍是客户机,但是它只负责数据的表示;第二层是业务逻辑服务器,负责业务逻辑的实现,所有的客户机都可以对它进行访问;第三层是数据库。
这种多层结构中的客户机被称为“瘦客户机”。
Internet应用就是三层结构的一个典型例子。
数据库系统采用客户/服务器结构的好处是,数据集中存储在服务器上,而不是分开存储在客户机上,使所有用户都可以访问到相同的数据。
业务逻辑和安全规则可以在服务器上定义一次,而后被所有的客户使用。
关系数据库服务器仅返回应用程序所需要的数据,这样可以减少网络流量。
节省硬件的开销,因为数据都存储在服务器上,不需在客户机上存储数据,所以客户机硬件不需要具备存储和处理大量的数据能力。
同样,服务器不需要具备数据表示的功能。
于数据集中存储在服务器上,所以备份和恢复起来很容易。
SQL语言介绍 SQL是英文StructuredQueryLanguage的缩写,中文意思是结构化 9 学生选课管理系统 查询语言。
SQL是一种介于关系代数与关系演算之间的结构化查询语言,它是一个通用的、功能极强的关系数据库语言。
SQL虽然名为查询语言,但实际上具有定义、查询、更新和控制等多种功能。
从20世纪70年代末起,在推出的关系数据库系统产品ORACLE、SQL/DS、DB2、SYBASE上都实现了SQL语言。
SQL语言是一种非过程化语言,它一次处理一个记录集合,对数据提供自动导航。
SQL语言允许用户在高层的数据结构上工作,而不对单个记录进行操作。
SQL语言不要求用户指定数据的存取方法,而是使用查询优化器,系统决定对指定数据存取的最快手段。
当设计者在关系表上定义了索引时,系统会自动利用索引进行快速检索,用户不需知道表上是否有索引或者有什么类型的索引等细节。
SQL主要组成分成四个部分:
数据定义、数据操纵、数据控制、制嵌入式SQL的使用规定。
数据定义:
用于定义SQL模式、基本表、视图和索引[13-14]。
数据操纵:
它分为数据查询和数据更新两类。
其中数据更新又分成插入、删除和修改三种操作。
数据控制:
包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。
嵌入式SQL的使用规定:
其内容涉及到SQL语句嵌入在宿主语言程序中使用的规则。
SQL的数据查询 SELECT语句的语法如下:
SELECT目标表的列名或列表达式序列FROM基本表或视图[WHERE行条件表达式][GROUPBY列名序列[HAVING分组条件表达式][ORDERBY列名[ASC|DESC]?
]句法中表示该成分可有,也可无。
整个语句的执行过程如下:
(a)读取FROM子句中基本表、视图的数据,执行笛卡尔积操作。
(b)读取满足WHERE子句中给出的条件表达式的元组。
(c)按GROUP子句中指定的列的值分组,同时提取满足HAVING子句 10 学生选课管理系统 中分组条件表达式的那些分组。
(d)按SELECT子句中给出的列名或列表达式求值输出。
(e)ORDER子句对输出的目标表进行排序,按附加说明ASC升序排列,或按DESC降序排列。
SELECT语句中,WHERE子句称为“行条件子句”,GROUP子句称为“分组子句”,HAVING子句称为“分组条件子句”,ORDER子句称为“排序子句”。
数据插入 数据插入语法如下:
INSERTINTO基本表名VALUES 或者INSERTINTO基本表名,,?
?
) 前一种格式只能插入一个元组,后一种格式可以插入多个元组。
数据删除 SQL的删除操作是指从基本表删除元组,其语法如下:
DELETEFROM基本表[WHERE条件表达式] 其语义是从基本表中删除满足条件表达式的元组。
数据修改 当需要修改基本表中元组的某些列的值时,可以用UPDATE语句实现,其句法如下:
UPDATE基本表 SET列名=值表达式[,列名=值表达式?
][WHERE条件表达式] 其语义是:
修改基本表中满足条件表达式的那些元组中的列值,需要修改的列值在SET子句中指出。
本章小结 11 学生选课管理系统 本章阐述了数据库系统的发展以及数据库的一些基本概念。
本章还详细的介绍了关系数据库的一些基本知识,其中包括数据模型、实体之间的关系以及规范化设计方法。
并且介绍了数据库应用程序的层次结构。
包括单层结构、双层结构以及多层结构。
简单介绍了关系数据库标准语言SQL,并通过图形形象的表述了SQL对关系数据库模型的支持。
12 学生选课管理系统 3系统分析 系统分析 现代的社会是信息化的社会,信息无所不在。
在生产领域、流通领域、各个部门每天都和信息打交道,如何处理如此多的信息成为了一个重要的课题。
学生在学期开始选课是教学活动中的一个重要环节,该环节如果能管理好,它不仅能加快学生的选课速度,也提高了整个教学活动的效率。
大学一般都有上千名学生,每学期开始学生都要选课,因而产生了大量的课程信息。
考虑到用户使用的方便和处理的信息量系统要完成录入,保存,查询,修改和删除课程信息的各种过程,能打印出课程信息表。
所以系统的基本体系结构采用C/S模式。
用户要求 系统的主要使用对象是需要选课的学生。
学生在选课是要察看各个课程的详细信息,还要选择一些感兴趣的课程,需要生成课表,在发现课程有冲突后能够修改先前选择的信息。
需要随学生选课的变化,计算相应的总学分。
在全部选定后,打印报表。
系统还需要管理员来查看和修改学生的总体选课情况,课程信息和学生信息。
业务流程分析 学生选课前要登录系统,查看所有课程的详细信息,包括课程代号、授课教师、教室、上课时间、学分、剩余名额等。
根据课程代号,学生可以查询相应的课程,并添加课程。
查看课表,并能发现是否存在冲突课程,如果存在,可以删除该课程,并重新选择。
打印课表,包含详细的课程信息。
最后,选课完毕。
学生选课的数据基本流程如图3-1所示:
图3-1学生选课流程13
学生选课管理系统 系统实体E-R图分析 经过上述系统功能分析和需求总结,设计如下所示的实体和属性的定义:
课程信息(课程代号,课程名称,授课教师,教室,剩余名额,上课 时间,学分) 学生信息(学号,姓名,性别,班级,出生年月日,是否已选课)学生登录信息(学号,用户名,密码,权限代号)学生选课信息(学号,课程代号,学期,课程成绩)用户权限(权限名称,权限代号)。
本系统根据上面的设计规划出的实体有:
课程信息实体,学生信息实体,学生登录信息实体,学生选课信息实体,用户权限实体。
实体之间关系的E-R图如图3-2所示。
图3-2系统E-R图 课程信息实体E-R图,如图3-3所示:
图3-3课程信息实体E-R图 14 学生选课管理系统 学生选课实体E-R图,如图3-4所示:
图3-4学生选课实体图 学生信息实体E-R图,如图3-5所示:
图3-5学生信息实体图 登录信息实体E-R图,如图3-6所示:
图3-6登录信息实体图 用户权限实体E-R图,如图3-7所示:
图3-7用户权限实体图 本章小结 学生选课系统主要是为学生选课的管理提供全面、准确、科学的管理方法,方便快捷地处理选课的管理信息;避免了信息处理错误,提高了信息管理的工作效率,大大地节省人力和物力的开支。
本章主要阐述了系统的业务流程,根据业务流程画出绘制出了E-R图。
15 学生选课管理系统 4系统实现 创建一个工作空间和应用程序对象 创建一个工作空间student,目标student和应用stu,在