学生档案管理系统设计与开发
河南工程学院
《数据库系统原理与应用》课程设计
成果报告
学生档案管理系统设计与开发
学生学号: 学生姓名: 学 院: 计算机学院 专业班级: 计算机科学与技术1241班 专业课程: 数据库系统原理与应用 指导教师: 李华
2014年 月 日
课程设计指导教师评分表
目 录
一、需求分析 . ................................................................ 4 二、概念结构设计 . ............................................................ 5 1. 学生档案E-R 图 . ............................................................ 5 2. 管理员E-R 图 . .............................................................. 5 三、逻辑结构设计 . ............................................................ 5 四、数据库的的物理设计 . ...................................................... 6 五、数据库设计实现及运行 . .................................................... 6 六、系统详细设计及实现 . ...................................................... 7 七、实训总结及心得体会 . ...................................................... 9
一、需求分析
当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。 随着科学技术的不断提高, 计算机科学日渐成熟, 其强大的功能已为人们深刻认识吗,它进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生档案信息进行管理,有着手工管理所无法比拟的优点。例如:对学生档案的添加、删除、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率。
本次数据库实训要求在所有课题中选择自己感兴趣的题,并完成课题要求。我们组选择的是学生档案管理系统,运用数据库基本理论与应用知识,在微机 SQL server 的环境上建立一个数据库应用系统。要求把现实世界的事物及事物之间的复杂关系抽象为信息世界的实体及实体之间联系的信息模型,再转换为机器世界的数据模型和数据文件,并对数据文件实施检索、更新和控制等操作。
1. 用e-r 图设计学生档案管理系统的信息模型; 2. 设计相应的关系模型,确定数据库结构; 3. 实现应用程序设计、编程、优化功能;
4. 对系统的各个应用程序进行集成和调试,进一步优化系统功能、改善系统用户界面完成实验内容所指定的各项要求。
组长:陈永红
组员:武涛涛、韩晓玉
组长陈永红负责(同组同学及分工请在此说明)
二、概念结构设计 1.学生档案E-R 图
2.管理员E-R 图
三、逻辑结构设计
根据E-R 图将其转化为如下数据实体 1.admin 表:
表1 admin表
2.grade 表:
表2 grade表
3.student 表:
四、数据库的的物理设计
表3 student表
为了提高在表中搜索元组的速度,在每个表中建立相应的索引: 表:
ALTER TABLE `student ` ADD INDEX `学生学号` ( `学号` )
五、数据库设计实现及运行
1.数据库的创建 T-SQL 语句:
CREATE DATABASE ‘111’;
2.数据表的创建(可同时在创建时定义相关的约束)
T-SQL 语句: admin 表创建:
CREATE TABLE admin
(name char(6) not null, Password char(6) )
Student 表创建:
CREATE TABLE Student (
学号 char(15) not null, 姓名 char(30), 性别 char(10), 班级 char(8), 专业 char(50), 院系 char(50), 入学时间 char(12), 籍贯 char(20), 民族 char(8), 政治面貌 char(20), 家庭住址 char(50), 联系方式 char(15) )
六、系统详细设计及实现
1. 开发环境
2. 管理员账号注册
Private Sub Command1_Click() If Text3.Text Text2.Text Then
MsgBox "两次输入的新密码不同,请重新输入!", vbOKOnly + vbExclamation, "警告" Text2.SetFocus Text2.Text = "" Text3.Text = "" Exit Sub End If
Adodc1.ConnectionString="Driver=SQLServer;Server=(local);UID=sa;PWD=;Database=111"
Adodc1.RecordSource = "select * from admin where name " Adodc1.Recordset.Find "name ='" & Text1.Text & "'" If Adodc1.Recordset.EOF = True Then Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("name") = Text1.Text Adodc1.Recordset.Fields("password") = Text2.Text Adodc1.Recordset.Update Adodc1.Recordset.Close MsgBox "注册成功!" Text1.Text = "" Text2.Text = "" Text3.Text = "" End If End Sub
Private Sub Command2_Click() form2.Show
End Sub
3. 登录界面
本次实验的登录界面如下:
输入管理员的姓名和密码即可进入登录主页面,对学生的档案信息进行相关操作。关键代码如下:
Private Sub Command1_Click() Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim cm As ADODB.Command Set cn = New ADODB.Connection Set rs = New ADODB.Recordset Set cm = New ADODB.Command Dim strcnn As String
strcnn = "driver={sql server};server=(local);database=111;" cn.Open strcnn
cm.ActiveConnection = cn
strsql = "select * from admin where name='" + Text1.Text + "' and password='" + Text2.Text + "'"
Set rs = cn.Execute(strsql) If rs.EOF = False Then form7.Show Unload Me Else
MsgBox ("用户名或密码错误, 请重新登录!") End If
Private Sub Command2_Click() form6.Show End Sub
Private Sub Command3_Click() End End Sub
4. 添加学生信息
Private Sub Command1_Click()
Adodc1.ConnectionString = "Driver=SQL Server;Server=(local);UID=sa;PWD=;Database=111" Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from 学生档案 " If Adodc1.Recordset.EOF = False Then Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("姓名") = Text1.Text Adodc1.Recordset.Fields("性别") = Text2.Text Adodc1.Recordset.Fields("学号") = Text3.Text Adodc1.Recordset.Fields("院系") = Text4.Text Adodc1.Recordset.Fields("专业") = Text5.Text Adodc1.Recordset.Fields("班级") = Text6.Text Adodc1.Recordset.Fields("入学时间") = Text7.Text Adodc1.Recordset.Fields("籍贯") = Text8.Text Adodc1.Recordset.Fields("民族") = Text9.Text
Adodc1.Recordset.Fields("政治面貌") = Text10.Text Adodc1.Recordset.Fields("家庭地址") = Text11.Text Adodc1.Recordset.Fields("联系方式") = Text12.Text Adodc1.Recordset.Update Text1.Text = " " Text2.Text = ""
Text3.Text = "" Text4.Text = "" Text5.Text = "" Text6.Text = "" Text7.Text = "" Text8.Text = "" Text9.Text = "" Text10.Text = "" Text11.Text = "" Text12.Text = ""
MsgBox "添加成功!" Adodc1.Refresh
form2.Adodc1.Refresh
Adodc1.Recordset.MoveFirst
Else: Adodc1.Recordset.MoveFirst
MsgBox "该联系人已存在,不能重复添加!" End If End Sub
Private Sub Command3_Click() form7.Show form4.Hide End Sub
5. 删除学生信息
Private Sub Command1_Click() form1.Show
Form9.Hide End Sub
Private Sub Command2_Click() form4.Show Form9.Hide End Sub
Private Sub Command3_Click() form3.Show Form9.Hide End Sub
Private Sub Command4_Click()
If MsgBox("你真的要删除该学生信息吗?", vbQuestion + vbYesNo, "删除信息") = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext
MsgBox ("删除成功!"), , ("友情提示哈~~") If Adodc1.Recordset.EOF = True Then Adodc1.Recordset.MoveLast End If End If End Sub
Private Sub Command5_Click() form7.Show Form9.Hide End Sub
Private Sub Command6_Click() Adodc1.Recordset.MoveFirst End Sub
Private Sub Command7_Click() Adodc1.Recordset.MovePrevious
If Adodc1.Recordset.BOF = True Then Adodc1.Recordset.MoveFirst End If End Sub
Private Sub Command8_Click() Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF = True Then Adodc1.Recordset.MoveLast
End If End Sub
Private Sub Command9_Click() Adodc1.Recordset.MoveLast End Sub
6. 管理员密码修改
Private Sub Command1_Click()
Adodc1.ConnectionString = "Driver=SQL Server;Server=(local);UID=sa;PWD=;Database=111" Adodc1.RecordSource = "select * from admin where name " Adodc1.Recordset.Find "name=" & Text1.Text & ""
With Adodc1.Recordset
If Text1.Text Trim(.Fields("name")) Then
MsgBox ("当前用户名错误!请重新输入!"), , ("~~~~(>_
If Text2.Text Trim(.Fields("password")) Then
MsgBox ("当前密码错误!请重新输入!"), , ("~~~~(>_
If Text3.Text Text4.Text Then
MsgBox ("两次密码输入不一致!"), , ("~~~~(>_
.Fields("password") = Text4.Text .Update
MsgBox ("密码修改成功!"), , ("友情提示哈~~") Text4.Text = "" Text2.Text = "" Text3.Text = "" Text1.Text = ""
Command1.Enabled = True form2.Show form3.Hide
End If End If End If End With End Sub
Private Sub Command3_Click() form7.Show form3.Hide End Sub
7. 管理员账号注销
Private Sub Command1_Click()
If MsgBox("你真的要注销该管理员账户吗?", vbQuestion + vbYesNo, " 删除信息") = vbYes Then
Adodc1.Recordset.Delete MsgBox "注销成功!" Text1.Text = " " Text2.Text = ""
If Adodc1.Recordset.EOF = True Then Adodc1.Recordset.MoveLast Adodc1.Recordset.Update Adodc1.Recordset.Close End If End If End Sub
Private Sub Command2_Click() form7.Show
form5.Hide End Sub
8. 学生信息总览
说明:此表有一个datagride 控件和adodc 控件相连接,由datagride 控件输出基本信息情况预览
9. 系统帮助
七、实训总结及心得体会
数据库原理实训即将结束,虽然实训时间只有一周,但在这一周里我们小组的成员共同努力完成了学生档案管理系统的开发。
学生档案管理系统的设计是为了管理员能够更加方便的管理学生的档案信息,管理员可以对学生的档案进行添加、删除、修改、查询等操作。
在此次的课程设计中,通过课程设计的一点点推进对以前学到的知识也有了新的理解,记的也更加深刻。在课程设计中也遇到了一些在以前的练习中没有接触过的知识,尤其是在将后台数据库与前台界面进行连接时,从最开始的一窍不通到后来渐渐上手。课程设计已经接近尾声,回想起来刚刚开始的时候,真的是不知道应该从何处开始下手,对课程设计的思想也很混乱,没有一点逻辑。后来通过与组员的讨论逐渐地捋清了思路,对课程设计进行分工,虽然也是磕磕绊绊的,但是通过我们组的成员共同努力,一起合作,完成了对学生档案管理系统的设计。