学生选课管理系统百度文库.docx

上传人:牧羊曲112 文档编号:3426005 上传时间:2023-03-13 格式:DOCX 页数:41 大小:52.87KB
返回 下载 相关 举报
学生选课管理系统百度文库.docx_第1页
第1页 / 共41页
学生选课管理系统百度文库.docx_第2页
第2页 / 共41页
学生选课管理系统百度文库.docx_第3页
第3页 / 共41页
学生选课管理系统百度文库.docx_第4页
第4页 / 共41页
学生选课管理系统百度文库.docx_第5页
第5页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《学生选课管理系统百度文库.docx》由会员分享,可在线阅读,更多相关《学生选课管理系统百度文库.docx(41页珍藏版)》请在三一办公上搜索。

1、学生选课管理系统百度文库学生选课系统 学生选课管理信息系统课程设计与实现 1 学生选课系统 学生选课管理系统 摘 要 随着社会的发展,学生的人数和课程的种类急速增加,传统的选课管理模式已经无法满足当前的实际需求,为此,我们开发了学生选课管理系统。 本人结合学生选课管理的实际需要,完成了对学生选课管理系统的需求分析、功能模块划分、数据库模式分析等,并由此设计了后台数据库以及前台应用程序。 文中首先对课题背景,数据库基础理论和Access进行了简单的讨论;接着,对系统前台开发工具PowerBuilder9.0,学生选课管理系统进行了详细分析,划分了具体的功能模块;最后,给出了学生选课系统应用程序的

2、设计过程,以及每个功能模块的核心代码。 系统可以实现学生选课的一些重要功能,如:课程的添加、删除,信息查询、选课、生成课表,以及学生选课管理人员、用户个人信息的维护等。 关键词 PowerBuilder9.0;Microsoft Office Access 2 学生选课系统 目录 摘 要 . 2 目录 . 3 1 绪论 . 4 1.1 课题的背景 . 4 1.2 课题的设计 . 2 1.3 本文的结构 . 2 2 相关知识基础 . 3 2.1 ACCESS的基础知识 . 3 2.1.1 Access的发展 . 3 2.1.2 Access的内部结构 . 3 2.1.3 Access的特性 .

3、4 2.1.4 PowerBuilder9.0开发工具简介 . 5 2.2 ACCESS概述 . 7 2.2.1用途 . 7 3 系统分析 . 8 3.1 系统分析 . 8 3.1.1 用户要求 . 8 3.1.2 业务流程分析 . 8 3.1.3 系统实体E-R图分析 . 9 3.2本章小结. 11 4 系统实现 . 11 4.1 创建一个工作空间和应用程序对象 . 11 4.2创建数据库表 . 12 4.3创建主窗口 . 13 4.4 创建主菜单 . 14 4.5系统管理模块的实现 . 15 4.5.1创建按学生选课窗口 . 15 4.5.2 创建按课程选课窗口 . 19 4.5.3 创建

4、课程管理增加窗口 . 19 4.5.4 创建课程删除窗口 . 22 4.5.5 创建课程修改窗口 . 25 4.5.6 创建学生增加窗口 . 25 4.5.7 修改密码窗口的设计 . 28 4.5.8 帮助窗口 . 30 3 学生选课系统 4.5.9 创建登录窗口 . 31 5 结束语 . 33 6致谢 . 35 7参考文献 . 35 1 绪论 数据库是数据管理的最新技术,是计算机科学的重要分支。今天,信息资源已成为各个部门的重要财富和资源。建立一个满足各级部门信息处理要求的行之有效的信息系统也成为一个企业或组织生存和发展的重要条件。因此,作为信息系统核心和基础的数据库技术得到越来越广泛的应用

5、。从小型单项事务处理系统到大型信息系统,从联机事务处理到联机分析处理,从一般企业管理到计算机辅助设计与制造 、计算机集成制造系统、办公信息系统 等,越来越多新的应用领域采用数据库存储和处理他们的信息资源。 1.1 课题的背景 当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最到好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。 尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好学生选

