简单教务管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉轻工大学
《高级编程技术》
大作业
学院:数学与计算机学院
班级:软件工程 1301
姓名:刘辉
学号: 1305110059
指导教师:黄亮
2016.06.13
简单教务管理系统的设计
一、实验目的
设计一个简单的教务管理系统,能实现对学生信息、课程信息、学生成绩等方面进行查询、修改、添加等操作。
二、系统设计
1、环境
操作系统:Windows 7 Ultimate with SP1 (64-bit)
数据库:Microsoft Access
工具:Visual Studio 2015
在这个程序中我使用的是Access数据库,先利用Access数据库管理软件新建一个数据库,在数据库中建立学生、课程和选课三个表,然后在VS2015中利用添加数据源的方法连接Access数据库。数据表在DataGridView里显示。
2、数据库的准备工作
为了使本程序的使用更加方便快捷,也让测试更加容易,我打算让程序自己创建数据库文件并建立相关表,同时添加相应的字段。代码截图如下:
这里先检测程序所在路径下是否已经存在“test.mdb”这个数据库文件,如果存在,就不做任何操作;如果不存在,就创建这个文件,然后建立数据表和字段。
建立的相关数据表和字段内容如下:
3、数据的查询和显示
实现表的增删改查操作的实现比较简单。查看操作是用数据库的SELECT语句,把查询到的表通过Adapter传给DataSet,然后再绑定到DataGridView中。删除、插入和更新操作,则是用SQL语句中的Insert、Delete、Update语句来实现。
用cmd储存语句后,用OleDbCommand来执行语句。并对输入的数据都进行相应的错误输入提示
将数据库的查询功能和数据表的绑定显示封装成一个函数,方便使用的时候直接调用。代码截图如下:
4、ComboBox的联动
在选择学院、专业、班级的时候,需要用到ComboBox的联动,即选择相应的学院出来相应的专业,选择相应的专业出来相应的班级。要实现这个功能,可以考虑数据库先将相关数据存成表,之后通过查询来动态添加数据到ComboBox里面。当然,数据比较少时,用数组也可以满足要求。如下:
这里将联动的方法封装起来,方便其他地方调用。思想是:先清空ComboBox里面的内容,再根据第一个ComboBox选择项的索引值来确定第二个ComboBox的内容项,确定方法是通过使用上面定义的全局的静态数组。
LinkLable控件可以向Windows 窗体应用程序添加Web 样式的链接,在这里我使用了一个获取Microsoft Access的LinkLable,URL是Access的官方网站,打开方式并没有填写,所以会以电脑的默认浏览器打开。
5、查询按钮响应函数
6、添加学生信息
添加学生信息依然是SQL语句,只要能够获取TextBox的内容和ComboBox的内容以后就可以写入数据库。TextBox的内容比较简单,就是TextBox.Text,ComboBox的话有几种方式,如果直接添加的文本数据,就可以直接使用ComboBox.Text取到,如果不是,亦可使用ComboBox.Items.Text。代码如下:
右侧没有截取完整,因为代码和之前的类似,都是取TextBox和ComboBox的值。
7、添加课程信息
添加课程信息在实现方面和添加学生信息方式大同小异,由于详细的代码在上面已经详细的贴出来了,这里就不再赘述了,主要写出核心的代码。
形如insert into course values('?’,’?’) 的SQL语句,插入即可。
8、成绩管理
SQL: select cname from course;
将结果加载到ComboBox即可。之后通过insert语句将成绩插入到sc表中
9、登录窗口
记住用户名和密码可以通过保存到配置文件的方式实现,不过为了简单起见,并没有实现这个功能,而只是仅仅做了一个可供登录的窗口,用户名和密码都为1。
主要的实现的代码如下:
需要注意的是,在Program.cs里面修改程序入口之后,在Login窗口的对应代码文件里书写转到主窗口的代码,先new出来实例之后,再”主窗口.show();”
但是要保证Login窗口的关闭,就要写hide()函数。不写close的原因是,直接在登录窗口里面new出来的主窗口,在登录窗口关闭以后,主窗口也会跟着关闭。所以一般做法是先打开主窗口,然后隐藏,再打开登录窗口。这里为了简单,直接hide。
当然这么做也有个问题,就是在实际运行的时候,关闭了窗口,程序并没有结束,登录的窗口依然在后台保持运行,这时候再运行此程序,就会报错,解决办法有很多,这里可以重写主窗口的关闭函数,将登录窗口一同销毁。
三、功能截图
1.学生信息录入
添加信息成功以后会弹窗提醒添加成功,如果信息添加失败,例如学号重复,会弹出提醒,提醒的内容是数据库的异常,这里不对异常进行处理,直接以弹窗的方式显示出来。
同理,在添加课程信息,或者成绩管理时会遇到同样的SQL语句异常问题,我依然选择以同样的方式弹窗提示。由于篇幅限制,不再截取其它异常的图片。
2.课程信息录入
3.学生成绩管理
可能会因程序问题,导致课程无法显示,点击右边的刷新按钮即可。实现的方法上面已经详述。
4.查询信息
这里提供学号精确查询和班级整体查询两种方式,信息是通过DataGridView 显示的。
这里主要是用到了TextBox,不过需要更改其ReadOnly属性为Ture。使其仅为可读。