1绪论
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。
学校作为一种信息资源的集散地,学生和课程繁多,包含很多的信息数据的管理。
学生选课是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,由于信息比较多,选课信息的管理工作混乱而又复杂;一般选课情况是记录在文件上,课程的数目和代号也记录在文件中,时间长了,如再要进行查询,造成查询费时、费力。这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
作为计算机应用的一部分,使用计算机对学生选课信息进行管理,有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是科学化、正规化管理,与世界接轨的重要条件。
基于这些问题,有必要建立一个学生选课系统,使选课管理工作规范化,系统化,程序化,避免选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。
2 需求说明
本系统就是为了管理好学生选课信息而设计的,系统开发的总体任务是实现学生选课信息的系统化、规范化和程序化,建立学生选课系统对于减轻管理人员的劳动强度、提高工作质量和效率、可以快捷、方便的对相关信息进行查询、提高了信息资源的利用率和管理水平。
2.1 系统功能模块图
学生选课系统需要完成的功能主要有:
(1)查询信息,包括按课程号、学号、教师号、上课时间等进行查询。
(2)选课信息,包括按系别、专业、班级选取学生姓名、学号、按课程号、课程名、教师号登记。每个学生选课时,必须判断学生是否能够选修该们课程。
(3)查询统计,包括统计每门课的人数,学生的选课情况。
(4)报表信息,包括打印每门课学生名单,打印每个学生每个学期的课程表。
(5)系统管理,包括由超级用户实现用户帐号的管理,包括新建帐号、删除帐号、修改密码、设定权限等操作。
(6)数据维护,包括基本表、课程信息表、选课表的维护操作。
对上述各功能进行集中、模块划分,得到系统功能模块图,如图2-1。
学生选课系统
系统管理
选课信息
数据维护
查询统计
课程信息
学生信息
各种表的维护
打印选课名单
学生基本信息
删除课程
添加课程
必修课程
选修课程
设定权限
删除帐号
修改密码
新建帐号
按上课时间查询
按课程号查询
按教师号查询
按学生号查询
图2-1 系统功能模块图
2.2系统流程分析
系统流程就是用户在使用系统时的工作过程。系统的工作流程都是从用户登录模块开始,对用户身份进行权限验证,进而对于系统进行管理的。本系统的流程分析图如下:
开始
重试
否
退出程序
失败达到3次
用户登录
失败 是
数据维护管理
选课信息查询
查询统计管理
课程信息管理
进入系统
学生信息管理
系统管理
图2-2 系统流程图
2.3 数据字典
学生选课系统,通过对学生选课过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:
(1)学生信息,包括学号、姓名、年龄、性别、班级、年级、所在院系、专业、入学时间、籍贯等。
(2)教师信息,包括教师号、教师名、年龄、性别、教师职称、教师所属院系、专业等。
(3)课程信息,包括课程号、课程名、学时、学分、课程性质、开课学期、开课院系、开课专业、考试类型、上课安排等。
(4)系部信息,包括系号、系名、专业号、专业名等。
(5)用户信息,包括用户名、密码。
(6)选课信息,包括学生选课情况(所选课程名、得分等情况)。
(7)教师授课,包括教师授课情况(所授课程号、允许选课人数等情况)。
2.4 数据流图
(1)登录时的数据流
进入系统
用户登录 合法要求
不合法要求
退出系统
图2-3 登录时数据流图
数据描述
用户登录=用户名+密码
用户身份验证 合法要求 :进入系统
不合法要求 :退出系统
加工逻辑:避免别人随意篡改数据,增加系统安全性
(2)查询统计
结果显示
查询命令选择
所有数据库表格
图2-4 查询统计数据流图
数据描述,通过选择查询命令实现简单条件、组合条件查询。
新 建 帐 号
(3)系统管理
管理员
删 除 帐 号
用户信息表
修 改 密 码
设 定 权 限
图2-5 系统管理数据流图
数据描述,管理员通过新建删除修改设定权限等方式实现对用户帐号表的管理。
提交所有数
据库表格
(4)数据维护
管理员
备份数据库
图2-6 数据维护数据流图
3 数据库设计
数据库是信息管理系统的后台,存储着所有的信息,在信息管理中占有非常重要的地位。
数据库结构设计的好坏对应系统的效率及实现产生直接影响,而且好的数据库结构也将有利于程序的实现。
3.1数据库概念结构设计
从上面的信息规定出的实体有学生实体、课程实体、系部实体、教师实体,如图3-1。
学号
1、实体图
班级
系号
姓名
专业
年级
年龄
入学时间
性别片
学 生
课程名
课程号
课程性质
上课安排
开课院系
开课学期
开课专业
学分
开课院系
学时
课 程
专业名
系号
专业号
系名
系 部
系部
姓名
教师号
年龄
专业
性别
职称
教 师
图3-1 实体图
2.E-R图
选课
学生
授课
属于
课程
N M
教师
系部
N 1
1 M
图3-2 E-R图
3.2数据库逻辑结构设计
用户的需求具体体现在各种信息的提供、保存、修改、查询等方面,经调查和分析,针对一般学生选课系统的需求和对系统流程图的分析,设计成如下的逻辑结构。
1.系部信息表dep_pro
“系部信息表dep_pro”用来提供学生所在系别等信息。
表3-1 系部信息表
| 字段名 | 字段 | 数据类型 | 数据长度 |
| 系号 | dep_id | char | 10 |
| 系名 | institute_dep | char | 20 |
| 专业 | department_pro | char | 20 |
| 专业号 | pro_id | rchar | 10 |
“教师信息表teacher”用来提供教师的基本信息。
表3-2 教师信息表
| 字段名 | 字段 | 数据类型 | 数据长度 |
| 教师号 | t_no | char | 10 |
| 姓名 | t_name | char | 10 |
| 年龄 | age | tinyint | 1 |
| 性别 | sex | char | 2 |
| 职称 | duty | char | 20 |
| 所属院系 | institute_dep | Char | 20 |
| 专业 | department_pro | char | 20 |
“学生信息表student”用来提供学生的基本信息。
表3-3 学生信息表
| 字段名 | 字段 | 字段类型 | 数据长度 |
| 学号 | stu_no | Char | 10 |
| 姓名 | stu_name | Char | 10 |
| 年龄 | age | tinyint | 1 |
| 性别 | sex | Char | 2 |
| 班级 | stu_class | Sallint | 2 |
| 年级 | grade | Char | 10 |
| 所在院系 | institute_dep | Char | 20 |
| 专业 | department_pro | Char | 20 |
| 入学时间 | enrol_time | datetime | 8 |
| 籍贯 | stu_hometown | varchar | 50 |
“课程信息表course”用来提供课程的基本信息。
表3-4 课程信息表
| 字段名 | 字段 | 数据类型 | 数据长度 | |||
| 课程号 | c_id | Char | 10 | |||
| 课程名 | C_name | nchar | 20 | |||
| 课时 | C_time | tinyint | 1 | |||
| 学分 | Credit_hour | tinyint | 1 | |||
| 课程性质 | C_character | nchar | 10 | |||
| 开课学期 | Start_term | char | 20 | |||
| 开课院系 | institute_dep | char | 20 | |||
| 开课专业 | department_pro | char | 20 | |||
| 考试类型 | exam_type | char | 50 | |||
| 上课安排 | arrange | nchar | 50 | |||
“学生选课表select info”用来提供选课的基本信息。
图3-5 学生选课表
| 字段名 | 字段 | 数据类型 | 数据长度 |
| 学号 | stu_no | Char | 10 |
| 课程号 | c_id | Char | 10 |
| 得分 | score | Char | 10 |
| 开课时间 | start_time | nchar | 20 |
| 结课时间 | achieve_time | nchar | 20 |
“教师授课表teach_info”用来提供所选课程的人数和教师。
表3-6 教师授课表
| 字段名 | 字段 | 数据类型 | 数据长度 |
| 课程号 | c_id | Char | 10 |
| 教师号 | t_no | bigint | 8 |
| 姓名 | t_name | Char | 10 |
| 已选人数 | num | Smallint | 2 |
| 可选人数 | capacity | smallint | 2 |
“用户信息表user_pswd”用来提供用户的基本信息及权限。
表3-7 用户信息表
| 字段名 | 字段 | 数据类型 | 数据长度 |
| 用户口令 | id | bigint | 8 |
| 用户名 | users | varchar | 25 |
| 密码 | password | varchar | 25 |
| 权限 | authority | varchar | 25 |
对于数据库应用系统来说,最常用的功能就是安全控制、对数据的增、删、改、查及生成报表。我们所设计的数据库也应包括这些基本的操作。
(1)安全控制
任何数据库应用系统都需要安全控制功能,我们所设计的学生选课系统也不例外。假设我们将系统的用户分为如下几类:
学生信息管理:包括学号、姓名、年龄、性别、班级、年级、所在院系、专业、入学时间、籍贯等,可对其进行添加、删除、修改等操作。
教师信息管理:包括教师号、教师名、年龄、性别、教师职称、教师所属院系、专业等,可对其进行添加、删除、修改等操作。
课程信息管理:包括课程号、课程名、学时、学分、课程性质、开课学期、开课院系、开课专业、考试类型、上课安排等可对其进行添加、删除、修改等操作。
系部信息管理:包括系号、系名、专业号、专业名等,可对其进行添加、删除、修改等操作。
用户信息管理:包括用户名、密码。
选课信息管理:包括学生选课情况,可对选课的学生、人数、所选课程等进行查询。
学生的需求是查询院系的课程、学生选课情况及学生信息的修改;教师对选课系统学生选课情况进行操作,同时形成学生选课查看确认;选课管理员的功能最为复杂,包括对学生、教师、选课进行管理和统计,及系统状态的查看、维护并生成选课报表。在实现时,将每一类用户作为一个角色实现,这样在授权时只需对角色授权,而无需对每个具体的用户授权。
(2)数据操作功能
数据操作功能包括对这些数据进行添加、删除、修改、查询功能。具体如下:
(1)数据录入
包括对这几张表的数据的录入。只有具有相应权限的用户才能录入相应表中的数据。
(2)数据删除
包括对这几张表的数据的删除。只有具有相应权限的用户才能删除相应表中的数据。
(3)数据修改
当某些数据发生变化时或某些数据录入不正确时,应该允许用户对数据库中的数据进行修改。修改数据的操作时,一般是先根据一定条件查询出要修改的记录,然后再对其中的某些记录进行修改,修改完后再写回到数据库中去。同数据的录入与删除一样,只有具有相应权限的用户才能修改相应表中的数据。
(4)数据查询
在数据库应用系统中,数据查询是最常用的功能。应根据用户提出的查询条件进行数据查询,在设计系统时应首先征求用户的查询需求,然后根据这些查询需求整理出系统应具有的查询功能。一般允许所有使用数据库的人都具有数据查询权力。本系统应具有的一些查询要求有:
学生信息查询。
选课信息查询。
主要是完成学生系别、学生班级、学生个人基本信息、所选课程、授课教师等查询。
(3)生成报表
数据报表是一个极为灵活的报表设计工具,可以以“数据环境设计器”作为数据源,创建有层次的、汇总若干关系型数据表数据的复杂报表。本设计主要是选课名单报表。
5 结论
通过本次设计我学习了如何使用SQL Server2000和VB来创建数据库。学生选课系统在正常运行中需要对学生信息、教师信息、课程信息进行管理,利用学生系统系统及时了解各个关节中信息的变更,有利于提高管理的效率。
本系统实现对选课信息、教师信息、总体选课情况信息的查询和统计、工作人员和管理人员信息查看及维护。学校管理员可以浏览、查询、修改、统计选课的基本信息;浏览、查询、统计和修改学生选课的基本信息,浏览、查询、统计学生信息,但不能添加删除和修改学生的信息,这部分功能应该由工作人员执行,但是,删除某条学生选课基本信息记录时,应实现对该学生选课的级联删除。并且还应具有生成选课报表,并打印输出的功能。设计不同用户的操作权限和登陆方法对所有用户开放的学生选课查询和个人部分信息维护查看个人情况信息维护学生个人密码根据选课情况对数据库进行操作并生成报表根据选课情况对数据库进行操作并生成报表查询及统计各种信息维选课信息维护工作人员和管理员信息维护学生信息处理信息的完整性。
在本系统的开发过程中,由于本人在知识、经验方面都存在着不足,以及在整个开发的过程中,时间也比较仓促。因此,该系统存在一些缺陷和不足。因为对学生管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。尽管本系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易。相信本学生选课系统是一套学校在日常管理中必不可少的管理软件。
6 参考文献
1 周佩德. 数据库原理及应用. 第一版.电子工业出版社,2000:105-118
2 刘炳文. VISUAL BASIC程序设计. 第一版. 人民大学出版社, 1999:167-185
3 吴开军. 选课系统的设计与实现. 第二版. 西南师大出版社,1999:46-72
4 刘炳文. 精通VISUAL BASIC 6.0. 第四版. 人民邮电出版社, 2003:95-106
5 黄淼云. VB6.0办公自动化编程. 第三版. 国防工业出版社, 2005:184-206
6 王要武. 管理系统. 第四版. 电子工业出版社,2003:66-80
7 林立军. Visual Basic 6.0数据库开发指南. 第一版.科技大学出版社,2000:115-136
8 张宏林. 按实例学Visual Basic 6.0. 第一版. 人民邮电出版社,2000:199-213下载本文