1、成绩数据库原理与应用课程设计报告设计题目: 图书管理系统学生姓名朱圣尧学号20080508135专业名称08计应专日期2010.12。22设计名称:学生信息管理系统设计内容:设计一个学生信息管理系统设计目的与要求:采用VB和SQL Server设计一个学生管理系统,并使系统达到以下功能:(1)大大提高学校管理的运作效率;(2)快捷,有效的处理学生的各种信息,通过全面的信息采集和处理,辅助提高管理水平;(3)使用本系统,可以迅速提升学生的管理水平,为提高效益,方便用户查询, 提供有效的技术保障.设计环境或器材、原理与说明:前台开发工具:Vasual Basic 6。0后台数据库工具:SQL Se
2、rver 2000设计过程(步骤)或程序代码:1需求分析1。1相关功能要求:1)添加:可以添加学生学籍信息、课程信息、班级信息、成绩信息2)查询:可以查询学生学籍信息、课程信息、班级信息、成绩信息3)修改:可以修改学生学籍信息、课程信息、班级信息、成绩信息1。2 数据流图:学生信息管理的第一层数据流图:教务处学院学生考试1.0学生注册2.0安排3.0分配4.0成绩输入学生信息表班级信息表年级课程信息表班级课程信息表成绩信息表图1。1学生信息的第二层数据流图:教务处1.1登录1.21添加学生信息1.22修改学生信息班级信息表学生信息表1.23删除学生成绩表图1。2班级信息和课程信息的第二层数据流
3、图:学院2.1登录2.21修改班级信息2.22删除班级信息2.23添加班级信息2.24修改年级信息2.25删除年级信息2.26添加年级信息年级课程信息表3.21修改班级课程信息3.22删除班级课程信息3.23添加班级课程信息班级课程信息表 图1。3学生成绩信息的第二层数据流图:学生4.1考试4.2录入成绩成绩表课程信息表图1。41.3相关的数据:1)数据项:学生学号含义说明:惟一标识一个学生 别名:student_ID类型:字符型整型长度:8取值范围:00000000-99999999取值含义:前两位表示入学年份的后两位,第3、4位表示学院代号,第5、6位表示专业代号,最后两位表示报到序号2)
4、数据结构:学生含义说明:定义了一个描述学生的信息结构组成:学生编号、学生姓名、学生性别、出生年月、班级编号、电话号码、入学日期、家庭住址数据结构:课程含义说明:定义了一个描述课程的信息结构组成:课程编号、课程名称、课程类型数据结构:班级含义:定义了一个描述班级的信息组成:班级编号、班级所属的年级、班主任、教室数据结构:成绩含义:定义了一个描述成绩的信息组成:成绩总评、课程名称、考试成绩3)数据流:成绩管理信息说明:表示学生与课程的关系数据流来源:学生信息表、课程信息表数据流去向:成绩信息表组成:学生编号、课程编号数据流:课程安排信息说明:表示年级和课程的关系数据流来源:班级信息表、课程信息表数
5、据流去向:课程安排表组成:年级、课程名称4)数据存储:班级信息表、课程信息表、课程安排表、成绩信息表、学生学籍信息表说明:记录学生、班级、成绩、课程的情况流入数据流:学籍管理信息、课程管理信息、班级管理信息流出数据流:课程安排信息、成绩管理信息组成:学生编号、学生姓名、课程名称、班级编号、考试成绩、年级存取方式:随即存取5)处理过程:添加、修改、删除学生学籍信息、课程信息、班级信息、成绩信息说明:完成学籍、课程、班级、成绩的各种操作输入:学生编号、班级编号、课程名称、输出:学生学籍信息、课程信息、班级信息、成绩信息的添加、删除、修改结果处理:如果有新生入学,就要进行学生各种信息的添加;如果有毕
6、业生离校,就要对学生的各种信息进行删除;如果某个学生的信息需要修改,则对其相应的信息进行修改2概念结构设计1)学生实体E_R图:学生学生学号学生性别学生出生日期所属班级号电话号码入学年份学生姓名家庭地址备注2)班级实体E_R图: 班级班号所在班级班主任所在教室3)课程实体E_R图:课程课程名称课程类型课程描述4)年级实体E_R图: 年级年级名称课程名5)成绩实体E_R图:成绩总评学生学号学生姓名班级号课程名称成绩6)实体和实体之间的E_R图:学生属于班级属于年级学习课程成绩考试成绩_课程学习3。逻辑结构设计现在需要将上面的数据库概念结构转化为SQL Server 2000数据库系统所支持的实际
7、数据模型,也就是数据库的逻辑结构。在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。Student_Info学生信息表 列名数据类型可否为空说明Student_IDint(4)Not null学生学号(主键)Student_NameChar(10)Null学生姓名Stdent_SexChar(2)Null学生性别Born_DateDatetime(8)Null出生日期Class_NOInt(4)Null班号Tele_NumberVarchar(12)Null联系电话Ru_DateDatetime(8)Null入校时间AddressVarchar(50)Null家庭
8、地址CommentVarchar(200)Null注释Class_Info班级信息表格列名数据类型可否为空说明Class_NoInt(4)null班号(主键)GradeChar(10)Null年级DirectorChar(20)Null班主任Classroom_NoChar(10)Null教室Course_Info课程基本信息表列名数据类型可否为空说明Course_NameChar(10)Not null课程名称(主键)Course_TypeChar(10)Null课程类型Course_DesChar(20)Null课程描述Gradecourse_Info年级课程设置表列名数据类型可否为空说明
9、GradeChar(10)null年级Course_NameChar(10)Null课程名称Result_Info学生成绩表列名数据类型可否为空说明Exam_NoChar(10)null考试类型Student_IDInt(4)Null学生学号Student_NameChar(10)Null学生姓名Class_NoInt(4)Null学生班号Course_NameChar(10)Null课程名称ResultFloat(8)Null分数User_Info系统用户表列名数据类型可否为空说明User_IDChar(10)null用户名称User_PWDChar(10)Null用户密码User_DesC
10、har(10)Null用户描述4物理结构的设计建立的索引建立的约束关系5数据库的实施 5。1 用户表的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 PRIMARY5.2学生表的SQL语句CREATE TABLE dbo。student_Info (studen
11、t_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
12、,) ON PRIMARY5.3班级表的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 PRIMARY5.4课程表的SQL语句CREATE TABLE dbo.course_Info (course_No int NO
13、T NULL ,course_Name char (10) COLLATE Chinese_PRC_CI_AS NULL ,course_Type char (10) COLLATE Chinese_PRC_CI_AS NULL ,) ON PRIMARY5.5课程设置表的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 PRIMARY5.6 成绩表的SQ
14、L语句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 PRIMARY5。7写进相关数据5。71建立用户表5.72建立学生信息表5
15、。73建立班级信息表5。73建立课程信息表5。74建立课程设置表5.75建立成绩表5.8 VB模块中与SQL Sever 2000连接的关键代码ConnectString = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Student;datasource=”5.9关系图6详细设计6。1 学生信息管理系统功能学生信息管理系统实现的功能:管理员登陆与修改密码,学生信息的添加、删除与修改,班级信息的添加,修改,课程的设置、添加,成绩的纪录、修改与删除,以及对学生的各
16、个信息的查询.6。2 功能模块的实现(VB代码)1。用户登录的设置:用于设置用户的基本信息,包括用户名和密码(修改)以及用户的退出。修改Private Sub cmdCancel_Click() Unload MeEnd SubPrivate Sub cmdOK_Click() Dim txtSQL, MsgText As String Dim mrc As ADODB。Recordset If Trim(Text1(1)。Text) Trim(Text1(2)。Text) Then MsgBox ”密码输入不正确!”, vbOKOnly + vbExclamation, ”警告” Text1
17、(1)。SetFocusText1(1)。Text = ” Else txtSQL = ”select from user_Info where user_ID = ” & UserName ” Set mrc = ExecuteSQL(txtSQL, MsgText) mrc.Fields(1) = Text1(1)。Text mrc。Update mrc。Close MsgBox ”密码修改成功!”, vbOKOnly + vbExclamation, ”修改密码” Me。Hide End If End Sub2.学生信息的设置:用于学生基本信息的查询、修改和添加学生的信息,包括学生的学号
18、、姓名、性别、班号、出生日期、入学年份、家庭住址以及备注。添加Private Sub Command1_Click() Dim mrc As ADODB.Recordset Dim txtSQL As String Dim MsgText As String If Not Testtxt(txtSID.Text) Then MsgBox 请输入学号!”, vbOKOnly + vbExclamation, ”警告 txtSID.SetFocus Exit Sub End If If Not Testtxt(txtName.Text) Then MsgBox 请输入姓名!”, vbOKOnly
19、+ vbExclamation, 警告” txtName.SetFocus Exit Sub End If If Not Testtxt(comboSex。Text) Then MsgBox ”请选择性别!”, vbOKOnly + vbExclamation, ”警告” comboSex.SetFocus Exit Sub End If If Not Testtxt(txtBorndate。Text) Then MsgBox ”请输入出生日期!”, vbOKOnly + vbExclamation, ”警告 txtBorndate.SetFocus Exit Sub End If If No
20、t Testtxt(comboClassNo。Text) Then MsgBox 请选择班号!, vbOKOnly + vbExclamation, 警告” comboClassNo.SetFocus Exit Sub End If If Not Testtxt(txtTel。Text) Then MsgBox ”请输入联系电话!”, vbOKOnly + vbExclamation, 警告” txtTel.SetFocus Exit Sub End If If Not Testtxt(txtRudate。Text) Then MsgBox ”请输入入校日期!, vbOKOnly + vbEx
21、clamation, ”警告” txtRudate。SetFocus Exit Sub End If If Not Testtxt(txtAddress。Text) Then MsgBox ”请输入家庭住址!”, vbOKOnly + vbExclamation, ”警告 txtAddress。SetFocus Exit Sub End If If Not IsNumeric(Trim(txtSID。Text) Then MsgBox 请输入数字!”, vbOKOnly + vbExclamation, 警告” Exit Sub txtSID。SetFocus End If txtSQL =
22、”select from student_Info where student_ID = & Trim(txtSID。Text) ” Set mrc = ExecuteSQL(txtSQL, MsgText) If mrc。EOF = False Then MsgBox ”学号重复,请重新输入!”, vbOKOnly + vbExclamation, ”警告” mrc.Close txtSID.SetFocus Else mrc.Close If Not IsDate(txtBorndate。Text) Then MsgBox 出生时间应输入日期格式(yyyymm-dd)!”, vbOKOnl
23、y + vbExclamation, ”警告 txtBorndate。SetFocus Else txtBorndate = Format(txtBorndate, yyyymmdd) If Not IsDate(txtRudate.Text) Then MsgBox ”入校时间应输入日期格式(yyyy-mm-dd)!”, vbOKOnly + vbExclamation, ”警告” txtRudate。SetFocus Else txtRudate = Format(txtRudate, ”yyyy-mmdd) txtSQL = ”select from student_Info” Set
24、mrc = ExecuteSQL(txtSQL, MsgText) mrc。AddNew mrc.Fields(0) = Trim(txtSID。Text) mrc。Fields(1) = Trim(txtName。Text) mrc。Fields(2) = Trim(comboSex。Text) mrc.Fields(3) = Trim(txtBorndate。Text) mrc.Fields(4) = Trim(comboClassNo。Text) mrc。Fields(5) = Trim(txtTel.Text) mrc.Fields(6) = Trim(txtRudate。Text)
25、mrc.Fields(7) = Trim(txtAddress。Text) mrc。Update MsgBox ”添加学籍信息成功!”, vbOKOnly + vbExclamation, 警告” mrc。Close Me.Hide End If End If End If End SubPrivate Sub Command2_Click() Unload MeEnd SubPrivate Sub Form_Load() Dim mrc As ADODB。Recordset Dim txtSQL As String Dim MsgText As String Dim i As Integer
26、 comboSex.AddItem 男” comboSex。AddItem ”女 txtSQL = ”select * from class_Info ” Set mrc = ExecuteSQL(txtSQL, MsgText) For i = 1 To mrc。RecordCount comboClassNo。AddItem mrc。Fields(0) mrc。MoveNext Next i mrc。CloseEnd SubPrivate Sub txtComment_Change()End Sub修改Dim mrc As ADODB.RecordsetDim myBookmark As
27、VariantDim mcclean As BooleanPrivate Sub editCommand_Click() mcclean = False Frame2.Enabled = False firstCommand.Enabled = False previousCommand。Enabled = False nextCommand。Enabled = False lastCommand.Enabled = False txtSID。Enabled = True txtName。Enabled = True comboSex。Enabled = True txtBorndate.En
28、abled = True comboClassNo.Enabled = True txtRudate。Enabled = True txtTel。Enabled = True txtAddress。Enabled = TrueEnd SubPrivate Sub cancelCommand_Click() If Not mcclean Then Frame2。Enabled = True firstCommand.Enabled = True previousCommand.Enabled = True nextCommand.Enabled = True lastCommand.Enable
29、d = True txtSID。Enabled = False txtName。Enabled = False comboSex。Enabled = False txtBorndate。Enabled = False comboClassNo.Enabled = False txtRudate.Enabled = False txtTel。Enabled = False txtAddress。Enabled = False mrc。Bookmark = myBookmark Call viewData Else MsgBox 什么都没有修改,有什么好取消的!, vbOKOnly + vbExc
30、lamation, 警告” End IfEnd SubPrivate Sub deleteCommand_Click() myBookmark = mrc.Bookmark str2$ = MsgBox(”是否删除当前记录?”, vbOKCancel, ”删除当前记录”) If str2 = vbOK Then mrc。MoveNext If mrc.EOF Then mrc。MoveFirst myBookmark = mrc。Bookmark mrc。MoveLast mrc。Delete mrc.Bookmark = myBookmark Call viewData Else myBoo
31、kmark = mrc.Bookmark mrc。MovePrevious mrc。Delete mrc.Bookmark = myBookmark Call viewData End If Else mrc。Bookmark = myBookmark Call viewData End IfEnd SubPrivate Sub firstCommand_Click() mrc。MoveFirst Call viewDataEnd SubPrivate Sub Form_Load() Dim txtSQL As String Dim MsgText As String txtSQL = ”se
32、lect from student_Info ” Set mrc = ExecuteSQL(txtSQL, MsgText) mrc.MoveFirst Call viewDate mcclean = TrueEnd SubPublic Sub viewData() txtSID.Text = mrc.Fields(0) txtName。Text = mrc。Fields(1) comboSex。Text = mrc。Fields(2) txtBorndate.Text = Format(mrc。Fields(3), yyyymm-dd”) comboClassNo.Text = mrc。Fi
33、elds(4) txtTel。Text = mrc.Fields(5) txtRudate.Text = Format(mrc。Fields(6), yyyymm-dd”) txtAddress。Text = mrc。Fields(7) End SubPrivate Sub lastCommand_Click() mrc。MoveLast Call viewDataEnd SubPrivate Sub nextCommand_Click() mrc.MoveNext If mrc。EOF Then mrc.MoveFirst End If Call viewDataEnd SubPrivate
34、 Sub previousCommand_Click() mrc。MovePrevious If mrc.BOF Then mrc。MoveLast End If Call viewDataEnd SubPrivate Sub updateCommand_Click() Dim txtSQL As String Dim MsgText As String Dim mrcc As ADODB.Recordset If mcclean Then MsgBox ”请先修改学籍信息”, vbOKOnly + vbExclamation, 警告” Exit Sub End If If Not Testt
35、xt(txtSID.Text) Then MsgBox 请输入学号!”, vbOKOnly + vbExclamation, ”警告” txtSID。SetFocus Exit Sub End If If Not Testtxt(txtName。Text) Then MsgBox ”请输入姓名!, vbOKOnly + vbExclamation, ”警告” txtName。SetFocus Exit Sub End If If Not Testtxt(comboSex。Text) Then MsgBox 请选择性别!”, vbOKOnly + vbExclamation, ”警告” comb
36、oSex.SetFocus Exit Sub End If If Not Testtxt(txtBorndate.Text) Then MsgBox ”请输入出生日期!, vbOKOnly + vbExclamation, ”警告 txtBorndate。SetFocus Exit Sub End If If Not Testtxt(comboClassNo。Text) Then MsgBox ”请选择班号!”, vbOKOnly + vbExclamation, ”警告” comboClassNo.SetFocus Exit Sub End If If Not Testtxt(txtTel。
37、Text) Then MsgBox ”请输入联系电话!”, vbOKOnly + vbExclamation, ”警告 txtTel。SetFocus Exit Sub End If If Not Testtxt(txtRudate。Text) Then MsgBox ”请输入入校日期!”, vbOKOnly + vbExclamation, ”警告” txtRudate。SetFocus Exit Sub End If If Not Testtxt(txtAddress.Text) Then MsgBox ”请输入家庭住址!”, vbOKOnly + vbExclamation, ”警告 t
38、xtAddress。SetFocus Exit Sub End If If Not IsNumeric(Trim(txtSID。Text) Then MsgBox ”学号请输入数字!”, vbOKOnly + vbExclamation, ”警告 txtSID。SetFocus Exit Sub End If mrc。Delete txtSQL = select from student_Info where student_ID = Trim(txtSID。Text) ” Set mrcc = ExecuteSQL(txtSQL, MsgText) If mrcc。EOF = False T
39、hen MsgBox 学号重复,请重新输入!”, vbOKOnly + vbExclamation, ”警告” mrcc。Close txtSID.SetFocus Else mrcc。Close If Not IsDate(txtBorndate。Text) Then MsgBox 出生时间应输入日期格式(yyyymm-dd)!”, vbOKOnly + vbExclamation, ”警告 txtBorndate。SetFocus Else txtBorndate = Format(txtBorndate, ”yyyymmdd”) If Not IsDate(txtRudate。Text) Then MsgBo