资源描述
<p>经济学院
课程设计报告
基于VB+SQL的学生信息管理系统
课程名称: 数据库原理
专 业: 软件工程
姓 名:
班 级:
学 号:
指导教师:
2009年 7 月10日
基于VB+SQL的学生信息管理系统
一、需求分析
1. 编写目的
描述系统的需求,在开发者和提出需求的人之间建立一种理解和沟通。
2. 范围
a.名称:学生信息管理系统;
b.这是一个学生信息管理系统,目标是提高学生管理工作的效率。
3. 产品功能
这个系统具有对学生个人信息、课程信息进行管理和维护的功能。学生可以通过此系统进行个人信息查询。用户能对有关学生的各类信息的数据进行输入、修改和查询,能对学生信息进行按专业、班级进行查询与打印,对进入系统的人员进行管理员和用户的限制,并能对密码进行修改,能对数据进行备份和恢复。
具体分为管理员和用户对功能的需求:
管理员对功能的需求:管理员的权限最大,有关学生信息的浏览,能按照学生的专业、班级、年级进行学生信息的添加、修改、删除,班级管理信息的浏览、添加、修改、删除,学生成绩的查询、添加、修改、删除;
用户对功能的需求:学生只是利用此系统进行与自己有关的信息查询、输入等。浏览个人基本信息,登陆系统后修改个人密码、查询个人成绩;
4. 功能需求
a.输入:
对于学生信息的查询、修改、删除,可以输入的数据包括学生的姓名、学号、班级、年级信息,然后系统按此找到符合的学生信息;对于班级信息的查询、修改、删除,可以输入的数据包括学生的班级信息;对于学生成绩的查询可以输入的数据包括姓名、班级信息;
b.输出:
对于学生信息的查询、修改、删除,系统按此查询到结果后输出的数据包括学生的姓名、学号、年龄、性别、班级、年级信息等;对于班级信息的查询、修改、删除,输出的数据包括学生的班级、姓名、学号等信息;对于学生成绩的查询输出的数据包括姓名、学号、班级、成绩信息等;、
5. 性能需求
在这个系统中最需要考虑的性能需求就是系统安全性问题。在系统的每个阶段,均需要考虑彼此间的认证与授权,尤其要注意认证,简单的说就是确定谁是管理员,谁是普通用户,并验证该用户的身份,能使用系统的特定功能,也就是说,需要一种方法来决定允许特定的用户进行什么样的操作。
6.程序用例图
用户用例图:
管理员用例图:
二、概念结构设计
1.系统功能模块图:
学生信息管理系统的主要功能模块划分包括以下几个方面:
(1)系统登陆模块
用于登录此系统。此登录系统中有权限管理功能,用户的权限分别为系统管理员,用户,不同的权限所能执行的功能不同。
其中系统管理员拥有所有权限,普通用户拥有部分权限。
(2)帐户管理模块
该系统管理员可以修改密码,开启和关闭用户的功能。
(3)学生管理模块
管理员对学生各种信息添加到数据库中,并且可以进行查询、修改,对不需要的记录进行删除,用户可以对学生个人信息进行查询,修改自己的密码。
(4)学生成绩模块
该模块的功能是查看学生成绩。
(5)数据备份/恢复模块
该模块能随时对数据进行备份,必要时对数据进行恢复。
该系统模块图如下:
学生信息管理系统
登陆系统模块
账户管理模块
学生管理模块
学生成绩模块
登陆系统模块
数据备份/恢复模块
图1 系统模块图
2.系统数据流图
登陆系统模块数据流图:
用户
用户名和密码
错误信息
正确信息
图2登陆系统模块数据流图
验证用户信息
重新输入
进入系统
帐户管理模块数据流图:
用户
用户名和密码
非管理员信息
管理员信息
验证用户信息
重新输入
进入系统
修改密码
新密码
新密码信息
图3帐户管理模块数据流图
用户信息表
学生管理模块数据流图:
用户
学生信息查询
学生信息
学生查询
学生信息
清单
管理员修改、删除、添加
学生信息
清单
新信息
新信息
学生信息清单
图3学生管理模块数据流图
用户信息表
学生成绩模块数据流图:
用户
学生成绩查询
学生信息
成绩查询
学生成绩
清单
管理员修改、删除、添加成绩
学生成绩
清单
新信息
新信息
学生成绩清单
图4学生成绩模块数据流图
用户信息表
数据备份/恢复模块数据流图:
管理员
登陆系统
帐户信息
数据备份
数据信息
备份数据
图5数据备份/恢复模块数据流图
用户信息表
3.各个实体的实体图:
1).用户信息实体图:
用户
用户名
用户密码
用户类型
图6 用户信息实体图
用户实体用于系统登录时,学生的用户名即为学生学号,密码默认为学号,用户类型分为一般用户和管理用户。
2).学生信息实体图:
学生
学号
姓名
性别
年龄
班级号
年级
密码
图7学生信息实体图
3).班级信息实体:
班级
班级号
班级名称
班主任
所在学院
学生人数
图8 班级信息实体图
4).课程信息实体:
课程
学分
课程号
名称
学时
学院
图9课程信息实体图
5).学生课程实体:
课程-成绩
记录号
学号
课程号
成绩
图10课程-成绩实体图
4.系统E-R图:
根据以上对系统的需求分析、模块设计就可以作出满足用户需求的各种实体以及他们之间的关系。根据这些设计规划出不同的实体:用户信息实体、学生信息实体、班级信息实体、课程信息实体、课程-成绩信息实体,下面是实体E-R图:
包含
登陆
学生
班级
课程
学习
用户
图11 实体E-R图
成绩
性别
姓名
密码
学号
课程号
类型
密码
用户名
年级
班级
年龄
所在学院
班主任
班级名
班级号
学院
学时
名称
学分
学生人数
三、逻辑结构设计
数据库表设计:
对系统有了整体上的设计之后就可以设计数据库表的形式和内容了,由E-R图转为关系模型,系统需要的数据库表的具体内容如下:
1)用户信息表users:
用于存储学生信息管理系统中所有参与人员的信息,包括学生信息、管理员信息,这样做可以方便系统判断用户的类型以及对用户类型做统一管理。
关系模型:
用户(用户名,用户密码,用户类型)
users(users_id,users_password,users_type)
列名
数据类型
大小
含义描述
users_id
varchar
10
用户名,主键
users_password
varchar
10
用户密码
users_type
int
用户类型,0表示学生,1表示管理员
表1用户信息表user
2)学生信息表student:
在这个系统中,最重要的就是学生,系统设计了学生信息数据表,学生信息表是学生信息管理模块的核心数据库表,用于存储本校所有学生信息,学生信息管理模块的学生信息查询、学生信息修改、密码修改都是基于这张表的。
关系模型:
学生(学号,密码,姓名,性别,年龄,班级号,年级)
student(stu_id,stu_password,stu_name,stu_sex,stu_age,stu_class,stu_grade)
列名
数据类型
大小
含义描述
stu_id
varchar
10
学生学号,主键
stu_password
varchar
10
学生密码
stu_name
varchar
20
学生姓名
stu_sex
varchar
1
学生性别
stu_age
int
学生年龄
stu_class
varchar
10
学生班级
stu_grade
varchar
10
学生年级
表2学生信息表student
3)班级信息表class:
学生所在班级相对独立,系统用班级信息数据表记录本学校所有班级信息。
关系模型:
班级(班级号,班级名称,班主任,学生人数,所在学院)
class(class_id,class_name,class_master,class_number,class_collage)
列名
数据类型
大小
含义描述
class_id
varchar
10
班级号,主键
class_name
varchar
20
班级名称
class_master
varchar
20
班级班主任的名字
class_number
int
100
班级学生人数
class_collage
varchar
20
班级所在的学院
表3班级信息表class
4)课程信息表course:
学生的学习离不开课程,系统设计了课程信息表,用于存储本校所有课程信息。
关系模型:
课程(课程号,学分,名称,学时,学院)
course(course_id,course_credit,course_name,course_time,course_collage)
列名
数据类型
大小
含义描述
course_id
varchar
10
课程号,主键
course_credit
int
课程的学分
course_name
varchar
20
课程的名称
course_time
int
20
课程的学时
course_collage
varchar
20
课程所属学院
表4课程信息表course
5)课程-成绩信息表score:
学生学习的每一科课程都会有成绩,并且每个学生每门只有一个成绩,系统设计了学生课程信息表,用于存储本校所有学生所学课程信息:
关系模型:
课程-成绩(记录号,学号,课程号,成绩)
score(s_id,stu_id,course_id,score)
列名
数据类型
大小
含义描述
s_id
varchar
10
记录的ID号,主键
stu_id
varchar
10
学生的学号
course_id
varchar
10
课程号
score
int
100
学生成绩
表5课程-成绩信息表score
四、数据库物理设计
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。
数据库的物理设计通常分为两步:
1. 确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;
2. 对物理结构进行评价,评价的重点是时间和空间效率。
出于安全考虑数据库时备份文件以及日志文件分别存放在不同的磁盘上。这里把数据库文件存放在C盘。而把日志文件存放在D盘。
五、数据库的实施
数据库在逻辑和物理上的实施主要是通过编写相应的程序,然后在程序中调用和连接数据库来实现的,所以数据库的实施要依赖于程序。我用的是vb语言和sql sever,建立数据库并在程序中进行调试结果。
创建数据库:
1. 建立用户表(users表)
2. 建立学生信息表(student表)
3. 班级信息表(class表)
4. 课程信息表(course表)
5. 课程-成绩信息表(score表):
六、系统运行结果
程序调试成功后,便可以执行结果了,结果的部分截图如下:
1. 程序执行后的初始界面
若密码不正确或没有输入密码则提示:
2. 管理员登陆后进入的界面
3. 普通用户登录进入的界面:
4. 修改密码
若输入信息错误则提示:
5. 学生信息查询,可有三种查询方式:
按学号查询:
按姓名查询:
按班级查询:
6. 学生信息添加
若输入错误则提示:
7. 学生信息删除
8. 班级信息查询
若输入班号错误则提示:
9. 成绩信息查询
成绩查询有三种方式:
按学号查询:
按班级查询:
按姓名查询:
10. 添加用户
11. 删除用户
12. 退出系统
若想重新登录则选择重新登录,进入登录界面,取消则退出系统:
七、实习总结
这次的实习是在学习了数据库(sql sever)的基础上进行的程序实习,我这次使用的是VB的开发环境来编写的。程序中主要需要强调是实现的功能是数据库在程序中的连接和调用,这种编程的思想简化了程序中数据的复杂度,也使数据的变化和流向变得清晰明了。程序实现的是学生信息管理系统,其中的要求和模块分析已在需求分析和概念设计中有说明。
因为VB语言在教程中没有学习过,所以在程序编写过程中遇到了很多的问题,如数据库的连接问题,连接是在vb的代码中与数据库连接的;程序中数据的定义和使用类型;对程序中的SQL语句的使用和对数据库连接的语法和过程。但是通过看参考书和搜索资料掌握了很多VB的知识,在程序的编写和调试中不断摸索和试验,最后将这个课程设计作出最后的结果。这次的实习不仅增进了我的编程知识,更熟悉了数据库的环境和应用,希望在以后的学习中不断进步。</p>
展开阅读全文