VB学生成绩管理系统的设计与实现课程设计报告_第1页
VB学生成绩管理系统的设计与实现课程设计报告_第2页
VB学生成绩管理系统的设计与实现课程设计报告_第3页
VB学生成绩管理系统的设计与实现课程设计报告_第4页
VB学生成绩管理系统的设计与实现课程设计报告_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、 vb程序设计课程设计报告 班 级:资工10902 班 目 录1、课设的目的32、界面设计和功能设计33、系统功能实施124、系统功能设计195、总结和体会28一、课设的目的 1.通过本次课程设计,提高实践动手能力;2.通过本次课程设计,进一步理解计算机程序设计的思路与方法;3.通过本次课程设计,进一步熟练运用vb的语言元素和流程控制语句;4.通过本次课程设计,达到能熟练使用各种常见的vb控件,理解面向对象的思想;5.通过本次课程设计,熟悉用户界面的设计;6.通过本次课程设计,熟悉数据访问控件ado及相关对象的使用,能基于ado控件实现access的数据访问与操纵; 二、界面设计和功能设计 1

2、、下面的界面为用户登陆界面: 用户名和密码均已设定,用户名为zg,密码为10902,只有输入正确,然后点击“登陆“按钮才能进入主界面。如果用户名或密码三次输入错误,则系统自动退出。 当你点击“退出“按钮时,弹出一个对话窗,界面如下:在对话框上点击“是”按钮,则退出系统,如果点击“否”,则该界面不变。2、当用户名和密码均输入正确,点击“登陆”按钮,进入主界面“学生成绩管理系统”界面,该界面是其他子界面的入口,界面如下:3、进入主界面后,点击“学生管理(删除添加)”,进入学生管理界面,界面如下:该界面上有一个ado控件,用于连接数据库,当用户在六个文本框中输入数据时,点击“添加“按钮,可以将数据录

3、入到数据库中,如果此时点击”删除“按钮,则刚才输入的数据就会被删除,点击”保存“按钮时,输入的数据就会自动保存在数据库里,点击”返回主窗体“按钮,该窗体消失,主窗体出现。4、在主界面点击“各科成绩查询“按钮,出现如下界面:该界面有一个ado控件,用来连接数据库,还有一个datagrid控件,用来显示学生成绩的查询结果,当用户选择了要查询的科目和条件后,点击“查询“按钮,在datagrid控件上就会显示出所查询的结果。下面为输入条件后查询的结果5、在主界面点击“姓名查询“按钮后,会出现如下界面:该界面与上一界面相似,在文本框输入要查询的姓名后,点击“查询“按钮,就会在datagrid控件上显示所

4、要查询的结果。下面为输入条件后查询的结果5、在主界面点击“班级查询“按钮后,会出现如下界面:在文版框中输入所要查询的班级,datagrid控件上就会显示所要查询的结果。下面为输入条件后查询的结果6、在主界面上点击“各科成绩段查询“按钮后,会出现如下界面:点击“计算分数段统计“按钮后,就会出现所要查询的结果。下面为查询的结果7、在主界面点击“排名“按钮后,出现如下界面:在该界面上点击“排名“按钮后,在datagrid控件上会显示出按成绩高低排名的结果,点击”清除排名“按钮后,刚才结果消失,显示原来结果。下面为所现实的结果8、在主界面点击“统计直方图“按钮后,出现如下界面:在该界面点击各个按钮后,

5、就会出现与之相关科目的成绩统计直方图,下面为查询的结果 9、在主界面点击“优等生“按钮后,出现如下界面:点击按钮查询后,结果就会在界面上显示出来。下面为所查询的结果三、系统功能实施 以上展示的是系统的所有界面,怎样才能让这所有的功能实现呢?数据库和ado控件的使用便是其中的关键。 1、建立如下数据库(学号、姓名、班级、英语、数学、vb、总分、排名)2、建立如下图的所有界面: 3、ado控件和datagrid控件以及数据库的连接步骤:(这一步在设计界面的同时完成)(1)、如何加载ado控件:步骤1:步骤2:步骤3:各个界面的ado控件如何连接数据库(分两步):步骤1: 如下面界面中的5个步骤步骤

