学生信息管理系统数据库课程设计报告
文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)
成绩
数据库原理与应用
课程设计报告
设计题目:图书管理系统
学生姓名朱圣尧
学号
专业名称08计应专
日期
设计名称:学生信息管理系统
设计内容:设计一个学生信息管理系统
设计目的与要求:
采用VB和SQL Server设计一个学生管理系统,并使系统达到以下功能:(1)大大提高学校管理的运作效率;
(2)快捷,有效的处理学生的各种信息,通过全面的信息采集和处理,辅助提高管理水平;
(3)使用本系统,可以迅速提升学生的管理水平,为提高效益,方便用户查询,提供有效的技术保障。
设计环境或器材、原理与说明:
前台开发工具:Vasual Basic
后台数据库工具:SQL Server 2000
设计过程(步骤)或程序代码:
1需求分析
相关功能要求:
1)添加:可以添加学生学籍信息、课程信息、班级信息、成绩信息2)查询:可以查询学生学籍信息、课程信息、班级信息、成绩信息3)修改:可以修改学生学籍信息、课程信息、班级信息、成绩信息数据流图:
学生信息管理的第一层数据流图:
图
学生信息的第二层数据流图:
图班级信息和课程信息的第二层数据流图:
图
学生成绩信息的第二层数据流图:
图相关的数据:
1)数据项:学生学号
含义说明:惟一标识一个学生
别名:student_ID
类型:字符型
整型长度:8
取值含义:前两位表示入学年份的后两位,第3、4位表示学院代号,第5、6位表示专业代号,最后两位表示报到序号
2)数据结构:学生
含义说明:定义了一个描述学生的信息结构
组成:学生编号、学生姓名、学生性别、出生年月、班级编号、电话号码、入学日期、家庭住址
数据结构:课程
含义说明:定义了一个描述课程的信息结构
组成:课程编号、课程名称、课程类型
数据结构:班级
含义:定义了一个描述班级的信息
组成:班级编号、班级所属的年级、班主任、教室
数据结构:成绩
含义:定义了一个描述成绩的信息
组成:成绩总评、课程名称、考试成绩
3)数据流:成绩管理信息
说明:表示学生与课程的关系
数据流来源:学生信息表、课程信息表
数据流去向:成绩信息表
组成:学生编号、课程编号
数据流:课程安排信息
说明:表示年级和课程的关系
数据流来源:班级信息表、课程信息表
数据流去向:课程安排表
组成:年级、课程名称
4)数据存储:班级信息表、课程信息表、课程安排表、成绩信息表、学生学籍信息表
说明:记录学生、班级、成绩、课程的情况
流入数据流:学籍管理信息、课程管理信息、班级管理信息
流出数据流:课程安排信息、成绩管理信息
组成:学生编号、学生姓名、课程名称、班级编号、考试成绩、年级
存取方式:随即存取
5)处理过程:
添加、修改、删除学生学籍信息、课程信息、班级信息、成绩信息
说明:完成学籍、课程、班级、成绩的各种操作
输入:学生编号、班级编号、、课程名称、
输出:学生学籍信息、课程信息、班级信息、成绩信息的添加、删除、修改结果处理:如果有新生入学,就要进行学生各种信息的添加;如果有毕业生离校,就要对学生的各种信息进行删除;如果某个学生的信息需要修改,则对其相应的信息进行修改
2概念结构设计
1)学生实体E_R图:
4)年级实体E_R图:
5)成绩实体E_R图:
6)实体和实体之间的E_R图:
3.逻辑结构设计
现在需要将上面的数据库概念结构转化为SQL Server 2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。
Student__Info学生信息表
Class_Info班级信息表格
Course_Info课程基本信息表
Gradecourse_Info年级课程设置表
Result_Info学生成绩表
User_Info系统用户表
4物理结构的设计
建立的索引
建立的约束关系
5.数据库的实施
用户表的SQL语句
CREATE TABLE [dbo].[user_Info] (
[user_ID] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL , [user_PWD] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[user_Des] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
学生表的SQL语句
CREATE TABLE [dbo].[student_Info] (
[student_ID] [int] NOT NULL ,
[student_Name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL , [student_Sex] [char] (2) COLLATE Chinese_PRC_CI_AS NULL ,
[born_Date] [datetime] NULL ,
[class_NO] [int] NULL ,
[tele_Number] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[ru_Date] [datetime] NULL ,
[address] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , ) ON [PRIMARY]
班级表的SQL语句
CREATE TABLE [dbo].[class_Info] (
[class_No] [int] NOT NULL ,
[grade] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[director] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[classroom_No] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY]
课程表的SQL语句
CREATE TABLE [dbo].[course_Info] (
[course_No] [int] NOT NULL ,
[course_Name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[course_Type] [char] (10) COLLATE Chinese_PRC_CI_AS NULL , ) ON [PRIMARY]
课程设置表的SQL语句
CREATE TABLE [dbo].[gradecourse_Info] (
[grade] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[course_Name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY]
成绩表的SQL语句
CREATE TABLE [dbo].[result_Info] (
[exam_No] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[student_ID] [int] NOT NULL ,
[student_Name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL , [class_No] [int] NULL ,
[course_Name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[result] [float] NULL
) ON [PRIMARY]
写进相关数据
建立用户表
建立学生信息表
建立班级信息表
建立课程信息表
建立课程设置表
建立成绩表
VB模块中与SQL Sever 2000连接的关键代码
ConnectString = "Provider=;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Student;datasource="
关系图
6详细设计
学生信息管理系统功能
学生信息管理系统实现的功能:管理员登陆与修改密码,学生信息的添加、删除与修改,班级信息的添加,修改,课程的设置、添加,成绩的纪录、修改与删除,以及对学生的各个信息的查询。
功能模块的实现(VB代码)
1.用户登录的设置:
用于设置用户的基本信息,包括用户名和密码(修改)以及用户的退出。
修改
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub cmdOK_Click()
Dim txtSQL, MsgText As String
Dim mrc As
If Trim(Text1(1).Text) <> Trim(Text1(2).Text) Then
MsgBox "密码输入不正确!", vbOKOnly + vbExclamation, "警告"
Text1(1).SetFocus
Text1(1).Text = ""
Else
txtSQL = "select * from user_Info where user_ID = '" & UserName & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
(1) = Text1(1).Text
MsgBox "密码修改成功!", vbOKOnly + vbExclamation, "修改密码" End If
End Sub
2.学生信息的设置:
用于学生基本信息的查询、修改和添加学生的信息,包括学生的学号、姓名、性别、班号、出生日期、入学年份、家庭住址以及备注。
添加
Private Sub Command1_Click()
Dim mrc As
Dim txtSQL As String
Dim MsgText As String
If Not Testtxt Then
MsgBox "请输入学号!", vbOKOnly + vbExclamation, "警告"
End If
If Not Testtxt Then
MsgBox "请输入姓名!", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
If Not Testtxt Then
MsgBox "请选择性别!", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
If Not Testtxt Then
MsgBox "请输入出生日期!", vbOKOnly + vbExclamation, "警告" Exit Sub
End If
If Not Testtxt Then
MsgBox "请选择班号!", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
If Not Testtxt Then
MsgBox "请输入联系电话!", vbOKOnly + vbExclamation, "警告"
End If
If Not Testtxt Then
MsgBox "请输入入校日期!", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
If Not Testtxt Then
MsgBox "请输入家庭住址!", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
If Not IsNumeric(Trim) Then
MsgBox "请输入数字!", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
txtSQL = "select * from student_Info where student_ID = '" & Trim & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If = False Then
MsgBox "学号重复,请重新输入!", vbOKOnly + vbExclamation, "警告"
Else
If Not IsDate Then
MsgBox "出生时间应输入日期格式(yyyy-mm-dd)!", vbOKOnly + vbExclamation, "警告"
Else
txtBorndate = Format(txtBorndate, "yyyy-mm-dd")
If Not IsDate Then
MsgBox "入校时间应输入日期格式(yyyy-mm-dd)!", vbOKOnly + vbExclamation, "警告"
Else
txtRudate = Format(txtRudate, "yyyy-mm-dd")
txtSQL = "select * from student_Info"
Set mrc = ExecuteSQL(txtSQL, MsgText)
(0) = Trim
(1) = Trim
(2) = Trim
(3) = Trim
(4) = Trim
(5) = Trim
(6) = Trim
(7) = Trim
MsgBox "添加学籍信息成功!", vbOKOnly + vbExclamation, "警告"
End If
End If
End If
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
Dim mrc As
Dim txtSQL As String
Dim MsgText As String
Dim i As Integer
"男"
"女"
txtSQL = "select * from class_Info "
Set mrc = ExecuteSQL(txtSQL, MsgText)
For i = 1 To
(0)
Next i
End Sub
Private Sub txtComment_Change() End Sub
修改
Dim mrc As
Dim myBookmark As Variant
Dim mcclean As Boolean
Private Sub editCommand_Click() mcclean = False
= False
= False
= False
= False
= False
= True
= True
= True
= True
= True
= True