SQL 数据库课程设计学生成绩系统-2023修改整理_第1页
SQL 数据库课程设计学生成绩系统-2023修改整理_第2页
SQL 数据库课程设计学生成绩系统-2023修改整理_第3页
SQL 数据库课程设计学生成绩系统-2023修改整理_第4页
SQL 数据库课程设计学生成绩系统-2023修改整理_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

千里之行,始于足下让知识带有温度。第第2页/共2页精品文档推荐SQL数据库课程设计学生成绩系统SQL数据库课程设计

同学成果管理系统设计

(本设计以VB为前台对数据库举行操作)

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标准模块中的数据定义

4.1.2标准模块代码设计

OptionExplicit

PublicUserNameAsString

PublicUserTypeAsBoolean

4.2.系统登录模块

4.2.1说明

举行用户身份的验证。特定的用户才干登录到系统。

4.2.2窗体设计

系统登录窗体的窗体类型为Form,界面如下图所示:

4.2.3代码设计

●公共定义

OptionExplicit

DimCount1AsInteger

●窗体装载处理程序(Load)

PrivateSubForm_Load()

Count1=0‘错误次数清零EndSub

●取消按钮(cmdCancel)处理程序(Click)

PrivateSubcmdCancel_Click()

UnloadMe‘系统退出

EndSub

确定按钮(cmdOk)处理程序(Click)

PrivateSubcmdOk_Click()

Dims1AsString

DimPasswordAsString

OnErrorResumeNext

IfText1.Text=""Then‘用户名为空,则退出

MsgBox("用户名不能为空,请重新输入")

Text1.SetFocus

ExitSub

EndIf

‘按输入的用户名举行查询

s1="SELECT*from用户表WHERE用户名='"&Text1.Text&"'"

Adodc1.RecordSource=s1

Adodc1.Refresh

IfAdodc1.Recordset.EOF=FalseThen‘推断查询结果

UserName=Adodc1.Recordset.Fields(0)‘有该用户名,即用户名正确Password=Adodc1.Recordset.Fields(1)

UserType=Adodc1.Recordset.Fields(2)

IfPassword=Text2.TextThen‘推断密码是否正确

UnloadMe‘密码正确,关闭当前窗体

FrmMain.Show‘显示主界面窗体

ExitSub

Else

MsgBox("密码错误,请重新输入")‘密码错误,提醒

Text2.SetFocus

Text2.Text=""

EndIf

Else‘没有该用户名,即用户名错误MsgBox"用户名错误,请重新输入"

Text1.SetFocus

Text1.Text=""

Text2.Text=""

EndIf

Count1=Count1+1‘错误次数累计

IfCount1>=3Then

MsgBox"错误超过3次,系统退出"

UnloadMe

EndIf

EndSub

4.3.主界面模块

4.3.1说明

作为系统总界面,供用户举行各项挑选。

4.3.2窗体设计

主界面模块窗体类型为MDIForm,界面如下图所示。

4.3.3代码设计

●窗体变为活动窗体处理程序(MDIForm-Activate)

PrivateSubMDIForm_Activate()

WindowState=2‘窗体最大化状态

StatusBar1.Panels(1).Text="用户名:"&UserName‘在状态栏显示用户名、用户类型IfUserType=TrueThen

StatusBar1.Panels(2).Text="用户类型:管理员"

Else

StatusBar1.Panels(2).Text="用户类型:一般用户"

EndIf

IfUserType=FalseThen‘对一般用户设某些菜单项不行用AA1.Enabled=False

BB1.Enabled=False

CC.Enabled=False

DD1.Enabled=False

Toolbar1.Buttons(1).Enabled=False‘对一般用户设工具栏的某些按钮不行用Toolbar1.Buttons(3).Enabled=False

Toolbar1.Buttons(6).Enabled=False

Toolbar1.Buttons(7).Enabled=False

Toolbar1.Buttons(9).Enabled=False

EndIf

EndSub

●定时器(Timer1)处理程序(Timer)

PrivateSubTimer1_Timer()

StatusBar1.Panels(3).Text=Now‘在状态栏中显示当前时光EndSub

●工具栏(Toolbar1)处理程序(ButtonClick)

PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)

SelectCaseButton.Index

Case1

Form11.Show(1)‘用户管理

Case3

Form21.Show(1)‘同学基本信息维护

Case4

Form22.Show(1)‘同学基本信息查询

Case6

Form31.Show(1)‘课程添加

Case7

Form32.Show(1)‘课程删除

Case9

Form41.Show(1)‘同学成果维护

Case10

Form42.Show(1)‘同学成果查询Case12

UnloadMe‘系统退出

EndSelect

EndSub

●“用户管理”菜单项处理程序(AA1-Click)

PrivateSubAA1_Click()

Form11.Show(1)

EndSub

●“退出”菜单项处理程序(AA3-click)

PrivateSubAA3_Click()

UnloadMe

EndSub

●“同学基本信息维护”菜单项处理程序(BB1-click)

PrivateSubBB1_Click()

Form21.Show(1)

EndSub

●“同学基本信息查询”菜单项处理程序(BB2-click)

PrivateSubBB2_Click()

Form22.Show(1)

EndSub

●“课程添加”菜单项处理程序(CC1-click)

PrivateSubCC1_Click()

Form31.Show(1)

EndSub

●“课程删除”菜单项处理程序(CC2-click)

PrivateSubCC2_Click()

Form32.Show(1)

EndSub

●“同学成果维护”菜单项处理程序(DD1-click)

PrivateSubDD1_Click()

Form41.Show(1)

EndSub

●“同学成果查询”菜单项处理程序(DD2-click)

PrivateSubDD2_Click()

Form42.Show(1)

EndSub

4.4.用户管理模块

4.4.1说明

创建、删除用户。设定用户权限。

4.4.2窗体设计

4.4.3代码设计

●上一条(Command1)处理(Click)PrivateSubCommand1_Click()

Command2.Enabled=True

Adodc1.Recordset.MovePrevious

IfAdodc1.Recordset.BOFThen

Command1.Enabled=False

Adodc1.Recordset.MoveFirst

EndIf

EndSub

●下一条(Command2)处理(Click)PrivateSubCommand2_Click()

Command1.Enabled=True

Adodc1.Recordset.MoveNext

IfAdodc1.Recordset.EOFThen

Command2.Enabled=False

Adodc1.Recordset.MoveLast

EndIf

EndSub

●添加(Command3)处理(Click)

PrivateSubCommand3_Click()

IfCommand3.Caption="添加"ThenCommand3.Caption="确定"

Command1.Enabled=False

Command2.Enabled=False

Command4.Enabled=False

Adodc1.Recordset.AddNew

Text1.SetFocus

Else

IfText1.Text=""Then

MsgBox("用户名不能为空")

ExitSub

EndIf

Command3.Caption="添加"

Adodc1.Recordset.Update

Command1.Enabled=True

Command2.Enabled=True

Command4.Enabled=True

EndIf

EndSub

●删除(Command4)处理(Click)

PrivateSubCommand4_Click()

Adodc1.Recordset.Delete

Adodc1.Recordset.MoveNext

IfAdodc1.Recordset.EOFThen

Adodc1.Recordset.MoveLast

EndIf

EndSub

●退出(Command5)处理(Click)

PrivateSubCommand5_Click()

UnloadMe

EndSub

4.5.同学基本信息管理模块

4.5.1说明

同学基本信息的添加、删除、查询。

该模块有两个窗体:同学基本信息维护窗体和同学基本信息查询窗体

4.5.2.1.窗体设计

4.5.2.2.代码设计

●窗体装载处理程序(Load)

PrivateSubForm_Load()

DataGrid1.AllowAddNew=TrueDataGrid1.AllowDelete=TrueDataGrid1.AllowUpdate=TrueEndSub

●退出(Command1)处理(Click)PrivateSubCommand1_Click()

UnloadMe

EndSub

4.5.3.1.窗体设计

4.5.3.2.代码设计

●查询(Command1)处理(Click)

PrivateSubCommand1_Click()

Dims1AsString

s1=""

IfCheck1.Value=1Then

IfText1.Text""Then

s1=s1&"姓名='"&Text1.Text&"'"

EndIf

EndIf

IfCheck2.Value=1Then