6、2:选中ado控件adodc1,点击鼠标右键选择属性,然后界面设置如下:控件绑定数据库的字段操作说明:属性设置说明:下面以学号为例,姓名、班级等都可参考此。将学号对应的文本框text1连接adodc1显示数据库中的学号,需要设置datasource和datafield两个属性,首先选中text1文本框,并进行下面的两步操作,即可绑定数据库的学号字段。设置datasource:设置datafield:(2)、如何加载datagrid控件控件datagrid,可以实现数据的批量处理,该控件在控件库microsoft datagrid control 6.0中。说明:datagrid控件属性设置四、

7、系统功能设计系统功能的设计,其核心就是程序代码的编写过程,如何让让系统更加完善、界面更加友好呢,这就得益于代码的编写。以下为各个界面所对应的代码该界面代码如下:private sub command1_click() if text1.text = "zg" and text2.text = "10902" then mainfrm.show dlfrm.hide else msgbox "用户名或密码错误,请重新输入", vbmsgboxsetforeground, "系统提示!" end if static t

8、 as integer t = t + 1 if t >= 3 then endend subprivate sub command2_click()a = msgbox("确定要退出本系统吗?", 3 + 32 + 256, "系统提示!")if a = 6 thenunload meend ifend sub 该界面代码如下: private sub command1_click() xsglfrm.showend subprivate sub command10_click() ydsfrm.showend subprivate sub co

9、mmand3_click() jszffrm.showend subprivate sub command4_click() pmfrm.showend subprivate sub command5_click() zftjtfrm.showend subprivate sub command6_click() cjcxfrm.showend subprivate sub command7_click() xmcxfrm.showend subprivate sub command8_click() bjcxfrm.showend subprivate sub command9_click(

10、) gkcjfrm.showend sub该界面代码如下:private sub command1_click() me.adodc1.recordset.addnewend subprivate sub command2_click() if me.adodc1.recordset.recordcount = 0 or me.adodc1.recordset.eof then exit subend ifme.adodc1.recordset.deleteme.adodc1.recordset.movenextif me.adodc1.recordset.recordcount = 0 th

11、en exit subend ifif me.adodc1.recordset.eof then me.adodc1.recordset.movelastend subprivate sub command4_click() me.adodc1.recordset.saveend subprivate sub command5_click() unload me mainfrm.showend sub该界面代码如下:dim kc_条件 as stringdim kc as stringprivate sub command1_click()kc_条件 = me.text1me.adodc1.r

12、ecordsource = "select * from stu where " + kc + " " + kc_条件me.adodc1.refreshend subprivate sub form_load()kc_条件 = ">=92"kc = "vb"end subprivate sub option1_click()kc = "vb"end subprivate sub option2_click()kc = "math"end subprivate sub o

13、ption3_click()kc = "english"end sub该界面代码如下:dim kc_条件 as stringdim kc as stringprivate sub command1_click()kc_条件 = me.text1me.adodc1.recordsource = "select * from stu where " + kc + "='" + kc_条件 + "'"me.adodc1.refreshend subprivate sub form_load()kc = &

14、quot;name"end sub该界面代码如下:dim kc_条件 as stringdim kc as stringprivate sub command1_click()kc_条件 = me.text1me.adodc1.recordsource = "select * from stu where " + kc + "='" + kc_条件 + "'"me.adodc1.refreshend subprivate sub form_load()kc = "class"end sub

15、该界面代码如下:private sub command1_click() dim vb_a as integer dim vb_b as integer dim vb_c as integer dim vb_d as integer dim vb_e as integer dim math_a as integer dim math_b as integer dim math_c as integer dim math_d as integer dim math_e as integer dim english_a as integer dim english_b as integer dim

16、 english_c as integer dim english_d as integer dim english_e as integer me.adodc1.recordsource = "select * from stu where vb>=90" me.adodc1.refresh vb_a = me.adodc1.recordset.recordcount me.text1 = vb_a me.adodc1.recordsource = "select * from stu where vb>=80 and vb<90"

17、me.adodc1.refresh vb_b = me.adodc1.recordset.recordcount me.text2 = vb_b me.adodc1.recordsource = "select * from stu where vb>=70 and vb<80" me.adodc1.refresh vb_c = me.adodc1.recordset.recordcount me.text3 = vb_c me.adodc1.recordsource = "select * from stu where vb>=60"

18、 me.adodc1.refresh vb_d = me.adodc1.recordset.recordcount me.text4 = vb_d me.adodc1.recordsource = "select * from stu where vb<60" me.adodc1.refresh vb_b = me.adodc1.recordset.recordcount me.text5 = vb_e me.adodc1.recordsource = "select * from stu where math>=90" me.adodc1.

