VB成绩管理系统报告及代码_第1页
VB成绩管理系统报告及代码_第2页
VB成绩管理系统报告及代码_第3页
VB成绩管理系统报告及代码_第4页
VB成绩管理系统报告及代码_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、洛阳理工学院08软件技术课题设计报告课程:VisualBasic程序设计题目:学生成绩查询统计系统学号:Z08050834姓名:班级:软件8班指导老师:苗专生完成时间:2009年12月30日Z08050834目录一一、课题内容,111了解信息112实验目的1J1-.1155555555555555555555555511.3选题的背景和意义11.4软件工具和需要掌握的知识,1一、系统分析22.1系统功能模块示意图,22.2设计思路、算法描述,2、系统设计,23.1 主要算法的实现,,,23.2 程序流程图,2四、调试、测试、试运行过程,.,34.1运行记录及调试效果.,4五、源程序主要代码,,

2、,115.1 密码判断,115.2 添加信息,115.3 删除信息,125.4 修改信息,135.5 绘制直方图,135.6 绘制饼图,145.7 保存文件,155.8 按条件查询,165.9 打开帮助文件,,,165.10 工具条按钮代码,165.11工具条下拉菜单代码,17八、课设总结,17七、参考文献,18-1-Z08050834一、课题内容1. 了解信息:了解用软件工程学的基本思想进行软件开发的原则和方法;结构化分析方法和步骤。结构化编程方法;面向对象的思想和程序设计方法。2. 实验目的:掌握数组,函数,过程的定义和使用掌握do、while、for等循环语句的运用掌握了解vb的图形功能

3、,及图形的绘制掌握常用函数的使用(绘图函数:line,circle等)掌握vb文件系统的操作(打开,读写,关闭等)熟练掌握键盘事件,鼠标事件及其事件过程的编程技巧掌握逻辑表达式,单分支,双分支及多分支条件语句的运用掌握vb常用控件的运用(通用对话框,inputbox,combox,工具栏,状态栏等)3. 选题的背景和意义:计算机不可避免的成为了当今社会的主流学科,计算机的广泛应用性、高效率以及其强大的计算能力注定了其发展潜力,虽然计算机现在的能力不可想象,但不要忽视了其出世还不足半个世纪,然而在这半个世纪里它带领着世界创造一个个奇迹。随着计算机的广泛使用,它的灵魂一一软件也得到了快速发展,但是

4、人们的需求永远大于现实,各行各业都需求他们自己所最需要的各种软件,导致了社会需要大批的软件编辑者,VB作为几大编程语言之一,其语言易学易用的特点广大初学者学习学习计算机语言的首选,我们经过了半个学期的学习,对VB有了初步的了解,学生成绩管理器这是一个实用性很强,技术要求不太高的应用程序,很适合初学者练习,再者其要求全面,很适合对我们这学期的学习考察,虽然其中有一些书本上没有老师也没有讲过的内容,但通过网络学习也能完成,更能考察学生的自学能力。4软件工具和需要掌握的知识:1、软件工具:VisualBasic6.0英文版、中文版,easychm,Photoshop2、需要掌握的知识:(1)视窗(F

5、orm)视窗是进行人机交互的界面或接口,也叫窗体。VB系统的人机交互界面或接口,无论是在设计时或是在运行时,都是Windows系统的标准视窗。对象(Object)对象是VB系统内部提供给设计者可以直接使用的处理输出的控制工具。本程序所应用到的对象类型有标签框(LabelBox),文本框(TextBox),命令按扭(CommandButton),网格(DataGrid),ADO控件(Adodc1)等。当把这些工具放置到用户界面对应的窗体上时,被称为对象或控件。用户可以通过设置对象的“属性”和“方法”,便于对象适应自己所设计应用程序的输入输出内容,对象的生成过程及结构都被封装起来。正确使用对象可以