6、课信息而设计的。 学生选课作为一种信息资源的集散地,包含很多的信息数据的管理。 由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的学校有计算机,但是尚未用于信息管理,没有 4 学生选课系统 发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发基本环境。 数据处理手工操作,工作量大,出错率高,出错后不易更改。造成了时间上的浪费 基于这个问题,我认为有必要建立一个学生选课系统,使学生选课信息管理工作规范化、系统化、程序化,避免学生选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。 1.2 课题的设计 本文就学生选课系统的设

7、计与制作展开分析。学生选课系统主要应用数据库技术开发,先从数据库的基本知识开始介绍, 数据库的基本概念、数据库的发展、数据库的结构,还介绍了开发工具PowerBuilder9.0和Access语言。我主要是应用PowerBuilder9.0为前端开发工具,利用Access语言实现数据查询。设计系统时,先从系统的数据流程开始分析,设计系统的业务流程图、系统的数据流程图、系统的E-R图。根据开题报告的设计要求开始进入系统的总体设计,接着制定系统的设计思想,分析系统的功能并设计系统的功能模块,这些都是系统制作前的准备工作;准备工作完成后,开始系统数据库的建立,主要有各个功能窗口的设计,将设计好的窗口

8、集中到主菜单上,通过用户的用户名和密码的登录可以进入到主窗口,这样就完成系统的制作。最后,对系统进行调试,性能分析。 1.3 本文的结构 第2章,简单介绍了相关的基础知识,为系统的设计进行知识储备。 第3章,详细介绍了系统分析与设计。 2 学生选课系统 第4章,介绍了系统的制作过程,设计制作窗口等。 2 相关知识基础 2.1 Access的基础知识 2.1.1 Access的发展 Access的最初名称是Cirrus。它开发于Visual Basic之前,当时的窗口引擎称作Ruby。比尔盖茨看过Ruby的原型后决定把这个基于Basic语言的组件作为一个独立的可扩展应用程序与Access联合开发

9、。这个项目称作Thunder。这两个项目互相独立的被作为底层的窗口引擎开发并且互不兼容。 然而,在VBA出现后它们被合并在一起。图2-1 数据库应用的架构 2.1.2 Access的内部结构 Access中所使用的对象包括表、查询、报表、窗体、宏、模块和网页。这些对象都存放在同一个数据库文件中。 表是数据库的核心与基础,它存放着数据库中的全部数据信息,以实现用户的某一特定需要,例如查找、计算统计、打印、编辑修改等。在表内还可以定义索引当表内存放大量数据时可以加速数据的查找。 查询是Access数据库中一个十分重要的对象,它用于在一个或多个表内查找某些特定的数据,完成数据的检索、定位和计算的功能

10、,供用户查看。 窗体可以提供一种良好的用户操作界面,通过它可以直接或间接调用宏或模块,并执行查询、打印、预览、计算等功能。 报表是以打印的格式表现数据的一种有效方式,报表的主要数据来自数据库的表或查询。 Web页是Access 2000提供的新功能,它使得Access与Internet紧密结合起来。使用该对象,用户可以方便地制作出各种Web页。 宏是若干个操作的组合,当数据库中有大量重复性的工作需要处理时,使用宏是最佳的选择。 3 学生选课系统 模块是Access中实现数据库复杂管理功能的有效工具,它由Visual Basic编制的过程和函数组成。在一般情况下,用户不需要创建模块,除非是要建立

11、应用程序来完成宏无法实现的复杂功能。 2.1.3 Access的特性 一好处进入从程序员视角在它的有关兼容性有SQL-质问可能被观看并且作为SQL语句编辑,并且SQL语句直接在巨视和VBA模里可以被使用操作进入桌子。用户可能混合并且使用两个VBA并且宏编程形式和逻辑既没提供面向对象的可能性。 导入导出报表的生成程序,当时有能力和到这项任务的复杂报告创造,没有另一受欢迎数据库报表程序的生成程序充满特色和强有力-水晶报告。MSDE(微软公司SQL服务器桌面发动机)2000,袖珍版本的MSSQL服务器2000,被包括开发版的办公室XP并且被用于进入可能作为除之外的另一种选择JET数据库引擎。(尽快的

12、*版本的MSDE和微软公司交换服务器实际上使用这台喷气发动机处理巨大大量数据并且安置一“赝品”在它之上的那些应用的应用层。大约这事实的缺乏知识因进入/喷口家庭的软件产品而为不该受不敬做贡献,特别是关于大工程。) 进入分割和粘贴功能性能使它有用工具在其他数据库之间连结(例如,在数据或者数据库变换期间的Oracle和微软公司SQL服务器)。进入与给与窗子和其他平台应用一起的积分的各种各样进口和退场门特征一起来,一经请求从应用的里面或者手工由用户其中几可以被执行。例如非常紧密SNP完全格式化的为分享的形式与没有全部的进入软件的人们报告。它也能容易被升级到微软公司SQL服务器。 与一般的RDBMS完全

