1、10内容按要求步骤书写,条理清晰,表述清楚、措词得当5实际动手能力熟练使用开发工具,能够迅速准确的进行调试、纠错和运行;组长全面负责,承担复杂的模块设计分值就高总 成 绩等 级评语1、数据需求分析.3.2、概念结构设计(ER图).43、逻辑结构设计(规范化)54、物理结构设计(索引)6一、 设计目的设计目的:建立高效利用的学生信息管理系统,实现大量信息的规范管理、科学统计和快速查询,从而更好的减少管理方面的工作量。学生信息管理系统提供了强大的学生信息管理功能,方便管理员对学生信息进行添加、修改、删除、查询、统计等操作。因此,学生信息管理系统能够满足学校的需要,简化学生信息的管理过程,提高管理效
2、率,是学校学生信息管理的一种重要的工具。二、系统实现思路1、需求分析本次的实训课程着手于学生信息管理系统,原因在于学校的规模不断扩大,学生数量也在急剧增加,有关学生的各种信息量也在成倍增长。对于庞大的信息量,一个高效的信息管理系统是能够很大程度上提高学生管理工作的效率。2、总体设计系统功能分析:系统开发的目的是实现学生信息管理系统的关系化、规范化和自动化。学生信息管理系统主要提供对学生信息的管理、班级信息的管理、课程信息的管理以及学生成绩的管理。主要功能有:(1) 有关学生信息的输入、修改和查询。(2) 班级信息的输入、修改和查询。(3) 基本课程的输入、修改和查询。(4) 成绩的输入、修改和
3、查询。(5) 学生成绩信息的统计。(6) 模拟用户登录操作。系统功能模块设计:图1 系统功能模块三、系统数据库设计1、数据需求分析用户的需求具体体现在各种信息的提供、保存、更新和查询方面,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本的数据、数据结构以及数据处理的流程,组成一份相近的数据字典,为后面的具体设计打下良好的基础。2、概念结构设计(ER图)图2 学生实体E-R图图3 班级实体E-R图图4 课程实体E-R图图5 实体和实体之间E-R图3、逻辑结构设计(规范化)学生管理系统数据库中各个表格的设计如下所示:表1 学生基本信息字段名数据类型大小是否为空说明student_no学号
4、int4否主键student_name姓名char能无student_sex性别2Born_date出生日期Datatime8class_no班级号Tele_number联系方式外关键字ru_date入学日期address地址Varchar50comment备注Varcher200表2 班级基本信息是否可空class_no班级编号Int主关键字class_name班级名Charprofession专业14director班主任charrcourse_no课程号关键字course_name课程名course_score学分course_time学时course_type课程类型course_st
5、art开课时间1表3 课程基本信息表4 成绩基本信息exam_no成绩号Student_no学号result成绩是4、物理结构设计(索引)图6 学生信息管理系统数据流程图学生基本信息:包括学生学号、姓名、性别、出生日期、联系电话、家庭住址等。班级基本信息:包括班级号、班级名、班主任等。课程基本信息:包括课程编号、课程名称、课程类型、学分等。学生成绩信息:包括学生学号、课程编号和考试成绩等。四、详细系统设计针对此次学生信息管理系统,分为了学生信息管理,班级信息管理,课程信息管理和成绩信息管理界面,分多种功能操作,由于时间原因,简单针对学生信息管理进行了比较详细的功能操作测试,先是通过菜单编辑器实
6、现了多功能布局操作,选取了学生信息进行了窗口功能操作。例如:点击添加学生信息,可以实现添加学生信息功能,并且单独设置了模拟用户登录界面,实现了用户隐私安全性保护数据。图7 窗口目录的创建图8 班级信息管理创建图9 学生信息管理创建图10 课程信息创建图11 成绩信息管理创建图12 工程主窗体的创建用户登录:Dim a As StringDim b As StringDim str As StringDim strr As Stringstr=InStr(Text2.Text,)If str0 ThenMsgBox不能输入非法字符!,vbCritical+vbOKOnly,错误Exit SubE
7、lsestrr=InStr(Text1.Text,If strr=5 Then您无权操作本系统!Unload MeIf b=Trim(r.Fields(1)Thenquanxian=Trim(r.Fields(2)MDIForm1.ShowUnload Me Else密码错误!Text2.SetFocusText2.SelStart=0Text2.SelLength=Len(Text2)End If End If End If End If图13 系统启动窗体图14 用户登录窗体五、系统调试运行数据库的创建与调试:1、创建学生信息表CREATE TABLE dbo.student_Info (
8、 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_P
9、RC_CI_AS NULL , comment varchar (200) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARYGO2、创建班级信息表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_
10、AS NULL 3、创建课程信息表 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 4、创建成绩信息表 student_Id int NOT NULL , course_
11、No char (10) COLLATE Chinese_PRC_CI_AS NOT NULL , result float NULLGO 学生信息管理系统主窗体的创建与调试:图15 基础工程窗体概览图16 工程窗体的代码展示添加学生信息:图17 添加学生信息窗体Private Sub From_Load() Dim rst As ADODB.Recordset Dim sqlstr As String Dim MsgText As String Dim i As Integer Text1.Text = “20000101”:Text2.Text = “”: Combo1.Text = “男
12、” 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.RecordCount Combo2.AddItem rst.Fields(0) Rst.mov
13、eNext Next i Rst.CloseEnd SubPrivate Sub Command1_Click() If Not Testtxt (Text1.Text) Then MsgBox “请输入学号!”, vbOKOnly + vbExclamation, “警告” Text1.SetFocus Exit Sub End If If Not Testtxt (Text2.Text) Then MsgBox “请输入姓名! Text2.SetFocus If Not Testtxt (Combo1.Text) Then MsgBox “请选择性别! Combo1.SetFocus If
14、 Not Testtxt (Combo2.Text) Then MsgBox “请输入班号! Combo2.SetFocus If Not Testtxt (Text5.Text) Then MsgBox “请输入出生日期! Text5.SetFocus If Not Testtxt (Text6.Text) Then MsgBox “请输入入校日期! Text6.SetFocus If Not Testtxt (Text7.Text) Then MsgBox “请输入电话号码! Text7.SetFocus If Not Testtxt (Text8.Text) Then MsgBox “请
15、输入家庭住址! Text8.SetFocus If Not Testtxt (Text9.Text) Then MsgBox “请输入备注信息! Text9.SetFocus If Not IsNumeric (Trim(Text1.Text) Then MsgBox “请输入数字! student_ID =” & Trim(Text1.Text) & “” Set rst = QuerySQL(sqlstr, MsgText) If rst.EOF = False Then MsgBox “学号重复,请重新输入! rst.Close Else If Not IsDate(Text5.Text
16、) Then MsgBox “此出生日期应输入格式 (yyyy-mm-dd)! ”, vbOKOnly + vbExclamation, “警告” Text5 = Format(Text5, “yyyy-mm-dd”) If Not IsDate(Text6.Text) Then MsgBox “入校时间应填日期格式 (yyyy-mm-dd)! Text6 = Format(Text6, “yyyy-mm-dd”) sqlstr = “select * from student_Info” rst.AddNew rst.Fields(0) = Trim(Text1.Text) rst.Fiel
17、ds(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 “添加学籍信息成功!Private Sub Command2_Clic
18、k() Unload Me图18 修改学生信息窗体图19 查询学生信息窗体模块的创建调试:Public fMainForm As frmMainPublic UserName As StringSub Main () Dim fLogin As New frmLogin fLogin.Show vbModal If Not fLogin.succ Then 登录失败,退出应用程序 End Unload fLogin Set fMainForm.ShowPublic Function QuerySQL(ByVal SQL_ 图20 模块的创建与调试 As String, Msg As Strin
19、g)_ As ADODB.Recordset Dim cn As ADODB.Connecrion Dim rS As ADODB.Recordset Dim ss () As String On Error GoTo QuerySQL_Error ss = Sqlit(SQL) Set cn = New ADODB.ConnectionConnectString=“Driver=SQLServer;Server=zcj;UID=sa;PWD=sa;Database=Student” cn.Open ConnectString If InStr(“INSERT,DELETE,UPDATE”,U
20、Case$(ss(0) Then cn.Execute SQL Msg = ss(0) & _ “查询成功” Else Set rS = NewADODB.Recordset rS.Open Trim$(SQL), cn,adOpenKeyset, adLockOptimistic Set QuerySQL = rS Msg = “查询到” & rS.RecordCount & “ 条记录” End IfQuerySQL_Exit: Set rS = Nothing Set cn = Nothing Exit Function QuerySQL_Error: Msg = “查询错误: “ &
21、Err.Description Resume QuerySQL_ExitEnd FunctionPublic Function Testtxt(txt As String) As Boolean If Trim(txt) = “” Then Testtxt = False Else Testtxt = True End If 六、总结及心得体会(感受、不足)短暂的一周数据库实训课程转眼间已经结束,通过此次的实训课程练习,大大的提高了我的团队协作能力,我们分工明确,对本次的数据库设计内容进行了比较详细的规划。首先,实训前针对所需要的文件进行了提前准备,调试了有关的程序能够正常运行,确保了实训的正常操作。对书本的实例进行了详细的了解,选取了其中的内容作为主要参考,确定了以学生信息管理系统为主要内容的数据库模拟系统,真正的模拟了学生用户的操作体验。其次,我对于我们组主要负责系统布局设计的一个环节,我肩负了重要的责任,不仅对学生用户信息系统进行了比较综合的布局分析,同时完善了各个布局页面的页面信息设置,与我事先设计好的学生信息管理主窗体完成了对接,以此完成了信息系统的调用操作。最后,遗憾的是在时间的催促下,我们
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1