精品VB学生成绩管理系统的设计与实现毕业论文报告.docx

上传人:b****5 文档编号:8711438 上传时间:2023-05-14 格式:DOCX 页数:21 大小:299.01KB
下载 相关 举报
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第1页
第1页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第2页
第2页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第3页
第3页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第4页
第4页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第5页
第5页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第6页
第6页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第7页
第7页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第8页
第8页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第9页
第9页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第10页
第10页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第11页
第11页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第12页
第12页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第13页
第13页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第14页
第14页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第15页
第15页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第16页
第16页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第17页
第17页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第18页
第18页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第19页
第19页 / 共21页
精品VB学生成绩管理系统的设计与实现毕业论文报告.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

精品VB学生成绩管理系统的设计与实现毕业论文报告.docx

《精品VB学生成绩管理系统的设计与实现毕业论文报告.docx》由会员分享,可在线阅读,更多相关《精品VB学生成绩管理系统的设计与实现毕业论文报告.docx(21页珍藏版)》请在冰点文库上搜索。

精品VB学生成绩管理系统的设计与实现毕业论文报告.docx

精品VB学生成绩管理系统的设计与实现毕业论文报告

 

 

VB程序设计

课程设计报告

 

班级:

资工10902班

 

目录

1、课设的目的3

2、界面设计和功能设计3

3、系统功能实施12

4、系统功能设计19

5、总结和体会28

 

一、课设的目的

1.通过本次课程设计,提高实践动手能力;

2.通过本次课程设计,进一步理解计算机程序设计的思路与方法;

3.通过本次课程设计,进一步熟练运用VB的语言元素和流程控制语句;

4.通过本次课程设计,达到能熟练使用各种常见的VB控件,理解面向对象的思想;

5.通过本次课程设计,熟悉用户界面的设计;

6.通过本次课程设计,熟悉数据访问控件ADO及相关对象的使用,能基于ADO控件实现Access的数据访问与操纵;

二、界面设计和功能设计

1、下面的界面为用户登陆界面:

用户名和密码均已设定,用户名为zg,密码为10902,只有输入正确,然后点击“登陆“按钮才能进入主界面。

如果用户名或密码三次输入错误,则系统自动退出。

当你点击“退出“按钮时,弹出一个对话窗,界面如下:

在对话框上点击“是”按钮,则退出系统,如果点击“否”,则该界面不变。

2、当用户名和密码均输入正确,点击“登陆”按钮,进入主界面——“学生成绩管理系统”界面,该界面是其他子界面的入口,界面如下:

3、进入主界面后,点击“学生管理(删除\添加)”,进入学生管理界面,界面如下:

该界面上有一个ADO控件,用于连接数据库,当用户在六个文本框中输入数据时,点击“添加“按钮,可以将数据录入到数据库中,如果此时点击”删除“按钮,则刚才输入的数据就会被删除,点击”保存“按钮时,输入的数据就会自动保存在数据库里,点击”返回主窗体“按钮,该窗体消失,主窗体出现。

4、在主界面点击“各科成绩查询“按钮,出现如下界面:

该界面有一个ADO控件,用来连接数据库,还有一个DataGrid控件,用来显示学生成绩的查询结果,当用户选择了要查询的科目和条件后,点击“查询“按钮,在DataGrid控件上就会显示出所查询的结果。

下面为输入条件后查询的结果——

5、在主界面点击“姓名查询“按钮后,会出现如下界面:

该界面与上一界面相似,在文本框输入要查询的姓名后,点击“查询“按钮,就会在DataGrid控件上显示所要查询的结果。

下面为输入条件后查询的结果——

5、在主界面点击“班级查询“按钮后,会出现如下界面:

在文版框中输入所要查询的班级,DataGrid控件上就会显示所要查询的结果。

下面为输入条件后查询的结果——

6、在主界面上点击“各科成绩段查询“按钮后,会出现如下界面:

点击“计算分数段统计“按钮后,就会出现所要查询的结果。

下面为查询的结果——

7、在主界面点击“排名“按钮后,出现如下界面:

在该界面上点击“排名“按钮后,在DataGrid控件上会显示出按成绩高低排名的结果,点击”清除排名“按钮后,刚才结果消失,显示原来结果。

下面为所现实的结果——

8、在主界面点击“统计直方图“按钮后,出现如下界面:

在该界面点击各个按钮后,就会出现与之相关科目的成绩统计直方图,下面为查询的结果——

9、在主界面点击“优等生“按钮后,出现如下界面:

点击按钮查询后,结果就会在界面上显示出来。

下面为所查询的结果——

三、系统功能实施

以上展示的是系统的所有界面,怎样才能让这所有的功能实现呢?

数据库和ADO控件的使用便是其中的关键。

1、建立如下数据库

(学号、姓名、班级、英语、数学、VB、总分、排名)

2、建立如下图的所有界面:

3、ADO控件和DataGrid控件以及数据库的连接步骤:

(这一步在设计界面的同时完成)

(1)、如何加载ADO控件:

步骤1:

步骤2:

步骤3:

各个界面的ADO控件如何连接数据库(分两步):

步骤1:

如下面界面中的5个步骤

步骤2:

选中ADO控件Adodc1,点击鼠标右键选择属性,然后界面设置如下:

控件绑定数据库的字段操作说明:

属性设置说明:

下面以学号为例,姓名、班级等都可参考此。

将学号对应的文本框Text1连接Adodc1显示数据库中的学号,需要设置DataSource和DataField两个属性,首先选中Text1文本框,并进行下面的两步操作,即可绑定数据库的学号字段。

设置DataSource:

设置DataField:

(2)、如何加载DataGrid控件

控件DataGrid,可以实现数据的批量处理,该控件在控件库MicrosoftDataGridControl6.0中。

说明:

DataGrid控件属性设置

四、系统功能设计

系统功能的设计,其核心就是程序代码的编写过程,如何让让系统更加完善、界面更加友好呢,这就得益于代码的编写。

以下为各个界面所对应的代码——

该界面代码如下:

PrivateSubCommand1_Click()

IfText1.Text="zg"AndText2.Text="10902"Then

mainfrm.Show

dlfrm.Hide

Else

MsgBox"用户名或密码错误,请重新输入",vbMsgBoxSetForeground,"系统提示!

"

EndIf

StatictAsInteger

t=t+1

Ift>=3ThenEnd

EndSub

PrivateSubCommand2_Click()