IfText2.Text""Then

Ifs1""Then

s1=s1&"and"

EndIf

s1=s1&"学号='"&Text2.Text&"'"

EndIf

EndIf

IfCheck3.Value=1Then

IfDataList1.Text""Then

Ifs1""Then

s1=s1&"and"

EndIf

s1=s1&"班级名称='"&DataList1.Text&"'"

EndIf

EndIf

Ifs1""Then

s1="where"&s1

EndIf

Adodc1.RecordSource="select*from同学基本信息表"&s1Adodc1.Refresh

SetDataGrid1.DataSource=Adodc1

EndSub

●退出(Command2)处理(Click)

PrivateSubCommand2_Click()

UnloadMe

EndSub

●窗体装载处理程序(Load)

PrivateSubForm_Load()

DataGrid1.AllowAddNew=False

DataGrid1.AllowDelete=FalseDataGrid1.AllowUpdate=FalseEndSub

4.6.选课模块

4.6.1说明

该模块为一个班级选课。

4.6.2课程添加窗体

用于课程的添加和查询

4.6.2.1.窗体设计

4.6.2.2.代码设计

●添加(Command1)处理(Click)

PrivateSubCommand1_Click()

Dims1AsString,s2AsString

OnErrorResumeNext

IfText1.Text=""OrText2.Text=""Then

MsgBox("输入不能为空")

ExitSub

EndIf

s1="select*from班级课程表where班级名称='"

s2=Text1.Text&"'and课程名称='"&Text2.Text&"'"

Adodc1.RecordSource=s1&s2

Adodc1.Refresh

IfAdodc1.Recordset.EOF=FalseThen

Text1.SetFocus

MsgBox"该记录已存在,请重新输入",,"警告"

ExitSub

EndIf

s1="select*from班级课程表"

Adodc1.RecordSource=s1

Adodc1.Refresh

Adodc1.Recordset.MoveLast

Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields("班级名称")=Text1.Text

Adodc1.Recordset.Fields("课程名称")=Text2.Text

Adodc1.Recordset.Update

Adodc1.Refresh

s1="select课程名称from班级课程表where班级名称='"&Text1.Text&"'"Adodc1.RecordSource=s1

Adodc1.Refresh

SetDataGrid1.DataSource=Adodc1.Recordset

Text2.SetFocus

Text2.Text=""

ExitSub

EndSub

●查询(Command2)处理(Click)

PrivateSubCommand2_Click()

Dims1AsString

s1="select课程名称from班级课程表where班级名称='"&Text1.Text&"'"

Adodc1.RecordSource=s1

Adodc1.Refresh

SetDataGrid1.DataSource=Adodc1.RecordsetEndSub

●退出(Command3)处理(Click)

PrivateSubCommand3_Click()

UnloadMe

EndSub

●窗体装载处理程序(Load)

PrivateSubForm_Load()

DataGrid1.AllowAddNew=False

DataGrid1.AllowDelete=False

DataGrid1.AllowUpdate=False

EndSub

4.6.3课程删除窗体

4.6.3.1.窗体设计

4.6.3.2.代码设计

●退出(Command1)处理(Click)

PrivateSubCommand1_Click()

UnloadMe

EndSub

●数据列表框(DataList1)处理(Click)

PrivateSubDataList1_Click()

Dims1AsString

s1="select*from班级课程表where班级名称='"&DataList1.Text&"'"Adodc2.RecordSource=s1

Adodc2.Refresh

SetDataGrid1.DataSource=Adodc2

EndSub

●窗体装载处理程序(Load)

PrivateSubForm_Load()

DataGrid1.AllowDelete=True

DataGrid1.AllowUpdate=True

DataGrid1.AllowAddNew=False

EndSub

4.7.成果管理模块

4.7.1说明

举行同学成果的录入及查询。

4.7.2成果录入窗体

举行同学成果的添加、修改及删除。

4.7.2.1.窗体设计

4.7.2.2.代码设计

录入(Command1)处理(Click)

PrivateSubCommand1_Click()

Dims1AsString,s2AsString,s3AsString

OnErrorResumeNext

s1="select*from同学成果表"

s2="where学号='"&List2.Text&"'and"