6、减少程序和开发时间,提高程序设计者的工作效率。(3)属性(Properties)属性是VB系统提供的有关对象的参数或数据接口。用户通过适当地设置或改变对象的属性来确定对象的外观及性能特征,从而有效地使用系统提供的对象。比如,对象的名称、在屏幕上显示的位置、大小、颜色、接收或容纳的数据内容及数据的表现格式等。(4)VisualBasic中的事件(Events)事件是指用户或操作者对计算机进行的某一操作(如击键、单击或移动鼠标等)的行为或系统状态发生的变化。VB系统常用事件来引导计算机执行一段程序。程序所用的键盘事件有KeyPress(按键)事件,KeyDown事件和KeyUp事件;鼠标事件有Cl

7、ick(单击鼠标)事件,DbDlicd(双击鼠标)。VisualBasic中的方法(Method)方法主要是指对一个对象使用某种作用的过程。它是在程序执行的过程中要计算机执行的某种操作。其程序的方法有Show(显示)方法,Hide(隐藏)方法,Refresh(刷新)方法。(6)VisualBasic中的过程(Procedure)过程是指经过定义或说明的,或基于某一对象对应的事件所引发的程序段。(7)VisualBasic中的模块(Module)模块是指一些运算量或过程进行声明或定义的一个集合。系统程序大体可分成四个模块:数据输入、根据查询、数据打印和通讯。二、系统分析(设计思路、算法描述)1.

8、 系统功能模块示意图:2. 课题设计的思路、方法:本系统主要包括学生信息查询、信息修改、学生信息保存和帮助四部分。其功能主要有:1有关学生信息的输入,包括输入学生学号、姓名、性别、课程号、和成绩。2学生信息的查询,包括查询学生学号、姓名、课程成绩和成绩的分数段。3. 学生信息的修改。三、系统设计:1、主要算法的实现方法主菜单有:1编辑(增、删、改、退出),2查询(按姓名、学号、成绩、高于某分、低于某分查找),3统计绘图(饼图、直方图),4报表,5帮助(关于、帮助)五个菜单项。添加信息主要是使用数据库将记录的增加记录的AddNew方法。删除主要是调用delete方法。查询可以通过输入要查询的学号

9、,如果没有要查找的信息,给予提示。通过姓名、学号和分数查询的代码与通过学号查询的代码类似。统计绘图通过记录的增删改动态的显示统计图的变化和要显示的记录数。2. 程序流程图:-1-Z08050834-1-Z08050834找杳一4饼图四、调试、排错、测试、试运行过程Forml学生成绩管理Zhujiemian主界面-1-Z08050834Form2増删改奁诲Stv+E报表和助蛊41些鍋X|Q|Q)|0洛阳理工学院学生成绩管理i竽程号潯程霑成蔬卜03王少康2VB89053Jav日806睡夏菲2VB9707軽慧1C#7309李岩2VB3402董雪3java6902黄雪2vb8702董雪24添加01hW

10、曽删改查询蜒计图报表帮肋Form2绩管理确走添加谟记录吗取消-1-Z08050834删除Form2DU増删改查询统计图报表帮助輛为拶関寸X|©|0学号k04M4Adodcl成绩87职消L2Pr:jHtlJ-1-Z08050834-1-Z08050834姓名查询Form2i删改査询航计图报表帮助查询谙需入要査询的姓容洛阳理工学学号姓名03王少康05彭鸽3Jaya806随夏菲2VB97丁07锂慧10#7308郭荣3Java6509李岩2VB8402董書3java6902XV2vb87十02董雪2vb845Form2増删改查询统计国推表帮助洛阳理工学院学生成绩管理学号查询193戶舲洛阳1E