a=MsgBox("确定要退出本系统吗?

",3+32+256,"系统提示!

")

Ifa=6Then

UnloadMe

EndIf

EndSub

该界面代码如下:

PrivateSubCommand1_Click()

xsglfrm.Show

EndSub

PrivateSubCommand10_Click()

ydsfrm.Show

EndSub

PrivateSubCommand3_Click()

jszffrm.Show

EndSub

PrivateSubCommand4_Click()

pmfrm.Show

EndSub

PrivateSubCommand5_Click()

zftjtfrm.Show

EndSub

PrivateSubCommand6_Click()

cjcxfrm.Show

EndSub

PrivateSubCommand7_Click()

xmcxfrm.Show

EndSub

PrivateSubCommand8_Click()

bjcxfrm.Show

EndSub

PrivateSubCommand9_Click()

gkcjfrm.Show

EndSub

该界面代码如下:

PrivateSubCommand1_Click()

Me.Adodc1.Recordset.AddNew

EndSub

PrivateSubCommand2_Click()

IfMe.Adodc1.Recordset.RecordCount=0OrMe.Adodc1.Recordset.EOFThen

ExitSub

EndIf

Me.Adodc1.Recordset.Delete

Me.Adodc1.Recordset.MoveNext

IfMe.Adodc1.Recordset.RecordCount=0Then

ExitSub

EndIf

IfMe.Adodc1.Recordset.EOFThenMe.Adodc1.Recordset.MoveLast

EndSub

PrivateSubCommand4_Click()

Me.Adodc1.Recordset.Save

EndSub

PrivateSubCommand5_Click()

UnloadMe

mainfrm.Show

EndSub

该界面代码如下:

Dimkc_条件AsString

DimkcAsString

PrivateSubCommand1_Click()

kc_条件=Me.Text1

Me.Adodc1.RecordSource="select*fromstuwhere"+kc+""+kc_条件

Me.Adodc1.Refresh

EndSub

PrivateSubForm_Load()

kc_条件=">=92"

kc="vb"

EndSub

PrivateSubOption1_Click()

kc="VB"

EndSub

PrivateSubOption2_Click()

kc="math"

EndSub

PrivateSubOption3_Click()

kc="English"

EndSub

该界面代码如下:

Dimkc_条件AsString

DimkcAsString

PrivateSubCommand1_Click()

kc_条件=Me.Text1

Me.Adodc1.RecordSource="select*fromstuwhere"+kc+"='"+kc_条件+"'"

Me.Adodc1.Refresh

EndSub

PrivateSubForm_Load()

kc="name"

EndSub

该界面代码如下:

Dimkc_条件AsString

DimkcAsString

PrivateSubCommand1_Click()

kc_条件=Me.Text1

Me.Adodc1.RecordSource="select*fromstuwhere"+kc+"='"+kc_条件+"'"

Me.Adodc1.Refresh

EndSub

PrivateSubForm_Load()

kc="class"

EndSub

该界面代码如下:

PrivateSubCommand1_Click()

Dimvb_AAsInteger

Dimvb_BAsInteger

Dimvb_CAsInteger

Dimvb_DAsInteger

Dimvb_EAsInteger

DimMath_AAsInteger

DimMath_BAsInteger

DimMath_CAsInteger

DimMath_DAsInteger

DimMath_EAsInteger

DimEnglish_AAsInteger

DimEnglish_BAsInteger

DimEnglish_CAsInteger

DimEnglish_DAsInteger

DimEnglish_EAsInteger

Me.Adodc1.RecordSource="select*fromstuwherevb>=90"

Me.Adodc1.Refresh

vb_A=Me.Adodc1.Recordset.RecordCount

Me.Text1=vb_A

Me.Adodc1.RecordSource="select*fromstuwherevb>=80andvb<90"

Me.Adodc1.Refresh

vb_B=Me.Adodc1.Recordset.RecordCount

Me.Text2=vb_B

Me.Adodc1.RecordSource="select*fromstuwherevb>=70andvb<80"

Me.Adodc1.Refresh

vb_C=Me.Adodc1.Recordset.RecordCount

Me.Text3=vb_C

Me.Adodc1.RecordSource="select*fromstuwherevb>=60"

Me.Adodc1.Refresh

vb_D=Me.Adodc1.Recordset.RecordCount

Me.Text4=vb_D

Me.Adodc1.RecordSource="select*fromstuwherevb<60"

Me.Adodc1.Refresh

vb_B=Me.Adodc1.Recordset.RecordCount

Me.Text5=vb_E

Me.Adodc1.RecordSource="select*fromstuwheremath>=90"

Me.Adodc1.Refresh

Math_A=Me.Adodc1.Recordset.RecordCount

Me.Text6=Math_A

Me.Adodc1.RecordSource="select*fromstuwheremath>=80andmath<90"

Me.Adodc1.Refresh

Math_B=Me.Adodc1.Recordset.RecordCount

Me.Text7=Math_B

Me.Adodc1.RecordSource="select*fromstuwheremath>=70andmath<80"

Me.Adodc1.Refresh

Math_C=Me.Adodc1.Recordset.RecordCount

Me.Text8=Math_C

Me.Adodc1.RecordSource="select*fromstuwheremath>=60"

Me.Adodc1.Refresh

Math_D=Me.Adodc1.Recordset.RecordCount

Me.Text9=Math_D

Me.Adodc1.RecordSource="select*fromstuwheremath<60"

Me.Adodc1.Refresh

Math_E=Me.Adodc1.Recordset.RecordCount

Me.Text10=Math_E

Me.Adodc1.RecordSource="select*fromstuwhereenglish>=90"

Me.Adodc1.Refresh

English_A=Me.Adodc1.Recordset.RecordCount

Me.Text11=English_A

Me.Adodc1.RecordSource="select*fromstuwhereenglish>=80andenglish<90"

Me.Adodc1.Refresh

English_B=Me.Adodc1.Recordset.RecordCount

Me.Text12=English_B

Me.Adodc1.RecordSource="select*fromstuwhereenglish>=70andenglish<80"

Me.Adodc1.Refresh

English_C=Me.Adodc1.Recordset.RecordCount

Me.Text13=English_C

Me.Adodc1.RecordSource="select*fromstuwhereenglish>=60"

Me.Adodc1.Refresh

English_D=Me.Adodc1.Recordset.RecordCount

Me.Text14=English_D

Me.Adodc1.RecordSource="select*fromstuwhereenglish<60"

Me.Adodc1.Refresh

English_E=Me.Adodc1.Recordset.RecordCount

Me.Text15=English_E

EndSub

PrivateSubForm_Load()

Text1.Text=""

Text2.Text=""

Text3.Text=""

Text4.Text=""

Text5.Text=""

Text6.Text=""

Text7.Text=""

Text8.Text=""

Text10.Text=""

Text11.Text=""

Text12.Text=""

Text13.Text=""

Text14.Text=""

Text15.Text=""

EndSub

该界面代码如下:

PrivateSubCommand1_Click()

Me.Adodc1.RecordSource="select*fromstuorderbytotaldesc"

Me.Adodc1.Refresh

Me.Adodc1.Recordset.MoveFirst

Fori=1ToMe.Adodc1.Recordset.RecordCount

Me.Adodc1.Recordset.Fields("mc").Value=i

Me.Adodc1.Recordset.Update

Me.Adodc1.Recordset.MoveNext

Nexti

EndSub

PrivateSubCommand2_Click()

Me.Adodc1.Recordset.MoveFirst

Fori=1ToMe.Adodc1.Recordset.RecordCount

Me.Adodc1.Recordset.Fields("mc").Value=Null

Me.Adodc1.Recordset.Update

Me.Adodc1.Recordset.MoveNext

Nexti

EndSub

该界面代码如下:

PrivateSubCommand1_Click()

Me.Adodc1.Refresh

'填充表格数据

MSChart1.RowCount=1

MSChart1.ColumnCount=Me.Adodc1.Recordset.RecordCount

Me.Adodc1.Recordset.MoveFirst

ForlngI=1ToMe.Adodc1.Recordset.RecordCount

MSChart1.Column=lngI

'用Data属性向MSChart数据网格填充数据

MSChart1.Data=Val(Adodc1.Recordset.Fields("vb").Value)

MSChart1.ColumnLabel=Adodc1.Recordset.Fields("name").Value

Adodc1.Recordset.MoveNext

NextlngI

MSChart1.RowLabel="VB成绩直方图"

EndSub

PrivateSubCommand2_Click()

Me.Adodc1.Refresh

'填充表格数据

MSChart1.RowCount=1

MSChart1.ColumnCount=Me.Adodc1.Recordset.RecordCount

Me.Adodc1.Recordset.MoveFirst

ForlngI=1ToMe.Adodc1.Recordset.RecordCount

MSChart1.Column=lngI

'用Data属性向MSChart数据网格填充数据

MSChart1.Data=Val(Adodc1.Recordset.Fields("math").Value)

MSChart1.ColumnLabel=Adodc1.Recordset.Fields("name").Value

Adodc1.Recordset.MoveNext

NextlngI

MSChart1.RowLabel="Math成绩直方图"

EndSub

该界面代码如下

PrivateSubCommand1_Click()

DimvbAsInteger

DimmathAsInteger

DimenglishAsInteger

Me.Adodc1.RecordSource="select*fromstuwhere((math+english+vb)3>=90)or((math+english+vb)3>=85and(math=100orenglish=100orvb=100))or((vb+english+math)3>=85and((vb>=95andenglish>=95)or(english>=95andmath>=95)or(math>=95andvb>=95)))and(mc<=3)and(vb>=60andenglish>=60andmath>=60)"

Me.Adodc1.Refresh

EndSub

五、总结和体会

想来,当时那会儿听说要搞vb课程设计的时候,我可是相当激动啊,心想,学的东西终于可以用一用了。

并且这次的Vb课程设计要持续两周的时间,主要是用vb+access相关的知识来实现学生成绩和信息的管理。

这对于我们这种初次接触这种东西的人来说,还真是有难度,如果不是老师给了我们足够的模板和样例,我想我还真一时半会儿,不知道从哪里下手,好在功夫不负有心人,经过几天时间的摸索和操作,这个学生成绩管理系统的雏形终于是出现了,虽说功能不太完善,但还是能满足基本要求,这让我很是欣慰。

两周的时间并不长,一晃就到了,课程设计也要画上句号了。

在这一段时间里里,不能说我的vb编程能力有了多么大的提高,多么大的飞跃,但我敢说我对vb和数据库相关的知识有了更加深刻的了解和体会,总结起来主要有以下几点:

1、想要用vb做出好的东西来,一定要勤动手,不能光看,因为好多错误凭看是看不出来的,只有通过自己不断的操作和修改,才能对vb的语法结构和流程有自己独到的理解;

2、在编程和调试的过程中,总会出现一些意想不到的问题。

我发现并不是每一个问题都能从资料中得到解决方法,有些问题是无法预料的,这个时候就得靠自己去分析了,你必须得非常的细心,一步一步的进行调试和修改,而且不能急,往往有的错误就是在你急躁的时候从你眼皮底下溜过去的,这样又得重新检查,到头来,既费时又费力,实在不行,还可以和同学一起进行讨论;

3、在写代码的时候,一定要养成良

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2