




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1页2010夏季计算机实习报告班级:姓名:学号:班内序号:目录实习目的…………3实习要求…………3算术运算测试程序……………….3倒计时器………….3动画……………….3矩阵计算器设计流程及关键代码……………3算术运算测试程序1.1设计思路……………….31.2设计框图……………….41.3窗口截图……………….41.4设计故障及解决方法………………….6倒计时器2.1设计思路……………….62.2设计框图……………….62.3窗口截图……………….72.4设计故障及解决方法………………….7动画3.1设计思路……………….73.2设计框图……………….83.3窗口截图……………….83.4设计故障及解决方法………………….9矩阵计算器4.1设计思路……………….94.2设计框图……………….94.3窗口截图……………….104.4设计故障及解决方法………………….10实习总结…………11附:程序源代码……………………12算术运算测试系统源代码………12倒计时器源代码…………………15矩阵计算器源代码………………16实习目的通过本次计算机实习,学习和运用一些常见的计算机软件,在实习过程中培养了我们发现问题、解决问题的能力,在编程和制作小程序的过程中充分发挥了我们的想象力、创造力,激发我们主动学习的潜能。在学习中进步和提高,锻炼了我们的自学能力,对我们将来步入社会奠定了很好的基础。实习任务1、算术运算测试程序制作一个可供小学数学运算的程序。0—100整数加减乘除四则运算,如结果为小数四舍五入保留小数点后两位。根据输入题数出题,题目应为随机,每次应不一样。如:题目数=377-55=33*3=100/3=判断是否正确,如不正确给出正确答案,并计算分数,分数为正确题目的百分比(四舍五入取整数)。如:77-55=22对33*3=99对100/3=33错结果应为33.33分数为:67分2.倒计时器制作一个倒计时器,输入倒计时时间后,显示剩余时间,时间到后有提示音和提示画面。3.动画以每位同学自己为原型设计一组功夫动画,时间不少于20秒,动作不重复4.矩阵计算器可输入矩阵,并最大可进行10*10矩阵运算,可进行矩阵的加,乘,转置和求秩的运算。设计流程及关键代码1.算术运算测试程序1.1设计思路看到题目要求之后,首先确定所需要使用的软件(VB),用基本代码实现所要求的功能,在实现基本功能之后,逐渐对四则运算系统进行完善和修改。修改逐个出题的出题模式,改成当输入题目数时,所有题目同时出现在窗口内。可以选用数组控件的模式进行实现。修改由于窗体的大小限制只能出有限个题目的问题,加入了表格控件,由于表格控件不支持输入,所以嵌套一个text使其支持输入,实现可同时出几万道题目。对运算系统进行创新修改,分别设计了“低级”、“中级”、“高级”的难度区别,使学生在做测试时逐渐的提高。修改程序出现的bug,对输入题目数一栏进行了限定只能输入数字。对控件设计了在系统需要时才能使用,不使用时锁定的功能等。对操作界面进行美观设计和在功能上的创意设计,例如:在开始界面加入了带音效的命令按钮;根据不同的测试结果出现不同的音乐;对背景图片进行美观设计。1.2设计框图1.3窗口截图图1.1进入系统页面图1.2难度选择页面图1.3难度为低级的操作页面图1.4难度为高级的操作页面1.4设计故障及解决方法在进行使用数组控件时,加入语句未能实现数组控件的加载和卸载,通过反复修改代码发现是语句连接有误,最终实现所要实现的功能。在进行加入表格控件时,由于之前所安装的为精简版,发现不能加载,安装中文全版之后可以使用。由于表格控件不支持输入,所以不能实现在其上进行输入答案的功能,在查阅相关书籍之后,发现可以通过嵌套一个text来实现。问题顺利解决。2.倒计时器2.1设计思路根据倒计时的要求,确定选用VB作为编码工具。倒计时输入的时间格式分为时、分、秒,分别输入自己想要倒计的时间可以进行倒计时,并显示剩余时间,时间到后有提示音和提示画面。在实现这些功能的基础之上,对其进行完善和修改。在进入倒计时系统之前设计加入了一个欢迎的动画画面,画面温馨而有趣。加入了滚动标题栏,使倒计时带有时间滚动的急迫感,增加一种人们的时间观念。弹出的欢迎画面使用了椭圆形窗体,会使人眼前一亮,耳目一新。对输入的时间进行了只能输入数字的处理,并能自动识别输入的大于60秒的秒数为几时几分几秒。对界面进行美观设计,使其看起来生动而有趣。2.2设计框图2.3窗口截图图2.1倒计时系统欢迎动画画面图2.2倒计时系统主页面2.4设计故障及解决方法在进行输入倒计时时间的限定不能输入字母的时候,只要加入相应的语句就会连带着出现其他的问题,刚开始一直修改不好,后经同学指点方得要领,修改成功。插入音乐的路径等一些常见问题。3.动画3.1设计思路通过实习的要求,选用了flash软件,以自己为原型进行功夫设计,我选用小时候经常玩的游戏“魂斗罗”作为设计模型,把自己当成主人公加入其中,更多的是为了回味童年的欢乐。在设计当中,选用魂斗罗里面的经典画面和场景,把我加入其中,进行动画功夫设计。3.2设计框图3.3窗口截图图3.2爆炸的桥我在空中飞舞图3.3结尾3.4设计故障及解决方法由于对软件的操作不熟练,在制作过程中总会出现各种各样的问题,同学之间相互探讨和研究,共同解决问题。比如:帧的插入,关键帧的插入还有补间动画,场景的选择删除和连接,背景图片和音乐的插入等等。为了保证Flash动画的连贯性和美观性,对每一帧基本都进行了图片的修改和设计,工程量比较大,也考验人的耐心。在其的制作中也学到了很多新的知识。4.矩阵计算器4.1设计思路选择了矩阵计算器,用VB编写,考虑到使用的方便和便捷性,我对矩阵的运算进行了分类,加法和乘法编码在一个窗体,转置和求矩阵的秩编码在另外一个窗体内,实现其所需要的功能。并对其进行完善和修改。对矩阵的操作界面进行了美观设计。使其看起来美观。使用了闪烁标题栏的功能,增加矩阵计算器的可观性。对按钮进行了音效设定。增加的窗体伸缩的功能,方便用户进行使用。4.2设计框图4.3窗口截图图4.1进入系统画面图4.2矩阵加法和乘法运算界面4.4设计故障及解决方法矩阵计算器最难的部分就是秩的运算,在实现秩运算的时候,又重新复习了一遍线性代数里面的求秩的方法,在用代码一步一步实现。在进行闪烁标题栏设计的时候,功能相对复杂,代码所需要加入的函数总是出现错误,后经翻阅书籍发现是错误的定义了函数。在进行窗体伸缩功能设计的时候timer2在使用的时候本身是已经定义了可以进行伸展的功能只是在运行时不能实现,后经反复修改语句发现必须要在另一个函数定义里面也需要加入这些语句才能实现。实习总结通过两个多星期的学习和实践,培养了自己独立思考问题、解决问题的能力,激发了自我学习的潜能。在进行软件编程的时候,由于都是刚刚接触新的编程语言,对语言不够熟悉,在编程过程中就会出现各种问题,包括下标越界、函数未定义等等。尤其是在编写第一个四则运算程序的时候印象很深刻,在用数组控件和插入表格控件的时候语句编写总是出现错误,不能实现我所需要的功能,所以就翻阅我所能看到的书进行学习和修改,用了整整一天的时间,终于修改成功,兴奋喜悦的心情难以用语言来描述,只是我在想,编程是一种艺术,是一种能控制你心情大喜大悲的有力工具,当你怎么查也查不出错误的时候很痛苦,当你千辛万苦终于把你的代码修改成功的时候,那种成功喜悦的心情很是愉悦,兴奋也许就只是莫过于此。在用FLASH制作动画的时候,以自己为原型进行功夫设计,我就想到了小时候经常玩的游戏魂斗罗,所以就把自己当成了游戏里面的主人公进行动画设计,也算是当成一种童年的回忆。转眼之间小学期就要结束了,在小学期当中发现自己学会了很多,尤其是在编程语言方面,学到了很多新的知识,也懂得如何在最快的时间内写完程序,如何最好最快的改程序。还有以前就一直想学FLASH,总是由于各种各样的原因没有时间学成,这次正好利用了这次机会学习FLASH,对利用FLASH如何制作动画也了解了。总之,小学期让我收获了很多,也学到了很多,希望以后还会有这样的机会。附:程序关键部分源代码1.算术运算测试系统源代码【高级运算程序关键部分源代码】PrivateSubCommand1_Click()OnErrorResumeNextDimnAsInteger,iAsIntegerDimVAsSingleDims1AsStringDimzAsIntegern=Val(Text1.Text)ReDima(n-1)ReDimB(n-1)ReDimC(n-1)ReDimD(n-1)ReDimOp(n-1)ReDimAnswer(n-1)MSFlexGrid1.Rows=n+1Fori=0Ton-1a(i)=Rnd*100B(i)=1+Rnd*99Op(i)=Rnd*3IfOp(i)=1Anda(i)<B(i)Thenz=a(i)a(i)=B(i)B(i)=zEndIfIfOp(i)=3AndB(i)=0ThenB(i)=B(i)+1EndIfMSFlexGrid1.TextMatrix(i+1,0)=i+1MSFlexGrid1.TextMatrix(i+1,1)=a(i)&OpName(Op(i))&B(i)&"="MSFlexGrid1.TextMatrix(i+1,2)=""MSFlexGrid1.TextMatrix(i+1,3)=""MSFlexGrid1.TextMatrix(i+1,4)=""SelectCaseOp(i)Case0Answer(i)=a(i)+B(i)Case1Answer(i)=a(i)-B(i)Case2Answer(i)=a(i)*B(i)Case3Answer(i)=Format(a(i)/B(i),"0.##")IfRight(Answer(i),1)="."ThenAnswer(i)=Left(Answer(i),Len(Answer(i))-1)EndSelectNextiText2.Text=""F1=FalseEndSubDimiAsIntegerDimn2AsInteger,n3AsIntegern2=0n3=0Fori=1ToMSFlexGrid1.Rows-1IfMSFlexGrid1.TextMatrix(i,2)=Answer(i-1)ThenMSFlexGrid1.TextMatrix(i,3)="对"n2=n2+1ElseMSFlexGrid1.TextMatrix(i,3)="错"EndIfMSFlexGrid1.TextMatrix(i,4)=Answer(i-1)n3=n3+1NextiText6.Text=Format(n2*100/n3,"0")WindowsMediaPlayer1.URL="F:\22.WAV"WindowsMediaPlayer1.Controls.playIfText6.Text<60ThenMsgBox"你的成绩是"&Text6.Text&"分,小朋友要努力哦!~",vbOKOnly,"成绩"ElseIfText6.Text>=60AndText6.Text<90ThenMsgBox"你的成绩是"&Text6.Text&"分,再接再厉,你会更优秀!~",vbOKOnly,"成绩"ElseIfText6.Text>=90ThenMsgBox"哇,你的成绩是"&Text6.Text&"分,很优秀,真厉害!~",vbOKOnly,"成绩"EndIfEndSubPrivateSubCommand3_Click()Form4.ShowForm2.HideEndSubPrivateSubCommand4_Click()DimanAsIntegeran=MsgBox("真的想退出吗?",vbYesNoCancel+vbQuestion,"退出")Ifan=vbYesThenEndEndIfEndSubPrivateSubForm_Load()Form2.HideForm2.Top=(Screen.Height-Form2.Height)/2Form2.Left=(Screen.Width-Form2.Width)/2RandomizeOpName(0)="+"OpName(1)="-"OpName(2)="*"OpName(3)="/"WithMSFlexGrid1.ColWidth(0)=1000.ColWidth(1)=2000.ColWidth(2)=800.ColWidth(3)=800.ColWidth(4)=1200.TextMatrix(0,0)="序号".TextMatrix(0,1)="题目".TextMatrix(0,2)="答案".TextMatrix(0,3)="对错".TextMatrix(0,4)="标准答案"EndWithF1=FalseWindowsMediaPlayer1.URL="F:\22.WAV"WindowsMediaPlayer1.Controls.stopEndSubPrivateSubMSFlexGrid1_EnterCell()WithMSFlexGrid1If.Col=2ThenText2.Left=.Left+.CellLeftText2.Top=.Top+.CellTopText2.Width=.CellWidthText2.Height=.CellHeightText2.Text=.TextText2.Visible=TrueElseText2.Visible=FalseEndIfEndWithEndSubPrivateSubMSFlexGrid1_Scroll()Text2.Visible=FalseEndSubPrivateSubText1_Change()‘限定只能输入数字IfIsNumeric(Text1.Text)ThenIfInt(Text1.Text)=Text1.TextThenIfText1.Text<=0ThenMsgBox"你输入的数不符合要求",vbOKOnly,"温馨提示"Command1.Enabled=FalseElseCommand1.Enabled=TrueEndIfIfText1.Text>=300ThenMsgBox"你出的题太多了!",vbOKOnly,"温馨提示"Command1.Enabled=FalseElseCommand1.Enabled=TrueEndIfEndIfElseIfText1.Text<>""ThenMsgBox"你输入的不符合要求",vbOKOnly,"温馨提示"Command1.Enabled=FalseElseCommand1.Enabled=TrueEndIfF1=TrueEndSubPrivateSubText2_Change()MSFlexGrid1.Text=Text2.TextEndSub2.倒计时器关键部分源代码PrivateSubCommand3_Click()‘重置功能Text1.Text=""Text2.Text=""Text3.Text=""Label1.Caption="00:00:00"Command1.Caption="开始"Command1.Enabled=TrueEndSubPrivateSubText1_KeyPress(KeyAsciiAsInteger)‘限定只能输入数字DimNumbersAsStringNumbers="1234567890"+Chr(8)+Chr(46)IfInStr(Numbers,Chr(KeyAscii))=0ThenKeyAscii=0EndIfEndSubPrivateSubTimer1_Timer()‘计时功能IfText1.Text=""AndText2.Text=""AndText3.Text=""ThenTimer1.Enabled=FalseElseTimer1.Enabled=Trueh=Val(Text1.Text)m=Val(Text2.Text)s=Val(Text3.Text)n=h*3600+m*60+sIfn>0Thenn=n-1h=n\3600m=(nMod3600)\60s=n-h*3600-m*60Text1.Text=CStr(h)Text2.Text=CStr(m)Text3.Text=CStr(s)Label1.Caption=Format(h,"00")&":"&Format(m,"00")&":"&Format(s,"00")ElseIfn=0ThenTimer1.Enabled=FalseCommand1.Enabled=TrueText1.Text=""Text2.Text=""Text3.Text=""Form2.ShowForm1.HideWindowsMediaPlayer1.URL="F:\22.WAV"WindowsMediaPlayer1.Controls.playEndIfEndIfEndIfEndSub3.矩阵计算器关键部分源代码PrivateSubCommand3_Click()‘矩阵加法Picture3.ClsIfm=0Orn=0Orp=0Orq=0ThenMsgBox"请先输入矩阵",vbOKOnly,"提示"GoTolab:EndIfIfm<>pOrn<>qThenMsgBox"请输入行数和列数相同的矩阵才可相加",vbOKOnly,"提示"EndIfIfm=pAndn=qThenLabel1.Caption="+"ReDimc(1Tom,1Ton)AsIntegerFori=1TomForj=1Tonc(i,j)=a(i,j)+b(i,j)Picture3.Printc(i,j);NextjPicture3.PrintNextiEndIflab:EndSubPrivateSubCommand4_Click()‘矩阵乘法Picture3.ClsIfm=0Orn=0Orp=0Orq=0ThenMsgBox"请先输入矩阵",vbOKOnly,"提示"GoTolab:EndIfIfn<>pThenMsgBox"请输入A矩阵列数和B矩阵行数相等的矩阵再做乘积",vbOKOnly,"提示"EndIfIfn=pThenLabel1.Caption="x"ReDimc(1Tom,1Toq)AsIntegerFori=1TomForj=1ToqFork=1Tonc(i,j)=a(i,k)*b(k,j)+c(i,j)NextkPicture3.Printc(i,j);NextjPicture3.PrintNextiEndIflab:EndSubPrivateSubCommand2_Click()‘矩阵的转置Picture2.ClsIfnb=0Ormb=0ThenMsgBox"请先输入矩阵",vbOKOnly,"提示"GoTolab:EndIfLabel1.Caption="转置为"ReDimeb(1Tomb,1Tonb)Fori=1TombForj=1Tonbeb(i,j)=b(j,i)Picture2.PrintInt(eb(i,j));NextPicture2.PrintNextlab:EndSubPrivateSubCommand3_Click()‘矩阵的秩flag0=0Picture2.ClsLabel1.Caption="秩为"ReDimfbn(1Tonb,1Tomb)Fori=1Tonb'将b的值赋给fbForj=1Tombfbn(i,j)=b(i,j)NextNext'判断行Ifnb<=1Thenbzhin=nbElsebzhin=nb'秩的初始值为行数Forjn=1Tobzhin'若出现0行则移到最后一行,并将秩减1Ifjn<=bzhinThenflag0=0Forjm=1TombIfInt(fbn(jn,jm))=0Thenflag0=flag0+1EndIfNextjmIfflag0=mbThenCallexchangen(fbn(),fbn(),jn,bzhin,mb)bzhin=bzhin-1jn=jn-1EndIfEndIfNextjnFork=1Tobzhin-1kkk=knnb=bzhinDoWhileInt(fbn(k,k))=0'令k行的第k个数不为0Ifnnb>kThenCallexchangen(fbn(),fbn(),k,nnb,mb)nnb=nnb-1Else:ExitDoEndIfLoopIfnnb>kOrfbn(k,k)<>0Then'k行k个元素不为0的准确判定Forii=k+1Tobzhi'将k行后面的每行第k列消0Calladdn(fbn(),fbn(),ii,k,mb,kkk)NextiiForjn=1Tobzhin'若出现0行则移到最后一行,并将秩减1Ifjn<=bzhinThenflag0=0Forjm=1TombIfInt(fbn(jn,jm))=0Thenflag0=flag0+1EndIfNextjmIfflag0=mbThenCallexchangen(fbn(),fbn(),jn,bzhin,mb)bzhin=bzhin-1jn=jn-1EndIfEndIfNextjnEndIfNextkEndIfReDimfbm(1Tonb,1Tomb)Fori=1Tonb'将b的值赋给fbForj=1Tombfbm(i,j)=b(i,j)NextNext'判断列Ifmb<=1Thenbzhim=mbElsebzhim=mb'秩的初始值为列数Forjn=1Tobzhim'若出现0列则移到最后一列,并将秩减1Ifjn<=bzhimThenflag0=0Forjm=1TonbIfInt(fbm(jm,jn))=0Thenflag0=flag0+1EndIfNextjmIfflag0=nbThenCallexchangem(fbm(),fbm(),jn,bzhim,nb)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年编导写作试题及答案
- 外贸代理合同
- 写字楼物业管理合同
- 2025年工业互联网平台数据清洗算法在工业互联网平台数据恢复中的应用报告
- 2025年工业互联网平台SDN技术在智能工厂设备远程控制中的应用报告
- 2025年废旧塑料资源化利用技术进展与产业应用前景分析
- 财商测试标准题库及答案
- 2025年建筑工程设备买卖合同书
- 船舶火灾知识题库及答案
- 电梯维护服务优化项目可行性研究报告
- 二级豆粕创新创业项目商业计划书
- (统编2025版)道德与法治一年级上册教学计划(新教材)
- 2025云南昆明巫家坝建设发展有限责任公司招聘23人笔试备考题库及答案解析
- 2025年电气工程师高级专业考试题库
- 高二奋发+勇攀高峰+课件-2025-2026学年高二上学期开学第一课主题班会
- 施工员钢筋工程知识培训(培训)课件
- 质量管理体系审核中常见的不合格项
- 共用水电费分割单模板
- 《阿房宫赋》全篇覆盖理解性默写
- 学校体育学(第三版)ppt全套教学课件
- 住建部《建筑业10项新技术(2017版)》解读培训课件
评论
0/150
提交评论