学生成绩查询系统报告.docx
《学生成绩查询系统报告.docx》由会员分享,可在线阅读,更多相关《学生成绩查询系统报告.docx(13页珍藏版)》请在冰豆网上搜索。
学生成绩查询系统报告
一、需求分析
1.信息需求
高校学生的成绩管理工作量大、繁杂,人工处理非常困难。
学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。
学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。
学生成绩管理系统的设计与实现,是在班级学生处数据库基础上,只对学生成绩信息进行管理的一个系统,是对学校教务管理系统的补充
2.功能需求
本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生信息进行日常管理,如查询、修改、增加、删除,针对学生信息及学生成绩管理系统。
二、概念结构设计
其包括学生信息,学生成绩信息,课程信息三个关系。
其中学生信息包括年龄、学号、姓名、性别、专业、年级等;学生成绩信息包括学号、课程编号、课程名称、分数、修课类别等;课程信息包括课程编号、课程名称、任课教师、学分等。
E—R图如下:
三、逻辑结构设计阶段
逻辑结构是独立于任何一种数据模型的信息结构。
逻辑结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。
E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。
设计学生成绩管理数据库,包括学生信息,学生成绩信息,课程信息三个关系,其关系模式中对每个实体定义的属性如下:
课程信息表:
(课程编号,课程名称,任课教师,学分)
其中,课程编号为主码
学生信息表:
(学号,姓名,性别,年龄,专业,年级)
其中,学号为主码
学生成绩信息表:
(学号,课程编号,课程名称,分数,修课类别)其中,学号、课程编号为主码
四、物理设计阶段
数据库物理设计的任务是为上一阶段得到的数据库逻辑模式,即数据库的逻辑结构选择合适的应用环境的物理结构,既确定有效地实现逻辑结构模式的数据库存储模式,确定在物理设备上所采用的存储结构和存取方法,然后对该存储模式进行性能评价、修改设计,经过多次反复,最后得到一个性能较好的存储模式。
数据库物理设计内容包括记录存储结构的设计,存储路径的设计。
五、功能模块设计
PrivateSubCommand1_Click()
Ifuser="a"Andpasswd="a"Then
Form1.Show
Else
MsgBox("用户名或密码错误,请重新输入")
EndIf
EndSub
PrivateSubCommand2_Click()
End
EndSub
PrivateSubcmdreturn_Click()
UnloadMe
EndSub
PrivateSubdtgCond_Click()
Withdtgcond
.Columns(0).Caption="学号"
.Columns
(1).Caption="姓名"
.Columns
(2).Caption="性别"
.Columns(3).Caption="系别"
.Columns(4).Caption="年级"
.Columns(5).Caption="年龄"
.Columns(0).Width=1000
.Columns
(1).Width=2000
.Columns
(2).Width=800
.Columns(3).Width=800
.Columns(4).Width=800
.Columns(5).Width=800
EndWith
EndSub
PrivateSubForm_Load()
Adodc1.CommandType=adCmdText
Adodc1.RecordSource="select*from学生信息wheresno='"&Form2.Text1.Text&"'"
EndSub
PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)
SelectCaseButton.Key
CaseIs="查询"
Form2.Show
UnloadMe
CaseIs="添加"
Form3.Text1.Text=""
Form3.Text2.Text=""
Form3.Text3.Text=""
Form3.Text4.Text=""
Form3.Text5.Text=""
Form3.Text6.Text=""
Form3.Command1.Visible=True
Form3.Command2.Visible=True
Form3.Show
UnloadMe
CaseIs="修改"
Form3.Command2.Visible=True
Form3.Command6.Visible=True
Form3.Show
UnloadMe
CaseIs="删除"
Form3.Command3.Visible=True
Form3.Command1.Visible=False
Form3.Command6.Visible=False
Form3.Show
UnloadMe
EndSelect
EndSub
PrivateSubCommand1_Click()
Form6.Show
EndSub
PrivateSubCommand2_Click()
Form4.Show
EndSub
PrivateSubCommand3_Click()
Form5.Show
EndSub
PrivateSubCommand4_Click()
Form1.Show
UnloadMe
EndSub
PrivateSubCommand1_Click()
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("sno")=Trim(Text1.Text)
Adodc1.Recordset.Fields("sname")=Trim(Text2.Text)
Adodc1.Recordset.Fields("ssex")=Trim(Text3.Text)
Adodc1.Recordset.Fields("class")=Trim(Text5.Text)
Adodc1.Recordset.Fields("sage")=Trim(Text6.Text)
Adodc1.Recordset.Fields("professional")=Trim(Text4.Text)
'使"添加"和"删除"按钮为不可用状态
Command1.Enabled=False
Command3.Enabled=False
'使"更改"和"取消"按钮为可用状态
Command2.Enabled=True
Command4.Enabled=True
Adodc1.Refresh
EndSub
PrivateSubCommand3_Click()
DimresAsInteger
res=MsgBox("确实要删除此行记录吗?
",vbExclamation+vbYesNo+vbDefaultButton2)
Ifres=vbYesThen
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
IfAdodc1.Recordset.EOF=TrueThen
Adodc1.Recordset.MoveLast
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
Adodc1.Recordset.Fields("sno")=Trim(Text1.Text)
Adodc1.Recordset.Fields("sname")=Trim(Text2.Text)
Adodc1.Recordset.Fields("ssex")=Trim(Text3.Text)
Adodc1.Recordset.Fields("class")=Trim(Text5.Text)
Adodc1.Recordset.Fields("sage")=Trim(Text6.Text)
Adodc1.Recordset.Fields("professional")=Trim(Text4.Text)
'使更新生效
Adodc1.Recordset.Update
'使"添加"和"删除"按钮为可用状态
Command1.Enabled=True
Command3.Enabled=True
'使"取消"按钮为不可用状态
Command4.Enabled=False
Form1.Show
UnloadMe
EndSub
PrivateSubCommand4_Click()
Adodc1.Recordset.CancelUpdate
Command1.Enabled=True
Command3.Enabled=True
EndSub
PrivateSubCommand5_Click()
Form1.Show
UnloadMe
EndSub
PrivateSubCommand6_Click()
'使"添加"和"删除"按钮为不可用状态
Command6.Enabled=False
Command3.Enabled=False
'使"更改"和"取消"按钮为可用状态
Command2.Enabled=True
Command4.Enabled=True
EndSub
PrivateSubAdodc1_WillMove(ByValadReasonAsADODB.EventReasonEnum,adStatusAsADODB.EventStatusEnum,ByValpRecordsetAsADODB.Recordset)
EndSub
PrivateSubcmdreturn_Click()
UnloadMe
EndSub
PrivateSubinitgrid()
WithdtgCond
.Columns(0).Caption="学号"
.Columns
(1).Caption="课程编号"
.Columns
(2).Caption="课程名称"
.Columns(3).Caption="分数"
.Columns(4).Caption="选课类别"
.Columns(0).Width=1000
.Columns
(1).Width=2000
.Columns
(2).Width=800
.Columns(3).Width=800
.Columns(4).Width=800
EndWith
EndSub
PrivateSubForm_Load()
DimstrsnoAsString
DimstrselectAsString
strsno=Trim(Form2.Text1.Text)
strselect="select学生信息.sno,cno,cname,grade,xklbfrom学生信息join学生成绩信息"&"on学生信息.sno=学生成绩信息.snowhere"&"学生成绩信息.sno='"&strsno&"'"
AdodcGrid.CommandType=adCmdText
AdodcGrid.RecordSource=strselect
AdodcGrid.Refresh
SetdtgCond.DataSource=AdodcGrid
Callinitgrid
EndSub
PrivateSubcmdreturn_Click()
UnloadMe
EndSub
PrivateSubinitgrid()
WithdtgCond
.Columns(0).Caption="课程编号"
.Columns
(1).Caption="课程名称"
.Columns
(2).Caption="授课教师"
.Columns(3).Caption="学分"
.Columns(0).Width=1000
.Columns
(1).Width=2000
.Columns
(2).Width=800
.Columns(3).Width=800
EndWith
EndSub
PrivateSubForm_Load()
DimstrsnoAsString
DimstrselectAsString
strsno=Trim(Form2.Text1.Text)
strselect="select学生成绩信息.cno,学生成绩信息.cname,teacher,ccreditfrom学生信息join学生成绩信息"&"on学生信息.sno=学生成绩信息.snojoin课程信息on课程信息.cno=学生成绩信息.cnowhere"&"学生成绩信息.sno='"&strsno&"'"
AdodcGrid.CommandType=adCmdText
AdodcGrid.RecordSource=strselect
AdodcGrid.Refresh
SetdtgCond.DataSource=AdodcGrid
Callinitgrid
EndSub
PrivateSubCommand1_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
DimstrsnoAsString
DimstrselectAsString
strsno=Trim(Form2.Text1.Text)
strselect="select学生信息.sno,学生信息.sname,ssex,professional,class,sagefrom学生信息join学生成绩信息"&"on学生信息.sno=学生成绩信息.snowhere"&"学生信息.sno='"&strsno&"'"
AdodcGrid.CommandType=adCmdText
AdodcGrid.RecordSource=strselect
AdodcGrid.Refresh
Setdtgcond.DataSource=AdodcGrid
Callinitgrid
EndSub
PrivateSubinitgrid()
Withdtgcond
.Columns(0).Caption="学号"
.Columns
(1).Caption="姓名"
.Columns
(2).Caption="性别"
.Columns(3).Caption="系别"
.Columns(4).Caption="年级"
.Columns(4).Caption="年龄"
.Columns(0).Width=1000
.Columns
(1).Width=2000
.Columns
(2).Width=800
.Columns(3).Width=800
.Columns(4).Width=800
.Columns(5).Width=800
EndWith
EndSub