11、姓名课程号成赣03王少康2VB89053Javai806随夏2VB9707173083Jav日6509李岩2VB8402童雪3jatva6902董雪2vb8702董雪2vb84洛阳理工学院学生成绩管理学号姓名煤程号课程名03王少康2VB89直方图-1-Z08050834-1-Z080508340-5W,11.11怎饼图OH90IDQjr,11.11X盼,嗣昭茸22.22%0-59,1A數据S0-100JA80-09.4人7079J人60-69,2人报表制作DataReports>2>1>3>I4.|.5.|&|7|呂|亨<ReportHeader(Sect

12、ion4;<PageHeader(Secton2;1I3学号:1i書业1疏绩:<Detail;Se:tonl)学号姓名性别专业咸绩Ccmman;<PageFoote口:?n3;mrnrI<ReptortFooter;Section5'打印预览4七.rcL任石*A别:芒二:!=03三少疾2VB&905t:S3日,a06建更五2VB97074=51C#73OS"3Java6508孕吉2VB5402莹彗3ja-a6902孟爭2vbB702盍H2vbB4课程号五、源程序主要代码(加详细注释)(1)密码判断PrivateSubForm_Load()i=3

13、EndSub-1-Z08050834PrivateSubCommand1_Click()If(Text2<>"wwz314")Or(Text1<>"wwz314")Theni=i-1Ifi=0Thena=MsgBox("不要再做无谓的尝试!再见!","提示")EndElsea=MsgBox("密码错误,你还有”&i&”次机会","提示")EndIfElseUnioadForm1Form2.ShowEndIfEndSub(2) 添加信息F

14、orm2.Adodc1.CommandType=adCmdUnknown定义命令类型Form2.Adodc1.RecordSource="select*fromfilenamewhere学号='"&Text0&"'and课程号&Text3&"”'Form2.Adodc1.Refresh从学号和课程号中查找IfNotForm2.Adodc1.Recordset.EOFThenMsgBox"已存在"ExitSubEndIfForm2.Adodc1.Recordset.AddNew新增

15、一条空白记录Form2.Adodc1.Recordset.Fields("Form2.Adodc1.Recordset.Fields("Form2.Adodc1.Recordset.Fields("Form2.Adodc1.Recordset.Fields("Form2.Adodc1.Recordset.Fields("Form2.Adodc1.Recordset.Fields("Form2.Adodc1.Recordset.UpdateForm2.Adodc1.Recordset.MoveFirst学号")-Text0姓名

16、")-Text1性别")-Text2课程号")-Text3课程名")-Text4成绩")-Text5MsgBox"记录已成功添加。”(3) 删除信息PrivateSubCombo1_Click()Form2.Adodc1.Recordset.MoveFirstst=Combol.TextForm2.Adodc1.Recordset.find"学号='"&st&"”'如果记录到达末尾则未查找到姓名")显示姓名IfForm2.Adodc1.Recordset.EOFT

17、henCombol.ListIndex=0ElseText1=Form2.Adodc1.Recordset.Fields("Text2=Form2.Adodc1.Recordset.Fields(”学号")显示学号EndIfEndSubPrivateSubCommand1_Click()j=Combo1.ListIndexCombo1.Removeltemjj=j+1Form2.Adodc1.Recordset.Delete删除记录Form2.Adodc1.Recordset.MoveNextIfForm2.Adodc1.Recordset.EOFThenForm2.Ado

18、dc1.Recordset.MoveLastIfj>Combo1.ListCount-1Thenj=Combo1.ListCount-1Combo1.ListIndex=jText1=Form2.Adodc1.Recordset.Fields("姓名")显示姓名Text2=Form2.Adodc1.Recordset.Fields("学号")显示学号EndSubPrivateSubCommand2_Click()i=MsgBox("继续?"&vbCrLf&”一点击确定返回删除界面”&vbCrLf&

19、”一点击取消直接返回主界面",vbOKCancel,"思考中”")Ifi=2ThenUnioadMe关闭删除窗体EndSubPrivateSubCommand3_Click()UnloadMe关闭删除窗体EndSubPrivateSubForm_Load()Form2.Adodc1.CommandType=adCmdTable指定命令类型为adCmdTableForm2.Adodc1.RecordSource="filename"数据源为全部数据(filename)Form2.Adodc1.RefreshForm2.Adodc1.Records

20、et.MoveFirst移动到第一条记录DoWhileNot(Form2.Adodc1.Recordset.EOF)Combo1.AddItemForm2.Adodc1.Recordset.Fields("学号")列表框中添加全部学号Form2.Adodc1.Recordset.MoveNext记录下移一条LoopForm2.Adodc1.Recordset.MoveFirstCombo1.ListIndex=0EndSub(4) 修改信息PrivateSubCommand1_Click()s=MsgBox("确定修改此学生信息?",vbOKCancel

21、)Ifs=vbOKThenForm2.Adodc1.Recordset.Fields("姓名")=Text1修改姓名Form2.Adodc1.Recordset.Fields("性别")=Text3修改性别Form2.Adodc1.Recordset.Fields("课程号")-Text4修改课程号Form2.Adodc1.Recordset.Fields("课程名")-Text5修改课程名Form2.Adodc1.Recordset.Fields(”成绩")=Text6修改成绩MsgBox"修

22、改成功!”ElseForm2.Adodc1.Recordset.CancelUpdate更新记录EndIfEndSub绘图PublicaAsSingle,bAsSingle,cAsSingle,dAsSingle,eAsSingle,numAsSingle(5) 绘制直方图SubCreat()Form6.Scale(-12,-8)-(8,8)'Form6.Scale(-6,8)-(12,-2)Form6.Line(-5,4)-(8,4),vbBlueForm6.Line(-5,4)-(-5,-5),vbRedForm6.CurrentX=2:Form6.CurrentY=-2a1=12

23、*a/numb1=12*b/numc1=12*c/numd1=12*d/nume1=12*e/numForm6.Line(-4.5,4)-(-3,-a1+4),vbRed,BFForm6.Line(-2.5,4)-(-1,-b1+4),vbGreen,BFForm6.Line(-0.5,4)-(1,-c1+4),vbBlue,BFForm6.Line(1.5,4)-(3,-d1+4),RGB(210,0,200),BFForm6.Line(3.5,4)-(5,-e1+4),RGB(170,180,0),BFEndSubSublitizf()Creat'调用create函数Dimi%,x

24、1AsSingle,y1AsSingle,x2AsSingle,y2AsSingle,x3AsSingleForm6.Line(-11,-7)-(-9,-6.5),vbRed,BF绘制红色矩形Form6.CurrentX=-8.9:Form6.CurrentY=-7:Form6.Print"90-100分”Form6.Line(-11,-6.5)-(-9,-6),vbGreen,BF绘制绿色矩形Form6.CurrentX=-8.9:Form6.CurrentY=-6.5:Form6.Print"80-89分”Form6.Line(-11,-6)-(-9,-5.5),vbB

25、lue,BF绘制蓝色矩形Form6.CurrentX=-8.9:Form6.CurrentY=-6:Form6.Print"70-79分”Form6.Line(-11,-5.5)-(-9,-5),RGB(210,0,200),BF绘制紫红色矩形Form6.CurrentX=-8.9:Form6.CurrentY=-5.5:Form6.Print"60-69分”Form6.Line(-11,-5)-(-9,-4.5),RGB(170,180,0),BF绘制草绿色矩形Form6.CurrentX=-8.9:Form6.CurrentY=-5:Form6.Print"0

26、0-59分”EndSub(6) 绘制饼图Subbingtu()Form6.Scale(-12,-8)-(8,8)DimXsAsSingleConstPi=3.141593Form6.ShowForm6.FillStyle=0Xs=2*Pi/numIfa>0ThenForm6.FillColor=vbRedForm6.Circle(0,0),6,0,-2*Pi,-a*XsEndIf绘制红色扇形Ifb>0ThenForm6.FillColor=vbGreenForm6.Circle(0,0),6,vbGreen,-a*Xs,-(a+b)*XsEndIf绘制绿色扇形Ifc>0The

27、nForm6.FillColor=vbBlueForm6.Circle(0,0),6,0,-(a+b)*Xs,-(a+c+b)*XsEndIf绘制蓝色扇形Ifd>0ThenForm6.FillColor=RGB(210,0,200)Form6.Circle(0,0),6,0,-(a+b+c)*Xs,-(a+c+b+d)*XsEndIf绘制紫红色扇形Ife>0ThenForm6.FillColor=RGB(170,180,0)Form6.Circle(0,0),6,0,-(a+b+c+d)*Xs,-(a+c+b+d+e)*XsEndIf绘制草绿色扇形Form6.Line(-11,-7

28、)-(-9,-6.5),vbRed,BF绘制红色矩形Form6.CurrentX=-8.9:Form6.CurrentY=-7:Form6.Print"90-100分”Form6.Line(-11,-6.5)-(-9,-6),vbGreen,BF绘制绿色矩形Form6.CurrentX=-8.9:Form6.CurrentY=-6.5:Form6.Print"80-89分”Form6.Line(-11,-6)-(-9,-5.5),vbBlue,BF绘制蓝色矩形Form6.CurrentX=-8.9:Form6.CurrentY=-6:Form6.Print"70-

29、79分”Form6.Line(-11,-5.5)-(-9,-5),RGB(210,0,200),BF绘制紫红色矩形Form6.CurrentX=-8.9:Form6.CurrentY=-5.5:Form6.Print"60-69分”Form6.Line(-11,-5)-(-9,-4.5),RGB(170,180,0),BF绘制草绿色矩形Form6.CurrentX=-8.9:Form6.CurrentY=-5:Form6.Print"00-59分”EndSub(7) 保存文件Subbaocun()OnErrorGoToabcDimstudAsxinxifn=App.Path

30、当前文件所在路径CommonDialog1.lnitDir=fn指定默认路径CommonDialog1.FileName=""CommonDialogl.Filter="*.txt|*.txt|*.*|*.*"打开文本文件和所有文件CommonDialogl.ShowSave显示保存对话框OpenCommonDialog1.FileNameForRandomAs#1随机打开文件Adodc1.Recordset.MoveFirst记录位于首记录WithstudDoWhileNotAdodc1.Recordset.EOF判断是否到达末尾.xuehao=Ado

31、dc1.Recordset.Fields("学号"):.xingming=Adodc1.Recordset.Fields("姓名").xingbie=Adodc1.Recordset.Fields("性另U”):.kch=Adodc1.Recordset.Fields("课程号")将信息存入变量中.kcm=Adodc1.Recordset.Fields("课程名"):.cj=Adodc1.Recordset.Fields("成绩")Put#1,stud写入文件保存变量studAdodc

32、1.Recordset.MoveNextLoopEndWithClose#1Adodc1.Recordset.MoveFirsta=MsgBox("文件写入成功!","提示")abc:EndSub查询信息代码:(8) 按学号查询:PrivateSubanxh_Click()Dimnum$num=InputBox("请输入要查询的学号","学号查询")Ifnum<>""ThenAdodc1.CommandType=adCmdUnknownAdodc1.RecordSource=&quo

33、t;Select*FromfilenameWhereAdodc1.RefreshIfAdodc1.Recordset.EOFThena=MsgBox("未找到!请确认输入的学号是否正确。","Adodc1.CommandType=adCmdTableAdodc1.RecordSource="filename"显示全部数据记录Adodc1.Refresh刷新EndIfEndIfEndSub按姓名查询(同按学号):Adodc1.RecordSource="Select*FromfilenameWhere按高于某分查询(同按学号):Adod

34、c1.RecordSource="Select*FromfilenameWhere按低于某分值查询(同按学号):Adodc1.RecordSource="Select*FromfilenameWhere学号='"&num&"”'提示")姓名='"+name1+"”'成绩>="&en&""成绩<="&zcji&""帮助菜单各代码:(9) 打开帮助文件dbname=App.Pat

35、hIfRight$(dbname,1)<>""Thendbname=dbname&""找到文件路径Shell"hh.exe"+dbname+"z08050743.chm",1调用shell函数打开chm文件(10) 工具条按钮代码PrivateSubToolbar2_ButtonClick(ByValButtonAsMSComctILib.Button)SelectCaseButton.lndexCase1:Form3.ShowCase2:baocunCase3:Form4.ShowCase4:Form7.ShowCase5:Form8.ShowCase6:PopupMenutongjiCase7:CommonDialog1.ShowPrinterCase8:PopupMenuhelpCase9:EndEndSelectEndSub(11) 工具条下拉菜单代码:PrivateSubToolbar2_ButtonMenuClick(ByValButtonMenuasSComctlLib.ButtonMe)SelectCaseButtonMenu.lndexCase1:anxm_ClickCase2:anxh_ClickCase3:zcji_Click

温馨提示

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

评论

0/150

提交评论