19、refresh math_a = me.adodc1.recordset.recordcount me.text6 = math_a me.adodc1.recordsource = "select * from stu where math>=80 and math<90" me.adodc1.refresh math_b = me.adodc1.recordset.recordcount me.text7 = math_b me.adodc1.recordsource = "select * from stu where math>=70 a

20、nd math<80" me.adodc1.refresh math_c = me.adodc1.recordset.recordcount me.text8 = math_c me.adodc1.recordsource = "select * from stu where math>=60 " me.adodc1.refresh math_d = me.adodc1.recordset.recordcount me.text9 = math_d me.adodc1.recordsource = "select * from stu whe

21、re math<60" me.adodc1.refresh math_e = me.adodc1.recordset.recordcount me.text10 = math_e me.adodc1.recordsource = "select * from stu where english>=90" me.adodc1.refresh english_a = me.adodc1.recordset.recordcount me.text11 = english_a me.adodc1.recordsource = "select * fr

22、om stu where english>=80 and english<90" me.adodc1.refresh english_b = me.adodc1.recordset.recordcount me.text12 = english_b me.adodc1.recordsource = "select * from stu where english>=70 and english<80" me.adodc1.refresh english_c = me.adodc1.recordset.recordcount me.text1

23、3 = english_c me.adodc1.recordsource = "select * from stu where english>=60" me.adodc1.refresh english_d = me.adodc1.recordset.recordcount me.text14 = english_d me.adodc1.recordsource = "select * from stu where english<60" me.adodc1.refresh english_e = me.adodc1.recordset.r

24、ecordcount me.text15 = english_eend subprivate sub form_load() text1.text = "" text2.text = "" text3.text = "" text4.text = "" text5.text = "" text6.text = "" text7.text = "" text8.text = "" text10.text = "" te

25、xt11.text = "" text12.text = "" text13.text = "" text14.text = "" text15.text = ""end sub该界面代码如下:private sub command1_click()me.adodc1.recordsource = "select * from stu order by total desc"me.adodc1.refreshme.adodc1.recordset.movefirstfor i

26、 = 1 to me.adodc1.recordset.recordcount me.adodc1.recordset.fields("mc").value = i me.adodc1.recordset.update me.adodc1.recordset.movenextnext iend subprivate sub command2_click()me.adodc1.recordset.movefirstfor i = 1 to me.adodc1.recordset.recordcount me.adodc1.recordset.fields("mc&q

27、uot;).value = null me.adodc1.recordset.update me.adodc1.recordset.movenextnext iend sub该界面代码如下:private sub command1_click() me.adodc1.refresh '填充表格数据 mschart1.rowcount = 1 mschart1.columncount = me.adodc1.recordset.recordcount me.adodc1.recordset.movefirst for lngi = 1 to me.adodc1.recordset.rec

28、ordcount mschart1.column = lngi '用data属性向mschart数据网格填充数据 mschart1.data = val(adodc1.recordset.fields("vb").value) mschart1.columnlabel = adodc1.recordset.fields("name").value adodc1.recordset.movenext next lngi mschart1.rowlabel = "vb成绩直方图"end subprivate sub command

29、2_click() me.adodc1.refresh '填充表格数据 mschart1.rowcount = 1 mschart1.columncount = me.adodc1.recordset.recordcount me.adodc1.recordset.movefirst for lngi = 1 to me.adodc1.recordset.recordcount mschart1.column = lngi '用data属性向mschart数据网格填充数据 mschart1.data = val(adodc1.recordset.fields("mat

30、h").value) mschart1.columnlabel = adodc1.recordset.fields("name").value adodc1.recordset.movenext next lngi mschart1.rowlabel = "math成绩直方图"end sub该界面代码如下private sub command1_click() dim vb as integer dim math as integerdim english as integer me.adodc1.recordsource = "se

31、lect * from stu where (math+english+vb)/3>=90) or(math+english+vb)/3>=85 and (math=100 or english=100 or vb=100 )or(vb+english+math)/3>=85 and (vb>=95 and english >=95)or (english>=95 and math>=95)or ( math>=95 and vb>=95 )and (mc<=3) and (vb>=60 and english>=60 and math>=60)" me.adodc1.refreshend sub五、总结和

温馨提示

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

评论

0/150

提交评论