VB学生成绩查询统计系统实验报告
更新时间:2024-07-06 18:15:01 阅读量: 综合文库 文档下载
- vb二级成绩查询推荐度:
- 相关推荐
学生成绩查询系统
一、实习任务……………………………………………… 2 二、系统分析……………………………………………… 3 三、系统设计……………………………………………… 4 四、调试、排错、测试、试运行过程…………………… 7 五、 源程序完整或主要代码 ……………………………10 六、 总结与体会………………………………………… 17 七、 参考文献…………………………………………… 18
一、 实习任务
1实习任务介绍:
熟悉软件工程学的基本思想进行软件开发的原则和方法;结构化分析方法和步骤;结构化编程方法;面向对象的思想和程序设计方法。按照软件开发的一般方法和步骤动手设计一个《学生成绩查询统计系统》。
2基本要求:
① 登录界面:密码最多尝试3次,连续3次均输入错误系统自动退出。 ② 具有录入成绩、添加记录、删除记录、修改记录功能。
③ 具有成绩查询功能,可以按照学号、课程号、课程名、分数段进行查询。为便于查询,所有的学号和课程号可考虑以下拉列表的形式给出。
④ 具有全部成绩浏览功能,且能与数据库表最新数据同步。
⑤ 具有统计功能,能以直方图、饼图、折线图、散点图、立体直方图直观表示各成绩段的分布情况。
⑥ 具有打印学生成绩报表的功能。 ⑦ 具有菜单和工具条的双重操作功能。
3 实习目的:
掌握常用控件的使用,学会使用通用对话框控件进行编程,掌握创建多重窗体程序的有关技术,了解鼠标和键盘事件及事件过程的编写,综合应用了所学知识,加深对VB的理解。
4 选题的背景及意义:
VB是Visual Basic的简称,是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发 Windows 环境下的各类应用程序。它简单易学、效率高,且功能强大可以与 Windows 专业开发工具SDK相媲美。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。成绩管理系统是一个实用性极强的系统,加深学生对VB的理解,并且能够解决一些常见问题。
5 软件工具和需要掌握的知识:
本次实习环境:Microsoft Visual Basic 6.0 本次实习要求掌握:
① VB可视化编程基础:VB对象的概念,窗体和基本控件
② VB语言基础:数据类型,常量与变量,运算符和表达式,VB程序结构和编码规则 ③ VB控制结构:顺序结构,选择结构,循环结构 ,辅助控制语句,程序调试 ④ 数组和自定义类型:数组的基本操作,列表框和组合框,
⑤ 过程:函数过程的定义和调用,子过程的定义和调用,参数传递,过程的嵌套和递归调用,变量的作用域
⑥ 用户界面设计:各种控件的应用,以及对话框的应用,菜单设计
- - 1 - - - 1 -
⑦ 图形操作:直方图、饼图、散点图、折线图
⑧ 数据库应用基础:VB数据库的访问,记录集对象
二、系统分析
1 系统功能模块
主 界 面 增 加 查 找 删 除 统 计 图 打印报表 退 出
2 设计思路
在设计时,根据老师的提示信息,先画出主界面,再进行编码。登录界面,自己设定,输入账号密码进入主界面,主界面上设置菜单项和工具条,各功能键根据要求设定。最后要注意的是各各窗体之间的连接。
3 算法描述
登陆界面,输入密码,输入正确后进入主界面,否则重新输入,只有三次机会,超过要求次数系统自动退出。来到主界面后就能通过菜单项或者工具条的提示进行操作,另外还有绘图界面和关于界面,删除时能直接删除,也可通过查找删除,查找能够按姓名,学号,课程号,分数段来进行,绘图也可绘制直方图,饼图,散点图,折线图。修改时,可进行学号,姓名,照片,成绩,课程来修改,在确认修改完成前可进行多人修改,再添加学生信息后,在工具栏中点击查看全部能够找到该生信息。
- - 2 - - - 2 -
三、系统设计
修改和增加记录
Private Sub a1_Click() text1.Enabled = True Text2.Enabled = True Text3.Enabled = True Text4.Enabled = True Text5.Enabled = True Command1.Enabled = True Adodc1.Recordset.AddNew End Sub
删除记录:
Private Sub a2_Click() Dim i As Integer
i = MsgBox(\确实要删除吗?\删除) If i = 6 Then
Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext
'If Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast 'Else: Form2.Show End If End Sub
查询学生信息:
这个选项里含有多个选项,有按学号、按姓名、按课程名、分段查询等。 按课程名查找
Private Sub b1_Click() Dim a As String
Adodc1.CommandType = adCmdUnknown
a = InputBox(\请输入课程名\查询窗口\
Adodc1.RecordSource = \学生成绩情况 where 课程名='\\
Adodc1.Refresh
If Adodc1.Recordset.EOF Then
MsgBox \该课程名下没有学生!\提示\Adodc1.CommandType = adCmdTable
Adodc1.RecordSource = \学生成绩情况\Adodc1.Refresh End If
- - 3 - - - 3 -
End Sub
按分数段查找,优秀段学生
Private Sub b5_Click() Dim a As Integer
On Error GoTo ErrCode
Adodc1.CommandType = adCmdUnknown
Adodc1.RecordSource = \学生成绩情况 where 分数 >=90\Adodc1.Refresh
If Adodc1.Recordset.EOF Then
MsgBox \没有不及格的学生!\提示\Adodc1.CommandType = adCmdTable
Adodc1.RecordSource = \学生成绩情况\Adodc1.Refresh End If ErrCode: End Sub
统计图:坐标系函数
Dim a$(5), b%(5), max Public Sub zbx() Cls max = 0
a(1) = \a(2) = \a(3) = \a(4) = \a(5) = \
Do While Not Form2.Adodc1.Recordset.EOF
Select Case Form2.Adodc1.Recordset.Fields(\分数\Case Is < 59 b(1) = b(1) + 1 Case 60 To 69 b(2) = b(2) + 1 Case 70 To 79 b(3) = b(3) + 1 Case 80 To 89 b(4) = b(4) + 1 Case 90 To 100 b(5) = b(5) + 1 End Select
Form2.Adodc1.Recordset.MoveNext Loop
For i = 1 To 5
- - 4 - - - 4 -
If b(i) > max Then max = b(i) Next i
Scale (-0.1, max * 1.2)-(max * 1.2, -max * 0.1)
Line (0, 0)-(max * 1.2, 0): Line (0, max * 1.2)-(0, 0) CurrentX = -0.2: CurrentY = -0.1 Print \成绩分数段:\For i = 1 To 5
Print \人数:\Next i End Sub
饼图
Private Sub Command2_Click() zbx
X = Abs(Me.ScaleHeight / 2) r = max / 4 Sum = 0
For i = 1 To 5
Sum = Sum + b(i) Next i
Form4.FillStyle = 0 a1 = 0
For i = 1 To 5
a2 = a1 + 2 * 3.14159 * b(i) / Sum Randomize
FillColor = QBColor(Rnd * 15) Circle (X, X), r, , -a1, -a2
CurrentX = X + r * Cos((a2 + a1) / 3) CurrentY = X + r * Sin((a2 - a1) / 3)
Print Format(b(i) / Sum * 100, \ a1 = a2 Next i End Sub
查看全部
Private Sub search_all() Adodc1.CommandType = 2
Adodc1.RecordSource = \学生成绩情况\Adodc1.Refresh
DataGrid1.Visible = True End Sub
- - 5 - - - 5 -
四、调试、排错、测试、试运行过程
1 登录界面 只有三次机会,若输入的数据与设定的相同(密码账号均为
090556)点击登录后进入主界面。
图一
2主界面 通过菜单栏和工具条进行操作
- - 6 - - - 6 -
图二
查找 按课程名查找及查找结果。
图三
- - 7 - - - 7 -
图四
程序运行后,发现删除与查找之间存在错误,查找后得到的信息竟不能够删除,只能在主界面上直接删除,最后修改了删除代码中的if语句,运行正确。
直方图
图五
报表图
- - 8 - - - 8 -
图六
查找时输入信息有误时显示界面:
图七
点击确定后,回到主界面。
五、 源程序完整或主要代码
- - 9 - - - 9 -
登录窗体:
Dim i%
Private Sub Command1_Click() If 3 – i = 1 Then
MsgBox \系统繁忙,请稍后再试!\End End If
If text1 = \
MsgBox \密码正确,允许登录\密码正确后进入主窗体 Form1.Hide Form2.Show Else
text1 = \Text2 = \i = i + 1
MsgBox \密码错误!你还有 \次登陆机会!\text1.SetFocus End If End Sub
Private Sub Command2_Click() //结束按钮 End End Sub
Private Sub Text2_Change()
Text2.PasswordChar = \密码显示* End Sub
主界面:
Private Sub a1_Click() //增加信息库记录 Text1.Enabled = True Text2.Enabled = True Text3.Enabled = True Text4.Enabled = True Text5.Enabled = True Command1.Enabled = True Adodc1.Recordset.AddNew End Sub
Private Sub a2_Click() //删除记录 Dim i As Integer
i = MsgBox(\确实要删除吗?\删除) If i = 6 Then
Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext Else: Form2.Show End If
- - 10 - - - 10 -
End Sub
Private Sub a3_Click() //修改学生信息 Text1.Enabled = True Text2.Enabled = True Text3.Enabled = True Text4.Enabled = True Text5.Enabled = True Command1.Enabled = True End Sub
Private Sub b1_Click() //按课程名查找 Dim a As String
Adodc1.CommandType = adCmdUnknown
a = InputBox(\请输入课程名\查询窗口\
Adodc1.RecordSource = \学生成绩情况 where 课程名='\Adodc1.Refresh
If Adodc1.Recordset.EOF Then
MsgBox \该课程名下没有学生!\提示\输入错误信息时显示 Adodc1.CommandType = adCmdTable
Adodc1.RecordSource = \学生成绩情况\Adodc1.Refresh End If End Sub
Private Sub b2_Click() //按姓名查找 Dim a As String
Adodc1.CommandType = adCmdUnknown
a = InputBox(\请输入姓名\查询窗口\
Adodc1.RecordSource = \学生成绩情况 where 姓名='\Adodc1.Refresh
If Adodc1.Recordset.EOF Then
MsgBox \没有此姓名的学生!\提示\Adodc1.CommandType = adCmdTable
Adodc1.RecordSource = \学生成绩情况\Adodc1.Refresh End If End Sub
Private Sub b3_Click() //按学号查找 Dim a As String
Adodc1.CommandType = adCmdUnknown
a = InputBox(\请输入学号\查询窗口\
Adodc1.RecordSource = \学生成绩情况 where 学号='\
- - 11 - - - 11 -
Adodc1.Refresh
If Adodc1.Recordset.EOF Then
MsgBox \无该学号的学生!\提示\Adodc1.CommandType = adCmdTable
Adodc1.RecordSource = \学生成绩情况\Adodc1.Refresh End If End Sub
Private Sub b5_Click() // 按分数段,优秀段 Dim a As Integer
On Error GoTo ErrCode
Adodc1.CommandType = adCmdUnknown
Adodc1.RecordSource = \学生成绩情况 where 分数 >=90\Adodc1.Refresh
If Adodc1.Recordset.EOF Then
MsgBox \没有不及格的学生!\提示\Adodc1.CommandType = adCmdTable
Adodc1.RecordSource = \学生成绩情况\Adodc1.Refresh End If ErrCode: End Sub
Private Sub b6_Click() //按分数段,不及格段 Dim a As Integer
On Error GoTo ErrCode
Adodc1.CommandType = adCmdUnknown
Adodc1.RecordSource = \学生成绩情况 where 分数 <60\Adodc1.Refresh
If Adodc1.Recordset.EOF Then
MsgBox \没有不及格的学生!\提示\Adodc1.CommandType = adCmdTable
Adodc1.RecordSource = \学生成绩情况\Adodc1.Refresh End If ErrCode: End Sub
Private Sub c_Click() //显示绘图界面 Form4.Show End Sub
Private Sub Command1_Click() //照片添加 Dim strb() As Byte
- - 12 - - - 12 -
CommonDialog1.ShowOpen
Open CommonDialog1.FileName For Binary As #1 fl = LOF(1) ReDim strb(fl) Get #1, , strb
Adodc1.Recordset.Fields(\照片\Close #1
Image1.Picture = LoadPicture(CommonDialog1.FileName) End Sub
Private Sub Command2_Click() //修改确认,增加新成员 i = MsgBox(\确实要做如此改变吗?\编辑) If i = vbYes Then
Adodc1.Recordset.Update Else
Adodc1.Recordset.CancelUpdate Form2.Show End If
Text1.Enabled = False Text2.Enabled = False Text3.Enabled = False Text4.Enabled = False Text5.Enabled = False Command1.Enabled = False
Adodc1.CommandType = adCmdUnknown
Adodc1.RecordSource = \学生成绩情况 order by 学号 asc \Adodc1.Refresh End Sub
Private Sub d_Click() //打印报表 报表图.Show End Sub
Private Sub e_Click() //显示关于界面 Form3.Show End Sub
Private Sub Form_Load() End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) //工具栏 Select Case Button.Index Case 1: a1_Click Case 2: a2_Click Case 3: search_all
- - 13 - - - 13 -
Case 4: End End Select End Sub
Private Sub Toolbar1_ButtonMenuClick(ByVal ButtonMenu As MSComctlLib.ButtonMenu) Select Case Button.Index End Select End Sub
Private Sub search_all() //查看全部信息 Adodc1.CommandType = 2
Adodc1.RecordSource = \学生成绩情况\Adodc1.Refresh
DataGrid1.Visible = True End Sub
统计图窗体
Dim a$(5), b%(5), max //坐标系函数 Public Sub zbx() Cls max = 0
a(1) = \a(2) = \a(3) = \a(4) = \a(5) = \
Do While Not Form2.Adodc1.Recordset.EOF
Select Case Form2.Adodc1.Recordset.Fields(\分数\Case Is < 59 b(1) = b(1) + 1 Case 60 To 69 b(2) = b(2) + 1 Case 70 To 79 b(3) = b(3) + 1 Case 80 To 89 b(4) = b(4) + 1 Case 90 To 100 b(5) = b(5) + 1 End Select
Form2.Adodc1.Recordset.MoveNext Loop
For i = 1 To 5
If b(i) > max Then max = b(i) Next i
- - 14 - - - 14 -
Scale (-0.1, max * 1.2)-(max * 1.2, -max * 0.1)
Line (0, 0)-(max * 1.2, 0): Line (0, max * 1.2)-(0, 0) CurrentX = -0.2: CurrentY = -0.1 Print \成绩分数段:\For i = 1 To 5
Print \人数:\Next i End Sub
Private Sub Command1_Click() //直方图 zbx
w = max / 2 / 5 X1 = w
For i = 1 To 5 X2 = X1 + w Y2 = b(i)
Line (X1, 0)-(X2, Y2), QBColor(9), BF CurrentX = X1
CurrentY = Y2 + max * 0.1 Print a(i) X1 = X2 + w Next i End Sub
Private Sub Command2_Click() //饼图 zbx
X = Abs(Me.ScaleHeight / 2) r = max / 4 Sum = 0
For i = 1 To 5
Sum = Sum + b(i) Next i
Form4.FillStyle = 0 a1 = 0
For i = 1 To 5
a2 = a1 + 2 * 3.14159 * b(i) / Sum Randomize
FillColor = QBColor(Rnd * 15) Circle (X, X), r, , -a1, -a2
CurrentX = X + r * Cos((a2 + a1) / 3) CurrentY = X + r * Sin((a2 - a1) / 3)
Print Format(b(i) / Sum * 100, \ a1 = a2 Next i
- - 15 - - - 15 -
End Sub
Private Sub Command3_Click() //散点图 zbx
w = max / 2 / 5 X1 = 3 / 2 * w For i = 1 To 5 DrawWidth = 7
PSet (X1, b(i)), QBColor(9) X1 = X1 + 2 * w Next i End Sub
Private Sub Command4_Click() //折线图 Zbx
w = max / 2 / 5 X1 = 3 / 2 * w For i = 2 To 5
DrawWidth = 1.5 X2 = X1 + 2 * w
Line (X1, b(i - 1))-(X2, b(i)), QBColor(9) X1 = X1 + 2 * w Next i End Sub
Private Sub Command5_Click() //返回主系统 Form4.Hide Form2.Show End Sub
Private Sub Form_Load()
Form2.Adodc1.CommandType = 8
Form2.Adodc1.RecordSource = \学生成绩情况\Form2.Adodc1.Refresh End Sub
六、总结与体会
- - 16 - - - 16 -
本次实习要求是制作一个学生成绩管理系统,技术要求不太高的应用程序,但要求对课本知识的牢固掌握,并加以熟练运用。在实习过程中遇到过一些问题,像删除时直接删除操作正确,但经过查找后若查找结果对象只有一个就会被提示error,若有多个则删除至最后一个时出现error提示,后来注销了第二个if删除中的语句后能够正确操作。在绘图时,只能够显示静态的,也经过了修改,但不太稳定,只能够在查看全部学生的基础上进行查找才能够显示查找结果的处理图像。本次实习发现了大量以往所不注意的错误,经过不懈努力,解决了部分,但仍有的现在不能解决,在接下来的时间了会查找资料,争取解决这些问题。在进行编程时,严格的按照课本要求的基本步骤,编写程序代码。在编写之前,做整体规划和详细设计很重要。只有思路清晰,设计合理可行,编码才有可能有的放矢,才能更加有效的完成任务。
刚刚开始看到实习题目时,感觉做下来并不困难,这些我们在平时的实验训练中都遇到过,只不过是把这些串起来就行了,但真正做起来才发现想得过于简单了,大错小错都接踵而至,刚修改了这边,那边运行时就也出现了问题,就这样直到时间快结束才完成了本次实习的任务。本次实习最重要的是发现了课本的重要性,对以往对课本不重视感到汗颜,知道了基础的不牢固,本次实习就是对课本进行了一次回归复习,熟练VB中一些控件的一些基本属性,如:Name属性,创建对象的名称;Caption属性,控件上文本显示的内容;Hight、Width、Top、Left属性,决定控件的大小和位置;Font属性,改变文本的外观;Enable属性,决定控件的可用性;Visiable决定控件的可见性;这都是一些最常见的基本属性,应该牢固掌握,还有在实习中遇见的一些其他属性也要熟练操作,如;Picture,BackStyle等属性。,熟练掌握一些事件如GotFocus、Change、keydown、keypress、click、dblclick、load和命令如circle、line、shell、print等的用法,而且,对窗体、文本框、标签、命令按钮、图形框、图相框、工具、图像列表、通用对话框控件、daragrid、data、报表(datareport)等的熟悉程度又有了更深一步的了解。总的来说,本次实习掌握了常用控件的使用,学会了使用通用对话框控件进行编程,掌握了创建多重窗体程序的有关技术,了解鼠标和键盘事件及事件过程的编写,综合应用了所学知识,加深对VB的理解。
本次集中实习,对我来说可以算是一次挑战,因为在理论学习中没有好好的掌握,现在要独立完成一个较复杂的程序编写,确实有一点困难。但对我来说这是一次很好的机会,同时我也很好的把握了这次机会,认真的完成了此次上机学习的任务,对自己今后在程序编写方面以及文档撰写方面相信会有很大的帮助,最后希望自己在数据结构以及计算机的其他学习方面能够得到很好的提高。巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。
根据我在实习中遇到得问题,我将在以后的学习过程中注意以下几点: 认真上好专业实验课,多在实践中锻炼自己; 写程序的过程中要考虑周到,严密;
在做设计的时候要有信心,有耐心,切勿浮躁;
认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用; 在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。
七、参考文献
- - 17 - - - 17 -
1.《Visual C++实用教程》 张荣梅、梁晓林编著 中国铁道出版社 2008年9月 2.《visual basic程序设计教程》 龚沛曾、杨志强编 高等教育出版社 2007年3月 3.《Visual Basic程序设计实用教程》王卫东 主编 中国电力出版社 2008.年1月 4.《Visual Basic程序设计教程》胡声艳 李为华编 人民邮电出版社 2009年3月
- - 18 - - - 18 -
正在阅读:
VB学生成绩查询统计系统实验报告07-06
tensorflow常用函数介绍11-13
爱如茉莉_第一课时+第二课时07-26
中国当代文学史考试笔记(重点)09-23
采油厂科级机构设置标准04-19
县2022年棚户区改造工作进展情况报告08-02
防洪抢险应急预案02-03
二年级语文上册第五单元练习07-06
实习生实习总结_实习心得09-17
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 成绩查询
- 统计
- 实验
- 报告
- 学生
- 系统
- 学校突发水污染事件应急预案
- 牛津上海版小学四年级上同步练习4A练习
- 数控加工工艺及其编程课程设计 - 图文
- 游泳专业毕业论文
- 《公共危机管理》教案
- 安装工程综合费率表
- 褐煤加工安全生产制度汇编 Microsoft Word 文档
- 2016注册咨询后续教育-城市轨道交通线网规划
- 第11章 友元与运算符重载
- 人教版语文九年级上册第二单元测试卷
- 毕业设计--电力系统稳定器的设计
- 《企业会计准则第14号——收入》解读
- 自来水厂安全施工组织设计
- 中国电信189现场促销推广方案提案
- 练习1
- 施工方案(正式)
- 淮 阴 师 范 学 院 文 件 - 淮阴师范学院科研网
- 外国近现代建筑史第三章资料
- 2018年10月党员思想汇报:学习党的纪律
- 七年级下学期体育教案