唐 山 学 院
数据库原理与应用课 程 设 计
题 目 系 (部) 班 级 姓 名 学 号 指导教师
2009 年 12 月 28 日至 12 月 31 日 共 1 周
2009年 12月 31日
学生成绩管理数据库系统设计 计算机科学与技术系 07计对本 李志飞 4070207116 张铁军
数据库原理与应用课程设计任务书
注:可以附页
课程设计成绩评定表
一概述
1Visual Basic 6.0简介
Visual Basic 6.0统一了对数据的访问,不管数据源自关系数据库、XML文档还是任意对象图,也不管以什么方式保持或者存储在内存中。该统一包括样式、方法、工具和编程模式。Visual Basic的语法极其灵活,可以轻松地将类似XML文字的扩展和类似SQL的查询表达式添加到该语言深处。
2数据库的特点
(1) 数据库管理的产生和发展
数据库技术是应数据管理任务的需要而产生的。
人们借助计算机进行数据处理是近三十年的事,研制计算机的初衷是利用它进行复杂的科学计算。随着计算机技术的发展,其应用远远超出了这个范围。在应用需求推动下,在计算机硬件、软件发展的基础上,数据管理技术经历了人工管理、文件系统、数据库系统三个阶段。下面介绍一下各个阶段的特点:
(1)人工管理阶段:数据不保存、应用程序管理数据、数据不共享、数据不具有独立性。
(2)文件系统阶段:数据可以长期保存,由文件系统管理数据,数据共享性差,冗余度大。
(3)数据库系统阶段:数据结构化,数据的共享性高,冗余度低,易扩充,数据独立性高,数据由数据库管理系统统一管理和控制。为此,数据由数据库管理系统还提供了以下几方面的数据控制功能,数据的安全性保护、数据的完整性检查、并发控制和数据库恢复。
(2) 数据库的特点
1 数据共享
2 面向全组织的数据结构化:数据不再从属于一个特定应用,而是按照某种模型组织成为一个结构化的整体。它描述数据本身的特性,也描述数据与数据之间的种种联系
3 数据独立性
4 可控数据冗余度
5 统一数据控制功能
数据安全性控制,指采取一定的安全保密措施确保数据库中的数据不被非法用户存取而造成数据的泄密和破坏;数据完整性控制,是指数据的正确性、有效性与相容性;并发控制,多个用户对数据进行存取时,采取必要的措施进行数据保护;数据恢复,系统能进行应急处理,把数据恢复到正确状态。
3对自己的系统的特点的介绍
(1) 数据库的组成
数据库(DB):所谓数据库是指长期存放在计算机内的、有组织、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
数据库系统(DBS):指在计算机系统中引入数据库后的系统,一般由数据库、数据管理系统、应用系统、数据库管理员和用户构成。
数据库管理系统(DBMS):数据库管理系统是维护和管理数据库的软件,是数据库与用户之间的界面。作为数据库的核心软件,提供了定义建立、运行、操作、维护数据库的命令和方法。
(2) Microsoft Access简介
Access是Microsoft公司推出的Office家族的一个成员。它是在国内、外微型计算机用户中流行很广的一种关系数据库管理系统,也是一种使用方便、功能较强的桌面PC机数据库开发环境,具有跨平台、跨协议、好的兼容性等特点。由于它采用了C/S 或B/S应用模式,既可作为小型的DBMS供PC单机使用,也可为主要由PC机组成的小型计算机网络服务。
Access的数据库文件以.mdb作为扩展名。在Access窗口中打开任何一个数据库文件,都会显示相应的数据库窗口。用户可通过该窗口管理所有的信息,包括用表存储数据;用查询检索所需的数据;用窗体查看、添加和更新表中的数据;以及用报表按特定的版式分析或打印数据等。由此可见,一个.mdb文件实际上可以包含一个完整的Access 数据库应用系统。
二需求分析
1系统的功能
1教师管理。主要用于对教师信息进行维护。功能包括新老师的添加、修改和删除已有的教师信息,对教师信息进行查询。
2班级管理。主要用于对班级信息进行的添加、修改、删除和班级列表。
3学生管理。主要用于维护学生信息。功能包括对学生信息的添加、删除、修改和查询。
4课程管理。主要用于维护课程信息,功能包括课程的添加、删除、修改和查询。
5成绩管理。主要用于维护成绩信息,功能包括成绩的添加、删除、修改和查询。
6系统管理。主要用于系统初始化、修改、删除用户级别,以及退出本系统。
2处理的数据
(1) 教师管理模块
教师管理模块提供对教师信息的添加、修改、删除和查询功能。教师管理模块的功能树如图1所示。
图1教师管理模块功能树
该模块主要提供的功能包括添加新的班级信息、删除、修改班级信息和班级列表功能。班级管理模块的功能树如图2所示。
图2班级管理模块功能树
(3) 学生管理模块
该模块提供学生信息的添加、修改、删除和查询功能。学生管理模块的功能树如图3所示。
图3学生管理模块功能树
(4) 课程管理模块
该模块提供课程信息的添加、修改、删除和查询功能。课程管理模块的功能树如图4所示。
图4 课程管理模块功能树
该模块提供成绩信息的添加、修改、删除和查询功能。成绩管理模块的功能树如图5所示。
图5成绩管理模块功能树
(3) 系统结构
依据需求分析结果,成绩管理系统的主要模块包括:教师管理、班级管理、学生管理、课程管理和成绩管理等功能,系统结构如图6所示。
图6系统模块结构图
三数据库设计
考试成绩是学生在校期间的重要历史资料,成绩信息的管理(成绩的录入、查询、分类统计等)是各个学校面临的一个重要问题。该成绩管理系统主要是用于管理在校学生的考试成绩,对教师、班级、学生、课程和成绩信息进行维护与管理。下面我将从数据库设计的以下四个阶段来说明。
1数据库需求分析
成绩管理是学校管理的重要组成部分。成绩不仅关系到学生成绩升迁,在很大程度上度量了一个学生的学习效果;同时成绩关系到教师的教学成果的考评。成绩管理的重要性不言而喻,但是成绩管理在学校中是很繁重的,在每门课中,每个学生都要有对应的成绩记录。在学校各项管理中,成绩管理牵扯到的其它管理内容是最复杂的,它牵涉到了学生成绩管理、学生管理、教师管理、课程管理和班级管理等。
用户的需求具体体现在各种信息的添加、删除、更新和查询等方面这就要求数据库结构能充分满足各种信息的输入和输出。
(1) 学生数据:包含的数据项有学号、姓名、性别、年龄、班级。
(2) 教师数据:包含的数据项有教师号、姓名、性别、年龄、职称、所在部门。
(3) 班级数据:包含的数据项有班号、班级名。
(4) 系数据:包含的数据项有系名。
(5) 课程数据:包含的数据项有课程号、课程名、教师名。
(6)成绩数据:包含的数据项有学号、课程号、成绩、老师名。
2概念结构设计
学生成绩管理系统的概念结构设计是系统的需求分析、总体模块图和数据基础上的抽象,结合联系E-R模型的设计方法,进行如下概要结构设计。图7是学生成绩管理系统的E-R图(属性已忽略)
图7 学生成绩管理系统E-R图
3数据库逻辑结构设计
1学生表st(sno,sname,ssex,sbirth,classno)
2教师表te(tno,tname,tsex,tbirth,title,depart)
3班级表cl(classno,classname)
4系部de(dno,dname)
5课程c(cno,cname,,tno,teathers)
6成绩sc(sno,cno,grade)
4 数据库物理设计
为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。
建立数据库前,应先对数据进行分析,包括类型、长度等,然后开始着手建立数据库。针对本系统,分别设计了学生信息表、教师信息表、班级信息表、部门信息表、课程信息表以及成绩信息表六张数据库表,分表如下图所示。
图8学生信息表
图9教师信息表
图10 班级信息表
图11系别信息表
图12 课程信息表
图13 成绩信息表
5 数据库系统登录
1. 将本系统所有文件解压后复制到您的硬盘上(例如文件夹为D:\VB)。
2. 建立数据库(以下两种方法均可):
(1)直接使用D:\VB中的student.mdb数据库。
(2)也可以直接在Access 2000/2003中建立STUDENT数据库,并建立对应的数据表st表、te表、cl表、c表、sc表、de表和user表等,在user表中输入一个记录,用户名、密码和级别分别为“1234”、“1234”和“系统管理员”(其中学生的用户名、密码和级别分别为该生的学号SNO如“4100101”“1111”和“用户”;教师的用户名、密码和级别分别为教师编号TNO如“4103”“2222”和“授课教师”。)
3.建立student.mdb数据库对应的数据源student。
4. 在VB6.0中启动本系统STUDENT.VBP运行(初始登录用户为1234/1234)。
四系统功能实现
1主窗体菜单设计
充分考虑界面易于操作的系统需求,主窗体使用简单和直观的菜单设计,提供教师管理、班级管理、学生管理、课程管理和成绩管理的菜单操作方式,(其中将学生管理、课程管理和成绩管理效果图省略)主窗体菜单设计的效果图如图14所示。
图14主窗体菜单设计效果图
2教师管理菜单设计
(1)教师查询删除界面设计,具体效果图如图15所示。
图15教师信息查询删除界面设计效果图
(2)教师查询删除主要代码
Private Sub selcmd1_Click()
Dim str As String
str = ""
If Trim(Text1(0).Text) <> "" Then
If str = "" Then
str = "tno='" + Trim(Text1(0).Text) + "'"
Else
str = str + " and tno='" + Trim(Text1(0).Text) + "'"
End If
End If
If Trim(Text1(1).Text) <> "" Then
If str = "" Then
str = "tname='" + Trim(Text1(1).Text) + "'"
Else
str = str + " and tname='" + Trim(Text1(1).Text) + "'"
End If
End If
If Trim(Text1(2).Text) <> "" Then
If str = "" Then
str = "depart='" + Trim(Text1(2).Text) + "'"
Else
str = str + " and depart='" + Trim(Text1(2).Text) + "'"
End If
End If
If str <> "" Then
Adodc1.RecordSource = "select * from te where " + str
Adodc1.Refresh
Else
Adodc1.RecordSource = "select * from te"
Adodc1.Refresh
End If
recs = Adodc1.Recordset.RecordCount
If recs = 0 Then
MsgBox "没有任何满足条件的记录", vbOKOnly, "信息提示"
End If
End Sub
Private Sub Command1_Click()
If MsgBox("真的要删除[" + Trim(tinsert.Adodc1.Recordset.Fields("tno")) + "]吗?", vbYesNo, "信息提示") = vbYes Then
tinsert.Adodc1.Recordset.Delete
recs = recs - 1
End If
End Sub
3班级管理菜单设计
(1)班级信息添加修改界面设计,效果图如图16所示。
图4-10 班级信息添加修改界面设计效果图
图16班级列表查询删除界面设计效果图
(2)班级信息添加修改主要代码
Private Sub Command1_Click()
If Trim(Text1(1).Text) = "" Then
MsgBox "加*数据项不能为空,请重新设置", vbOKOnly, "信息提示"
Exit Sub
End If
sqltxt = "select * from cl where classno='" + Trim(Text1(1).Text) + "'"
Set rs = exesql(sqltxt)
If rs.RecordCount <> 0 Then
MsgBox "存在相同班编号", vbOKOnly, "信息提示"
Text1(0).SetFocus
rs.Close
Exit Sub
Else
sqltxt = "select * from cl "
Set rs = exesql(sqltxt)
rs.AddNew
rs.Fields("classname") = Trim(Text1(0).Text)
rs.Fields("classno") = Trim(Text1(1).Text)
rs.Update
rs.Close
End If
Unload Me
End Sub
Private Sub Command3_Click()
If Trim(Text1(1).Text) = "" Then
MsgBox "加*数据项不能为空,请重新设置", vbOKOnly, "信息提示"
Exit Sub
End If
sqltxt = "select * from cl where classno='" + Trim(Text1(1).Text) + "'"
Set rs = exesql(sqltxt)
rs.Fields("classname") = Trim(Text1(0).Text)
rs.Fields("classno") = Trim(Text1(1).Text)
rs.Update
rs.Close
Unload Me
End Sub
Private Sub Form_Activate()
cllist.Adodc1.Refresh
End Sub
五结束语
我通过对教学管理工作流程进行分析及根据计算机软硬件的应用现状,设计了用于学校教务管理的一部分----学生成绩管理系统。通过开发这个简化的学生成绩管理系统,旨在为大家提供一个更加宽松的环境,而且更符合学生的意愿已成为当代学生学习中不可缺少的一部分。也是学校更方便、快捷、准确的掌握、了解,管理每个学生的各个方面信息,对学校的发展,也为培养出一批更优秀的学生作为前提。
通过这段时间的系统开发,自己从对access和VB由不了解到认识,最后自己熟练地使用它可以独立完成一个系统的开发,在这个过程中确实得到了很大的锻炼,学到了很多的知识。同时我也深深感到了自己的不足,在编程技巧方面还有很大的欠缺,以后还要继续学习。并决心以此次课程设计为开端,深入学习编程知识,在实践中应用所学知识,一方面提高自己的编程水平,一方面提高自己的工作效率。
参考文献
[1]萨师煊,王珊.数据库系统概论.高等教育出版社,2002,2
[2] 张来寅,谭明勇.数据库系统原理与应用.冶金工业出版社,2003,7
[3] 梁灿,赵艳泽.Access数据库应用基础教程.清华大学出版社,2005,11
[5] 毕维峰,赵爱玲.Delphi7编程实例与技巧.航空工业出版社,2003,12
[6] 亚林,Delphi管理信息系统项目方案精解.航空工业出版社,2006,10
[7] 张海藩,软件工程导论.清华大学出版社.2003,12