




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件技术认知实验报告PAGEPAGE14计算机与信息工程系09级软件技术专业Z090555班闫素阁目录一、实习任务………………..……11.实习任务简介…………..…..12.《学生成绩查询统计系统》实现的功能概论……………1.3.实习目的……………………14.实验的背景和意义………….15.软件工具和需要掌握的知识……………….1二、系统分析…………………21.系统功能模块的划分…………………….…22.初步对此程序的描述……….2三、系统设计…………………21.登陆界面实现的细节………………….…..22.其他界面实现的细节………3调试、排错、测试、试运行过程………..….…...…31.调试、排错、测试、试运行解析……………….………..4完整源程序……………..………………...61.完整源程序代码……………………..…...…6总结体会…………….….………………..131.心得体会………………..…..13参考文献……………….……14 实习任务1.习任务简介:在课程进行时听老师介绍软件工程学的基本思想进行软件开发的原则和方法;结构化分析的思路和步骤以及结构化编程的方法和面向对象的思想和程序设计方法给了我编辑此程序的能力。在查阅部分资料和咨询同学后按照软件开发的一般方法和步骤就手动完成了《学生信息查询统计系统》。2.《学生成绩查询统计系统》要实现的功能概论①登录界面:密码最多尝试3次,连续3次均输入错误系统自动退出。②具有录入成绩、添加记录、删除记录、修改记录功能。③具有成绩查询功能,可以按照学号、课程号、课程名、分数段进行查询。为便于查询,所有的学号和课程号可考虑以下拉列表的形式给出。④具有全部成绩浏览功能,且能与数据库表最新数据同步。⑤具有统计功能,能以直方图、饼图、折线图、散点图直观表示各成绩段的分布情况。⑥具有打印学生成绩报表的功能。⑦具有菜单和工具条的双重操作功能。3.实习目的:在考试来临之际,此次实习给了我们一个全面复习的机会以及自我认知的空间!《学生成绩查询统计系统》的功能比较强大,全面系统的运用我们以前学习的知识,如P54页shell函数的运用!这次试验的也给了我与同学充分交流的机会,共同研究讨论这次试验,分享思想加深了友谊,我相信对我今后的学习生活定能起到不小的作用!4.实验的背景和意义:此次实验是我们由苗老师带领全面学习了VisualBasic程序设计教程之后进行的。做完此课程设计就迎来了我们的期末考试,由于时间比较紧迫和考试的压力以及此课程设计涉及的知识点太多,进而我们难免有点急躁,还好一旦进入状态时间就不知不觉的溜走了,此时的我们享受着做题的乐趣,枯燥和反感自然也就烟消云散了。这次课程设计给我的感受真的很深刻,意义非凡呀。Access、DataReport、ImageList、ToolBar等也是在这一次课程设计中才得以熟练的运用的我的,耐心,细心,恒心进而也得以锻炼。5.软件工具和需要掌握的知识要熟悉Access、DataReport、ImageList、ToolBar,adodc,Datalist等控件的运用,要知道控件的添加和窗体的调试和控件的布局以及其对应属性的设置!要熟悉课本以便在编辑时便于记不清的代码的查询。要留意可当上老师讲的书本内外的内容,如DataReport就是老师补充的内容,但此次课程设计涉及到了它,进而我也更加清楚了其运用。要熟悉在VB程序内部编辑新建数据库,新建表。此次课程设计耗时量很大,新建的窗体不少,代码也相当的多且有点繁杂。尤其数据库连接时,且要使其与控件同步进行。分数段的划分都需要运用到函数,故需要掌握其对应函数的应用!ToolBar的应用也应给予充分重视,尤其是其属性中的“值”的设定以及关键字的设定!系统分析:1.系统功能模块的划分:2.初步对此程序的描述:Form2为我的登陆主界面,用户名和密码连接着我所建的一个“用户和密码”数据库,登录界面内有用户注册功能,其与用户和密码数据库同步。Form1为主界面,里面包含着强大的功能连接着其他五个窗体。除主界面和注册界面外,其他窗体都连接着我所建的另一个数据库“基本情况”,添加窗口和数据库“基本情况”实现了同步,同时总体成绩界面与数据库里的成绩保持一致,所以总体成绩图示界面实现了动态掩饰的功能。在个人信息查询界面只需在Msgbox中输入想要查询的学号,如果“基本情况”中有此学号,那么在此窗体内便会显示此学号的学生信息,没有查到你所输入的学号的话则提示无此学号。同一课程信息界面则是运用DataList和Adodc的结合来实现其功能的。系统设计:登陆界面内用户注册页面实现的细节:PrivateSubCommand1_Click()IfText1=""OrText2=""OrText3=""ThenMsgBox"信息不完整,部分注册",,"敬请注意"ElseIfText2.Text<>Text3.TextThenMsgBox"两此输入的密码不一致,请从新输入",,"警告"Text2.Text=""Text3.Text=""Text2.SetFocusElseAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select*from用户和密码"SetDataSource=Adodc1Adodc1.RefreshAdodc1.Recordset.AddNewAdodc1.Recordset.Fields("用户名")=Text1.TextAdodc1.Recordset.Fields("密码")=Text2.TextAdodc1.Recordset.UpdateMsgBox"注册成功",,"温馨提示"Form1.Text1.Text=Text1.TextUnloadForm3EndIfEndSub在登陆界面也是运用数据库的连接来查找是否存在其人的。再次就不做过多的解释了,详情见第五项。2.其他界面实现的细:在主界面帮助菜单中有计算机的调用,其主要shell函数的运用i=Shell("calc.exe",1),而相应的记事本的调用也是运用此函数j=Shell("notepad"+"D:\闫素阁VB课设\关于此程序.Txt",1)。在用户注册时运用简单的部件结合,便调试出了此程序。此代码如下:在学号查询窗口是运用Datalist和Adodc的结合来运行的,代码如下:PrivateSubDataList1_Click()Adodc1.CommandType=adCmdUnknownAdodc1.RecordSource="select*from基本情况where学号='"+DataList1.Text+"'"Adodc1.RefreshSetDataGrid1.DataSource=Adodc1EndSubPrivateSubForm_Load()Adodc2.CommandType=adCmdUnknownAdodc2.RecordSource="select学号from基本情况groupby学号"Adodc2.RefreshSetDataList1.DataSource=Adodc2EndSubToolbar工具栏按钮用Case语句编辑的几代码如下:PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)SelectCaseButton.IndexCase1CommonDialog1.ShowOpenCase2Adodc1.RecordSource="基本情况"Adodc1.RefreshCase3DataReport1.ShowCase4DimaskAsIntegerask=MsgBox("删除否?",vbYesNo)Ifask=6ThenAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextIfAdodc1.Recordset.EOFThenAdodc1.Recordset.MoveLastEndIfEndSelectEndSub调试、排错、测试、试运行过程各控件在保证代码编辑正确无误的情况下一点要注意各属性值的变更,如果在代码正确的前提下,还打不到预期的结果,那么你就要高度注意注意其控件的属性了!(1)调试、排错、测试、试运行解析:(1)如你输入的用户名和密码在“用户和密码”数据库中查找不到,那么系统将弹出提示对话框,其如图1所示:图1(2)进入主窗体之后迎接你的便是主界面,一点要注意照片的绑定,以免出现气人不对其号的情况。其窗体演示图2:图2(3)在添删改菜单栏中有同一课程同学信息查询窗口这一设置,其功能能够从“基本情况”数据库中进行根源查找,以确使同一专业的学生信息全盘显示在Form5中,其图示示范如图3:图3(4)在菜单栏中亦有添加同学这一功能,其演示图示如图4:图4(5)为了使总体成绩更加明了,在Form6中我利用其余数据库“基本情况”连接,确保了其图示与数据库同步,便于更加直接的反映出添加或删除学生的动态及最总体分数段的浏览,其图示如图5:图5完整源程序由于窗体的不同,故我要按不同的窗体分别来写代码,如下便是完整源程序:完整源程序代码:登陆界面Form1:PrivateSubCommand1_Click()Staticcount1AsIntegerIfText1.Text=""OrText2.Text=""ThenMsgBox"请把登录信息填写完整!",,"温馨提示"ElseAdodc1.CommandType=adCmdUnknownAdodc1.RecordSource="select*from用户和密码where用户名='"+Text1.Text+"'and密码='"+Text2.Text+"'"Adodc1.RefreshIfAdodc1.Recordset.RecordCount>0Then‘在数据库里查找如找到则为1UnloadMeForm1.ShowElseMsgBox"用户名或密码错误,请重新输入",,"温馨提示"Text1.Text=""Text2.Text=""Text1.SetFocuscount1=count1+1Ifcount1>3ThenMsgBox"登陆错误超过3次,系统自动退出!",,"温馨提示"EndEndEndIfEndIfEndIfEndSubPrivateSubCommand2_Click()IfMsgBox("是否退出系统!",vbOKCancel+vbQuestion,"系统提示")=vbOKThenEndEndIfEndSubPrivateSubCommand3_Click()Form3.ShowEndSub新用户注册界面的代码如Form2:PrivateSubCommand1_Click()IfText1=""OrText2=""OrText3=""ThenMsgBox"信息不完整,部分注册",,"敬请注意"ElseIfText2.Text<>Text3.TextThenMsgBox"两此输入的密码不一致,请从新输入",,"警告"Text2.Text=""Text3.Text=""Text2.SetFocusElseAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select*from用户和密码"SetDataSource=Adodc1Adodc1.RefreshAdodc1.Recordset.AddNewAdodc1.Recordset.Fields("用户名")=Text1.TextAdodc1.Recordset.Fields("密码")=Text2.TextAdodc1.Recordset.UpdateMsgBox"注册成功",,"温馨提示"Form1.Text1.Text=Text1.TextUnloadForm3EndIfEndSubPrivateSubCommand2_Click()IfMsgBox("是否退出系统!",vbOKCancel+vbQuestion,"系统提示")=vbOKThenEndEndIfEndSub主界面Form2的代码如下:PrivateSubCommand1_Click()Dimstrb()AsByteCommonDialog1.ShowOpenOpenCommonDialog1.FileNameForBinaryAs#1f1=LOF(1)ReDimstrb(f1)Get#1,,strbAdodc1.Recordset.Fields("照片").AppendChunkstrbClose#1Image1.Picture=LoadPicture(CommonDialog1.FileName)EndSubPrivateSubgerenxinxichaxun_Click()Form7.ShowEndSubPrivateSubguanyucichengxu_Click()j=Shell("notepad"+"D:\闫素阁VB课设\关于此程序.Txt",1)EndSubPrivateSubjisuanqi_Click()i=Shell("calc.exe",1)EndSubPrivateSubkechenghaochaxun_Click()Form5.ShowEndSubPrivateSubshanchu_Click()DimaskAsIntegerask=MsgBox("删除否?",vbYesNo)Ifask=6ThenAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextIfAdodc1.Recordset.EOFThenAdodc1.Recordset.MoveLastEndIfEndSubPrivateSubtianjia_Click()Form4.ShowEndSubPrivateSubtongjitu_Click()Form6.ShowEndSubPrivateSubtongyikechengxuesheng_Click()Form5.ShowEndSubPrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)SelectCaseButton.IndexCase1CommonDialog1.ShowOpenCase2Adodc1.RecordSource="基本情况"Adodc1.RefreshCase3DataReport1.ShowCase4DimaskAsIntegerask=MsgBox("删除否?",vbYesNo)Ifask=6ThenAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextIfAdodc1.Recordset.EOFThenAdodc1.Recordset.MoveLastEndIfEndSelectEndSubPrivateSubxingzhuangyanshi_Click()Form6.ShowEndSubPrivateSubxuehaochaxun_Click()Form8.ShowEndSubPrivateSubxueshengxinxibiao_Click()DataReport1.ShowEndSubPrivateSubzhaorenchuangkou_Click()Form7.ShowEndSub添加学生窗口Form4对应的代码如下:PrivateSubCommand1_Click()IfText1=""OrText2=""OrText3=""OrText4=""OrText5=""ThenMsgBox"信息不完整,部分注册",,"敬请注意"ElseAdodc1.CommandType=adCmdTextAdodc1.RecordSource="select*from基本情况"SetDataSource=Adodc1Adodc1.RefreshAdodc1.Recordset.AddNewAdodc1.Recordset.Fields("学号")=Text1.TextAdodc1.Recordset.Fields("姓名")=Text2.TextAdodc1.Recordset.Fields("课程号")=Text3.TextAdodc1.Recordset.Fields("课程名")=Text3.TextAdodc1.Recordset.Fields("分数")=Text4.TextAdodc1.Recordset.UpdateMsgBox"添加成功",,"温馨提示"Form1.Text1.Text=Text1.TextEndIfEndSubPrivateSubCommand2_Click()Form4.Visible=FalseEndSub查询同一课程同学的信息的窗体Form5对应的代码如下:PrivateSubDataList1_Click()Adodc1.CommandType=adCmdUnknownAdodc1.RecordSource="select*from基本情况where课程号='"+DataList1.Text+"'"Adodc1.RefreshSetDataGrid1.DataSource=Adodc1EndSubPrivateSubForm_Load()Adodc2.CommandType=adCmdUnknownAdodc2.RecordSource="select课程号from基本情况groupby课程号"Adodc2.RefreshSetDataList1.DataSource=Adodc2EndSub总体分数图示窗体Form6代码如下:Dima$(5),b%(5),maxPublicSubzbx()Clsa(0)="优秀"a(1)="良好"a(2)="中等"a(3)="及格"a(4)="不及格"DoWhileNotForm1.Adodc1.Recordset.EOFSelectCaseForm1.Adodc1.Recordset.Fields("分数")CaseIs<60b(0)=b(0)+1Case60To70b(1)=b(1)+1Case70To80b(2)=b(2)+1Case80To90b(3)=b(3)+1Case90To100b(4)=b(4)+1EndSelectForm1.Adodc1.Recordset.MoveNextLoopmax=0Fori=0To4Ifb(i)>maxThenmax=b(i)NextiScale(-1,1.2*max)-(max*5,-max*0.1)Line(0,0)-(6*max,0):Line(0,max*1.2)-(0,0)CurrentX=0CurrentY=0Me.Print"统计结果:";Fori=0To4Me.Printa(i)&"的人数为";b(i);",";NextiEndSubPrivateSubCommand1_Click()Dimw%zbxw=max/3X1=wFori=0To4X2=X1+wY2=b(i)Line(X1,0)-(X2,Y2),QBColor(9),BFCurrentX=X1CurrentY=Y2+max*0.1Printa(i)X1=X2+wNextiEndSubPrivateSubCommand2_Click()zbxw=2.5*max/2CurrentX=2.5*max/2:CurrentY=b(1)Fori=0To2.5x=x+w:y=b(i)Line-(x,y):DrawWidth=10PSet(x,y)'Printa(i)DrawWidth=1NextiEndSubPrivateSubCommand3_Click()zbxx=Abs(Me.ScaleHeight/3)+1r=max/2Sum=0Fori=0To4Sum=Sum+b(i)NextiMe.FillStyle=0a1=0Fori=0To4a2=a1+2*3.1415926*b(i)/SumFillColor=QBColor(15*Rnd)Circle(x,x),r,,-a1,-a2CurrentX=x+r*Cos((a1+a2)/10)CurrentY=x-r*Sin((a1+a2)/8)PrintFormat(b(i)/Sum*100,"0.00");"%"a1=a2NextiEndSubPrivateSubCommand4_Click()zbxFori=1To5w=3*max/5:DrawWidth=4x=x+w:y=b(i)PSet(x,y)NextiDrawWidth=2EndSub查找个人信息窗口Form7代码如下:PrivateSubCommand1_Click()DimmAsStringm=InputBox("请输入学号","查找窗")Adodc1.Recordset.Find"学号='"&m&"'",,,1IfAdodc1.Recordset.EOFThenMsgBox"无此学号!",,"提示"EndSubPrivateSubCommand2_Click()Visible=FalseEndSub同一学号窗体Form8代码如下:PrivateSubDataList1_Click()Adodc1.CommandType=adCmdUnknownAdodc1.RecordSource="select*from基本情况where学号='"+DataList1.Text+"'"Adodc1.RefreshSetDataGrid1.DataSource=Adodc1EndSubPrivateSubForm_Load()Adodc2.CommandType=adCmdUnknownAdodc2.RecordSource="select学号from基本情况groupby学号"Adodc2.RefreshSetDataList1.DataSource=Adodc2EndSub六.总结体会这次课程设计在紧张,挑战与快乐中度过,觉得从中获益匪浅1.心得体会期末考试即将来临,这次VB实习给了我们一个全面复习VB的机会以及自我认知的空间!《学生成绩查询统计系统》的功能比较强大,全面系统的运用我们以前学习的知识,如P54页shell函数的运用!这次试验的也给了我与同学充分交流的机会,共同研究讨论这次试验,分享思想加深了友谊,我相信对我今后的学习生活定能起到不小的作用!这次实习使我更加熟悉Access、DataReport、ImageList、ToolBar,adodc,Datalist等控件的操作,熟练掌握了常用控件的添加、窗体的调试、控件的布局以及其对应属性的设置!熟悉了课本便于了我在编辑程序时记不清的代码的查询。由于我上课比较留意课堂上老师讲的课本内外设计的问题,使我较容易的运用了DataReport报表的制作,因此次课程设计涉及到了它,进而我也更加清楚了其运用。我更加熟悉在VB程序内部编辑新建数据库,新建表的运用我所做的这次课程设计耗时量很大,新建的窗体比较多,代码也相当的多且有点繁杂。尤其数据库连接时,且要使其与控件同步进行。分数段的划分都需要运用到函数,这次课程设计也是我熟悉了部分函数的应用!ToolBar的编辑也耗费了我的不少脑力,尤其是其属性中的“值”的设定以及关键字的设定!尤其是我在编辑登陆窗体时遇到了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心理健康试题及答案大全
- 如何建立电商与农业的协同发展机制试题及答案
- 基于SDN的工业互联网平台智能生产质量优化与集成报告
- 金融机构2025年数字化转型中的风险管理与内部控制
- 家具行业理论基础与实际应用结合试题及答案
- 自主品牌电动汽车的竞争优势试题及答案
- 文化素养与数学的试题及答案
- 物理考试复习的最终冲刺试题及答案
- 四川省泸州市天立国际学校2025年高三第5次月考试题语文试题试卷含解析
- 建筑施工安全责任制落实的重要步骤试题及答案
- 烟台某公寓电气设计毕业论文
- 2022全国高考真题化学汇编:专题 烃 卤代烃
- 脑血管病介入诊疗并发症及其处理课件
- 家校共育一年级家长会ppt
- 《微电子学概论》第八章-光电子器件课件
- 化学分析送样单2
- 化工原理教案:6 吸收
- 【高考真题】2022年新高考浙江语文高考真题试卷(Word版含答案)
- 铝镁料仓等施工方案精品
- 目前最准确的通达信缠论分笔公式
- 《丑小鸭》教学设计
评论
0/150
提交评论