13、不同,它缺乏数据库触发和预存程序。自从MS Access 2000 (Jet 4.0),开发人员可以在查询中设定参数,这跟预存程序很相似的,但这些“预存程序”只能处理一个程序当资料表内数据发生变化时,它确实允许形式包含被引发的代码,使用是普通的透过查询和其他技术在进入营运储存的程序在方面RDBMS支援这些的。 进入可提供的编程语言,当时在另一个内产品Microsoft Office家具,微软公司应用的Visual Basic。两个数据库进入讯息库COM组成部分被提供:这笔遗产数据存取物体(DAO),用进入和新只可提供ActiveX数据对象(忙乱)。 MicrosoftAccess容易被应用于小

14、的工程,但是如果设计的不好对大工程是无用的。 全部数据库质问,形式和报告被储存在数据库里,并且与相关的模型的理想协调,没有与他们做一个身体上组织的阶层的可能性。 一种设计技术是把进入应用在数据和计划之间进行分发。一数据库4 学生选课系统 应该只包含桌子和关系,当另一个将有全部计划时,形式,报告和质问和对第一个数据库桌子的连接。令人遗憾,当连结时,进入允许没有有关的道路,因此那些发展环境作为这种生产环境有相同的道路应该(虽然你写你们自己的能动态连接程序常规在里VBA那搜出能一定背面结束档案以透过这个目录树搜寻,如果它发现这条电流通路它不能)。 这种技术也允许开发者在不同的档案中分申请,因此一些架

15、构是可能的。 2.1.4 PowerBuilder9.0开发工具简介 PowerBuilder9.0是Sybase公司XX年推出的新一代4GL Plus数据库开发工具,它不仅继承了以往版本的各种先进技术,而且适应目前开放试软件的发展潮流,在快速集成开发环境中增加了构建Web Service、JSP Web、EJB的功能,满足了在4GL RAD环境中创建完整应用和应用组件的需求,并使企业应用可以平滑过度到基于浏览器和Web的应用模式下。同时,PowerBuilder9.0卓越的应用开发效率及强大的Web功能为新版本增色不少。 完整的应用系统有工作空间、目标、应用对象。窗口上的菜单对象。数据窗口对

16、象和控件对象,以及这些对象的事件处理程序构成。 (1)工作空间和目标 在以前的版本中,程序员一次只能开发一个应用程序,这样使得应用程序无法取得多个可用的组件信息,因此在构件复杂应用时会大大增加难度。 PowerBuilder9.0提供了Workspace功能,这让开发人员同时在多个应用或组件上进行开发,同时PowerBuilder9.0用Target来描述加到Workspace中的应用或组件。11 PowerBuilder中存在三类Target是:Window 客户、EAServer组件和Web站点。在PowerBuilder中,只有打开Workspace才能更有效地工作,开发者可以在Work

17、space中定义一个新的Target或者加入一个已经存在的Target。因此,Workspace 已经变成了PowerBuilder中所有活动的中心。 (2)窗口、控件、事件和程序 在PowerBuilder中,窗口(Window)是主要的用户界面,软件开发人5 学生选课系统 员往往把各种控制功能(如录入、查询、打印、统计等)做成按扭或其它控件放在窗口上有用户选择。应用对象、窗口对象、菜单对象,窗口上的数据窗口控件和其他控件对象都对应着若干个可能发生的事件12-13,如应用对象和窗口对象上有Open (打开),Close(关闭)等事件,菜单项上有Clicked(鼠标左键单击或按回车键)等事件,

