《学生选课系统课程设计报告(共37页).doc》由会员分享,可在线阅读,更多相关《学生选课系统课程设计报告(共37页).doc(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上学生选课管理系统摘 要随着社会的发展,学生的人数和课程的种类急速增加,传统的选课管理模式已经无法满足当前的实际需求,为此,我们开发了学生选课管理系统。本人结合学生选课管理的实际需要,完成了对学生选课管理系统的需求分析、功能模块划分、数据库模式分析等,并由此设计了后台数据库以及前台应用程序。文中首先对课题背景,数据库基础理论和SQL语言进行了简单的讨论;接着,对系统前台开发工具PowerBuilder9.0,学生选课管理系统进行了详细分析,划分了具体的功能模块;最后,给出了学生选课系统应用程序的设计过程,以及每个功能模块的核心代码。系统可以实现学生选课的一些重要功能,如
2、:课程的添加、删除,信息查询、选课、生成课表,以及学生选课管理人员、用户个人信息的维护等。关键词 管理系统;数据库;PowerBuilder9.0;SQL Server 2000Select Course Management System of Students ABSTRECTWith the development of society, not only the students number but also the kinds of course increased rapidly, the traditional management mode has been unable t
3、o adapt to actual need, so we develop the select course management system of students.According to the actual need of select course, I analyzed the demand, divided function nodule, analyzed database mode of the system. Then, I designed database of backstage and application program of stage.Firstly,
4、I simply discussed the background of this subject and the basic theory of the database and SQL language in the article. Then I analyzed the development toolPowerBuilder9.0,analyzed in detail to system and divided the concrete function module. Finally, I provided the design process of the system and
5、the key code of each function nodule.The system accomplished some important functions of management system of books, such as: courses input, output, information inquiry, select courses, create table of course, modify information of the administrators and students, etc.KEY WORDS Management System,Dat
6、abase, PowerBuilder9.0, SQL 目录专心-专注-专业1 绪论数据库是数据管理的最新技术,是计算机科学的重要分支。今天,信息资源已成为各个部门的重要财富和资源。建立一个满足各级部门信息处理要求的行之有效的信息系统也成为一个企业或组织生存和发展的重要条件。因此,作为信息系统核心和基础的数据库技术得到越来越广泛的应用。从小型单项事务处理系统到大型信息系统,从联机事务处理到联机分析处理,从一般企业管理到计算机辅助设计与制造 (CAD/CAM)、计算机集成制造系统(CIMS)、办公信息系统 (OIS)等,越来越多新的应用领域采用数据库存储和处理他们的信息资源。1.1 课题的背景当
7、今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最到好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好学生选课信息而设计的。学生选课作为一种信息资源的集散地,包含很多的信息数据的管理。 由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的学校有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突
8、出,这就是管理信息系统的开发基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。造成了时间上的浪费基于这个问题,我认为有必要建立一个学生选课系统,使学生选课信息管理工作规范化、系统化、程序化,避免学生选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。1.2 课题的设计本文就学生选课系统的设计与制作展开分析。学生选课系统主要应用数据库技术开发,先从数据库的基本知识开始介绍, 数据库的基本概念、数据库的发展、数据库的结构,还介绍了开发工具PowerBuilder9.0和SQL语言。我主要是应用PowerBuilder9.0为前端开发工具,利用SQL
9、语言实现数据查询。设计系统时,先从系统的数据流程开始分析,设计系统的业务流程图、系统的数据流程图、系统的E-R图。根据开题报告的设计要求开始进入系统的总体设计,接着制定系统的设计思想,分析系统的功能并设计系统的功能模块,这些都是系统制作前的准备工作;准备工作完成后,开始系统数据库的建立,主要有各个功能窗口的设计,将设计好的窗口集中到主菜单上,通过用户的用户名和密码的登录可以进入到主窗口,这样就完成系统的制作。最后,对系统进行调试,性能分析。1.3 本文的结构第2章,简单介绍了相关的基础知识(如:数据库的基本概念、数据库的类型、数据库的结构、开发工具等),为系统的设计进行知识储备。第3章,详细介
10、绍了系统分析与设计。第4章,介绍了系统的制作过程,如:建立数据库、设计制作窗口等。第5章,对系统进行运行、调试,对系统性能分析和评价。2 相关知识基础2.1 数据库的基础知识2.1.1 数据库系统的发展数据库系统是在文件系统的基础之上发展而来的,经历了层次数据库、网状数据库和关系数据库三个阶段。由于关系型数据库采用人们比较容易理解和接受的二维表格来组织数据,发展迅速,已成为数据库产品的主流。这里介绍的数据库知识都是指的关系数据库。数据库架构如图2-1 所示。图2-1 数据库应用的架构2.1.2 基本概念数据库(DataBase,简称DB)是按一定组织方式存储在计算机存储器中、相互关联的数据集合
11、,数据库的建立独立于程序。所谓关系数据库就是将数据表示为表的集合,通过建立简单表之间的关系来定义结构的一种数据库。数据库管理系统(DBMS)是一个管理数据库的软件系统,为用户提供了描述数据库、操纵数据库和维护数据库的方法和命令,并且能自动控制数据库的安全以及数据完整。常见数据库管理系统有:Oracle、Sybase、Microsoft SQL Server、Microsoft Access、Microsoft FoxPro、IBM DB2等。数据库系统(DBS)是一个具有管理数据库功能的计算机系统,它包括应用软件、数据库(DB)、数据库管理系统(DBMS)和数据库管理人员(DBA)几部分。图2
12、-1直观地表示了数据库应用的架够。数据库管理人员(DBA)一般是针对大型的数据库应用而言的,主要负责数据库的日常运行和维护,如数据库备份等工作。2.1.3 数据库及数的研究领域数据库学科的研究范围十分广泛的,概括地讲可以包括以下三个领域:(1)数据库管理系统软件的研制DBMS3是数据库系统的基础。DBMS的研制包括DBMS本身及以DBMS为核心的一组相互联系的软件系统,包括工具软件和中间件。研制的目标是提高系统的可用性、可靠性、可伸缩性;提高性能和提高用户的生产率。DBMS核心技术的研究和实现是三十余年来数据库领域所取得的主要成就。DBMS是一个基础软件系统,它提供了对数据库中的数据进行存储、
13、检索和管理的功能。(2)数据库设计数据库设计的主要任务是DBMS的支持下,按照应用的要求,为某一部门或组织设计一个结构合理、使用方便、效率较高的数据库及其应用系统。其中主要的研究方向是数据库设计方法学和设计工具,包括数据库设计方法、设计工具和设计理论的研究,数据建模和数据建模的研究,计算机辅助数据库设计方法及其软件系统的研究。数据库设计规范和标准的研究等。(3)数据库理论数据库理论的研究主要集中于关系的规范化理论、关系数据理论等。近年来,随着人工智能与数据库理论的结合、并行计算技术等的发展,数据库逻辑演绎和知识推理、数据库中的知识发现(Knowledge Discovery from Data
14、base,简称KDD4)、并行算法等成为新的理论研究方向。计算机领域中其他新兴技术的发展对数据库技术产生了重大影响。数据库技术和其他计算机技术的互相结合、互相渗透,使数据库中新的技术内容层出不穷。数据库的许多概念、技术内容、应用领域,甚至某些原理都有了重大的发展和变化。建立和实现了一系列新型数据库系统,如分布式数据库系统、并行数据库系统、知识库系统、多媒体数据库系统等。它们共同构成了数据库系统大家族,使数据库技术不断地涌现新的研究方向。2.2 关系型数据库关系数据库由表组成。一个关系是由一个二维表来定义的:表的行保存事物的一组属性数据,表的列定义了事物的属性。以下是关系型数据库系统5的一些特点
15、:几乎当今所有的关系型数据库系统都采用SQL语言来操纵数据库中的数据。SQL语言是在20世纪70年代由IBM发展起来的,后来成为工业标准。最重要的是必须保证数据的完整性。否则,存储在数据库中的数据就是毫无价值的。关系型数据库系统包括许多特性,目的是阻止不符和要求的数据进入数据库。关系型数据库系统被设计为一个便于修改的系统,因为商业需求几乎每天都在变化。在文件系统阶段,相同的数据常常重复出现在许多记录中,而关系型数据库系统则会排除大多数的冗余数据。这就减少了对存储空间的需求,加快了数据访问的速度。应用程序可以通过多级的安全检查来限制对数据的访问。2.2.1 数据模型模型是现实世界特征的模拟和抽象
16、。数据模型(Data Modal6)是对现实世界中数据特征的抽象。存在于人们头脑之外的客观世界,称为现实世界。数据库系统中保存的数据实际上是对现实世界的一种描述,它是采用数据模型对现实世界进行描述的。数据模型是数据库系统中用于提供信息表示和操作手段的形式框架,是数据库系统的核心和基础。数据模型分为两种,一种是概念数据模型,它是用来描述现实世界中数据及数据之间关系的模型,跟计算机没有关系。这种模型主要描述高层次的概念,按照用户的观点对数据和信息进行建模,把现实世界中的客观对象抽象为某种信息结构,如被描述对象的意义、相互关系等。另外一种就是实体数据模型,它是用来描述信息世界中数据及数据之间的关系及
17、存储、处理特征的模型,主要包括层次模型、网状模型、关系模型,它是按照计算机的观点对数据建模,主要用于DBMS的实现。在信息世界中,把客观存在并可相互区别的事物称为实体(Entity7),同型实体的集合称为实体集(Entity Set),实体所具有的某一特性称为属性(Attribute)。2.2.2 实体之间的联系在现实世界中,各种事物之间往往有着各种各样的联系,这种联系必然在信息世界中有所反映。实体之间的联系可以分为两类,一类是实体内部的联系,如组成实体的属性之间的联系,这种联系往往比较容易理解。另外一种联系就是实体之间的联系,如学生和班级之间的联系:一个学生属于某一个班级,而另一个班级有多个
18、学生。实体完整性规则规定基本关系的所有主属性都不能去空值,而不仅是主码整体不能取空值。对于实体完整性规则说明如下:1实体完整性规则是针对基本关系而言的,一个基本表通常对应现实界的一个实体集。例如学生关系对应于学生的集合。2现实世界中的实体是可区分的,即它们具有某种唯一性标识。3相应地,关系模型中以主码作为唯一性标识。4主码中的属性即主属性不能取空值。所谓空值就是“不知道”或“无意义”的值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第2点相矛盾,因此这个规则称为实体完整性。2.2.3 规范化设计方法构造数据库时,必须遵循一定的规则。在关系数据库中,这种规则就是范式
19、(Normal Form)。或者说,满足一定条件的关系模式,称为范式。在1971年至1972年,EFCodd系统地提出了第一范式(1NF)、第二范式(2NF)和第三范式(3NF)的概念。1974年Codd和Boyce共同提出BCNF范式,为第三范式的改进。关系数据库中的关系必须满足一定的要求,即需要满足不同的范式。目前除了前面提到的三种范式,还有第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。2.3 PowerBuilder9.0开发工具简介PowerBuilder9.0是Sybase公司2003年推出的新一代4GL Plus数据库开发工具,它不仅继承了以往版本的各种先进技术,而且
20、适应目前开放试软件的发展潮流,在快速集成开发环境中增加了构建Web Service、JSP Web、EJB的功能,满足了在4GL RAD环境中创建完整应用和应用组件的需求,并使企业应用可以平滑过度到基于浏览器和Web的应用模式下。同时,PowerBuilder9.0卓越的应用开发效率及强大的Web功能为新版本增色不少。完整的应用系统有工作空间、目标、应用对象。窗口上的菜单对象。数据窗口对象和控件对象,以及这些对象的事件处理程序构成。 (1)工作空间和目标在以前的版本中,程序员一次只能开发一个应用程序,这样使得应用程序无法取得多个可用的组件信息,因此在构件复杂应用时会大大增加难度。PowerBu
21、ilder9.0提供了Workspace功能,这让开发人员同时在多个应用或组件上进行开发,同时PowerBuilder9.0用Target来描述加到Workspace中的应用或组件。11 PowerBuilder中存在三类Target是:Window 客户、EAServer组件和Web站点。在PowerBuilder中,只有打开Workspace才能更有效地工作,开发者可以在Workspace中定义一个新的Target或者加入一个已经存在的Target。因此,Workspace 已经变成了PowerBuilder中所有活动的中心。 (2)窗口、控件、事件和程序在PowerBuilder中,窗口
22、(Window)是主要的用户界面,软件开发人员往往把各种控制功能(如录入、查询、打印、统计等)做成按扭或其它控件放在窗口上有用户选择。应用对象、窗口对象、菜单对象,窗口上的数据窗口控件和其他控件对象都对应着若干个可能发生的事件12-13,如应用对象和窗口对象上有Open (打开),Close(关闭)等事件,菜单项上有Clicked(鼠标左键单击或按回车键)等事件,窗口上的控件有Clicked、Double Clicked(用鼠标左键双击)Getfocus(得到焦点),Edit Changed(数据被修改)等事件14。PowerBuilder的程序是嵌套在事件中的,也就是说由事件驱动的,一旦用户
23、选定了控件也就触发了某个事件。软件开发人员只需为各个控件的事件编写事件处理程序,指定该事件被触发时要进行的处理,应用系统就这样构造出来了。事件处理程序用PowerBuilder的专用语言PowerScript语言编写。PowerScript语言是一种高水准。面向对象的语言,提供了丰富的内置函数供软件开发人员使用。事件处理程序有PowerScript语句和函数组成,来响应被触发的事件并做相应的处理。例如,菜单项上有Clicked事件此事件的处理程序可能是打开另一个窗口,用户用鼠标左键单击此菜单时,Clicked事件被触发,指定的窗口被打开。又如窗口上有一个数据窗口和一些按扭,按扭上的文字为“录入
24、”、“删除”、“存盘”等,这些按扭的功能分别为数据窗口中插入一行,删除一行,将结果修改存盘,我们只需为这些按扭的Clicked事件编写相应的程序完成这些功能。 (3)函数函数是PowerScript语言的重要组成部分,PowerBuilder为软件开发人员提供了近800个内置函数15-16,主要用于完成以下工作:访问和操作数据,操纵对像的数字或文本,进行计算,字符串处理,数据类型转换,处理日期和时间,文本文件的输入和输出,生成商务图形,打印数据,与其他窗口的数据通信,处理邮件,Web应用,分布式应用等。此外,软件开发人员还可以通过建立用户自定义函数来满足某个应用系统的特殊要求。需要时还可调用W
25、indows的SDK函数和外部DLL函数。2.4 SQL概述2.4.1 SQL Server 2000概述SQL Server 2000是一个大型关系数据库管理系统,它是微软公司推出的新一代数据库产品。它是微软公司在SQL Server 7.0版的基础上经过改进和提高而推出的数据库产品。它的性能、可靠性、质量以及易用性都比以前的版本大有提高。它提供了许多提高系统运行性能的新功能,并使数据库的管理工作变得更加轻松容易。把SQL Server 2000作为OLTP 、数据仓库以及电子商务应用程序的后台数据库是一个不错的选择。在SQL Server 2000关系数据库中,信息被存放在二维表格结构的表
26、(TABLE)中。数据库中的表之间可以是相互关联的,表之间的这种关联性是通过主健和外键所体现的参照关系来实现的。数据库中不仅包括表,还包括其他数据库对象,如:视图、存储过程、索引等。SQL Server 2000 采用了客户/服务器计算模型,即中央服务器用来存放数据库,该服务器可以被多台客户机访问,数据库应用的处理过程分布在客户机和服务器上。客户/服务器计算模型分为两层的客户/服务器结构。在两层的客户/服务器系统中,客户机通过网络与运行SQL Server 2000实例的服务器相连,客户机用来完成数据表示和大部分业务逻辑的实现,服务器完成数据的存储,这种客户机被称为“胖客户机”(thick c
27、lient)。在多层的客户/服务器系统中,应用至少要经历三个处理层,第一层仍是客户机,但是它只负责数据的表示;第二层是业务逻辑服务器,负责业务逻辑的实现,所有的客户机都可以对它进行访问;第三层是数据库。这种多层结构中的客户机被称为“瘦客户机”(thin client)。Internet应用就是三层结构的一个典型例子。数据库系统采用客户/服务器结构的好处是,数据集中存储在服务器上,而不是分开存储在客户机上,使所有用户都可以访问到相同的数据。业务逻辑和安全规则可以在服务器上定义一次,而后被所有的客户使用。关系数据库服务器仅返回应用程序所需要的数据,这样可以减少网络流量。节省硬件的开销,因为数据都存
28、储在服务器上,不需在客户机上存储数据,所以客户机硬件不需要具备存储和处理大量的数据能力。同样,服务器不需要具备数据表示的功能。由于数据集中存储在服务器上,所以备份和恢复起来很容易。2.4.2 SQL 语言介绍SQL是英文Structured Query Language的缩写,中文意思是结构化查询语言。SQL是一种介于关系代数与关系演算之间的结构化查询语言,它是一个通用的、功能极强的关系数据库语言。SQL虽然名为查询语言,但实际上具有定义、查询、更新和控制等多种功能。从20世纪70年代末起,在推出的关系数据库系统产品ORACLE、SQL/DS、DB2、SYBASE上都实现了SQL语言。SQL语
29、言是一种非过程化语言,它一次处理一个记录集合,对数据提供自动导航。SQL语言允许用户在高层的数据结构上工作,而不对单个记录进行操作。SQL语言不要求用户指定数据的存取方法,而是使用查询优化器,由系统决定对指定数据存取的最快手段。当设计者在关系表上定义了索引时,系统会自动利用索引进行快速检索,用户不需知道表上是否有索引或者有什么类型的索引等细节。SQL主要组成分成四个部分:数据定义、数据操纵、数据控制、制嵌入式SQL的使用规定。数据定义(DDL):用于定义SQL模式、基本表、视图和索引13-14。数据操纵(DML):它分为数据查询和数据更新两类。其中数据更新又分成插入、删除和修改三种操作。数据控
30、制(DCL):包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。嵌入式SQL的使用规定:其内容涉及到SQL语句嵌入在宿主语言程序中使用的规则。(1)SQL的数据查询SELECT语句的语法如下:SELECT目标表的列名或列表达式序列FROM 基本表或视图WHERE行条件表达式GROUP BY列名序列HAVING分组条件表达式ORDER BY列名ASC|DESC句法中表示该成分可有,也可无。整个语句的执行过程如下:(a)读取FROM子句中基本表、视图的数据,执行笛卡尔积操作。(b)读取满足WHERE子句中给出的条件表达式的元组。(c)按GROUP子句中指定的列的值分组,同时提取满足HAV
31、ING子句中分组条件表达式的那些分组。(d)按SELECT子句中给出的列名或列表达式求值输出。(e)ORDER子句对输出的目标表进行排序,按附加说明ASC升序排列,或按DESC降序排列。SELECT语句中,WHERE子句称为“行条件子句”,GROUP子句称为“分组子句”,HAVING子句称为“分组条件子句”,ORDER子句称为“排序子句”。(2)数据插入数据插入语法如下:INSERTINTO基本表名(列名表)VALUES(元组值)或者INSERTINTO基本表名(列名表)(table(元组值),(元组值),)前一种格式只能插入一个元组,后一种格式可以插入多个元组。(3)数据删除SQL的删除操作
32、是指从基本表删除元组,其语法如下:DELETEFROM基本表WHERE条件表达式其语义是从基本表中删除满足条件表达式的元组。(4)数据修改当需要修改基本表中元组的某些列的值时,可以用UPDATE语句实现,其句法如下:UPDATE基本表SET列名值表达式,列名值表达式WHERE条件表达式其语义是:修改基本表中满足条件表达式的那些元组中的列值,需要修改的列值在SET子句中指出。2.5 本章小结本章阐述了数据库系统的发展以及数据库的一些基本概念。本章还详细的介绍了关系数据库的一些基本知识,其中包括数据模型、实体之间的关系以及规范化设计方法。并且介绍了数据库应用程序的层次结构。包括单层结构、双层结构以
33、及多层结构。简单介绍了关系数据库标准语言SQL,并通过图形形象的表述了SQL对关系数据库模型的支持。3 系统分析3.1 系统分析现代的社会是信息化的社会,信息无所不在。在生产领域、流通领域、各个部门每天都和信息打交道,如何处理如此多的信息成为了一个重要的课题。学生在学期开始选课是教学活动中的一个重要环节,该环节如果能管理好,它不仅能加快学生的选课速度,也提高了整个教学活动的效率。 大学一般都有上千名学生,每学期开始学生都要选课,因而产生了大量的课程信息。考虑到用户使用的方便和处理的信息量系统要完成录入,保存,查询,修改和删除课程信息的各种过程,能打印出课程信息表。所以系统的基本体系结构采用C/
34、S模式。3.1.1 用户要求系统的主要使用对象是需要选课的学生。学生在选课是要察看各个课程的详细信息,还要选择一些感兴趣的课程,需要生成课表,在发现课程有冲突后能够修改先前选择的信息。需要随学生选课的变化,计算相应的总学分。在全部选定后,打印报表。系统还需要管理员来查看和修改学生的总体选课情况,课程信息和学生信息。3.1.2 业务流程分析学生选课前要登录系统,查看所有课程的详细信息,包括课程代号、授课教师、教室、上课时间、学分、剩余名额等。根据课程代号,学生可以查询相应的课程,并添加课程。查看课表,并能发现是否存在冲突课程,如果存在,可以删除该课程,并重新选择。打印课表,包含详细的课程信息。最
35、后,选课完毕。学生选课的数据基本流程如图3-1所示:图3-1 学生选课流程3.1.3 系统实体E-R图分析经过上述系统功能分析和需求总结,设计如下所示的实体和属性的定义:课程信息(课程代号,课程名称,授课教师,教室,剩余名额,上课时间,学分)学生信息(学号,姓名,性别,班级,出生年月日,是否已选课)学生登录信息(学号,用户名,密码,权限代号)学生选课信息(学号,课程代号,学期,课程成绩)用户权限(权限名称,权限代号)。本系统根据上面的设计规划出的实体有:课程信息实体,学生信息实体,学生登录信息实体,学生选课信息实体,用户权限实体。实体之间关系的E-R图如图3-2所示。图3-2系统E-R图课程信
36、息实体E-R图,如图3-3所示:图3-3课程信息实体E-R图学生选课实体E-R图,如图3-4所示:图3-4 学生选课实体图学生信息实体E-R图,如图3-5所示:图3-5 学生信息实体图登录信息实体E-R图,如图3-6所示:图3-6 登录信息实体图用户权限实体E-R图,如图3-7所示:图3-7 用户权限实体图3.2本章小结学生选课系统主要是为学生选课的管理提供全面、准确、科学的管理方法,方便快捷地处理选课的管理信息;避免了信息处理错误,提高了信息管理的工作效率,大大地节省人力和物力的开支。本章主要阐述了系统的业务流程,根据业务流程画出绘制出了E-R图。4 系统实现4.1 创建一个工作空间和应用程
37、序对象创建一个工作空间(WorkSpace)student,目标(Target)student和应用(Application)stu,在应用的open 事件中写入如下的语句进行应用与数据库的连接。/ Profile stu_selectSQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = ConnectString=DSN=stu_select;UID=;PWD=connect;4.2创建数据库表为了保存学生信息、课程信息、学生选课信息、登录信息、用户权限信息,数据库设计了学生信息表,课程信息表,学生选课信息表,登录信息表和用户权限信息
38、表。这些表使得用户对数据的增删改变得非常方便,数据的冗余不是十分明显。数据库中的学生信息表结构如表4-1所示:表4-1 学生信息表(stu_inform)字段名数据类型长度范围是否为空字段说明学号Char8否姓名Nvarchar是性别Char2是班级Nvarchar是出生年月日datetime是是否已选课char是数据库中的课程信息表结构如表4-2所示:表4-2 课程信息表(course_inform)字段名数据类型长度范围是否为空字段说明课程代号Char10否课程名称Nvarchar是授课教师Nvarchar是教师Nvarchar是剩余名额Char 3是上课时间Char20是学分Int是数据
39、库中的学生选课信息表如表4-3所示:表4-3学生选课信息表(stu_select)字段名数据类型长度范围是否为空字段说明学号Char8否课程代号Char10否学期Char6是课程成绩Int是数据库中的登录信息如表4-4所示:表4-4登录信息表(stu_login)字段名数据类型长度范围是否为空字段说明学号Char8否用户名Nvarchar是密码Nvarchar是权限代号Char3是数据库中的权限信息如表4-5所示:表4-5权限信息表(user_gl)字段名数据类型长度范围是否为空字段说明权限名称Char10是权限代号Char3否4.3创建主窗口 通过主窗口可以实现信息查询,选择课程,修改选课打
40、印课表等功能。其主要实现窗口如下图4-1所示:图4-1 主窗口4.4 创建主菜单创建主菜单主要是方便各种功能的实现,从而实现更好的完成学生选课,查看课程信息等功能。如图4-2所示:图4-2 主菜单在“课程查询”菜单项的clicked事件中编写代码:open(w_course_select)在“选课”菜单项的click事件中编写代码:open(w_course_add)在“生成课表”菜单项的click事件中编写代码:open(w_course_table)4.5系统管理模块的实现4.5.1创建课程查询窗口 在主菜单窗口单击“课程查询”即可打开此窗口,使用者可以在此窗口实现对课程的查询。下图4-3
41、为“课程查询窗口”的主界面。图4-3 课程查询窗口其中一些主要程序代码如下:(1)open事件代码dw_1.settransobject(sqlca)dw_1.retrieve()(2)“查找”按钮的click事件代码dw_1.setfilter()if sle_1.text= or sle_1.text =请在此输入查询内容 thenmessagebox(错误!,请输入查询内容!)sle_1.event getfocus( )elseif rb_1.checked=true then/精确查找choose case ddlb_1.textcase 课程代号dw_1.setfilter(课程代
42、号=+sle_1.text+)case 课程名称dw_1.setfilter(课程名称=+sle_1.text+)case 授课教师dw_1.setfilter(授课教师=+sle_1.text+)case 上课时间dw_1.setfilter(上课时间=+sle_1.text+)end chooseelse/模糊查询choose case ddlb_1.textcase 课程代号dw_1.setfilter(课程代号 like+%+sle_1.text+%)case 课程名称dw_1.setfilter(课程名称 like+%+sle_1.text+%)case 授课教师dw_1.setfi
43、lter(授课教师 like+%+sle_1.text+%)case 上课时间dw_1.setfilter(上课时间 like+%+sle_1.text+%)end chooseend ifend if /检索数据dw_1.retrieve()(3)“选课”按钮click事件代码open(w_course_add)(4)“查看课表”按钮click事件代码open(w_course_table)4.5.2 创建添加选课窗口单击主窗口的“选课”即可打开此窗口界面,在此界面可以实现对课程信息的选择查看,可以根据课程代号查询相应课程的详细信息,选择此课程,并计算选课门数和课程总学分。下图4-2为“添加
44、选课窗口”的主界面。图4-4 添加选课窗口其中一些主要程序代码如下:(1)open事件代码dw_1.settransobject(sqlca)dw_2.settransobject(sqlca)string user_name, student_no/检索用户的学号 SELECT stu_login.学号, stu_login.用户名 INTO :student_no, :user_name FROM stu_login WHERE stu_login.用户名 = :login_name ; /根据学号查询用户的详细信息dw_2.setfilter()dw_2.setfilter( stu_s
45、elect_学号=+student_no+)dw_2.retrieve()/显示学生选择课程数,和其学分总数real scoreint m,nm=dw_2.rowcount()score=0.0for n=1 to mscore=score+real(dw_2.object.course_inform_学分n)nextst_3.text=string(m)st_6.text=string(score)(2)查找事件代码如下:if sle_1.text= thenmessagebox(错误!,请输入查询课程的代码)sle_1.event getfocus( )elsedw_1.setfilter()dw_1.setfilter(课程代号=+sle_1.text+)dw_1.retrieve()cb_1.default=falsecb_2