毕业设计(论文)学生选课管理系统的设计与开发.doc
浙江长征职业技术学院毕业设计(论文)论文题目:学生选课管理系统的设计与开发 系 别: 信 息 系 专业班级: 08计算机信息管理 学生姓名: 指导教师: 二一一年五月四日目 录引 言21 绪论21.1 课题现状21.2 课题的研究目的和意义21.3课题的可行性分析32 系统使用的工具、环境简介42.1PowerBuilder简介42.2PowerBuilder的基本功能42.3PowerBuilder的特点42.4系统技术平台53 系统分析63.1 系统需求概述63.2 系统功能分析63.3 业务流分析63.4 数据流分析73.5 系统安全性分析74 系统整体设计74.1 系统结构设计74.2系统功能模块74.3 Powerbuilder 9.0应用程序开发的基本步骤84.4 开发工具的选择84.5 系统实施成功的要素95 数据库设计说明95.1 数据库系统分析95.2 数据库逻辑设计115.3 数据库实现116 系统详细设计136.1总体设计136.2 详细设计136.3系统功能模块设计157设计总结27参考文献28致 谢29学生选课管理系统【摘要】随着高校规模的不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长,庞大学生信息的管理工作成了高校教学管理工作中的一项重要任务,一方面,假如遵从以往旧式的工作方式,该工作的工作量大,管理繁琐,既耗人力,又耗物力;另一方面,由于计算机技术的飞速发展及应用的普及,学生信息管理这样烦琐的工作更需要由计算机来完成。因此开发一套对学生信息进行管理的软件是极其重要的,而且是必需的,通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。 基于上述情况,本人针对本校学生选课及教务员排课做详细的需求分析,在WindowsXP平台下以SQLServer2005为数据库服务器,采用PowerBuilder9.0设计开发了基于C/S结构的学生信息管理系统。此系统不仅实现了学生对个人基本信息的修改、查询以及专业选课和重修等,还实现了教务员对学生所选课程的排课组班功能。真正的实现了选课、排课的一体化。简洁的操作方法与人性化的界面设计让任何非计算机专业的管理人员轻松使用。 本系统以Power Builder为开发工具,后台数据库选择SQL server2005,操作系统为Windows XP。【关键词】学生管理 Power Builder SQLServer2005 Windows XP引 言高校学生选课管理是学校管理系统中的重要组成部分。在选课管理过程中涉及的信息种类繁多,数量庞大。每个学生的系别,不同学期的各门课程成绩,以及各科教师等信息都是选课管理过程中必须记录和使用的信息。随着高校规模的不断扩大,选课管理档案的信息量成倍的增长,日常维护和查询任务量也越来越大。因此建立一套完善的选课档案信息的存储,快速整理与检索系统非常必要。该系统能为用户提供充足的信息和快捷的查询手段。并且可以更好得提高当前我国学校管理工作的效率。1 绪论1.1 课题现状我国高校都实行了学分制,它的核心是允许学生自由选课,即把学习的自主权交给学生。在这里,学生选课时的制约因素比较复杂,工作量也很大,而且往往需要在较短的时间内完成。运用计算机辅助选课,即能实时地对大量选课数据进行检验和统计,十分方便地输出选课结果,同时也避免了人工处理时容易产生的错误。在高等学校的教务管理工作中,课程表的编排是一项十分复杂、棘手的工作。在排课过程中,除了满足大量的制约条件以外,还必须解决许多冲突与矛盾,例如:两位教师不能同一时间在同一班级上课、一位教师不能在同一时间上两门课等等。利用计算机辅助进行课表编排工作,既提高了排课工作的科学性,又可大大减轻管理人员的工作强度,提高工作效率,从而使学校教务管理现代化迈上了一个新台阶。 国外的教学科研软件与国内相比开发的早而且比较成熟。早在七十年代末,美国就建成了NSFNET(国家科学基金网),其课题的申报及课题的进展情况汇报都在网上进行。其网上教学教务管理系统也十分完善,世界各地的学生可以坐在家里通过互联网完成入学报名、选课、考试、毕业论文、取得学位这一学习生活的全过程。目前,国际上已具规模的远程教育学校就有数百所之多,网上教育正在各地发挥着巨大的作用,为世界各国培养出大批人才。所有这些都表明,需要有一套行之有效的手段来对学生选课来进行管理。1.2 课题的研究目的和意义学生选课系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对选课信息进行管理,有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。 因此,开发这样一套软件成为很有必要的事情,在下面的各章中我们将以开发一套学生选课系统为例,谈谈其开发过程和所涉及到的问题及解决方法。 本文中所做的主要工作如下: (1)介绍了个性化页面的背景及WinXP+SQL+PB系统的一般原理; (2) 阐述整个个性化页面生成系统的系统结构及工作原理;分析了系统实现中的特殊性、难点和重点。 (3) 设计实现用户管理、课程管理、选课信息录入管理、新生信息录入管理、课程的浏览和查找、学生查找等PB页面 。 (4) 分析并解决实现中的若干技术问题。 (5) 建立完整的选课系统,进行测试并分析结果。1.3 课题的可行性分析1.3.1 课题调研(1)与实践活动和相关的文件和资料由教师提供。(2)本课题要求学生有熟练的PB开发能力,有较强的自学能力以及一定的关系数据库理论开发功底。(3)具有对复杂表进行处理的能力。(4)具体问题再做详细调查研究并与指导老师面谈。1.3.2 可行性分析(1)技术可行性-本系统仅需要一台装有操作软件的计算机即可,对机器本身没有太高的要求,一般当前学校或个人电脑完全可满足要求。对于软件技术要求,现在的程序设计语言已非常成熟,数据库使用SQLServer 2005中提供的数据库。(2) 经济可行性-由于本系统是为学生选课管理使用的系统,装上该应用软件,即可使用系统,系统成本主要集中在系统软件的开发上,当系统投入运行后可以为学校节约大量的人力,物力。所带来的效益远远大于系统软件的开发成本。在经济上完全可行。(3) 操作可行性-界面设计时充分考虑管理人员的习惯,使得操作简单;数据录入迅速、规范、可靠;统计准确;制表灵活;适应力强;容易扩充。2 系统使用的工具、环境简介系统设计使用的工具主要是PowerBuilder9.0 ,SQL server做为后台,现简介如下。2.1 PowerBuilder简介PowerBuilder美国Sybase公司研制的一种新型、快速开发工具,是客户机/服务器结构下,基于Windows3.x、Windows95和WindowsNT的一个集成化开发工具。它包含一个直观的图形界面和可扩展的面向对象的编程语言PowerScript,提供与当前流行的大型数据库的接口,并通过ODBC与单机数据库相连。2.2 PowerBuilder的基本功能(1)可视化、多特性的开发工具。全面支持Windows或WindowsNT所提供的控制、事件和函数。 PowerScript语言提供了几百个内部函数,并且具有一个面向对象的编译器和调试器,可以随时编译新增加的代码,带有完整的在线帮助和编程实例。 (2)功能强大的面向对象技术。支持通过对类的定义来建立可视或不可视对象模型,同时支持所有面向对象编程技术,如继承、数据封装和函数多态性等。这些特性确保了应用程序的可靠性,提高了软件的可维护性。 (3)支持高效的复杂应用程序。对基于Windows环境的应用程序提供了完备的支持,这些环境包括Windows、WindowsNT和WinOS/2。开发人员可以使用PowerBuilder内置的WatcomC/C来定义、编译和调试一个类。 (4)企业数据库的连接能力。PowerBuilder的主要特色是DataWindow(数据窗口),通过DataWindow可以方便地对数据库进行各种操作,也可以处理各种报表,而无需编写SQL语句,可以直接与Sybase、SQLServer、Informix、Oracle等大型数据库连接。 (5)强大的查询、报表和图形功能。PowerBuilder提供的可视化查询生成器和多个表的快速选择器可以建立查询对象,并把查询结果作为各种报表的数据来源。 PowerBuilder主要适用于管理信息系统的开发,特别是客户机/服务器结构。2.3 PowerBuilder的特点PowerBuilder支持应用系统同时访问多种数据库,其中既包括Oracel,Sybase之类的大型数据库,又包括FOXPRO之类支持ODBC接口的小型数据库,PowerBuilder是完全可视化的数据库开发工具,它提供了大量的控件,大大加快了项目的开发速度,也使开发者更容易掌握数据库的开发。 它使用的编程语言叫做工PowerScriprt,它也是一种高级的,结构化的编程语言。PowerScript提供了一套完整的嵌入式SQL语句,开发人员可以像使用其它语句一样自由地使用SQL语言,这样就大大增强了程序操纵和访问数据库的能力。可以说PowerBuilder既适合初学者快速学习数据库的开发,又可以让有经验的开发人员开发出功能强大的数据库,是一种适用面非常广的开发工具。 PowerBuilder是一个用来进行客户/服务器开发的完全的可视化开发环境。使用PowerBuilder,你可以用一种可视的直观的方式来创建应用程序的用户界面和数据库接口。这是一个总的概念,实际上是开发人员使用PowerBuilder去开发应用程序,由于所开发的各种应用程序充分利用了图形用户接口(GUI)的优点,所以PowerBuilder被认为是一个图形工具。 在客户服务器结构的应用中,PowerBuilder具有描述多个数据库连接与检索的能力。特别是PowerBuilder能从大多数流行的RDBMS中存取数据,且不管数据存放在什么地方;另外,各种应用程序又可以独立于RDBMS,因为PowerBuilder可以使用数据库的标准操作语言SQL(结构化查询语言)进行。 使用PowerBuilder,可以很容易地开发出功能强大的图形界面的访问服务器数据库的应用程序,PowerBuilder提供了建立符合工业标准的应用程序(例如订单登记、会计及制造系统)所需的所有工具。 PowerBuilder应用程序由窗口组成,这些窗口包含用户与之交互的控件。开发人员可以使用所有标准空间(如按钮、复选框、下拉式列表框或编辑框)以及PowerBuilder提供的特殊的使应用程序更易于开发和使用的控件。 通常人们把PowerBuilder看成是一种开发工具,实际上它比其他工具强得多,是一种强有力的开发环境。开发人员不仅能用它来开发用户容易使用的各种应用程序还可以通过PowerBuilder修改数据库,利用400多个内部定义函数,可以开发能和其他应用程序进行的各种应用程序。 PowerBuilder正在成为客户服务器应用开发的标准。相对于其他任何客户服务器开发环境,PowerBuilder使开发人员的工作更快、成本更低、质量更高、功能更强。 PowerBuilder为应用开发提供了全面综合性的支持,可以分别概括为如下几点: 1.事件驱动的应用程序 2.功能强大的编程语言与函数 3.面向对象的编程 4.跨平台开发 2.4 系统技术平台本系统用Powerbuilder 9.0开发,数据库为SQL Server 2005 数据库,采用C/S结构。PowerBuilder是目前开发Client/Server结构的应用系统的主要工具之一。PowerBuilder9.0在继承与发展以前版本优秀功能的基础上,为适应网络应用程序的开发要求集成了Enterprise Application Studio中PowerBuilder以及Power Site的功能,在传统数据库开发的基础上,将Web应用更好地集成到PowerBuilder中。PowerBuilder全面支持面向对象编程。是功能强大并易于使用的第4代编程语言(4GL),它内置了包括数据窗口在内的多种对象类,可以方便地访问数据库。相对于其他应用工具,PowerBuilder具有工作效率高、成本低、质量高、功能强的特点。3 系统分析3.1 系统需求概述(1)系统功能需求学生选课系统并不需要是一个过于复杂的工作环境,一般来说:最合适的才是最好的。软件设计必须符合学校实际工作的需要,从目前学校运用的情况和教育部门对无纸化办公的实际情况来看,本系统应具有登录功能,用户登录之后可以查看课程信息,课程查找功能,进行相应课程的选择,查看已选课程信息,以及增加用户,修改密码及退出等。(2)系统性能需求作为一个基于B/S模式的管理系统,需要记录大量的数据信息,而这些数据信息需要同时能够提供给使用人员查询和修改,必然需要一个大型的数据库系统和一台服务器。用户通过访问服务器,获得相应的服务。3.2 系统功能分析选课系统功能比较多,除了最基本的选课功能外,教师也具有开课功能,同时后台的管理员还能对教师和个人信息进行维护。选课系统的核心是选课功能。学生在选课以前,必须通过系统的身份验证,让后就可以选定自己的选修课程。当然,学生也能删除选错或者误选的课程。另外,选课系统还提供了课程查看的功能。选课系统还提供了一个后台管理功能。管理员通过身份验证以后,可以查看和修改学生的个人信息,也可以添加或删除学生。另外,管理员也可以查看和修改教师的个人信息,以及添加或删除教师。3.3 业务流分析学生成绩管理系统的业务流程:首先由系统管理员等有录入权限的用户将各自权限范围内的信息进行录入,然后保存信息到数据库中。有权限的人可以对这些库信息进行修改和删除。所有用户均可以进行信息查询和统计,有权限用户还可以基于已有信息进行各项评定,评定结果可以报表打印。3.4 数据流分析学生成绩管理系统的数据流程:首先由系统管理员等有录入权限的用户将各自权限范围内的信息进行录入处理,然后保存信息到数据库中。有权限的人可以对这些库信息进行修改和删除处理。所有用户均可以进行信息查询和统计。3.5 系统安全性分析本程序考虑到系统的安全性,主要设置了用户登录论证,并且需要进行密码校验,保证了信息的“可控”透明性。而且,为了提供企业日后需要的各期历史资料,本系统还提供系统权限维护,能更好的保证信息的安全性和权限的更改。4 系统整体设计4.1 系统结构设计开发这个系统的目的就是要帮助学校的人力资源部门提高工作效率,实现学校选课管理系统的系统化、规范化和自动化。本系统主要可以实现以下的管理功能:学生管理、课程管理、选课管理、数据分析、系统维护、退出系统。1. 身份验证:通过登录才可进入选课系统,登录信息提交后检验登录者的身份是否合法,合法,则转入对应的操作界面。在本系统中,只有二种身份:学生、管理员。2.学生管理:该模块的主要功能是实现对学生信息的管理工作,包括学生信息的添加与删除和修改,以及对于学生信息的查询。学生可以对已发布学生信息进行浏览、核对,进行添加、删除和修改。信息查询包括学生学号单条件查询和学生学号、姓名和班级多条件查询。3.课程管理:该模块的主要功能是实现对课程信息的管理工作,包括课程信息的添加与删除和修改,以及对于课程信息的查询。学生可以对课程信息进行浏览、核对,进行添加、删除和修改。信息查询包括课程单条件查询。4.选课管理:该模块的主要功能是用于学生的选课,查看被选专业的课程,完成该学期的选课任务。其中包括按学生和按课程来对其进行的添加与删除。5.数据分析:该模块的主要功能是可以正确的对学生信息、课程信息、成绩信息进行直观的分析。并且还可对自己所需要的信息进行搜索和打印。6.用户权限:包括用用户注册和修改密码,从而更好的保证了系统的安全性。4.2 系统功能模块学生选课管理系统系统维护数据分析退出系统选课管理课程管理学生管理图4-1系统 功能模块图4.3 Powerbuilder 9.0应用程序开发的基本步骤我们要开发应用程序时,首先要对它进行分析。无论哪种、哪方面的应用程序,都要先建立一个应用对象。下面我们介绍以下PowerBuilder 9.0应用程序开发的基本步骤:(1)首先要建立应用对象。(2)创建窗口。在窗口里放置各种控件和编写事件响应的脚本。(3)创建菜单。窗口里的菜单可包括菜单条,下拉式菜单,级联菜单和弹出式菜单为菜单编写事件响应的脚本。(4)创建用户对象。如果想要重复使用某个控件的功能,可以把窗口上经常放置的控件定义为用户对象。(5)创建数据窗口。数据窗口可以检索数据库中的数据,可以建立各种报或统计表,可以修改数据库。(6)创建函数、结构、事件。为了能够更好地支持脚本,编写自定义的函数,定义结构类型变量,也可以为对象和控件定义自己的事件。(7)运行与调试。可以在开发环境中随时运行应用程序,发现错误后,可以用调试工具进行调试。(8)当应用程序开发完毕后,可以把它编译成可执行的文件,让用户比较容易地建立应用系统的运行环境。4.4 开发工具的选择本程序在设计之初曾经考虑过几种其它的开发工具,例,ASP,VB,之所以利用PB则是对整个系统的兼容性,平台的需求上,增个系统的造价上和对系统的维护上大大减轻的学校对于系统的投入,而且有力的发挥最大的管理效能,并且对于学校来讲投入少,回报大才是最大的需求。本系统从实际出发最大限度的减少了学校自身的投入并且得到了最大的回报。4.5 系统实施成功的要素成功实施学生管理系统要注意的问题有以下几点: 1) 在数据库方面,要做通盘的考虑,要先调,再根据学校的规模来选择相应规模的数据库。 2) 学校的管理层必须认识到实施该系统的重要性,给予充分理解和支持。 3)要做好需求分析。 5 数据库设计说明数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。在线选课系统的核心就是用来存储所有信息的数据库。本系统用的是轻量级开源数据库SQL SERVER 2005。5.1 数据库系统分析本系统的数据库实体主要有“学生”、“管理员”、 “课程”等。一个学生可以学习N门课程,一门课程可以有M个学生学习,即“学生”与“课程”之间是多对多的关系。整个数据库可以用一个E-R图表示,如图 5-1 所示:MN选课课程学生管理图5-1 数据库ER图ER图中的实体图:1学生实体 如图 5-2 所示:地址生日电话性别邮箱学生班级姓名学号图 5-2 学生实体2课程实体 如图 5-3 所示:课程名学分课程号课程图 5-3 课程实体课程号学号3选课实体 如图 5-4 所示:分数选课图 5-4 选课实体4管理员实体 如图 5-5所示:密码用户名管理员用户号图 5-5 管理员实体5.2 数据库逻辑设计数据库逻辑设计就是将ER图转换为关系模型的过程,即将所有实体和关系转换成一系列的关系模式。转换过程中常见规则有:(1)一个实体型转换为一个关系模式;(2)一个一对一的联系可转换成一个独立的关系模式,也可与任意一端对应的关系模式合并;(3)一个一对多的联系可以转换成一个独立的关系模式,也可与多的那一端对应的关系模式合并;(4)一个多对多的关系转换成一个关系模式。根据以上四条规则,下面将ER图转换成关系模型。对于“学生”、“课程”和它们之间的“选修”关系(4)就可以规则转换成三个关系模式。学生(学号,学生姓名,生日,学生性别,班级,地址,电话,邮箱)课程(课程号,课程名称,学分)选课(学生号,课程号,分数)管理员(用户号,用户名,密码)5.3 数据库实现数据库是信息管理系统的后台,存储着所有的信息,在信息管理系统中有着很重要的地位。数据库设计的好与坏,直接影响到这个系统的运行效率。良好的数据库设计,可以提高数据信息的存储效率,保证数据信息的完整性和一直性。同时,一个合理的数据库结构有利于程序的实现。我选用Microsoft SQL Server2005来进行数据库的逻辑设计。首先创建数基本据库表下:管理员表,学生表,课程表,选课表,共计4张表。(1)S表。S表用来存储学生的个人信息,使用学生学号作为主键包括学号,学生姓名,学生性别,学生班级,生日,地址,电话,邮件。如表5-1 所示: 表5-1 S表字段数据类型是否允许为空备注Snochar(10)否主键Classchar(20)是Snamechar(10)是Sexchar(2)是Birthdaydatetime是Addresschar(50)是Telphonechar(20)是Emailchar(20)是(2)C表。C表用来存储课程信息,C表以课程号为主键,包括。如表5-2 所示:表5-2 C表字段数据类型是否允许为空备注Cnochar(4)否主键Cnamechar(20)是Creditchar(2)是(3)SC表。SC表用于存储学生的选课信息,在SC表中学生号是外键,课程号即是主键又是外键。如表5-3 所示:表5-3 SC表字段数据类型是否允许为空备注Cnochar(10)否主键Snochar(4)否主键Scoresmallint是(4)U表。U表用来存放系统管理员信息,包括用户号,用户名,密码。如表5-4所示:表5-4 U表字段数据类型是否允许为空备注Unochar(4)否主键Unamechar(10)是passwordchar(6)是6 系统详细设计6.1总体设计6.1.1设计原则(1)可靠性 系统应该满足可靠性设计要求,并能保证系统长期安全的运行;(2)安全性 系统应该具有必要的安全保护和密码保护措施;(3)容错性 系统应该具有容错能量,有抗干扰能量。对各类用户的误操作有提示或者自动消除能量;(4)实用性 注重运用成熟而且实用的技术,使系统能能产生良好的社会效益和经济效益;(5)易操作性 坚持最终面向用户的原则,建立友好的用户界面,使用户操作简单直观,易于掌握。6.2 详细设计6.2.1界面设计(1)学生选课系统启动界面,如图6-1所示:图6-1系统启动界面1.功能介绍:本窗口主要是系统登录,登录界面包含进入系统的按钮,点击进入系统按钮后就进入相应的界面。2.代码分析:窗体的OPEN事件SQLCA.DBMS = "ODBC"SQLCA.AutoCommit = Falsesqlca.database="student" sqlca.servername="6372D880c57848f" SQLCA.DBParm = "ConnectString='DSN=data54;UID=;PWD='"connect using sqlca;if sqlca.sqlcode=-1 thenmessagebox("提示","连接失败")returnend ifopen(w_a)编写”进入系统”按钮代码 open(w_login)(2)学生选课管理系统认证窗体界面,如图6-2所示:如图6-2学生选课管理系统认证窗体1.功能介绍:本窗口主要是用户登录,并检查操作员输入的用户名及密码是否正确,如果正确,允许登录。如果错误,显示出错误提示。登录同时,会根据该用户的权限,进入相应得界面。2.代码分析:“确定”代码select 用户密码 into:g_unofrom 密码表where 用户姓名=:sle_1.text and 用户密码=:sle_2.text;i_n=i_n+1if sqlca.sqlcode=0 thenopen(w_main)close(w_passwindow)elseif i_n=3 thenmessagebox("提示","对不起,您是非法用户!")close(w_passwindow)elsemessagebox("提示","账户或密码错误,请重新输入!")sle_1.text=""sle_2.text=""end if(3)主窗口界面和菜单,如图6-3所示:图6-3主窗口界面和菜单1.功能介绍:主窗口设计为菜单于快捷按钮集中的混合界面(如图6-3),打开相应的窗口。菜单主要有:学生管理,课程管理,选课管理,数据分析,系统维护,系统权限维护管理,退出系统。2.操作方法:点击各菜单或者快捷按钮3.代码分析:每个相应的菜单项的clicked事件都使用open方法来打开相应的功能窗口,如“学生管理”的菜单项下的 clicked事件的处理代码为:open(w_main)。6.3系统功能模块设计6.3.1学生管理(1)功能介绍:实现对学生信息的管理工作,包括学生信息的添加与删除和修改,以及对于学生信息的查询。学生可以对已发布学生信息进行浏览、核对,进行添加、删除和修改。信息查询包括学生学号单条件查询和学生学号、姓名和班级多条件查询。如图6-4,6-5,6-6,6-7所示:图6 - 4 数据窗口对象图6 - 5 多条件查询图6 - 6 学生信息删除界面图6 - 7 学生信息添加界面(2)代码分析:“检索”代码:string cxIF Trim(sle_1.text)="" then cx=""ELSE cx="%"+trim(sle_1.text)+"%"if rb_1.checked=true thencx="sno like '%"+Trim(sle_1.text)+"%'"elseif rb_2.checked=true thencx="sname like '%"+Trim(sle_1.text)+"%'"elseif rb_3.checked=true thencx="class like '%"+Trim(sle_1.text)+"%'"end ifEND IFdw_1.SetSort("sno a")dw_1.Sort()dw_1.SetFilter(cx)dw_1.Filter()6.3.2课程管理(1)功能介绍:实现对课程信息的管理工作,包括课程信息的添加与删除和修改,以及对于课程信息的查询。学生可以对课程信息进行浏览、核对,进行添加、删除和修改。信息查询包括课程单条件查询。如图6-8所示:图6-8课程修改界面(2)代码分析:窗体的closequery()事件代码int ret,ret1dw_1.AcceptText()IF dw_1.ModifiedCount()>0 or dw_1.DeletedCount()>0 THENret=MessageBox("提示","数据已更新,是否保存?",Question!,YesNoCancel!,3)IF ret=1 THENret1=dw_1.Update()IF ret1=1 THENCOMMIT USING SQLCA;MessageBox("提示","保存成功!")ELSEROLLBACK USING SQLCA;MessageBox("错误","保存失败!")END IFELSEIF ret=3 THENRETURN 1END IFEND IFClose(THIS)确认修改的代码int ret,ret1dw_1.AcceptText()IF dw_1.ModifiedCount()>0 THENret=MessageBox("提示","数据已更新,是否保存?",Question!,YesNoCancel!,3)IF ret=1 THENret1=dw_1.Update()IF ret1=1 THENCOMMIT USING SQLCA;MessageBox("提示","保存成功!")ELSEROLLBACK USING SQLCA;MessageBox("错误","保存失败!")END IFELSEIF ret=3 THENRETURN 1END IFEND IF6.3.3选课管理(1)功能介绍:用于学生的选课,查看被选专业的课程,完成该学期的选课任务。其中包括按学生和按课程来对其进行的添加与删除。如图6-9,6-10所示:图6-9 数据窗口对象图6-10 选课界面(2)代码分析:dw_1.RowFocusChanged事件脚本long istring nodw_1.SelectRow(0,FALSE)dw_1.SelectRow(dw_1.GetRow(),TRUE)no=dw_1.object.snodw_1.GetRow()dw_2.SetTransObject(sqlca)dw_2.Retrieve(no)dw_2.ItemChanged事件脚本int i,jstring sno,snamei_n=0dw_2.accepttext()IF dw_2.GetColumnName()="sc_sno" THENj=dw_2.GetRow()sno=dw_2.object.sc_snojFOR i=1 to dw_2.RowCount()IF i<>j THENIF Upper(dw_2.object.sc_snoi)=Upper(sno) THENi_n=1RETURN 1END IFEND IFNEXTEND IFSELECT sname INTO :sname FROM s WHERE sno=:sno;dw_2.ItemError 事件脚本IF i_n=1 THENmessagebox("警告","该学生已选修该课程!")END IFdw_2.object.sc_snodw_2.GetRow()=""RETURN 16.3.4数据分析(1)功能介绍:可以正确的对学生信息、课程信息、成绩信息进行直观的分析。如图6-11,6-12所示:图6-11课程统计界面图6-12成绩统计界面 (2)代码分析:“检索”代码:string ls_lb,ls_lbdmls_lb=ddlb_1.textchoose case ls_lb case "高等数学" ls_lbdm='c001' case "C语言" ls_lbdm='c002' case "操作系统" ls_lbdm='c003' case "数据结构" ls_lbdm='c004' case "信息系统" ls_lbdm='c005' case "数据库应用" ls_lbdm='c006' case "软件方法学" ls_lbdm='c007'end chooseINSERT INTO tj(cno,fsd,rs)SELECT o,'60 以下',count(cno) FROM scWHERE sc.score < 60 and cno=:ls_lbdmGROUP BY o;COMMIT USING SQLCA;INSERT INTO tj(cno,fsd,rs) SELECT o,'60-69',count(cno) FROM scWHERE sc.score >= 60 and sc.score < 70 and cno=:ls_lbdmGROUP BY o;COMMIT USING SQLCA;INSERT INTO tj(cno,fsd,rs) SELECT o,'70-79',count(cno) FROM scWHERE sc.score >= 70 and sc.score < 80 and cno=:ls_lbdm GROUP BY o;COMMIT USING SQLCA;