18、窗口上的控件有Clicked、Double Clicked(用鼠标左键双击)Getfocus(得到焦点),Edit Changed(数据被修改)等事件14。PowerBuilder的程序是嵌套在事件中的,也就是说由事件驱动的,一旦用户选定了控件也就触发了某个事件。软件开发人员只需为各个控件的事件编写事件处理程序,指定该事件被触发时要进行的处理,应用系统就这样构造出来了。 事件处理程序用PowerBuilder的专用语言PowerScript语言编写。PowerScript语言是一种高水准。面向对象的语言,提供了丰富的内置函数供软件开发人员使用。事件处理程序有PowerScript语句和函数组成

19、,来响应被触发的事件并做相应的处理。 例如,菜单项上有Clicked事件此事件的处理程序可能是打开另一个窗口,用户用鼠标左键单击此菜单时,Clicked事件被触发,指定的窗口被打开。又如窗口上有一个数据窗口和一些按扭,按扭上的文字为“录入”、“删除”、“存盘”等,这些按扭的功能分别为数据窗口中插入一行,删除一行,将结果修改存盘,我们只需为这些按扭的Clicked事件编写相应的程序完成这些功能。 (3)函数 函数是PowerScript语言的重要组成部分,PowerBuilder为软件开发人员提供了近800个内置函数15-16,主要用于完成以下工作:访问和操作数据,操纵对像的数字或文本,进行计算

20、,字符串处理,数据类型转换,处理日期和时间,文本文件的输入和输出,生成商务图形,打印数据,与其他窗口的数据通信,处理邮件,Web应用,分布式应用等。此外,软件开发人员还可以通过建立用户自定义函数来满足某个应用系统的特殊要求。需要时还可调用Windows的SDK函数和外部DLL函数。 6 学生选课系统 2.2 Access概述 Assess能够存取 Access/Jet、Microsoft SQL Server、Oracle,或者任何 ODBC 兼容数据库内的资料。熟练的软件设计师和资料分析师利用它来开发应用软件,而一些不熟练的程序员和非程序员的进阶用户则能使用它来开发简单的应用软件。虽然它支援

21、部份面向对象技术,但是未能成为一种完整的面向对象开发工具。 其实Access 也是微软公司另一个通讯程序的名字,想与 ProComm 以及其他类似程序来竞争。可是事后微软证实这是个失败计划,并且将它中止。数年后他们把名字重新命名于数据库软件。 2.2.1用途 Microsoft Access在很多地方得到广泛使用,例如小型企业,大公司的部门,和喜爱编程的开发人员专门利用它来制作处理数据的桌面系统。它也常被用来开发简单的WEB应用程序这些应用程序都利用ASP技术在Internet Information Services运行比较复杂的WEB应用程序则使用PHP/MySQL或者ASP/Micros

22、oft SQL Server 它的使用方便程度和强大的设计工具为初级程序员提供许多功能。不过,这种便于使用可能使人误解。这类开发者都是没有在应用或者数据设计方面训练的办公室从业人员。因此许多人以为这样的开发者能够创造可用的系统,但也有很多人认为工具本身的局限性产生了这样的误导。 一些专业的应用程序开发人员使用 Access 用作快速应用开发,特别是给街道上的推销员制作一个初型或独立应用程序的工具。可是如果是透个网络存取数据的话,Access 的可扩放性并不高因此当程序被较多使用者使用时,他们的选择多会是倾向于一些客户端-服务器为本的方案,例如 Oracle、DB2、Microsoft SQL

23、Server、Windows SharePoint Services、PostgreSQL、MySQL、Alpha Five、MaxDB,或者Filemaker。无论如何,不少 Access 的功能可以用作其他数据库的后期应用,包括 JET、Microsoft SQL Server、Oracle和任何其他跟ODBC兼容的产品。这种方法允许开发者把一个成熟的应用的数据移动到一台更大功率的服务器而没有已经在适当的位置牺牲发展。 很多开发者谁使用Microsoft Access使用Leszynski命名约定,虽然这不普遍;它是一次编程大会,并非一个DBMS实施的规章。 7 学生选课系统 3 系统分析

