网上选课系统C#毕业设计论文.doc_第1页
网上选课系统C#毕业设计论文.doc_第2页
网上选课系统C#毕业设计论文.doc_第3页
网上选课系统C#毕业设计论文.doc_第4页
网上选课系统C#毕业设计论文.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业论文网上选课系统中文摘要网上选课系统是一个常见的应用系统,既有b/s结构,也有c/s结构.与传统的选课方式相比,网上选课系统利用局域网为学生选课带来了便利.只要选课没有截至,学生就能够灵活的修改自己的选课情况大大提高了学校选课工作的效率.visual c#是最近有microsoft开发的一种简单,精练,类型安全,面向对象的语言,用于生成各种各样的.net应用程序,包括web服务和asp.net web的应用程序.所我们使用visual c#来完成选课系统得制作,选课系统主要是由客户端和服务端组成,服务端是本系统的后台数据库,主要使用sql server 2000关系数据库.客户端通过后台服务器的数据存储来完成相关操作.客户端主要使用visual c#的windows窗体treeview控件和xml文档来完成的.与数据库的连接时,主要调用dataset数据库函数来完成客户端与服务端的数据联系,来实现选修,修改,删除的不同的功能.关键词:treeview控件,xml文档,dataset,sql server 2000.on-line chooses the class system is a common application system, also has the b/s structure, also has the c/s structure chooses the class way with the tradition to compare, on-line chose the class system to choose the class using the local area network for the student to bring the convenience so long as chooses the class not up to, the student could nimble revise own chooses the class situation greatly to enhance the school to choose the class work the efficiency.visual c# was recently has the microsoft development one kind of simplicity, concise, the type security, the object-oriented language, used in to produce various net application procedure, including web service and asp.net web application procedure. we use visual c# to complete choose the class system to result in the manufacture, chooses the class system mainly is composed by the customer end and the service end, the service end is this system backstage database, mainly uses sql the server 2,000 relational databases the customer end completes the correlation operation through the backstage server data storage. the customer end mainly uses visual c# windows window treeview to control and the xml documents completes when with database connection, mainly transfers the dataset database function to complete the customer end and the service end data relation, realizes takes as an elective, the revision, deletes different function.: treeview activex, xml documents, dataset, sql server 2000.目录第一章 绪论 51.1 visual c#.net的简介 51.2 sql server 2000的简介 6第二章 可行性分析 62.1 设计分析 62.2应用程序概况 7第三章 关键的技术 73.1 xml文档对象模式 73.2遍历dataset 73.3 treeview控件动态绑定数据 83.4 水晶报表 8第四章 数据库设计 84.1 数据库表的设计 84.2数据存储过程的设计 10 第五章 详细设计 125.1学生子系统的设计 135.2管理员子系统的设计 155.3学生信息报表的设计 20第六章 后记 22参考文献 22第一章 绪论1.1 visual c# .net的简介visual c#.net 是 visual studio 系列中的最新成员.c#是最近有microsoft开发的一种简单,精练,类型安全,面向对象的语言,用于生成各种各样的.net应用程序,包括web服务和asp.net web的应用程序.用visual c#编写的程序是 公共语言运行库的各种服务基本上生成的,并且全面利用了.net框架.任何人只要熟悉c和 类似的语言,在适应c#时就几乎不会有什么问题.c#旨在不牺牲c和c+的功能和控制特色的前提下提高了c+编程人员的开发速度.由于这种继承性,c#与c和c+高度相似,所以熟悉这两种语言的开发人员可以在c#种迅速开展卓有成效的工作.c#为高等安全性,垃圾回收和类型安全提供内部代码信任机制.c#支持单一继承并创建microsoft中间语言(msil)作为本机代码编译器的输入.c#与.net框架和公共语言的运行库完全集成,它们一起提供语言互操作性,垃圾回收,增强安全性和改进的版本支持.c#简化了c和c+的 某些比较复杂的方面并使之现代化.比较显著的特点包括:命名空间,类,枚举,重载和结构化异常处理等.c#还取消了c和c+的一些功能,如宏,多重继承和虚拟基类,头文件包含.对于现在的c+开发人员来说,c#时可提供选择的功能强大的高效率语言.利用c#可以开发如下各种类型的应用:l windows 应用程序l 类库l windows 控件库l asp.net web 应用程序l asp.net web 服务l web 控件库l 控制台应用程序l windows 服务等等visual c# .net 是一套综合工具集,用于为 microsoft windows 和 web 创建 xml web 服务和基于 microsoft .net 的应用程序。这个强劲的开发包使用面向组件的 c# 开发语言,为具备 c+ 或 java 经验的初级和中级开发人员创建下一代软件提供了现代化的语言和环境。visual c# .net 基于强大的 c+ 传统语言而创建。 c# 是一个现代化的、直观的、面向对象的编程语言,它不仅可以让 c+ 和 java 开发人员马上熟悉,而且提供了重要的改进,包括统一的类型系统、最大化开发人员控制的“不安全”代码以及大多数开发人员容易理解的强大的新语言构造。 这个现代化的面向组件的语言具有对属性、索引器、委托、版本控制和自定义属性的内在支持,开发人员可以充分享受它带来的好处。使用 xml 注释,c# 开发人员可以生成有用的源代码文档。高级继承模型使开发人员能够重用来自任何支持 .net 的语言的代码。c# 开发人员可以加入最新的、发展最快的开发人员社区,在那里他们可以交换代码和资源,利用跨多个计算环境的技能,并为保证人们积极参与社区的标准化过程做出贡献。 1.2 sql server 2000的简介sql server 是一个关系数据库管理系统它最初是由microsoft sybase 和ashton-tate三家公司共同开发的于1988 年推出了第一个os/2 版本在windows nt 推出后microsoft与sybase 在sql server 的开发上就分道扬镳了microsoft 将sql server 移植到windows nt系统上专注于开发推广sql server 的windows nt 版本sybase 则较专注于sql server在unix 操作系统上的应用在本书中介绍的是microsoft sql server 以后简称为sql server或ms sql serversql server 2000 是microsoft 公司推出的sql server 数据库管理系统的最新版本该版本继承了sql server 7.0 版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行microsoft windows 98 的膝上型电脑到运行microsoft windows 2000 的大型多处理器的服务器等多种平台使用 在高性能和企业级可伸缩性领域,sql server 2000 设计成利用 windows 2000 对更多处理器、更大的系统内存的支持,最终达到支持 64 位硬件平台。在不断提升可用性的努力过程中,sql server 2000 采用 windows 2000 四路群集,提供了大大改进的群集支持。sql server 7.0 已经在可管理性和易用性方面在行业内领先,sql server 2000 通过与 windows 2000 活动目录紧密结合进一步改进了这些功能。而且,sql server 2000 还包含对现有管理工具和实用程序的重大改进,并引入更具自我调节和自我管理的引擎功能。 通过与 olap 服务、数据转换服务、存储库和英文查询的紧密结合,sql server 7.0 代表了行业内最全面的数据仓库和决策支持平台。sql server 2000 继续了这种创新,在整个系统内进行了重要的改进。特别重要的是,sql server 2000 关系引擎增加了实质化的视图,改善了在特大型数据库环境中执行复杂查询的性能。同时,sql server 2000 引入了新的数据挖掘功能,可自动发现在大量数据之间隐藏的关系并可基于历史数据作出预测。这些数据挖掘功能将要实施,以向最终用户隐藏这种尖端技术的复杂性,并允许开发人员将第三方的数据挖掘产品轻松集成进客户的应用程序中。最后,在电子商务领域,sql server 2000 高度集成了对 xml 和通过 web 访问数据库的支持。sql server 2000 按照设计可以为部署和维护强大的、易于管理、支持商务活动的 web 站点提供最好的性能,这些站点可以从事商家和商家之间或商家与客户之间的交易。在寻求一个支持您的电子商务解决方案的数据库时,需要考虑的项目包括:可用性、性能、可管理性和价格。第二章 可行性分析2.1 设计分析 随着计算机和网络的普及,高等学校里纷纷建立了c/s或者b/s结构的网上选课系统.学生在学校的公共机房或者宿舍的个人电脑上通过网络来选课,教务处在教师则通过选课系统的管理员子系统来管理学生选课的情况,使得学生选课工作达到系统化和自动化,大大提供了学校的工作效果. 网上选课系统需要实现的功能:l 学生和管理员必须通过认证才能登陆系统,管理员和学生的权限不一样.l 管理员可以添加,删除和修改学生记录,可以添加,删除和修改课程信息,可以查看选课情况.l 允许管理员修改选课的期限l 学生可以查看选课信息,只能在限定的时间内选修课程,可以查询自己选修课程的情况,在限定的时间之内还可以退选课程或增选课程,如果被选课程选修的人数已经到达上限,则学生不能选修该课程.2.2应用程序概况本网上选课系统分为客户端和服务端两层结构,服务端安装了sql server2000关系数据库,客户端通过校园的局域网连接服务器的数据库存取数据.客户端分为供学生使用的学生子系统和供教师使用的管理子系统.无论是学生系统还是管理员子系统,都需要从数据中读取院系的信息以及每个院系所开设的课程信息存放在dataset里面,然后把数据绑定到控件并显示出来.由于每个院系都要开设多门课程供学生选择,院系信息和课程信息形成一个树状结构,所以使用treeview控件显示这些信息比较合适.本设计主要应用了windows窗体,treeview控件使用方法和xml文档的相关处理方法,还有水晶报表.在ado.net中,数据的传输数据格式使xml.通常情况下开发人员不必要了解xml就可以使用不同的编程方法提取ado.net中的数据, ado.net的会自动的将数据转换为xml或从xml转换出数据.然后,在ado.net中可以像使用关系数据库一样使用xml文档作为数据源,并为它创建数据集.同时,xml是工业标准格式,能够让异常应用程序间交换数据.因此了解xml文档处理方法是很必要的.第三章 关键技术概述主要的关键技术包括:xml文档处理技术,遍历dataset的编程技术,treeview控件动态绑定的技术和遍历treeview控件的技术等.3.1 xml文档对象模式文档对象模式(document odject model,简称dom)是xml文档的内存(缓存)中树状表示形式,允许对该文档的导航和编辑.dom使程序员能够以编程的方式读取,操作和修改xml文档.dom的结构使树状的结构,最基本的对象是节点(node).节点之间的关系有父子关系,祖先后裔关系,同辈关系.visual c#.net中,.netframework sdk中的命名控件system.xml中封装的xmlnode类能够很好的表示dom树的节点(node).xmldocument类继承和矿展于xmlnode类,而xmlnode的组成dom树的最基本的元素,因此使用xmldocument类可以创建和访问dom.xmldocument类主要有两类成员方法:l 用于对整个文档对象模型执行操作,例如,将xml文档加载到内存中或将xml文档对象模型保存成为一个xml文档l 查看和操作整个xml文档中的节点.3.2遍历datasetdataset是aod.net中的核心对象,它支持断点式,分布式数据存取方案,功能非常强大.dataset式数据在内存中的表现形式.它可以用于多个不同的数据源,包括关系数据库的数据集,本地xml文档等.无论数据源是什么,它都会提供一致的关系编程模型.dataset中的方法和对象与关系数据库模型的方法和对象一致. dataset由datarelation集合extendedproperties和datatable三步分组成集合.数据库存放在datatable集合中,datatable集合包含零个后多个datatable对象. datatable对象结构对应数据库表的结构,从数据库选择出来的数据集可以放在datatable对象里面.而datatable对象又由datarow集合组成,即每个datatable里面有多个datarow. datarow集合包含表中的数据. datarow相当于多维数组,不断改变下标就可以访问整个datatable里面的数据,改变datatable集合对象的下标就可以不同的datatable里面的数据,从而实现对整个dataset的遍历.3.3 treeview控件动态绑定数据treeview控件能够以树状的层次结构显示它的节点.每个节点可能包含子节点.父节点或包含子节点的节点可以展开或折叠的方式显示.如果将treeview控件的checkboxes属性设置为true,则在显示treeview时,节点旁边还可以带有复选框.通过设置节点的checked属性的值为true或false,就能以编程方式选定或清除节点.紧挨着节点文本的左侧可以显示图标,这要通过设置treeview控件的imagelist属性与希望使用的现有imagelist控件相关联才能给每个节点获取图像.为了实现数据的动态绑定,需要以编程方式添加节点和移除节点.具体方法:(1),使用树视图node属性的add方法,代码如下:treenode new node=new treenode(“text”);mytreeview.selectdenode.node.add(newnode);(2),使用树视图node属性的remvoe方法移除某个节点.或者使用clear方法清除左右节点,代码如下:mytreeview1.nodes.remove(mytreeview1.selectednode);mytreeview1.nodes.clear();3.4 水晶报表报表也是一种管理工具,其目的在于帮助用户快速的掌握原始数据中的基本元素和关系。.net中的水晶报表是一个实现原理比较复杂但是使用十分简单的报表工具。1. 水晶报表设计器就是在设计器中创建的,在设计器中用户可以进行标题,插入数据,公式,图表。子报表等操作。2. .rpt报表文件.3. 数据源 .rpt报表文件取得数据的方法有两种:让水晶报表自己选择数据的不使用任何代码或者编写代码把一个dataset作为数据源绑定到.rpt报表文件.4. 执行模式 pull模式-被请求时,水晶报表直接根据指定的驱动连接数据库然后组装这些数据.push模式-此时开发表不得不自己编写代码连接数据并安装dataset,同时将它传送至报表.在这种情况下,通过使用连接共享以及限制记录集合得大小,可以使用报表性能的最大值.第四章 数据库的设计后台数据库系统选用sql server 2000 ,根据选课系统的功能要求以及功能模块的划分,数据需要存储的信息如下:l 所有课程信息: 课程id,课程名称.所属系,授课老师,课程学时,课程学分,限选人数,已选人数等l 所有学生资料: 学生学号,选课密码,学生姓名等l 院系信息: 院系id,院系名称.l 学生选课的情况: 学生id,课程id等l 管理员的资料: 管理员用户名,管理员用户密码,真实姓名.l 选课时间的限制: 选课开始时间,选课结束时间.因此,选课系统的后台数据库需要建立6个表分别是: courses表,stidents表,departments表,elective表,admins表和period表.4.1 数据库的设计 1. courses表courses表用于存放所有课程的详细信息.该表有8个字段,全部都是重要信息,不能为空,其中selecteddtudentnumber字段默认值零.各字段说明如图3-4所示:图 3-4 courses表的结构2. stidents表stidents表用于存放所有学生的资料.由于本系统是一个选课系统,而不是一个学生管理系统,所以stidents表所需字段并不多,各字段说明如下:图 3-5 stidents表的结构3. departments表departments表主要用于记录开设课程的院系的名称.各个字段说明如图3-6所示:图 3-6 departments表的结构4. elective表elective表记录了学生选课的情况,只需出入学生studentid和该学生所选课的courseid,electiveid字段的值由sqlserver 2000 在每次插入新记录时自动产生.该表一开始,每次增加一个,由数据库系统保证它的唯一,因此electiveid字段作为elective表的主键.各个字段的说明如图3-7所示.图 3-7 elective表的结构5. admins表admins表记录所有管理员的信息,包括用户名,密码和真实姓名. adminid字段的值在每次插入新记录时由sql server 2000自动填入并保证唯一.因此adminid字段是admins表的主键,各个字段的说明如图3-8所示:图 3-8 admins表的结构6. period表period表用于设置选课的开始时间和选课结束的时间,该表只能由管理子系统来修改,各个字段的说明如图3-9所示:图 3-9 period表的结构4.2 数据库的存储过程的设计本应用程序是典型的c/s结构,为了提高服务器的数据库的访问效率,加快整个系统的运行速度,存取数据全部使用存储过程.同时对一些业务逻辑也使用了一些存储过程.本系统使用的所有存储过程描述如下:1. addstudent存储过程该存储过程根据输入的用户信息在数据库students表里添加一个学生记录,返回唯一标识学生的studentid.创建存储过程的sql语句如下: create procedure addstudent ( name nvarchar(50), studentnumber nvarchar(50), password nvarchar(50), studentid int output )asinsert into students( name, studentnumber, password )values( name, studentnumber, password )select studentid=identitygo2. electivelist存储过程该存储过程根据输入的学生唯一标识studentid返回该学生已经选修的所有课程的信息,包括课程编号courseid,课程名称,授课教师,课程学分和课程学时等.创建存储过程的sql语句如下:create procedure electivelist(studentid int )asselect courses.courseid, courses.coursename, courses.courseteacher, courses.coursescore, courses.coursehoursfrom elective inner join courses on courses.courseid=elective.courseidwhere elective.studentid=studentidgo3. electivetotallist存储过程该存储过程用于管理员查看所有学生选课的情况.存储过程里面通过inner jioinon语句实现了 elective表,courses表和students表的连接查询.创建存储过程的sql语句如下:create procedure electivetotallist asselectelective.studentid,students.studentnumber,students.name,courses.courseid,courses.coursename,courses.courseteacher,courses.coursescore,courses.coursehoursfromelectiveinner join courses on courses.courseid=elective.courseidinner join students on students.studentid=elective.studentidorder by elective.studentidgo第五章 详细设计本系统是c/s(客户端和服务端)两层结构.服务端部分是sql server 2000关系数据库.数据库里存放着编译好的存储过程,主要负责数据的存取,也负责一些的业务逻辑处理.例如判断学生的选修课程时是否在允许时间段里面.客户端包含两个子系统,分别是学生选课子系统和管理员子系统.学生子系统安装在学校公共机房,图书馆等场所的电脑上,供学生选课时使用,通过局域网访问教务处的数据库服务器.管理员子系统安装在教务处办公室的桌面型电脑上,供管理教务的教师使用.系统的结构如图3-1所示: 后台数据库系统管理员管理子系统学生选课系系统图3-1应用系统结构客户端分为学生选课子系统和管理员管理子系统.这两个子系统相对独立,不会直接发生操作.它们是通过存于后台数据库的数据产生联系的.例如管理员修改后台数据库上的课程信息,这就会影响学生查看课程信息的结构.又如管理员可以在配置文件上修改允许选课的期限,管理子系统会根据这个配置文件的内容修改数据库,这会导致学生选课子系统是否允许学生选课.学生选课子系统包含查看课程信息,选修课成和退选课程3个功能模块,如图3-2所示,允许学生查看课程信息,在限定的时期内选修课程,退选课程和增选课程.查看课程信息学生选课子系统选修课程退选课程图 3-2 学生选课子系统结构图管理员管理子系统包含管理学生记录,管理课程信息,修改选课期限和查看选课情况4个功能模块,如图3-3所示.允许管理员添加,删除和修改学生记录以及课程信息,可以查看选课情况以及修改选课的期限.管理员管理子系统 查看选课情况 修改选课期限 管理课程信息 管理学生记录图 3-3 管理员管理子系统结构图本选课系统分为系统和管理员子系统两部分.每个系统的建立都是使用visual c#创建一个windows应用程序的项目.为了提高代码的重用性和封装对存储过程的调用,每个子系统都实现了一个存取数据的公用类,提供本子系统使用.同时,为了节省本系统运行时占用的计算机资源,每个子系统的实现时都只使用一个窗体(form),并且使用tabcontrol控件,界面的元素都显示在talcontrol控件上的选项卡页上.5.1 学生子系统的设计学生子系统需要实现以下功能:学生可以查看课程信息,可以在限定的时间内选修课程,可以查询自己选修课成的情况,在限定的时间之内可以取消某门已经选择的课程或者增选某门课程.如果被选课程的选修人数达到了上限,则学生不能选修该课程.下面时系统的卡发过程:学生信息类时一个简单的数据库类,用于放在学生的基本信息,包括学号,名字,选课密码.学生信息类的实现代码如下:public class studentdetails public string studentnumber; public string name; public string password;1. 登陆管理学生只能登陆成功才能进行查看课程信息和选修课程等操作.学生子系统的登陆界面如图下如所示:登陆管理的主要逻辑在loginbutton_click事件处理函数中,通过调用数据访问类中的studentlogin方法判断是否登陆成功,如果登陆成功则调用getdataset方法返回该学生已经选择的课程信息.2. 显示课程信息学生选修课程之前需要查看课程的详细许诺西,本系统使用treeview控件显示课程的信息.首先显示各个院系的名称,单击每个院系的节点就能够查看该院系开设的课程.如下图:在主窗口mainform类的构造函数中就调用filldirectorytree函数初始化treeview控件的显示.treeview控件存放在electivepanel这个容器中,在窗口创建的时候设置electivepanel不可见.由于所处的容器不可见,treeview自然页不可见.只有用户登陆后electivepanel才可见,从而用户可以看见treeview控件的课程信息.mainform的构成函数的代码如下:public mainform ()initializecomponent();studentid=0;courseid=0;electivepanel.visible=false;filldirectorytree();treeview控件里面显示数据是通过调用filldirectorytree函数实现的. filldirectorytree函数首先通过getdataset函数从数据库中读取院系的信息返回在一个dataset里面,然后遍历这个dataset中的院系信息同时创建treeview控件树的节点存放这些院系的信息.每个院系节点由通过调用adddirectories函数为每个院系节点绑定每个院系所开设课程的信息.filldirectorytree函数里面调用了adddirectories函数. adddirectories函数主要负责在每个院系节点下面创建该院系所开设课程的节点.单击treeview控件中的课程名称,在treeview控件右部会显示课程的详细信息.如下图所示.这个功能在treeview控件的directorytree_afterselect响应事件函数里实现.treeview控件的directorytree_afterselect响应事件函数首先要判断学生在treeview控件树中选择的节点是表示院系还是表示课程,如果选择的是课程节点则从数据库中读取该课程的详细信息并显示出来,然后把课程编号存放在主窗口体系的成员变量里面,以便别的主窗口体系的成员函数使用.3.选修课程学生查看课程的详细后,如果对这门课有兴趣就可以单击”选择”按钮选择这门课程.系统首先判断是否在允许选课的时期内,如果选课已经截至或者选课尚未开始,则显示相关的提示信息,如下图所示.如果在允许选课的时期内,则判断该学生是否已经选择了这门课程.如果学生已经选择了这门课程,则显示相关的提示信息.如果最终选课成功则会有”选课成功”的信息.如下图所示:4. 退选课程在允许选课的时期内,学生可以对已经选择的课程进行退选.首先在查看课程信息的treeview控件中选择需要取消选择的课程,然后单击”退选”按钮.系统首先判断是否在允许选课的时期内,如果选课已经截至或者选课尚未开始,则显示相关的提示信息.然后系统要判断该学生是否已经选择了这门课程,如果该学生没有选择这门课程,则显示相关的错误提示信息.如果最终退选课程成功则显示”课程退选成功”的消息.退选课程的主要处理逻辑在cancelbutton_click事件处理函数里面.如下图:5. 查看已选课程显示学生已经选择的课程信息是在前面提到的loginbutton_click事件响应函数中实现.学生登陆成功后可以在已选课程”的选项卡中显示该学生已经选择的课程信息.5.2 管理员子系统的设计管理员子系统需要实现一下功能:添加和删除学生记录,可以添加,删除和修改课程信息,查看和更改选课的有效时间.对于管理员在存取数据库的操作都封装在csql类里面.下面对该类尽心详细的分析:定义私有的成员变量和构造函数,代码如下:private string m_strconnstring;private sqlconnection m_connconnection;public csql() 1.登陆管理管理员子系统的登陆界面和学生子系统的登陆界面类似,如下图所示.由于管路员不受选课时间的限制,所以管理员子系统的登陆管理比学生子系统的登陆管理更加简单.登陆管理的主要处理逻辑在loginbutton_click事件处理函数中,如果登陆成功则调用getdataset方法获得所有学生选课的情况,以便管理员查看.2.修改课程管理院登陆成功后可以单击”课程设置”选项卡,在该选项卡里面的treeview控件中选择要更新新信息的课程,该课程的详细信息就会显示出来,管理员编辑完这些课程信息后,但是”修改”按钮就可以完成修改课程的操作.如下图所示:修改课程的主要处理逻辑在”修改”按钮的响应事件函数modifybutton_click函数里面. modifybutton_click函数调用了数据库访问类型modifybuttoncourse方法完成修改课程的操作.3.删除课程管理员登陆成功后可以单击”课程设置”选项卡页,在该选项卡里面的treeview控件中选择要删除的课程,该课程的详细信息就会列举出来,单击”删除”按钮可以删掉该门课程,操作成功显示”删除课程成功”的信息(如下图).删除该课程的同时要删掉所有学生选择这门课程的记录,还要更新treeview控件上的课程信息的显示.如下图:删除课程的主要处理逻辑在”删除”按钮的响应事件函数deletedbutton_click函数里面. deletedbutton_click函数调用了数据库访问类的removecourse方法完成删除课程的操作.4.添加课程管理员登陆成功后可以单击”添加课程”选项卡页,在该选项卡里面新课程的详细信息.单击”添加”按钮可以添加这门新课程,添加操作成功后有响应的提示信息.如下图:添加课程的主要处理逻辑在”添加”按钮的响应事件函数button2_click里面.该函数调用了数据库访问的addcourse方法完成添加课程的操作.5.查看选课情况管理员登陆成功后可以在”选课情况”的选项卡中查看所有学生的选课情况,如图:让管理员查看所有学生选课情况是在”登陆管理”部分讲述的logingbutton_click事件响应函数中实现的,代码如下:string sqlcommstr = “electivetotallist”;selecttotaldatagrid.datasource = mysql.getdataset(sqlcommstr,”electivelist”)6.学生管理学生管理部分主要实现添加,删除和修改该学生的功能.学生管理的操作界面如图:在修改或者删除学生记录之前,需要管理员查找该学生的记录.首先输入学生学号.然后单击”查找”按钮.如果该学生的记录存在的话,则系统会把学生的信息显示出来.如果该学生的记录不存在,则系统显示”没有这个学号!请检查输入!”的消息. 学生的信息显示出来后,管理 员可以编辑这些消息,然后单击”修改”按钮,新的信息就写入数据库.如果写入数据库成功则显示”更新学生信息成功”的信息.反之显示”更新学生信息失败!”的信息.管理员页可以通过单击”删除”按钮删除整条学生记录.管理员要删除学生记录必须先把该学生的记录查找出来,然后单击删除按钮删除该学生记录.删除成功后会显示”删除学生信息成功!”的信息. 为了保证学生记录的正确性和可靠性,所有学生记录都是由管理员添加进数据库的.管理员输入学生信息后单击”添加”按钮就完成了往数据库插入新的学生记录工作.7. 管理员配置文件目前使用配置文件的应用系统越来越多,这是由于配置文件都是文件的形式,容易由文本编辑打开并修改,从而使得应用程序部署简单,无需要改代码或者更新数据库来更新配置信息.本子系统使用一个xml文档来存放一些基本的配置信息,主要是选课的开始时间和结束时间.改配置文件需要存放在管路员子系统应用程序搜在的目录里.管理员使用这个xml配置文件更新数据库里period表的选课开始时间字段,从而决定是否允许学生选课.使用xml文档作为配置文件的好处在与于xml是工业标准,公开的格式,是大家都应该执行的规范,因此不同平台的异种应用系统都能够处理xml文档,这样提高了数据的通用性.管理员子系统会根据一个xml文档来更新系统的选课时期,该文档可以由其他应用系统产生.由于应用程序都能够读懂xml所以可以很好的实现程序之间的数据互通.当然.不系统需要获取的数据量很少,只有一个选课开始时间和选课结束时间,可以让人员之间直接交换信息,但是对于数据量较大的数据交换,使用xml文件互相传递信息就很有效了,进一步的可以在网络上使用xml完成数据信息的交换,这样就更加方便和高效了.管理员子系统配置管理包括读取xml配置文件的配置信息,使用该配置文件信息更新数据库以及生成新的配置文件等功能,其界面如下: 5.3学生信息报表的设计水晶报表主要由crystalreportviewer控件组成, crystalreportviewer控件用于显示水晶报表的内容,包括图和表,它具有一些自带的功能:翻页,跳转向某一页,关闭当前视图,打印报表,刷新,导出报表,切换数组,放大缩小和查找功能.数据库录入模块又分为两部分:学院信息录入和课程信息录入.学生的信息报表主要是为了让管理员更好的了解课程的情况,并且能很快的查找所有课程详细的情况,所选课程授课老师的情况并且打印出来.管理员可以根据课程号,课程名称,部门,授课老师等,如果没有出入具体查找信息将输出全部的课程情况,当选择打印预览时,将调用打印预览窗体并且通过crystalreportviewer控件调用数据集文件自动生成word形式文档,直接打印即可,如下图:5.3.1 添加数据集 ado.net 数据集是以xml形式表示的的数据视图,它是一种数据关系视图.数据集在断开的缓存中存储数据.数据集的结构类似于关系数据库的结构,它公开表,行和列的分层对象模型.从数据库服务器资源管理器将表course和departments拖到dataset1.xsd中,这两个表通过department字段相关联,如下图:5.3.2 用crystal报表专家生成报表数据集建立好以后使用水晶报表专家向导完成报表样式.在向导中添加表course和departments向导将自动连接两张表中的department字段,在字段选项卡中添加报表中要显示的字段:courseid,coursename等等所需要的字段,然后选择分组依据字段courseid.完成后形成下图报表样式: 5.3.3 用crystal报表设计器在使用报表专家成生报表之后,可以通过报表设计器中的字段资源管理,报表设计器和水晶报表工具来完成插入,修改和删除等功能,来完善报表.第六章 后记通过本次设计,不但对visual c#.net这一开发工具有所掌握,更重要的是对进行软件设计的整体设计流程及思维方法有了深刻的认识。到了最后,发现的许多问题都源于没有认真地按步骤进行设计,不重视需求分析,总体设计部分,对各个方面将会产生的问题考虑不周全。同时,在毕业设计的过程中,我们小组的同学互相学习,相互鼓励,营造了一个良好的学习氛围。在这样一种团结,紧张的氛围中,不但使我学会了与别人合作,我还真正领会到了团结合作的团队精神的实质和重要性。没有一个良好和睦的工作环境,没有团结合作的团队精神,就不可能取得成功,今后也不可能取得大的成就。在设计过程中,对于我来说,由于很多都是新知识,这就迫使我到处查阅相关资料,学习新知识,从而培养了独立思考解决问题的能力。 总之,在整个设计完善的过程中,我学到了在书本里根本学不到的许多知识,体会到软件设计中,总体把握系统的流程的为实现某个功能的各个程序的流程是多么的重要,再一次感谢玄英晨老师的细心指导!参考文献1. 飞思科技产品研发中心 编著2. 尹立宏 编著3. simon robinson等 编著4. 孙一波 王华杰 编著论 文 指 导 教 师 评 语签字(印章):年 月 日院 系 论 文 答 辩 机 构 意 见答

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论