当前位置:文档之家› 学生信息管理系统设计与开发

学生信息管理系统设计与开发

学生信息管理系统设计与开发河南工程学院《数据库原理及应用》课程设计成果报告学生信息管理系统设计与开发学生学号:学生姓名:学院:计算机学院专业班级:专业课程:数据库原理及应用课程设计指导教师:年月日课程设计指导教师评分表课程设计题目学生信息管理系统设计与开发成员姓名学号任务分工201420910115 VB系统窗体设计及数据库设计数据库代码片段筛选及整理数据库及系统整体修改调试评分项目及分值要素成绩评定项目最高分评分要素成绩1.学习态度20 上机出勤及端正的学习态度、认真刻苦程度,工作量饱满程度等2.软件设计质量40采用的算法、设计方案,设计结果,界面友好等方面进行综合评定3.答辩过程20 能简明扼要地阐述设计的主要内容,能准确流利地回答各种问题4.设计报告书写10内容按要求步骤书写,条理清晰,表述清楚、措词得当5.实际动手能力10熟练使用开发工具,能够迅速准确的进行调试、纠错和运行;组长全面负责,承担复杂的模块设计分值就高总成绩等级评语目录一、系统设计目的 (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 系统功能模块三、系统数据库设计1、数据需求分析用户的需求具体体现在各种信息的提供、保存、更新和查询方面,这就要求数据库结构能充分满足各种信息的输出和输入。

收集基本的数据、数据结构以及数据处理的流程,组成一份相近的数据字典,为后面的具体设计打下良好的基础。

2、概念结构设计(ER图)学生学学学学图2 学生实体E-R 图图3 班级实体E-R 图图4 课程实体E-R 图班 级班所在班所在课 程 课程课程课程课程学 班级班考核课程课图5 实体和实体之间E-R图3、逻辑结构设计(规范化)学生管理系统数据库中各个表格的设计如下所示:表1 学生基本信息字段名数据类型大小是否为空说明student_no学号int 4 否主键student_name姓名char 10 能无student_sex性别char 2 否无Born_date出生日期Datatime 8 能无class_no班级号int 能无Tele_numbe r联系方char 10 能外关键字式ru_date入学日期Datatime 能无address地址Varchar 50 能无comment备注Varcher 200 能无表2 班级基本信息字段名数据类型大小是否可空说明class_no班级编号Int 10 否主关键字class_name 班级名 Char 20 否 无 profession 专业 Char 14 能 无 director 班主任charr10能外关键字表3 课程基本信息表4 成绩基本信息字段名数据类型大小 是否可空 说明 exam_no 成绩号 Char 10 否 主关键字 Student_no 学号 Int 4 否 外关键字 course_no 课程号 Char 10 否 外关键字 result 成绩Int4是无4、物理结构设计(索引)字段名 数据类型 大小 是否可空 说明 course_no 课程号 Int 否 关键字 course_name 课程名 Char10 否 无 course_score 学分 Int 4 能 无 course_time 学时int4 能 无 course_type 课程类型 char 10 能 无 course_start 开课时间char 1能无图6 学生信息管理系统数据流程图学生基本信息:包括学生学号、姓名、性别、出生日期、联系电话、家庭住址等。

班级基本信息:包括班级号、班级名、班主任等。

课程基本信息:包括课程编号、课程名称、课程类型、学分等。

学生成绩信息:包括学生学号、课程编号和考试成绩等。

班级班级信班级信息学生信班级学生信息成绩信成绩信息班级学生信课程登录四、详细系统设计针对此次学生信息管理系统,分为了学生信息管理,班级信息管理,课程信息管理和成绩信息管理界面,分多种功能操作,由于时间原因,简单针对学生信息管理进行了比较详细的功能操作测试,先是通过菜单编辑器实现了多功能布局操作,选取了学生信息进行了窗口功能操作。

例如:点击添加学生信息,可以实现添加学生信息功能,并且单独设置了模拟用户登录界面,实现了用户隐私安全性保护数据。

图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 IntegerText1.Text = “20000101”:Text2.Text = “”: Combo1.Text = “男”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=S tudent” 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六、总结及心得体会(感受、不足)短暂的一周数据库实训课程转眼间已经结束,通过此次的实训课程练习,大大的提高了我的团队协作能力,我们分工明确,对本次的数据库设计内容进行了比较详细的规划。

相关主题