下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 学生选课系统课程设计报告

学生选课系统课程设计报告.doc

学生选课系统课程设计报告

lulla
2011-10-09 0人阅读 举报 0 0 暂无简介

简介:本文档为《学生选课系统课程设计报告doc》,可适用于高等教育领域

学生选课管理系统学生选课管理系统摘要随着社会的发展学生的人数和课程的种类急速增加传统的选课管理模式已经无法满足当前的实际需求为此我们开发了学生选课管理系统。本人结合学生选课管理的实际需要完成了对学生选课管理系统的需求分析、功能模块划分、数据库模式分析等并由此设计了后台数据库以及前台应用程序。文中首先对课题背景数据库基础理论和SQL语言进行了简单的讨论接着对系统前台开发工具PowerBuilder,学生选课管理系统进行了详细分析划分了具体的功能模块最后给出了学生选课系统应用程序的设计过程以及每个功能模块的核心代码。系统可以实现学生选课的一些重要功能如:课程的添加、删除信息查询、选课、生成课表以及学生选课管理人员、用户个人信息的维护等。关键词管理系统数据库PowerBuilderSQLServerSelectCourseManagementSystemofStudentsABSTRECTWiththedevelopmentofsociety,notonlythestudent’snumberbutalsothekindsofcourseincreasedrapidly,thetraditionalmanagementmodehasbeenunabletoadapttoactualneed,sowedeveloptheselectcoursemanagementsystemofstudentsAccordingtotheactualneedofselectcourse,Ianalyzedthedemand,dividedfunctionnodule,analyzeddatabasemodeofthesystemThen,IdesigneddatabaseofbackstageandapplicationprogramofstageFirstly,IsimplydiscussedthebackgroundofthissubjectandthebasictheoryofthedatabaseandSQLlanguageinthearticleThenIanalyzedthedevelopmenttoolPowerBuilder,analyzedindetailtosystemanddividedtheconcretefunctionmoduleFinally,IprovidedthedesignprocessofthesystemandthekeycodeofeachfunctionnoduleThesystemaccomplishedsomeimportantfunctionsofmanagementsystemofbooks,suchas:course’sinput,output,informationinquiry,selectcourses,createtableofcourse,modifyinformationoftheadministratorsandstudents,etcKEYWORDSManagementSystem,Database,PowerBuilder,SQL目录TOCo""hzu摘要IABSTRECTII绪论课题的背景课题的设计本文的结构相关知识基础数据库的基础知识关系型数据库PowerBuilder开发工具简介SQL概述本章小结系统分析系统分析用户要求业务流程分析系统实体ER图分析本章小结系统实现创建一个工作空间和应用程序对象创建数据库表创建主窗口创建主菜单系统管理模块的实现创建课程查询窗口创建添加选课窗口创建生成课表窗口创建个人信息窗口生成课表窗口的设计创建登录窗口splash界面的实现结束语致谢参考文献绪论数据库是数据管理的最新技术是计算机科学的重要分支。今天信息资源已成为各个部门的重要财富和资源。建立一个满足各级部门信息处理要求的行之有效的信息系统也成为一个企业或组织生存和发展的重要条件。因此作为信息系统核心和基础的数据库技术得到越来越广泛的应用。从小型单项事务处理系统到大型信息系统从联机事务处理到联机分析处理从一般企业管理到计算机辅助设计与制造(CADCAM)、计算机集成制造系统(CIMS)、办公信息系统(OIS)等越来越多新的应用领域采用数据库存储和处理他们的信息资源。课题的背景当今时代是飞速发展的信息时代。在各行各业中离不开信息处理这正是计算机被广泛应用于信息管理系统的环境。计算机的最到好处在于利用它能够进行信息管理。使用计算机进行信息控制不仅提高了工作效率而且大大的提高了其安全性。尤其对于复杂的信息管理计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关系统的开发是系统管理的前提。本系统就是为了管理好学生选课信息而设计的。学生选课作为一种信息资源的集散地包含很多的信息数据的管理。由于数据繁多容易丢失且不易查找。总的来说缺乏系统规范的信息管理手段。尽管有的学校有计算机但是尚未用于信息管理没有发挥它的效力资源闲置比较突出这就是管理信息系统的开发基本环境。数据处理手工操作工作量大出错率高出错后不易更改。造成了时间上的浪费基于这个问题我认为有必要建立一个学生选课系统使学生选课信息管理工作规范化、系统化、程序化避免学生选课管理的随意性提高信息处理的速度和准确性能够及时、准确、有效的查询和修改选课情况。课题的设计本文就学生选课系统的设计与制作展开分析。学生选课系统主要应用数据库技术开发先从数据库的基本知识开始介绍数据库的基本概念、数据库的发展、数据库的结构还介绍了开发工具PowerBuilder和SQL语言。我主要是应用PowerBuilder为前端开发工具利用SQL语言实现数据查询。设计系统时先从系统的数据流程开始分析设计系统的业务流程图、系统的数据流程图、系统的ER图。根据开题报告的设计要求开始进入系统的总体设计接着制定系统的设计思想分析系统的功能并设计系统的功能模块这些都是系统制作前的准备工作准备工作完成后开始系统数据库的建立主要有各个功能窗口的设计将设计好的窗口集中到主菜单上通过用户的用户名和密码的登录可以进入到主窗口这样就完成系统的制作。最后对系统进行调试性能分析。本文的结构第章简单介绍了相关的基础知识(如:数据库的基本概念、数据库的类型、数据库的结构、开发工具等)为系统的设计进行知识储备。第章详细介绍了系统分析与设计。第章介绍了系统的制作过程如:建立数据库、设计制作窗口等。第章对系统进行运行、调试对系统性能分析和评价。相关知识基础数据库的基础知识数据库系统的发展数据库系统是在文件系统的基础之上发展而来的经历了层次数据库、网状数据库和关系数据库三个阶段。由于关系型数据库采用人们比较容易理解和接受的二维表格来组织数据发展迅速已成为数据库产品的主流。这里介绍的数据库知识都是指的关系数据库。数据库架构如图所示。图数据库应用的架构基本概念数据库(DataBase简称DB)是按一定组织方式存储在计算机存储器中、相互关联的数据集合数据库的建立独立于程序。所谓关系数据库就是将数据表示为表的集合通过建立简单表之间的关系来定义结构的一种数据库。数据库管理系统(DBMS)是一个管理数据库的软件系统为用户提供了描述数据库、操纵数据库和维护数据库的方法和命令并且能自动控制数据库的安全以及数据完整。常见数据库管理系统有:Oracle、Sybase、MicrosoftSQLServer、MicrosoftAccess、MicrosoftFoxPro、IBMDB等。数据库系统(DBS)是一个具有管理数据库功能的计算机系统它包括应用软件、数据库(DB)、数据库管理系统(DBMS)和数据库管理人员(DBA)几部分。图直观地表示了数据库应用的架够。数据库管理人员(DBA)一般是针对大型的数据库应用而言的主要负责数据库的日常运行和维护如数据库备份等工作。数据库及数的研究领域数据库学科的研究范围十分广泛的概括地讲可以包括以下三个领域:()数据库管理系统软件的研制DBMS是数据库系统的基础。DBMS的研制包括DBMS本身及以DBMS为核心的一组相互联系的软件系统包括工具软件和中间件。研制的目标是提高系统的可用性、可靠性、可伸缩性提高性能和提高用户的生产率。DBMS核心技术的研究和实现是三十余年来数据库领域所取得的主要成就。DBMS是一个基础软件系统它提供了对数据库中的数据进行存储、检索和管理的功能。()数据库设计数据库设计的主要任务是DBMS的支持下按照应用的要求为某一部门或组织设计一个结构合理、使用方便、效率较高的数据库及其应用系统。其中主要的研究方向是数据库设计方法学和设计工具包括数据库设计方法、设计工具和设计理论的研究数据建模和数据建模的研究计算机辅助数据库设计方法及其软件系统的研究。数据库设计规范和标准的研究等。()数据库理论数据库理论的研究主要集中于关系的规范化理论、关系数据理论等。近年来随着人工智能与数据库理论的结合、并行计算技术等的发展数据库逻辑演绎和知识推理、数据库中的知识发现(KnowledgeDiscoveryfromDatabase简称KDD)、并行算法等成为新的理论研究方向。计算机领域中其他新兴技术的发展对数据库技术产生了重大影响。数据库技术和其他计算机技术的互相结合、互相渗透使数据库中新的技术内容层出不穷。数据库的许多概念、技术内容、应用领域甚至某些原理都有了重大的发展和变化。建立和实现了一系列新型数据库系统如分布式数据库系统、并行数据库系统、知识库系统、多媒体数据库系统等。它们共同构成了数据库系统大家族使数据库技术不断地涌现新的研究方向。关系型数据库关系数据库由表组成。一个关系是由一个二维表来定义的:表的行保存事物的一组属性数据表的列定义了事物的属性。以下是关系型数据库系统的一些特点:·几乎当今所有的关系型数据库系统都采用SQL语言来操纵数据库中的数据。SQL语言是在世纪年代由IBM发展起来的后来成为工业标准。·最重要的是必须保证数据的完整性。否则存储在数据库中的数据就是毫无价值的。关系型数据库系统包括许多特性目的是阻止不符和要求的数据进入数据库。·关系型数据库系统被设计为一个便于修改的系统因为商业需求几乎每天都在变化。·在文件系统阶段相同的数据常常重复出现在许多记录中而关系型数据库系统则会排除大多数的冗余数据。这就减少了对存储空间的需求加快了数据访问的速度。·应用程序可以通过多级的安全检查来限制对数据的访问。数据模型模型是现实世界特征的模拟和抽象。数据模型(DataModal)是对现实世界中数据特征的抽象。存在于人们头脑之外的客观世界称为现实世界。数据库系统中保存的数据实际上是对现实世界的一种描述它是采用数据模型对现实世界进行描述的。数据模型是数据库系统中用于提供信息表示和操作手段的形式框架是数据库系统的核心和基础。数据模型分为两种一种是概念数据模型它是用来描述现实世界中数据及数据之间关系的模型跟计算机没有关系。这种模型主要描述高层次的概念按照用户的观点对数据和信息进行建模把现实世界中的客观对象抽象为某种信息结构如被描述对象的意义、相互关系等。另外一种就是实体数据模型它是用来描述信息世界中数据及数据之间的关系及存储、处理特征的模型主要包括层次模型、网状模型、关系模型它是按照计算机的观点对数据建模主要用于DBMS的实现。在信息世界中把客观存在并可相互区别的事物称为实体(Entity)同型实体的集合称为实体集(EntitySet)实体所具有的某一特性称为属性(Attribute)。实体之间的联系在现实世界中各种事物之间往往有着各种各样的联系这种联系必然在信息世界中有所反映。实体之间的联系可以分为两类一类是实体内部的联系如组成实体的属性之间的联系这种联系往往比较容易理解。另外一种联系就是实体之间的联系如学生和班级之间的联系:一个学生属于某一个班级而另一个班级有多个学生。实体完整性规则规定基本关系的所有主属性都不能去空值而不仅是主码整体不能取空值。对于实体完整性规则说明如下:.实体完整性规则是针对基本关系而言的一个基本表通常对应现实界的一个实体集。例如学生关系对应于学生的集合。.现实世界中的实体是可区分的即它们具有某种唯一性标识。.相应地关系模型中以主码作为唯一性标识。.主码中的属性即主属性不能取空值。所谓空值就是“不知道”或“无意义”的值。如果主属性取空值就说明存在某个不可标识的实体即存在不可区分的实体这与第点相矛盾因此这个规则称为实体完整性。规范化设计方法构造数据库时必须遵循一定的规则。在关系数据库中这种规则就是范式(NormalForm)。或者说满足一定条件的关系模式称为范式。在年至年E.F.Codd系统地提出了第一范式(NF)、第二范式(NF)和第三范式(NF)的概念。年Codd和Boyce共同提出BCNF范式为第三范式的改进。关系数据库中的关系必须满足一定的要求即需要满足不同的范式。目前除了前面提到的三种范式还有第四范式(NF)、第五范式(NF)和第六范式(NF)。PowerBuilder开发工具简介PowerBuilder是Sybase公司年推出的新一代GLPlus数据库开发工具它不仅继承了以往版本的各种先进技术而且适应目前开放试软件的发展潮流在快速集成开发环境中增加了构建WebService、JSPWeb、EJB的功能满足了在GLRAD环境中创建完整应用和应用组件的需求并使企业应用可以平滑过度到基于浏览器和Web的应用模式下。同时PowerBuilder卓越的应用开发效率及强大的Web功能为新版本增色不少。完整的应用系统有工作空间、目标、应用对象。窗口上的菜单对象。数据窗口对象和控件对象,以及这些对象的事件处理程序构成。()工作空间和目标在以前的版本中程序员一次只能开发一个应用程序这样使得应用程序无法取得多个可用的组件信息因此在构件复杂应用时会大大增加难度。PowerBuilder提供了Workspace功能这让开发人员同时在多个应用或组件上进行开发同时PowerBuilder用Target来描述加到Workspace中的应用或组件。PowerBuilder中存在三类Target是:Window客户、EAServer组件和Web站点。在PowerBuilder中只有打开Workspace才能更有效地工作开发者可以在Workspace中定义一个新的Target或者加入一个已经存在的Target。因此Workspace已经变成了PowerBuilder中所有活动的中心。()窗口、控件、事件和程序在PowerBuilder中窗口(Window)是主要的用户界面软件开发人员往往把各种控制功能(如录入、查询、打印、统计等)做成按扭或其它控件放在窗口上有用户选择。应用对象、窗口对象、菜单对象窗口上的数据窗口控件和其他控件对象都对应着若干个可能发生的事件如应用对象和窗口对象上有Open(打开)Close(关闭)等事件菜单项上有Clicked(鼠标左键单击或按回车键)等事件窗口上的控件有Clicked、DoubleClicked(用鼠标左键双击)Getfocus(得到焦点)EditChanged(数据被修改)等事件。PowerBuilder的程序是嵌套在事件中的也就是说由事件驱动的一旦用户选定了控件也就触发了某个事件。软件开发人员只需为各个控件的事件编写事件处理程序指定该事件被触发时要进行的处理,应用系统就这样构造出来了。事件处理程序用PowerBuilder的专用语言PowerScript语言编写。PowerScript语言是一种高水准。面向对象的语言提供了丰富的内置函数供软件开发人员使用。事件处理程序有PowerScript语句和函数组成来响应被触发的事件并做相应的处理。例如菜单项上有Clicked事件此事件的处理程序可能是打开另一个窗口用户用鼠标左键单击此菜单时Clicked事件被触发指定的窗口被打开。又如窗口上有一个数据窗口和一些按扭按扭上的文字为“录入”、“删除”、“存盘”等这些按扭的功能分别为数据窗口中插入一行删除一行将结果修改存盘我们只需为这些按扭的Clicked事件编写相应的程序完成这些功能。()函数函数是PowerScript语言的重要组成部分PowerBuilder为软件开发人员提供了近个内置函数主要用于完成以下工作:访问和操作数据操纵对像的数字或文本进行计算字符串处理数据类型转换处理日期和时间文本文件的输入和输出生成商务图形打印数据与其他窗口的数据通信处理邮件Web应用分布式应用等。此外软件开发人员还可以通过建立用户自定义函数来满足某个应用系统的特殊要求。需要时还可调用Windows的SDK函数和外部DLL函数。SQL概述SQLServer概述SQLServer是一个大型关系数据库管理系统它是微软公司推出的新一代数据库产品。它是微软公司在SQLServer版的基础上经过改进和提高而推出的数据库产品。它的性能、可靠性、质量以及易用性都比以前的版本大有提高。它提供了许多提高系统运行性能的新功能并使数据库的管理工作变得更加轻松容易。把SQLServer作为OLTP、数据仓库以及电子商务应用程序的后台数据库是一个不错的选择。在SQLServer关系数据库中信息被存放在二维表格结构的表(TABLE)中。数据库中的表之间可以是相互关联的表之间的这种关联性是通过主健和外键所体现的参照关系来实现的。数据库中不仅包括表还包括其他数据库对象如:视图、存储过程、索引等。SQLServer采用了客户服务器计算模型即中央服务器用来存放数据库该服务器可以被多台客户机访问数据库应用的处理过程分布在客户机和服务器上。客户服务器计算模型分为两层的客户服务器结构。在两层的客户服务器系统中客户机通过网络与运行SQLServer实例的服务器相连客户机用来完成数据表示和大部分业务逻辑的实现服务器完成数据的存储这种客户机被称为“胖客户机”(thickclient)。在多层的客户服务器系统中应用至少要经历三个处理层第一层仍是客户机但是它只负责数据的表示第二层是业务逻辑服务器负责业务逻辑的实现所有的客户机都可以对它进行访问第三层是数据库。这种多层结构中的客户机被称为“瘦客户机”(thinclient)。Internet应用就是三层结构的一个典型例子。数据库系统采用客户服务器结构的好处是数据集中存储在服务器上而不是分开存储在客户机上使所有用户都可以访问到相同的数据。业务逻辑和安全规则可以在服务器上定义一次而后被所有的客户使用。关系数据库服务器仅返回应用程序所需要的数据这样可以减少网络流量。节省硬件的开销因为数据都存储在服务器上不需在客户机上存储数据所以客户机硬件不需要具备存储和处理大量的数据能力。同样服务器不需要具备数据表示的功能。由于数据集中存储在服务器上所以备份和恢复起来很容易。SQL语言介绍SQL是英文StructuredQueryLanguage的缩写中文意思是结构化查询语言。SQL是一种介于关系代数与关系演算之间的结构化查询语言它是一个通用的、功能极强的关系数据库语言。SQL虽然名为查询语言但实际上具有定义、查询、更新和控制等多种功能。从世纪年代末起在推出的关系数据库系统产品ORACLE、SQLDS、DB、SYBASE上都实现了SQL语言。SQL语言是一种非过程化语言它一次处理一个记录集合对数据提供自动导航。SQL语言允许用户在高层的数据结构上工作而不对单个记录进行操作。SQL语言不要求用户指定数据的存取方法而是使用查询优化器由系统决定对指定数据存取的最快手段。当设计者在关系表上定义了索引时系统会自动利用索引进行快速检索用户不需知道表上是否有索引或者有什么类型的索引等细节。SQL主要组成分成四个部分:数据定义、数据操纵、数据控制、制嵌入式SQL的使用规定。数据定义(DDL):用于定义SQL模式、基本表、视图和索引。数据操纵(DML):它分为数据查询和数据更新两类。其中数据更新又分成插入、删除和修改三种操作。数据控制(DCL):包括对基本表和视图的授权完整性规则的描述事务控制等内容。嵌入式SQL的使用规定:其内容涉及到SQL语句嵌入在宿主语言程序中使用的规则。()SQL的数据查询SELECT语句的语法如下:SELECT 目标表的列名或列表达式序列FROM基本表或视图WHERE行条件表达式GROUPBY列名序列HAVING分组条件表达式ORDERBY列名ASC|DESC…句法中表示该成分可有也可无。整个语句的执行过程如下:(a)读取FROM子句中基本表、视图的数据执行笛卡尔积操作。(b)读取满足WHERE子句中给出的条件表达式的元组。(c)按GROUP子句中指定的列的值分组同时提取满足HAVING子句中分组条件表达式的那些分组。(d)按SELECT子句中给出的列名或列表达式求值输出。(e)ORDER子句对输出的目标表进行排序按附加说明ASC升序排列或按DESC降序排列。SELECT语句中WHERE子句称为“行条件子句”GROUP子句称为“分组子句”HAVING子句称为“分组条件子句”ORDER子句称为“排序子句”。()数据插入数据插入语法如下:INSERT INTO 基本表名(列名表)VALUES(元组值)或者INSERT INTO 基本表名(列名表)(table(元组值)(元组值) ……)前一种格式只能插入一个元组后一种格式可以插入多个元组。()数据删除SQL的删除操作是指从基本表删除元组其语法如下:DELETE FROM 基本表WHERE条件表达式其语义是从基本表中删除满足条件表达式的元组。()数据修改当需要修改基本表中元组的某些列的值时可以用UPDATE语句实现其句法如下:UPDATE 基本表SET 列名=值表达式列名=值表达式…WHERE条件表达式其语义是:修改基本表中满足条件表达式的那些元组中的列值需要修改的列值在SET子句中指出。本章小结本章阐述了数据库系统的发展以及数据库的一些基本概念。本章还详细的介绍了关系数据库的一些基本知识其中包括数据模型、实体之间的关系以及规范化设计方法。并且介绍了数据库应用程序的层次结构。包括单层结构、双层结构以及多层结构。简单介绍了关系数据库标准语言SQL并通过图形形象的表述了SQL对关系数据库模型的支持。系统分析系统分析现代的社会是信息化的社会信息无所不在。在生产领域、流通领域、各个部门每天都和信息打交道如何处理如此多的信息成为了一个重要的课题。学生在学期开始选课是教学活动中的一个重要环节该环节如果能管理好它不仅能加快学生的选课速度也提高了整个教学活动的效率。大学一般都有上千名学生每学期开始学生都要选课因而产生了大量的课程信息。考虑到用户使用的方便和处理的信息量系统要完成录入保存查询修改和删除课程信息的各种过程能打印出课程信息表。所以系统的基本体系结构采用CS模式。用户要求系统的主要使用对象是需要选课的学生。学生在选课是要察看各个课程的详细信息还要选择一些感兴趣的课程需要生成课表在发现课程有冲突后能够修改先前选择的信息。需要随学生选课的变化计算相应的总学分。在全部选定后打印报表。系统还需要管理员来查看和修改学生的总体选课情况课程信息和学生信息。业务流程分析学生选课前要登录系统查看所有课程的详细信息包括课程代号、授课教师、教室、上课时间、学分、剩余名额等。根据课程代号学生可以查询相应的课程并添加课程。查看课表并能发现是否存在冲突课程如果存在可以删除该课程并重新选择。打印课表包含详细的课程信息。最后选课完毕。学生选课的数据基本流程如图所示:图学生选课流程系统实体ER图分析经过上述系统功能分析和需求总结设计如下所示的实体和属性的定义:课程信息(课程代号课程名称授课教师教室剩余名额上课时间学分)学生信息(学号姓名性别班级出生年月日是否已选课)学生登录信息(学号用户名密码权限代号)学生选课信息(学号课程代号学期课程成绩)用户权限(权限名称权限代号)。本系统根据上面的设计规划出的实体有:课程信息实体学生信息实体学生登录信息实体学生选课信息实体用户权限实体。实体之间关系的ER图如图所示。图系统ER图课程信息实体ER图如图所示:图课程信息实体ER图学生选课实体ER图如图所示:图学生选课实体图学生信息实体ER图如图所示:图学生信息实体图登录信息实体ER图如图所示:图登录信息实体图用户权限实体ER图如图所示:图用户权限实体图本章小结学生选课系统主要是为学生选课的管理提供全面、准确、科学的管理方法方便快捷地处理选课的管理信息避免了信息处理错误提高了信息管理的工作效率大大地节省人力和物力的开支。本章主要阐述了系统的业务流程根据业务流程画出绘制出了ER图。系统实现创建一个工作空间和应用程序对象创建一个工作空间(WorkSpace)student目标(Target)student和应用(Application)stu在应用的open事件中写入如下的语句进行应用与数据库的连接。ProfilestuselectSQLCADBMS="ODBC"SQLCAAutoCommit=FalseSQLCADBParm="ConnectString='DSN=stuselectUID=PWD='"connect创建数据库表为了保存学生信息、课程信息、学生选课信息、登录信息、用户权限信息数据库设计了学生信息表课程信息表学生选课信息表登录信息表和用户权限信息表。这些表使得用户对数据的增删改变得非常方便数据的冗余不是十分明显。数据库中的学生信息表结构如表所示:表学生信息表(stuinform)字段名数据类型长度范围是否为空字段说明学号Char否姓名Nvarchar是性别Char是班级Nvarchar是出生年月日datetime是是否已选课char是数据库中的课程信息表结构如表所示:表课程信息表(courseinform)字段名数据类型长度范围是否为空字段说明课程代号Char否课程名称Nvarchar是授课教师Nvarchar是教师Nvarchar是剩余名额Char是上课时间Char是学分Int是数据库中的学生选课信息表如表所示:表学生选课信息表(stuselect)字段名数据类型长度范围是否为空字段说明学号Char否课程代号Char否学期Char是课程成绩Int是数据库中的登录信息如表所示:表登录信息表(stulogin)字段名数据类型长度范围是否为空字段说明学号Char否用户名Nvarchar是密码Nvarchar是权限代号Char是数据库中的权限信息如表所示:表权限信息表(usergl)字段名数据类型长度范围是否为空字段说明权限名称Char是权限代号Char否创建主窗口通过主窗口可以实现信息查询选择课程修改选课打印课表等功能。其主要实现窗口如下图所示:图主窗口创建主菜单创建主菜单主要是方便各种功能的实现,从而实现更好的完成学生选课查看课程信息等功能。如图所示:图主菜单在“课程查询”菜单项的clicked事件中编写代码:open(wcourseselect)在“选课”菜单项的click事件中编写代码:open(wcourseadd)在“生成课表”菜单项的click事件中编写代码:open(wcoursetable)系统管理模块的实现创建课程查询窗口在主菜单窗口单击“课程查询”即可打开此窗口使用者可以在此窗口实现对课程的查询。下图为“课程查询窗口”的主界面。图课程查询窗口其中一些主要程序代码如下:()open事件代码dwsettransobject(sqlca)dwretrieve()()“查找”按钮的click事件代码dwsetfilter("")ifsletext=""orsletext="请在此输入查询内容"thenmessagebox("错误!","请输入查询内容!")sleeventgetfocus()elseifrbchecked=truethen精确查找choosecaseddlbtextcase"课程代号"dwsetfilter("课程代号='"sletext"'")case"课程名称"dwsetfilter("课程名称='"sletext"'")case"授课教师"dwsetfilter("授课教师='"sletext"'")case"上课时间"dwsetfilter("上课时间='"sletext"'")endchooseelse模糊查询choosecaseddlbtextcase"课程代号"dwsetfilter("课程代号like""'"sletext"'")case"课程名称"dwsetfilter("课程名称like""'"sletext"'")case"授课教师"dwsetfilter("授课教师like""'"sletext"'")case"上课时间"dwsetfilter("上课时间like""'"sletext"'")endchooseendifendif检索数据dwretrieve()()“选课”按钮click事件代码open(wcourseadd)()“查看课表”按钮click事件代码open(wcoursetable)创建添加选课窗口单击主窗口的“选课”即可打开此窗口界面在此界面可以实现对课程信息的选择查看可以根据课程代号查询相应课程的详细信息选择此课程并计算选课门数和课程总学分。下图为“添加选课窗口”的主界面。图添加选课窗口其中一些主要程序代码如下:()open事件代码dwsettransobject(sqlca)dwsettransobject(sqlca)stringusername,studentno检索用户的学号SELECTstulogin学号,stulogin用户名INTO:studentno,:usernameFROMstuloginWHEREstulogin用户名=:loginname根据学号查询用户的详细信息dwsetfilter("")dwsetfilter("stuselect学号='"studentno"'")dwretrieve()显示学生选择课程数和其学分总数realscoreintm,nm=dwrowcount()score=forn=tomscore=scorereal(dwobjectcourseinform学分n)nextsttext=string(m)sttext=string(score)()查找事件代码如下:ifsletext=""thenmessagebox("错误!","请输入查询课程的代码")sleeventgetfocus()elsedwsetfilter("")dwsetfilter("课程代号='"sletext"'")dwretrieve()cbdefault=falsecbdefault=trueendif()“确认选择课程”按钮click事件代码integerrntrnt=messagebox("注意!","你是否确定选择该课程?",Information!,YesNo!)stringusername,courno,studentno,courname,courselleastnoifrnt=andsletext<>""then根据登录的用户名检索出用户的学号SELECTstuinform学号,stulogin用户名INTO:studentno,:usernameFROMstuinform,stuloginWHERE(stuinform学号=stulogin学号)and((stulogin用户名=:loginname))查询stuselect表看是否此学生已经选择这门课程SELECTstuselect课程代号INTO:cournoFROMstuselectWHERE(stuselect学号=:stuno)AND(stuselect课程代号=:sletext)SELECTcourseinform剩余名额INTO:courselleastnoFROMcourseinform,stuselectWHERE(courseinform课程代号=stuselect课程代号)and((courseinform课程代号=:sletext))ifcourno<>""thenmessagebox("提示","你已经选择过此门课程")elseifcourselleastno=""thenmessagebox("提示","该课程的剩余名额为请选择其他课程!")else插入用户选择课程到stuselect表INSERTINTOstuselect(学号,课程代号)VALUES(:studentno,:sletext)messagebox("提示","恭喜你添加课程成功!")学生选定该课程后在该课程的剩余名额中减少一人UPDATEcourseinformSET剩余名额='剩余名额'dwretrieve()endifelseifsletext=""thenmessagebox("提示","你还没有选课!")endifdwsettransobject(sqlca)stringusername,studentno检索用户的学号SELECTstulogin学号,stulogin用户名INTO:studentno,:usernameFROMstuloginWHEREstulogin用户名=:loginname根据学号查询用户的详细信息dwsetfilter("")dwsetfilter("stuselect学号='"studentno"'")dwretrieve()刷新学生选择课程数和其学分总数realscoreintm,nm=dwrowcount()score=forn=tomscore=scorereal(dwobjectcourseinform学分n)nextsttext=string(m)sttext=string(score)创建生成课表窗口打开主窗口单击“生成课表”即可打开本窗口的维护界面在本窗口主要实现学生课程的编排和冲突课程的修改删除还可以打印课表。下图为生成课表界面如图所示图生成课表主窗口其中一些主要代码如下:()查看课表事件的代码dwsettransobject(sqlca)dwsetfilter("stuinform学号='"trim(stuno)"'andstuselect学期='"trim(sletext)"'")dwretrieve()将课表内的文字清空主要防止用户再次点击查看时而产生的错误sttext=""sttext=""sttext=""sttext=""sttext=""intn,mstringcoursetime,course,courseclassroomn=dwrowcount()把数据表总行数赋予n把课程名称显示在课程表中form=toncoursetime=trim(dwobjectcourseinform上课时间m)course=trim(dwobjectcourseinform课程名称m)courseclassroom=trim(dwobjectcourseinform教室m)choosecasecoursetimecase"k"ifsttext=""thensttext=course""courseclassroomelsesttext=sttext""coursemessagebox("提示","你的课程有冲突",exclamation!,ok!,)endif……case"k"ifsttext=""thensttext=course""courseclassroomelsesttext=sttext""coursemessagebox("提示","你的课程有冲突",exclamation!,ok!,)endifendchoosenext()“打印课表”事件的代码如下定义一个打印工作longjob打开打印设置job=PrintOpen(string(loginname)"一份数据文档")指定打印数据窗口PrintDataWindow(job,dw)关闭打印工作PrintClose(job)创建个人信息窗口单击主窗口的“查看学生个人信息”选项后进入此窗口界面在本窗口主要实现对登录学生信息的查看以验证学生信息是否正确下图为个人信息窗口界面如图所示。图学生个人详细信息窗口其中open事件代码如下:定义全局变量stringstunostringloginnamestringglnodwsettransobject(sqlca)stringusername,studentno检索用户的学号SELECTstulogin学号,stulogin用户名INTO:studentno,:usernameFROMstuloginWHEREstulogin用户名=:loginname根据学号查询用户的详细信息dwsetfilter("")dwsetfilter("stuinform学号='"studentno"'")dwretrieve()生成课表窗口的设计单击主窗口“修改登录密码”选项后即可打开密码修改窗口。本窗口主要功能是修改学生个人的登录密码在学生正确填写旧的用户名和密码后即可成功就该新密码。其主界面如图所示。图密码修改窗口主界面其中“确认修改”事件代码如下:ProfilestuselSQLCADBMS="ODBC"SQLCAAutoCommit=FalseSQLCADBParm="ConnectString='DSN=stuselUID=PWD='"connectstringlsusername,lsuserpasswordSELECTstulogin用户名,stulogin密码INTO:lsusername,:lsuserpasswordFROMstuloginWHEREstulogin用户名=:sletextiflsuserpassword<>sletextthenmessagebox("提示","密码错误请确认后再输入!")elseifsletext=""thenmessagebox("提示","请输入旧密码!")elseifsletext<>""andsletext<>""andsletext=sletextthenlsuserpassword=sletextupdatestuloginset密码=:lsuserpasswordwherestulogin用户名=:sletextmessagebox("提示","恭喜你密码修改成功!")endififsletext<>""andsletext<>""andsletext<>sletextthenmessagebox("提示","新密码和确认密码不同请重新输入!")endififsletext=""orsletext=""thenmessagebox("提示","新密码或确认密码不能为空!")endifendifsletext=""sletext=""sletext=""sletext=""创建登录窗口登录窗口主要是用来登录主界面的一个关卡根据用户的不同设有不同的权限其主界面如图所示。图登录窗口界面其登录事件代码如下:定义两个变量stringpassword,usernameProfilestuselectSQLCADBMS="ODBC"SQLCAAutoCommit=FalseSQLCADBParm="ConnectString='DSN=stuselectUID=PWD='"连接数据库connect检索用户名和密码记录SELECTstulogin学号,stulogin用户名,stulogin密码,stulogin权限代号INTO:stuno,:username,:password,:glnoFROMstuloginWHEREstulogin用户名=:sletext判断用户输入的用户名是否正确ifsletext=""orsletext=""thenmessagebox("错误!","用户名或密码不能为空!",exclamation!,ok!,)elseifusername=sletextandpassword=sletextthenopen(wmain)close(wlogin)elsemessagebox("错误!","用户名或密码错误请重新输入!",exclamation!,ok!,)endifendifsplash界面的实现Splash界面是在登录窗口之前出现的界面主要用来显示软件的版本信息等简略情况界面如图所示。图splash界面其主要代码如下:()​ open事件代码设定关闭时间timer(,this)将Splash窗口置于其他窗口之上thissetposition(topmost!)()​ timer事件代码:close(this)open(wlogin)()​ clsoe事件代码:timer(,this)结束语随着信息技术的发展办公自动化已成为社会发展的主要趋势学生选课管理因其劳动的复杂性已经无法适应手工操作所以应用先进的计算机技术对学生选课进行管理是势在必行的因此本文采用目前流行的数据库开发工具之一的PowerBuilder设计了一个小型的学生选课系统并对设计结果进行了一定的总结。()学生选课管理因为其日常事务比较繁琐所以在设计数据

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/37

学生选课系统课程设计报告

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利