s3="课程名称='"&List1.Text&"'"

Adodc3.RecordSource=s1&s2&s3

Adodc3.Refresh

IfAdodc3.Recordset.EOF=FalseThen

Adodc3.Recordset.Fields(2)=Val(Text1.Text)

Else

Adodc3.Recordset.MoveLast

Adodc3.Recordset.AddNew

Adodc3.Recordset.Fields(0)=List2.Text

Adodc3.Recordset.Fields(1)=List1.Text

Adodc3.Recordset.Fields(2)=Val(Text1.Text)

EndIf

Adodc3.Recordset.Update

Adodc3.Refresh

s1="select学号,成果from同学成果表where课程名称='"&List1.Text&"'"s2="and学号in(select学号from同学基本信息表"

s3="where班级名称='"&DataList1.Text&"')"Adodc3.RecordSource=s1&s2&s3

Adodc3.Refresh

SetDataGrid1.DataSource=Adodc3

EndSub

●退出(Command1)处理(Click)

PrivateSubCommand2_Click()

UnloadMe

EndSub

●数据列表框(DataList1)处理(Click)

PrivateSubDataList1_Click()

Dims1AsString,s2AsString

SetDataGrid1.DataSource=Nothing

s1="select课程名称from班级课程表"

s2="where班级名称='"&DataList1.Text&"'"

Adodc2.RecordSource=s1&s2

Adodc2.Refresh

IfAdodc2.Recordset.EOF=TrueThen

MsgBox"请在班级课程表里添加该班级的课程名称"ExitSub

EndIf

List1.Clear

Adodc2.Recordset.MoveFirst

DoWhileAdodc2.Recordset.EOF=False

List1.AddItemAdodc2.Recordset.Fields(0)

Adodc2.Recordset.MoveNext

Loop

s1="select学号from同学基本信息表"

s2="where班级名称='"&DataList1.Text&"'"

Adodc2.RecordSource=s1&s2

Adodc2.Refresh

IfAdodc2.Recordset.EOF=TrueThen

MsgBox"请在同学信息表里添加该班级"

ExitSub

EndIf

List2.Clear

Adodc2.Recordset.MoveFirst

DoWhileAdodc2.Recordset.EOF=False

List2.AddItemAdodc2.Recordset.Fields(0)

Adodc2.Recordset.MoveNext

Loop

EndSub

●窗体装载处理程序(Load)

PrivateSubForm_Load()

DataGrid1.AllowDelete=True

DataGrid1.AllowAddNew=False

DataGrid1.AllowUpdate=False

EndSub

●列表框(List1)处理(Click)

PrivateSubList1_Click()

Dims1AsString,s2AsString,s3AsString

s1="select学号,成果from同学成果表where课程名称='"&List1.Text&"'"s2="and学号in(select学号from同学基本信息表"

s3="where班级名称='"&DataList1.Text&"')"

Adodc3.RecordSource=s1&s2&s3

Adodc3.Refresh

SetDataGrid1.DataSource=Adodc3

EndSub

●列表框(List2)处理(Click)

PrivateSubList2_Click()

Text1.Text=""

EndSub

4.7.3成果查询窗体

举行同学成果的查询

4.7.3.1.窗体设计

4.7.3.2.代码设计

●公共定义

OptionExplicit

DimoptAsInteger

●组合框(Combo1)处理(Click)PrivateSubCombo1_Click()

Dims1AsString,s2AsString

SetDataGrid1.DataSource=Nothing

Combo2.Clear

Ifopt=0Then

s1="select课程名称from班级课程表where班级名称='"

s2=Combo1.Text&"'groupby课程名称"

Adodc2.RecordSource=s1&s2

Else

s1="select学号from同学基本信息表where班级名称='"

s2=Combo1.Text&"'"

Adodc2.RecordSource=s1&s2

EndIf

Adodc2.Refresh

DoWhileAdodc2.Recordset.EOF=False

Combo2.AddItemAdodc2.Recordset.Fields(0)

Adodc2.Recordset.MoveNext

Loop

EndSub

●组合框(Combo2)处理(Click)

PrivateSubCombo2_Click()

Dims1AsString,s2AsString,s3AsString

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论