河南工程学院《数据库原理及应用》课程设计成果报告学生信息管理系统设计与开发学生学号:学生姓名:学院:计算机学院专业班级:专业课程:数据库原理及应用课程设计指导教师:年月日课程设计指导教师评分表目录一、系统设计目的 (1)二、系统实现思路 (1)1、需求分析 (1)2、总体设计 (1)三、系统数据库设计 (3)1、数据需求分析 (3).2、概念结构设计(ER图) (4)3、逻辑结构设计(规范化) (5)4、物理结构设计(索引) (6)四、系统详细设计 (7)五、系统调试运行 (12)六、总结设计体会 (19)学生信息管理系统设计与开发一、设计目的设计目的:建立高效利用的学生信息管理系统,实现大量信息的规范管理、科学统计和快速查询,从而更好的减少管理方面的工作量。
学生信息管理系统提供了强大的学生信息管理功能,方便管理员对学生信息进行添加、修改、删除、查询、统计等操作。
因此,学生信息管理系统能够满足学校的需要,简化学生信息的管理过程,提高管理效率,是学校学生信息管理的一种重要的工具。
二、系统实现思路1、需求分析本次的实训课程着手于学生信息管理系统,原因在于学校的规模不断扩大,学生数量也在急剧增加,有关学生的各种信息量也在成倍增长。
对于庞大的信息量,一个高效的信息管理系统是能够很大程度上提高学生管理工作的效率。
2、总体设计系统功能分析:系统开发的目的是实现学生信息管理系统的关系化、规范化和自动化。
学生信息管理系统主要提供对学生信息的管理、班级信息的管理、课程信息的管理以及学生成绩的管理。
主要功能有:(1)有关学生信息的输入、修改和查询。
(2)班级信息的输入、修改和查询。
(3)基本课程的输入、修改和查询。
(4)成绩的输入、修改和查询。
(5)学生成绩信息的统计。
(6)模拟用户登录操作。
系统功能模块设计:三、系统数据库设计1、数据需求分析用户的需求具体体现在各种信息的提供、保存、更新和查询方面,这就要求数据库结构能充分满足各种信息的输出和输入。
收集基本的数据、数据结构以及数据处理的流程,组成一份相近的数据字典,为后面的具体设计打下良好的基础。
2、概念结构设计(ER图)?表2 班级基本信息表3 课程基本信息表4 成绩基本信息4、物理结构设计(索引)息管理进行了比较详细的功能操作测试,先是通过菜单编辑器实现了多功能布局操作,选取了学生信息进行了窗口功能操作。
例如:点击添加学生信息,可以实现添加学生信息功能,并且单独设置了模拟用户登录界面,实现了用户隐私安全性保护数据。
图7 窗口目录的创建图8 班级信息管理创建图9 学生信息管理创建图10 课程信息创建图11 成绩信息管理创建图12 工程主窗体的创建用户登录:Dim a As StringDim b As StringDim str As StringDim strr As Stringstr=InStr(Text2.Text,"'")If str<>0 ThenMsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误" Exit SubElsestrr=InStr(Text1.Text,"'")If strr<>0 ThenMsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误" Exit SubEnd IfEnd Ifa=Trim(Text1)b=Trim(Text2)If a=""ThenMsgBox"用户名不能为空!",vbCritical,"错误"Text1.SetFocusText1.SelStart=0Text1.SelLength=Len(Text1)ElseDim r As New ADODB.RecordsetSet r=DataEnvironment1.rsuserDim c As StringStatic nTryCount As Integerc="select*from用户登陆where用户名='"&a&"'"If r.State=adStateOpen Then r.Closer.Open cIf r.EOF ThenMsgBox"无此用户!请重新登陆!!",vbCritical,"错误"Text1.SetFocusText1.SelStart=0Text1.SelLength=Len(Text1)nTryCount=nTryCount+1If nTryCount>=5 ThenMsgBox"您无权操作本系统!",vbCritical,"错误"Unload MeEnd IfElseIf b=Trim(r.Fields(1))Thenquanxian=Trim(r.Fields(2))MDIForm1.ShowUnload Me ElseMsgBox"密码错误!请重新登陆!!",vbCritical,"错误"Text2.SetFocusText2.SelStart=0Text2.SelLength=Len(Text2)nTryCount=nTryCount+1If nTryCount>=5 ThenMsgBox"您无权操作本系统!",vbCritical,"错误"Unload MeEnd If End IfEnd If End If图13系统启动窗体图14用户登录窗体五、系统调试运行数据库的创建与调试:1、创建学生信息表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 ,[tale_Number] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,[ru_Date] [datetime] NULL ,[address] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,[comment] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL) ON [PRIMARY]GO2、创建班级信息表CREATE TABLE [dbo].[class_info] ([class_No] [int] NOT NULL ,[class_Name] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,[director] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,[profession] [char] (14) COLLATE Chinese_PRC_CI_AS NULL) ON [PRIMARY]GO3、创建课程信息表CREATE TABLE [dbo].[class_info] ([course_No] [int] NOT NULL ,[course_Name] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,[course_Type] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,[course_start] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,[course_time] [int] NULL ,[course_score] [int] NULL) ON [PRIMARY]GO4、创建成绩信息表CREATE TABLE [dbo].[class_info] ([student_Id] [int] NOT NULL ,[course_No] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,[result] [float] NULL) ON [PRIMARY]GO学生信息管理系统主窗体的创建与调试:图15 基础工程窗体概览图16 工程窗体的代码展示添加学生信息:图17 添加学生信息窗体Private Sub From_Load()Dim rst As ADODB.RecordsetDim sqlstr As StringDim MsgText As StringDim i As Integer男”Combo2.Text = “200001”:Text5.Text = “2000-01-01”: Text6.Text = “2000-01-01”Text7.Text = “”: Text8.Text = “”: Text9.Text = “”Combo1.AddItem “男”Combo1.AddItem “女”sqlstr = “select from class_Info “Set rst = QuerySQL(sqlstr,MsgText)For i = 1 To rst.RecordCountCombo2.AddItem rst.Fields(0)Rst.moveNextNext iRst.CloseEnd SubPrivate Sub Command1_Click()Dim rst As ADODB.RecordsetDim sqlstr As StringDim MsgText As StringIf Not Testtxt (Text1.Text) ThenMsgBox “请输入学号!”, vbOKOnly + vbExclamation, “警告”Text1.SetFocusExit SubEnd IfIf Not Testtxt (Text2.Text) ThenMsgBox “请输入姓名!”, vbOKOnly + vbExclamation, “警告”Text2.SetFocusExit SubEnd IfIf Not Testtxt (Combo1.Text) ThenMsgBox “请选择性别!”, vbOKOnly + vbExclamation, “警告”Combo1.SetFocusExit SubEnd IfIf Not Testtxt (Combo2.Text) ThenMsgBox “请输入班号!”, vbOKOnly + vbExclamation, “警告”Combo2.SetFocusExit SubEnd IfIf Not Testtxt (Text5.Text) ThenMsgBox “请输入出生日期!”, vbOKOnly + vbExclamation, “警告”Text5.SetFocusExit SubEnd IfIf Not Testtxt (Text6.Text) ThenMsgBox “请输入入校日期!”, vbOKOnly + vbExclamation, “警告”Text6.SetFocusExit SubEnd IfIf Not Testtxt (Text7.Text) ThenMsgBox “请输入电话号码!”, vbOKOnly + vbExclamation, “警告”Text7.SetFocusExit SubEnd IfIf Not Testtxt (Text8.Text) ThenMsgBox “请输入家庭住址!”, vbOKOnly + vbExclamation, “警告”Text8.SetFocusExit SubEnd IfIf Not Testtxt (Text9.Text) ThenMsgBox “请输入备注信息!”, vbOKOnly + vbExclamation, “警告”Text9.SetFocusExit SubEnd IfIf Not IsNumeric (Trim(Text1.Text)) ThenMsgBox “请输入数字!”, vbOKOnly + vbExclamation, “警告”Text5.SetFocusExit SubEnd Ifsqlstr = “select from class_Info “student_ID =’” & Trim(Text1.Text) & “’”Set rst = QuerySQL(sqlstr, MsgText)If rst.EOF = False ThenMsgBox “学号重复,请重新输入!”, vbOKOnly + vbExclamation, “警告”rst.CloseText1.SetFocusElserst.CloseIf Not IsDate(Text5.Text) ThenMsgBox “此出生日期应输入格式(yyyy-mm-dd)! ”, vbOKOnly + vbExclamation, “警告”Text5.SetFocusElseText5 = Format(Text5, “yyyy-mm-dd”)If Not IsDate(Text6.Text) ThenMsgBox “入校时间应填日期格式(yyyy-mm-dd)! ”, vbOKOnly + vbExclamation, “警告”Text6.SetFocusElseText6 = Format(Text6, “yyyy-mm-dd”)sqlstr = “select * from student_Info”Set rst = QuerySQL(sqlstr, MsgText)rst.AddNewrst.Fields(0) = Trim(Text1.Text)rst.Fields(1) = Trim(Text2.Text)rst.Fields(2) = Trim(Combo1.Text)rst.Fields(3) = Trim(Text5.Text)rst.Fields(4) = Trim(Combo2.Text)rst.Fields(5) = Trim(Text7.Text)rst.Fields(6) = Trim(Text6.Text)rst.Fields(7) = Trim(Text8.Text)rst.Fields(8) = Trim(Text9.Text)MsgBox “添加学籍信息成功!”, vbOKOnly + vbExclamation, “警告”rst.CloseEnd IfEnd IfEnd IfEnd SubPrivate Sub Command2_Click()Unload MeEnd Sub图18 修改学生信息窗体图19 查询学生信息窗体模块的创建调试:Public fMainForm As frmMainPublic UserName As StringSub Main ()Dim fLogin As New frmLoginfLogin.Show vbModalIf Not fLogin.succ Then‘登录失败,退出应用程序EndEnd IfUnload fLoginSet fMainForm.ShowEnd SubPublic Function QuerySQL(ByVal SQL_ 图20 模块的创建与调试As String, Msg As String)_As ADODB.RecordsetDim cn As ADODB.ConnecrionDim rS As ADODB.RecordsetDim ss () As StringOn Error GoTo QuerySQL_Errorss = Sqlit(SQL)Set cn = New ADODB.ConnectionConnectString=“Driver=SQLServer;Server=zcj;UID=sa;PWD=sa;Database=Stude nt” cn.Open ConnectStringIf InStr(“INSERT,DELETE,UPDATE”,UCase$(ss(0))) Thencn.Execute SQLMsg = ss(0) & _ “查询成功”ElseSet rS = NewADODB.RecordsetrS.Open Trim$(SQL), cn,adOpenKeyset, adLockOptimisticSet QuerySQL = rSMsg = “查询到” & rS.RecordCount & “ 条记录”End IfQuerySQL_Exit:Set rS = Nothing Set cn = Nothing Exit FunctionQuerySQL_Error:Msg = “查询错误: “ & Err.DescriptionResume QuerySQL_ExitEnd FunctionPublic Function Testtxt(txt As String) As BooleanIf Trim(txt) = “” ThenTesttxt = False ElseTesttxt = TrueEnd IfEnd Function六、总结及心得体会(感受、不足)短暂的一周数据库实训课程转眼间已经结束,通过此次的实训课程练习,大大的提高了我的团队协作能力,我们分工明确,对本次的数据库设计内容进行了比较详细的规划。