沈阳理工大学课程设计论文.docx
《沈阳理工大学课程设计论文.docx》由会员分享,可在线阅读,更多相关《沈阳理工大学课程设计论文.docx(12页珍藏版)》请在冰豆网上搜索。
沈阳理工大学课程设计论文
沈阳理工大学课程设计(论文)
沈阳理工大学机械工程学院
VB程序设计训练任务书
学生姓名:
班级:
学号:
设计题目:
学生信息管理
具体内容:
通过ADO数据库对象访问技术、多窗体设计、菜单设计、PictureBox控件和SQL指令制作一个可以添加、删除、修改、读取学生信息,同时可根据学生成绩生成图表的学生信息管理系统。
一、设计要求
实例8学生信息管理
实例运行效果及功能说明
本实例主要讲解如何使用ADO数据库对象访问技术管理学生信息、讲解多窗体设计及菜单设计、讲解如何使用PictureBox控件绘图,程序可以添加、删除、修改、读取学生信息,同时可根据学生成绩生成图表,程序运行界面如下图。
2、技术要求
(1)题目内容描述
这是一个简单的学生信息管理系统,可以通过输入信息输入学生信息,通过读取信息对各学生的信息进行表格显示,通过报表显示对每一科的成绩做出扇形图。
(2)应用程序功能的详细说明
1.学生信息管理主界面
菜单栏中有文件和关于两栏,文件下子菜单有输入信息、读取信息、报表显示,通过点击可进入其他界面。
2.输入信息界面
可以通过添加、删除、修改按钮进行添加、删除、修改学生信息,学生信息的相关内容包括学号、姓名、性别、年龄、学院五项,可以通过退出按钮退出此界面并回到主界面。
3.读取信息界面
以表格的形式对此系统内已存在和后添加的学生信息进行显示。
4.成绩信息界面
以表格的形式对此系统内已存在和后添加的学生成绩信息进行显示。
4.报表显示界面
可以选择科目,并通过绘图按钮对此科目各分数段人数进行扇形分布,并可通过退出按钮推出此界面并回到主界面。
5.关于界面
显示学生信息管理1.0版本。
(3)输入数据类型、格式和内容限制
变量值
数据类型
格式
内容限制
sqlstring
String
数字
a
Single
数字
b
Single
数字
c
Single
数字
d
Single
数字
变量值
数据类型
格式
内容限制
e
Single
数字
r
Single
数字
max_x
Single
数字
max_y
Single
数字
sum
Single
数字
(4)系统主要界面描述
(1)编辑界面
——新建一个标准工程,共有四个窗体
(2)关于界面
——标题“学生信息管理”
——内容“学生管理信息1.0版本”
——确定按钮,关闭消息框进入主界面
(3)主界面
——程序将显示于屏幕中央
(5)结束语
学生信息管理实例,应用到了ADO数据库对象访问技术、多窗体设计、菜单设计、PictureBox控件和SQL指令,有一些是我第一次接触的,但经过不懈的努力,最终完成了这次设计。
这次设计让我印象最深刻的就是ADO数据库对象访问技术了,它竟然让编设的程序和之外的资料、内容相互关联了起来,感觉非常神奇,也在我的VB学习中打开了一面新的大门,希望在以后的学习中能更多的使用它。
这次设计锻炼了我的实践能力,在今后的学习中,还会多了解VB,并运用它编写程序解决生厚重遇到的问题。
(6)程序的源代码清单
1.在窗体“Form1”菜单栏,单击【文件】|【输入信息】命令,添加事件响应代码如下:
PrivateSubinput_Click()
Form2.Show
EndSub
2.在窗体“Form1”菜单栏,单击【文件】|【读取信息】命令,添加事件响应代码如下:
PrivateSubreadinfor_Click()
Form3.Show
EndSub
3.在窗体“Form1”菜单栏,单击【文件】|【报表显示】命令,添加事件响应代码如下:
PrivateSubimag_Click()
Form4.Show
EndSub
4.在窗体“Form1”菜单栏,单击【文件】|【成绩信息】命令,添加事件响应代码如下:
PrivateSubscore_Click()
Form5.Show
EndSub
5.在窗体“Form1”菜单栏,单击【关于】命令,添加事件响应代码如下:
PrivateSubabout_Click()
MsgBox"学生信息管理1.0版本",vbOKOnly,"学生信息管理"
EndSub
6.在窗体“Form2”上,双击“添加”命令按钮,添加事件响应代码如下:
PrivateSubCommand4_Click()
Adodc1.Recordset.AddNew
EndSub
7.在窗体“Form2”上,双击“删除”命令按钮,添加事件响应代码如下:
PrivateSubCommand3_Click()
Dimmsg
msg=MsgBox("删除吗?
",vbYesNo,"删除记录")
Ifmsg=vbYesThen
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveNext
EndIf
EndSub
8.在窗体“Form2”上,双击“修改”命令按钮,添加事件响应代码如下:
PrivateSubCommand2_Click()
Adodc1.Recordset.Update
EndSub
9.在窗体“Form2”上,双击“退出”命令按钮,添加事件响应代码如下:
PrivateSubCommand1_Click()
UnloadMe
Form1.Show
EndSub
10.在窗体“Form3”上,双击“退出”命令按钮,添加事件响应代码如下:
PrivateSubCommand1_Click()
UnloadMe
Form1.Show
EndSub
11.在窗体“Form4”上,双击“绘图”命令按钮,添加事件响应代码如下:
PrivateSubCommand1_Click()
Picture1.Cls
ConstPI=3.1415926
DimsqlstringAsString
Dima,b,c,d,eAsSingle
Dimr,max_x,max_yAsSingle
DimsumAsSingle
IfCombo1.Text="政治"Then
sqlstring="SELECTinform.姓名,score.政治,score.学号FROMscore,informWHERE(inform.学号=score.学号)"
ElseIfCombo1.Text="英语"Then
sqlstring="SELECTinform.姓名,score.英语,score.学号FROMscore,informWHERE(inform.学号=score.学号)"
ElseIfCombo1.Text="数学"Then
sqlstring="SELECTinform.姓名,score.数学,score.学号FROMscore,informWHERE(inform.学号=score.学号)"
Else:
sqlstring="SELECTinform.姓名,score.计算机,score.学号FROMscore,informWHERE(inform.学号=score.学号)"
EndIf
Adodc1.RecordSource=sqlstring
Adodc1.Refresh
sum=Adodc1.Recordset.RecordCount
IfCombo1.Text="英语"Then
Adodc1.RecordSource=sqlstring&"AND(score.英语>cstr(90))"
Adodc1.Refresh
a=Adodc1.Recordset.RecordCount
Adodc1.RecordSource=sqlstring&"AND(score.英语cstr(80))"
Adodc1.Refresh
b=Adodc1.Recordset.RecordCount
Adodc1.RecordSource=sqlstring&"AND(score.英语cstr(70))"
Adodc1.Refresh
c=Adodc1.Recordset.RecordCount
Adodc1.RecordSource=sqlstring&"AND(score.英语cstr(60))"
Adodc1.Refresh
d=Adodc1.Recordset.RecordCount
Adodc1.RecordSource=sqlstring&"AND(score.英语Adodc1.Refresh
e=Adodc1.Recordset.RecordCount
ElseIfCombo1.Text="政治"Then
Adodc1.RecordSource=sqlstring&"AND(score.政治>cstr(90))"
Adodc1.Refresh
a=Adodc1.Recordset.RecordCount
Adodc1.RecordSource=sqlstring&"AND(score.政治cstr(80))"
Adodc1.Refresh
b=Adodc1.Recordset.RecordCount
Adodc1.RecordSource=sqlstring&"AND(score.政治cstr(70))"
Adodc1.Refresh
c=Adodc1.Recordset.RecordCount
Adodc1.RecordSource=sqlstring&"AND(score.政治cstr(60))"
Adodc1.Refresh
d=Adodc1.Recordset.RecordCount
Adodc1.RecordSource=sqlstring&"AND(score.政治Adodc1.Refresh
e=Adodc1.Recordset.RecordCount
Else:
Adodc1.RecordSource=sqlstring&"AND(score.数学>cstr(90))"
Adodc1.Refresh
a=Adodc1.Recordset.RecordCount
Adodc1.RecordSource=sqlstring&"AND(score.数学cstr(80))"
Adodc1.Refresh
b=Adodc1.Recordset.RecordCount
Adodc1.RecordSource=sqlstring&"AND(score.数学cstr(70))"
Adodc1.Refresh
c=Adodc1.Recordset.RecordCount
Adodc1.RecordSource=sqlstring&"AND(score.数学cstr(60))"
Adodc1.Refresh
d=Adodc1.Recordset.RecordCount
Adodc1.RecordSource=sqlstring&"AND(score.数学Adodc1.Refresh
e=Adodc1.Recordset.RecordCount
EndIf
a=a/sum
b=b/sum
c=c/sum
d=d/sum
e=e/sum
Picture1.FillStyle=0
max_x=Picture1.Width/2
max_y=Picture1.Height/2
r=max_x-200
Ifa<>0Andb<>0Andc<>0Andd<>0Then
Picture1.FillColor=vbRed
Picture1.Circle(max_x,max_y),r,,-2*PI,-2*PI*a,2/3
Picture1.FillColor=vbYellow
Picture1.Circle(max_x,max_y),r,,-2*PI*a,-2*PI*(a+b),2/3
Picture1.FillColor=vbBlue
Picture1.Circle(max_x,max_y),r,,-2*PI*(a+b),-2*PI*(a+b+c),2/3
Picture1.FillColor=vbGreen
Picture1.Circle(max_x,max_y),r,,-2*PI*(a+b+c),-2*PI*(a+b+c+d),2/3
Picture1.FillColor=vbCyan
Picture1.Circle(max_x,max_y),r,,-2*PI*(a+b+c+d),-2*PI,2/3
EndIf
EndSub
12.在窗体“Form4”上,双击“退出”命令按钮,添加事件响应代码如下:
PrivateSubCommand2_Click()
UnloadMe
Form1.Show
EndSub
13.在窗体“Form5”上,双击“退出”命令按钮,添加事件响应代码如下:
PrivateSubCommand1_Click()
UnloadMe
Form1.Show
EndSub