24、 3.1 系统分析 现代的社会是信息化的社会,信息无所不在。在生产领域、流通领域、各个部门每天都和信息打交道,如何处理如此多的信息成为了一个重要的课题。学生在学期开始选课是教学活动中的一个重要环节,该环节如果能管理好,它不仅能加快学生的选课速度,也提高了整个教学活动的效率。 大学一般都有上千名学生,每学期开始学生都要选课,因而产生了大量的课程信息。考虑到用户使用的方便和处理的信息量系统要完成录入,保存,查询,修改和删除课程信息的各种过程,能打印出课程信息表。所以系统的基本体系结构采用C/S模式。 3.1.1 用户要求 系统的主要使用对象是需要选课的学生。学生在选课是要察看各个课程的详细信息,还

25、要选择一些感兴趣的课程,需要生成课表,在发现课程有冲突后能够修改先前选择的信息。需要随学生选课的变化,计算相应的总学分。在全部选定后,打印报表。系统还需要管理员来查看和修改学生的总体选课情况,课程信息和学生信息。 3.1.2 业务流程分析 8 学生选课系统 学生选课前要登录系统,查看所有课程的详细信息,包括课程代号、授课教师、教室、上课时间、学分、剩余名额等。根据课程代号,学生可以查询相应的课程,并添加课程。查看课表,并能发现是否存在冲突课程,如果存在,可以删除该课程,并重新选择。打印课表,包含详细的课程信息。最后,选课完毕。学生选课的数据基本流程如图3-1所示: 图3-1 学生选课流程 3.

26、1.3 系统实体E-R图分析 经过上述系统功能分析和需求总结,设计如下所示的实体和属性的定义: 课程信息(课程号,课程名称,学分) 学生信息(学号,姓名,性别,班级,出生年月,地址、电话、邮箱) 学生选课信息(学号,课程号,课程成绩) 用户权限(名称,代号、密码)。 本系统根据上面的设计规划出的实体有:课程信息实体,学生信息实体,学生选课信息实体,用户登录实体。 实体之间关系的E-R图如图3-2所示。 9 学生选课系统 图3-2系统E-R图 课程信息实体E-R图,如图3-3所示: 课程号 学号 学分 选课 图3-3课程信息实体E-R图 学生选课实体E-R图,如图3-4所示: 课程号 成绩 学号

27、 学生选课 图3-4 学生选课实体图 学生信息实体E-R图,如图3-5所示: 性别 班级 姓名 学号 学生信息 出生年月 地址 电话 Email 图3-5 学生信息实体图 10 学生选课系统 登录信息实体E-R图,如图3-6所示: 学号 图3-6 3.2本章小结 学生选课系统主要是为学理方法,方便快捷地处理选课了信息管理的工作效率,大大了系统的业务流程,根据业务4 4.1 创建一个工作空间和 创建一个工作空间stu,在应用与数据库的连接。 用户名 密码 登录信息 登录信息实体图 选课的管理提供全面、准确管理信息;避免了信息处理节省人力和物力的开支。本程画出绘制出了E-R图。 应用程序对象 )s

28、tudent,目标student的语句进行学生选课系统 / Profile syn1 SQLCA.DBMS = ODBC SQLCA.AutoCommit = False SQLCA.DBParm = ConnectString=DSN=zxb;UID=;PWD= connect using SQLCA; IF SQLCA.SQLCODE=-1 then messagebox(提示,连接失败!) return else messagebox(提示,连接成功!) end if open(w_login) 4.2创建数据库表 为了保存学生信息、课程信息、学生选课信息、登录信息、用户权限信息,数据库

