还剩24页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
兰州交通大学课程设计论文题目名称教学管理系统课程名称数据库技术及应用学生姓名毛燕春学号201109118学院自然班自动化与电气工程学院电气2011-01指导教师甄兴华2013年6月14日
1.需求本系统主要用于学校的学生成绩管理
1.用户身份的验证
2.学生基本信息管理
3.按班级选课
4.学生成绩的管理
2.总体设计本系统包括标准模块、系统登录模块、主界面模块、系统管理模块、学生基本信息管理模块、选课模块、成绩管理模块
1.标准模块定义公共变量和过程
2.系统登录模块进行用户身份的验证
3.主界面模块作为系统总界面,供用户进行各项选择
4.系统管理模块用户管理及系统退出
5.学生基本信息管理模块学生基本信息的录入和查询
6.选课模块为班级选课
7.成绩管理模块进行学生成绩的录入及查询
3.数据库设计及配置
3.
1.数据库设计该数据库由以下几个表组成用户表、学生基本信息表、班级课程表、学生成绩表
3.
1.1用户表包括用户名、密码、是否是超级用户字段名称数据类型用户名文本密码文本是否为超级用户布尔
3.
1.2学生基本信息表包括学号、姓名、电话、地址、班级名称、性别字段名称数据类型学号文本姓名文本电话文本地址文本班级名称文本性别文本
3.
1.3班级课程表包括班级名称、课程名称字段名称数据类型班级名称文本课程名称文本
3.
1.4学生成绩表包括学号、课程名称、成绩字段名称数据类型学号文本课程名称文本成绩数值(单精度浮点型)
3.
2.数据库中各表关系学生基本信息表与班级课程表通过班级名称字段相关联,学生基本信息表与学生成绩表通过学号字段相关联,班级课程表与学生成绩表通过课程名称字段相关联
4.系统实现
4.
1.标准模块(公有模块)
4.
1.1标准模块中的数据定义用于定义全局变量及过程本系统定义了当前用户名及用户类型序号变量名数据类型1UserNameString2UserTypeBoolean
4.
1.2标准模块代码设计OptionExplicitPublicUserNameAsStringPublicUserTypeAsBoolean
4.
2.系统登录模块
4.
2.1说明进行用户身份的验证特定的用户才能登录到系统
4.
2.2窗体设计系统登录窗体的窗体类型为Form,界面如下图所示主要控件属性如下表所示对象名类型属性值说明FrmLogin窗体Caption学生成绩管理系统登录学生成绩管理系统登录窗体Label1标签Caption用户名Label2标签Caption密码Text1文本框Text用于输入用户名Text2文本框Text用于输入密码cmdOk命令按钮Caption确定确定当前输入的用户名和密码,进行用户登录登录成功后进入主界面如果三次输入错误的用户和密码,程序将自动退出cmdCancel命令按钮Caption取消取消操作,退出程序Adodc1AdodcConnectionString连接所使用的数据库,ConnectionString属性在界面中设置,RecordSource属性在代码中设置
4.
2.3代码设计公共定义OptionExplicitDimCount1AsInteger窗体装载处理程序(Load)PrivateSubForm_LoadCount1=0‘错误次数清零EndSub取消按钮(cmdCancel)处理程序(Click)PrivateSubcmdCancel_ClickUnloadMe‘系统退出EndSub确定按钮(cmdOk)处理程序(Click)PrivateSubcmdOk_ClickDims1AsStringDimPasswordAsStringOnErrorResumeNextIfText
1.Text=Then‘用户名为空,则退出MsgBox用户名不能为空请重新输入Text
1.SetFocusExitSubEndIf‘按输入的用户名进行查询s1=SELECT*from用户表WHERE用户名=Text
1.TextAdodc
1.RecordSource=s1Adodc
1.RefreshIfAdodc
1.Recordset.EOF=FalseThen‘判断查询结果UserName=Adodc
1.Recordset.Fields0‘有该用户名,即用户名正确Password=Adodc
1.Recordset.Fields1UserType=Adodc
1.Recordset.Fields2IfPassword=Text
2.TextThen‘判断密码是否正确UnloadMe‘密码正确,关闭当前窗体FrmMain.Show‘显示主界面窗体ExitSubElseMsgBox密码错误请重新输入‘密码错误,提示Text
2.SetFocusText
2.Text=EndIfElse‘没有该用户名,即用户名错误MsgBox用户名错误请重新输入Text
1.SetFocusText
1.Text=Text
2.Text=EndIfCount1=Count1+1‘错误次数累计IfCount1=3ThenMsgBox错误超过3次系统退出UnloadMeEndIfEndSub
4.
3.主界面模块
4.
3.1说明作为系统总界面,供用户进行各项选择
4.
3.2窗体设计主界面模块窗体类型为MDIForm,界面如下图所示
4.
3.3代码设计窗体变为活动窗体处理程序(MDIForm-Activate)PrivateSubMDIForm_ActivateWindowState=2‘窗体最大化状态StatusBar
1.Panels
1.Text=用户名:UserName‘在状态栏显示用户名、用户类型IfUserType=TrueThenStatusBar
1.Panels
2.Text=用户类型:管理员ElseStatusBar
1.Panels
2.Text=用户类型:普通用户EndIfIfUserType=FalseThen‘对普通用户设某些菜单项不可用AA
1.Enabled=FalseBB
1.Enabled=FalseCC.Enabled=FalseDD
1.Enabled=FalseToolbar
1.Buttons
1.Enabled=False‘对普通用户设工具栏的某些按钮不可用Toolbar
1.Buttons
3.Enabled=FalseToolbar
1.Buttons
6.Enabled=FalseToolbar
1.Buttons
7.Enabled=FalseToolbar
1.Buttons
9.Enabled=FalseEndIfEndSub定时器(Timer1)处理程序(Timer)PrivateSubTimer1_TimerStatusBar
1.Panels
3.Text=Now‘在状态栏中显示当前时间EndSub工具栏(Toolbar1)处理程序(ButtonClick)PrivateSubToolbar1_ButtonClickByValButtonAsMSComctlLib.ButtonSelectCaseButton.IndexCase1Form
11.Show1‘用户管理Case3Form
21.Show1‘学生基本信息维护Case4Form
22.Show1‘学生基本信息查询Case6Form
31.Show1‘课程添加Case7Form
32.Show1‘课程删除Case9Form
41.Show1‘学生成绩维护Case10Form
42.Show1‘学生成绩查询Case12UnloadMe‘系统退出EndSelectEndSub“用户管理”菜单项处理程序(AA1-Click)PrivateSubAA1_ClickForm
11.Show1EndSub“退出”菜单项处理程序(AA3-click)PrivateSubAA3_ClickUnloadMeEndSub“学生基本信息维护”菜单项处理程序(BB1-click)PrivateSubBB1_ClickForm
21.Show1EndSub“学生基本信息查询”菜单项处理程序(BB2-click)PrivateSubBB2_ClickForm
22.Show1EndSub“课程添加”菜单项处理程序(CC1-click)PrivateSubCC1_ClickForm
31.Show1EndSub“课程删除”菜单项处理程序(CC2-click)PrivateSubCC2_ClickForm
32.Show1EndSub“学生成绩维护”菜单项处理程序(DD1-click)PrivateSubDD1_ClickForm
41.Show1EndSub“学生成绩查询”菜单项处理程序(DD2-click)PrivateSubDD2_ClickForm
42.Show1EndSub
4.
4.用户管理模块
4.
4.1说明创建、删除用户设定用户权限
4.
4.2窗体设计
4.
4.3代码设计上一条(Command1)处理(Click)PrivateSubCommand1_ClickCommand
2.Enabled=TrueAdodc
1.Recordset.MovePreviousIfAdodc
1.Recordset.BOFThenCommand
1.Enabled=FalseAdodc
1.Recordset.MoveFirstEndIfEndSub下一条(Command2)处理(Click)PrivateSubCommand2_ClickCommand
1.Enabled=TrueAdodc
1.Recordset.MoveNextIfAdodc
1.Recordset.EOFThenCommand
2.Enabled=FalseAdodc
1.Recordset.MoveLastEndIfEndSub添加(Command3)处理(Click)PrivateSubCommand3_ClickIfCommand
3.Caption=添加ThenCommand
3.Caption=确定Command
1.Enabled=FalseCommand
2.Enabled=FalseCommand
4.Enabled=FalseAdodc
1.Recordset.AddNewText
1.SetFocusElseIfText
1.Text=ThenMsgBox用户名不能为空ExitSubEndIfCommand
3.Caption=添加Adodc
1.Recordset.UpdateCommand
1.Enabled=TrueCommand
2.Enabled=TrueCommand
4.Enabled=TrueEndIfEndSub删除(Command4)处理(Click)PrivateSubCommand4_ClickAdodc
1.Recordset.DeleteAdodc
1.Recordset.MoveNextIfAdodc
1.Recordset.EOFThenAdodc
1.Recordset.MoveLastEndIfEndSub退出(Command5)处理(Click)PrivateSubCommand5_ClickUnloadMeEndSub
4.
5.学生基本信息管理模块
4.
5.1说明学生基本信息的添加、删除、查询该模块有两个窗体学生基本信息维护窗体和学生基本信息查询窗体
4.
5.2学生基本信息维护窗体
4.
5.
2.
1.窗体设计主要控件属性如下表所示对象名类型属性值说明Form21窗体Caption学生基本信息维护学生基本信息维护窗体Adodc1AdodcConnectionString连接所使用的数据库,ConnectionString、RecordSource属性都在界面中设置作为DataGrid1的数据源RecordSourceCommandType2-adCmdTable学生基本信息表DataGrid1DataGridDataSourceAdodc1用于显示学生基本信息表内容Command1命令按钮Caption退出
4.
5.
2.
2.代码设计窗体装载处理程序(Load)PrivateSubForm_LoadDataGrid
1.AllowAddNew=TrueDataGrid
1.AllowDelete=TrueDataGrid
1.AllowUpdate=TrueEndSub退出(Command1)处理(Click)PrivateSubCommand1_ClickUnloadMeEndSub
4.
5.3学生基本信息查询窗体
4.
5.
3.
1.窗体设计主要控件属性如下表所示对象名类型属性值说明Form22窗体Caption学生基本信息查询学生基本信息查询窗体Adodc1AdodcConnectionString连接所使用的数据库,ConnectionString属性在界面中设置,RecordSource属性在代码中设置Adodc2AdodcConnectionString连接所使用的数据库,ConnectionString、RecordSource属性都在界面设置作为DataList1的数据源RecordSourceCommandType1-adCmdTextSELECTDISTINCT班级名称FROM学生基本信息表Check1复选按钮Caption姓名选择查询条件Check2复选按钮Caption学号Check3复选按钮Caption班级Text1文本框用于输入姓名Text2文本框用于输入学号DataList1DataListRowSourceAdodc2用于选择输入班级名称ListField班级名称DataSourceAdodc2DataListField班级名称DataGrid1DataGrid显示查询得到的学生基本信息Command1命令按钮Caption查询Command2命令按钮Caption退出
4.
5.
3.
2.代码设计查询(Command1)处理(Click)PrivateSubCommand1_ClickDims1AsStrings1=IfCheck
1.Value=1ThenIfText
1.TextThens1=s1姓名=Text
1.TextEndIfEndIfIfCheck
2.Value=1ThenIfText
2.TextThenIfs1Thens1=s1andEndIfs1=s1学号=Text
2.TextEndIfEndIfIfCheck
3.Value=1ThenIfDataList
1.TextThenIfs1Thens1=s1andEndIfs1=s1班级名称=DataList
1.TextEndIfEndIfIfs1Thens1=wheres1EndIfAdodc
1.RecordSource=select*from学生基本信息表s1Adodc
1.RefreshSetDataGrid
1.DataSource=Adodc1EndSub退出(Command2)处理(Click)PrivateSubCommand2_ClickUnloadMeEndSub窗体装载处理程序(Load)PrivateSubForm_LoadDataGrid
1.AllowAddNew=FalseDataGrid
1.AllowDelete=FalseDataGrid
1.AllowUpdate=FalseEndSub
4.
6.选课模块
4.
6.1说明该模块为一个班级选课
4.
6.2课程添加窗体用于课程的添加和查询
4.
6.
2.
1.窗体设计主要控件属性如下表所示对象名类型属性值说明Form31窗体Caption课程添加课程添加窗体Adodc1AdodcConnectionString连接所使用的数据库,ConnectionString属性在界面中设置,RecordSource属性在代码中设置Label1标签Caption班级名称Label2标签Caption课程名称Text1文本框用于输入班级名称Text2文本框用于输入课程名称DataGrid1DataGrid显示该班级课程Command1命令按钮Caption添加Command2命令按钮Caption查询Command3命令按钮Caption退出
4.
6.
2.
2.代码设计添加(Command1)处理(Click)PrivateSubCommand1_ClickDims1AsStrings2AsStringOnErrorResumeNextIfText
1.Text=OrText
2.Text=ThenMsgBox输入不能为空ExitSubEndIfs1=select*from班级课程表where班级名称=s2=Text
1.Textand课程名称=Text
2.TextAdodc
1.RecordSource=s1s2Adodc
1.RefreshIfAdodc
1.Recordset.EOF=FalseThenText
1.SetFocusMsgBox该记录已存在请重新输入警告ExitSubEndIfs1=select*from班级课程表Adodc
1.RecordSource=s1Adodc
1.RefreshAdodc
1.Recordset.MoveLastAdodc
1.Recordset.AddNewAdodc
1.Recordset.Fields班级名称=Text
1.TextAdodc
1.Recordset.Fields课程名称=Text
2.TextAdodc
1.Recordset.UpdateAdodc
1.Refreshs1=select课程名称from班级课程表where班级名称=Text
1.TextAdodc
1.RecordSource=s1Adodc
1.RefreshSetDataGrid
1.DataSource=Adodc
1.RecordsetText
2.SetFocusText
2.Text=ExitSubEndSub查询(Command2)处理(Click)PrivateSubCommand2_ClickDims1AsStrings1=select课程名称from班级课程表where班级名称=Text
1.TextAdodc
1.RecordSource=s1Adodc
1.RefreshSetDataGrid
1.DataSource=Adodc
1.RecordsetEndSub退出(Command3)处理(Click)PrivateSubCommand3_ClickUnloadMeEndSub窗体装载处理程序(Load)PrivateSubForm_LoadDataGrid
1.AllowAddNew=FalseDataGrid
1.AllowDelete=FalseDataGrid
1.AllowUpdate=FalseEndSub
4.
6.3课程删除窗体
4.
6.
3.
1.窗体设计主要控件属性如下表所示对象名类型属性值说明Form32窗体Caption课程添加课程删除及修改窗体Adodc1AdodcConnectionString连接所使用的数据库,ConnectionString、RecordSource属性都在界面中设置作为DataList1的数据源RecordSourceCommandType1-adCmdTextSELECTDISTINCT班级名称from班级课程表Adodc2AdodcConnectionString连接所使用的数据库,ConnectionString在界面中设置,RecordSource属性在代码中设置Label1标签Caption班级名称Label2标签Caption课程列表DataList1DataListRowSourceAdodc1用于选择输入班级名称ListField班级名称DataSourceAdodc1DataListField班级名称DataGrid1DataGrid显示查询得到的学生基本信息
4.
6.
3.
2.代码设计退出(Command1)处理(Click)PrivateSubCommand1_ClickUnloadMeEndSub数据列表框(DataList1)处理(Click)PrivateSubDataList1_ClickDims1AsStrings1=select*from班级课程表where班级名称=DataList
1.TextAdodc
2.RecordSource=s1Adodc
2.RefreshSetDataGrid
1.DataSource=Adodc2EndSub窗体装载处理程序(Load)PrivateSubForm_LoadDataGrid
1.AllowDelete=TrueDataGrid
1.AllowUpdate=TrueDataGrid
1.AllowAddNew=FalseEndSub
4.
7.成绩管理模块
4.
7.1说明进行学生成绩的录入及查询
4.
7.2成绩录入窗体进行学生成绩的添加、修改及删除
4.
7.
2.
1.窗体设计
4.
7.
2.
2.代码设计录入(Command1)处理(Click)PrivateSubCommand1_ClickDims1AsStrings2AsStrings3AsStringOnErrorResumeNexts1=select*from学生成绩表s2=where学号=List
2.Textands3=课程名称=List
1.TextAdodc
3.RecordSource=s1s2s3Adodc
3.RefreshIfAdodc
3.Recordset.EOF=FalseThenAdodc
3.Recordset.Fields2=ValText
1.TextElseAdodc
3.Recordset.MoveLastAdodc
3.Recordset.AddNewAdodc
3.Recordset.Fields0=List
2.TextAdodc
3.Recordset.Fields1=List
1.TextAdodc
3.Recordset.Fields2=ValText
1.TextEndIfAdodc
3.Recordset.UpdateAdodc
3.Refreshs1=select学号成绩from学生成绩表where课程名称=List
1.Texts2=and学号inselect学号from学生基本信息表s3=where班级名称=DataList
1.TextAdodc
3.RecordSource=s1s2s3Adodc
3.RefreshSetDataGrid
1.DataSource=Adodc3EndSub退出(Command1)处理(Click)PrivateSubCommand2_ClickUnloadMeEndSub数据列表框(DataList1)处理(Click)PrivateSubDataList1_ClickDims1AsStrings2AsStringSetDataGrid
1.DataSource=Nothings1=select课程名称from班级课程表s2=where班级名称=DataList
1.TextAdodc
2.RecordSource=s1s2Adodc
2.RefreshIfAdodc
2.Recordset.EOF=TrueThenMsgBox请在班级课程表里添加该班级的课程名称ExitSubEndIfList
1.ClearAdodc
2.Recordset.MoveFirstDoWhileAdodc
2.Recordset.EOF=FalseList
1.AddItemAdodc
2.Recordset.Fields0Adodc
2.Recordset.MoveNextLoops1=select学号from学生基本信息表s2=where班级名称=DataList
1.TextAdodc
2.RecordSource=s1s2Adodc
2.RefreshIfAdodc
2.Recordset.EOF=TrueThenMsgBox请在学生信息表里添加该班级ExitSubEndIfList
2.ClearAdodc
2.Recordset.MoveFirstDoWhileAdodc
2.Recordset.EOF=FalseList
2.AddItemAdodc
2.Recordset.Fields0Adodc
2.Recordset.MoveNextLoopEndSub窗体装载处理程序(Load)PrivateSubForm_LoadDataGrid
1.AllowDelete=TrueDataGrid
1.AllowAddNew=FalseDataGrid
1.AllowUpdate=FalseEndSub列表框(List1)处理(Click)PrivateSubList1_ClickDims1AsStrings2AsStrings3AsStrings1=select学号成绩from学生成绩表where课程名称=List
1.Texts2=and学号inselect学号from学生基本信息表s3=where班级名称=DataList
1.TextAdodc
3.RecordSource=s1s2s3Adodc
3.RefreshSetDataGrid
1.DataSource=Adodc3EndSub列表框(List2)处理(Click)PrivateSubList2_ClickText
1.Text=EndSub
4.
7.3成绩查询窗体进行学生成绩的查询
4.
7.
3.
1.窗体设计主要控件属性如下表所示对象名类型属性值说明Form42窗体Caption学生成绩查询学生成绩查询窗体Adodc1AdodcConnectionString连接所使用的数据库,ConnectionString在界面中设置,RecordSource属性在代码中设置Adodc2AdodcConnectionString连接所使用的数据库,ConnectionString在界面中设置,RecordSource属性在代码中设置Option10单选按钮Caption按班级用于选择查询条件Option11单选按钮Caption按学号Label1标签CaptionLabel1Label2标签CaptionLabel2Combo1组合框用于选择班级名称Combo2组合框用于选择学号和课程名称DataGrid1DataGrid用于显示查询得到的学生成绩Command1命令按钮Caption退出
4.
7.
3.
2.代码设计公共定义OptionExplicitDimoptAsInteger组合框(Combo1)处理(Click)PrivateSubCombo1_ClickDims1AsStrings2AsStringSetDataGrid
1.DataSource=NothingCombo
2.ClearIfopt=0Thens1=select课程名称from班级课程表where班级名称=s2=Combo
1.Textgroupby课程名称Adodc
2.RecordSource=s1s2Elses1=select学号from学生基本信息表where班级名称=s2=Combo
1.TextAdodc
2.RecordSource=s1s2EndIfAdodc
2.RefreshDoWhileAdodc
2.Recordset.EOF=FalseCombo
2.AddItemAdodc
2.Recordset.Fields0Adodc
2.Recordset.MoveNextLoopEndSub组合框(Combo2)处理(Click)PrivateSubCombo2_ClickDims1AsStrings2AsStrings3AsStringSetDataGrid
1.DataSource=NothingIfopt=0Thens1=select*from学生成绩表where课程名称=s2=Combo
2.Textand学号inselect学号s3=from学生基本信息表where班级名称=Combo
1.TextAdodc
1.RecordSource=s1s2s3Adodc
1.RefreshSetDataGrid
1.DataSource=Adodc1Elses1=select*from学生成绩表where学号=Combo
2.TextAdodc
1.RecordSource=s1Adodc
1.RefreshSetDataGrid
1.DataSource=Adodc1EndIfEndSub退出(Command1)处理(Click)PrivateSubCommand1_ClickUnloadMeEndSub窗体装载处理程序(Load)PrivateSubForm_LoadDataGrid
1.AllowAddNew=FalseDataGrid
1.AllowDelete=FalseDataGrid
1.AllowUpdate=FalseEndSub单选按钮(Option1)处理(Click)PrivateSubOption1_ClickIndexAsIntegerIfIndex1ThenExitSubEndIfCombo
1.ClearCombo
2.ClearSetDataGrid
1.DataSource=Nothingopt=IndexIfIndex=0Then按班级查询Label
1.Caption=请选择班级Label
2.Caption=请选择课程ElseIfIndex=1Then按学号查询Label
1.Caption=请选择班级Label
2.Caption=请选择学号EndIfAdodc
2.RecordSource=selectdistinct班级名称from班级课程表Adodc
2.RefreshDoWhileAdodc
2.Recordset.EOF=FalseCombo
1.AddItemAdodc
2.Recordset.Fields0Adodc
2.Recordset.MoveNextLoopCombo
1.Text=Combo
1.List0EndSub。