29、设计了学生信息表,课程信息表,学生选课信息表,登录信息表和用户权限信息表。这些表使得用户对数据的增删改变得非常方便,数据的冗余不是十分明显。 数据库中的学生信息表结构如表4-1所示: 表4-1 学生信息表 字段名 Sno Class Sname Sex Birthday 数据类型 文本 文本 文本 文本 日期/时间 长度范围 4 20 8 2 是否为空 否 是 是 是 是 字段说明 学号 班级 姓名 性别 出生年月日 12 学生选课系统 Address Telephone email 文本 文本 文本 50 20 40 是 是 是 地址 电话 电子信箱 数据库中的课程信息表结构如表4-2所示:

30、 表4-2 课程信息表 字段名 Cno Cname credit 数据类型 文本 文本 数字 长度范围 4 20 是否为空 否 是 是 字段说明 课程号 课程名 学分 数据库中的学生选课信息表如表4-3所示: 表4-3学生选课信息表 字段名 Sno Cno score 数据类型 Char Char Int 长度范围 8 10 是否为空 否 否 是 字段说明 学号 课程号 成绩 数据库中的登录信息如表4-4所示: 表4-4登录信息表 字段名 Uno Uname password 数据类型 Char Nvarchar Nvarchar 长度范围 4 10 6 是否为空 否 否 否 字段说明 4.3

31、创建主窗口 通过主窗口可以实现学生管理,课程管理,选课管理等功能。其主要实现窗口如下图4-1所示: 13 学生选课系统 图4-1 主窗口 4.4 创建主菜单 创建主菜单主要是方便各种功能的实现,从而实现更好的完成学生选课,查看课程信息等功能。如图4-2所示: 14 学生选课系统 图4-2 主菜单 在“学生管理”菜单项的m_main事件中编写代码: open(w_password) 在“课程管理”菜单项的m_main事件中编写代码: open(w_password) 在“选课管理”菜单项的m_main事件中编写代码: open(w_password) 4.5系统管理模块的实现 4.5.1创建按学

32、生选课窗口 在主菜单窗口单击“选课管理按学生选课”即可打开此窗口,使用者可以在此窗口实现对课程的查询。下图4-3为“按学生选课窗口”的主界面。 15 学生选课系统 图4-3按学生选课窗口 其中一些主要程序代码如下: w_sc_1事件代码 dw_1.settransobject(sqlca) dw_1.retrieve “增加”按钮的click事件代码 int i string sno dw_2.accepttext if dw_2.rowcount0 then i=dw_2.getrow if isnull(dw_2.object.sc_cnoi) or trim(dw_2.object.sc

33、_cnoi)= then messagebox(警告,课程编号不能为空!) return end if end if sno=dw_1.object.snodw_1.getrow 16 学生选课系统 dw_2.insertrow(0) dw_2.scrolltorow(dw_2.rowcount) dw_2.object.sc_snodw_2.getrow=sno dw_2.setcolumn(2) dw_2.setfocus “确定”按钮click事件代码 int ret,ret1 string cname,cno if dw_2.modifiedcount0 or dw_2.deleted

34、count0 then ret=messagebox(提示,数据已更新,是否保存?,question!,yesnocancel!,3) if ret=1 then ret1=dw_2.update if ret1=1 then commit using sqlca; messagebox(提示,保存成功!) else rollback using sqlca; messagebox(提示,保存失败!) end if elseif ret=3 then return 1 end if end if “dw_1”按钮doubleclicked事件代码 long i string no dw_1.s

35、electrow(0,false) dw_1.selectrow(dw_1.getrow,true) no=dw_1.object.snodw_1.getrow 17 学生选课系统 dw_2.settransobject(sqlca) dw_2.retrieve(no) “dw_2”按钮doubleclicked事件代码 int i,j string cno,cname i_n=0 dw_2.accepttext if dw_2.getcolumnname=sc_cno then j=dw_2.getrow cno=dw_2.object.sc_cnoj for i=1 to dw_2.rowcount if ij then if upper(dw_2.object.sc_cnoi)=upper(cno) then i_n=1 return 1 end if end if next end if select cname into :cname from c where cno=:cno; dw_2.object.c_cnamedw_2.getrow=cname 18 学生选课系统 4.5.2 创建按课程选课窗口 图4-4 按课程选课窗口 其主要代码与“按学生选课窗口”类似,在此不再作说明。 4.5.3 创建课程管理增加窗口 19 学生选

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号