1、计算机VB实习报告2010 夏季计算机实习报告班级:姓名: 学号:班内序号:目录一. 实习目的3二. 实习要求31. 算术运算测试程序.32. 倒计时器.33. 动画.34. 矩阵计算器三. 设计流程及关键代码31. 算术运算测试程序1.1设计思路.31.2设计框图.41.3窗口截图.41.4设计故障及解决方法.62. 倒计时器2.1设计思路.62.2设计框图.62.3窗口截图.72.4设计故障及解决方法.73. 动画3.1设计思路.73.2设计框图.83.3窗口截图.83.4设计故障及解决方法.94. 矩阵计算器4.1设计思路.94.2设计框图.94.3窗口截图.104.4设计故障及解决方法
2、.10四. 实习总结11附:程序源代码121. 算术运算测试系统源代码122. 倒计时器源代码153. 矩阵计算器源代码16一 实习目的通过本次计算机实习,学习和运用一些常见的计算机软件,在实习过程中培养了我们发现问题、解决问题的能力,在编程和制作小程序的过程中充分发挥了我们的想象力、创造力,激发我们主动学习的潜能。在学习中进步和提高,锻炼了我们的自学能力,对我们将来步入社会奠定了很好的基础。二 实习任务1、算术运算测试程序制作一个可供小学数学运算的程序。0100 整数加减乘除四则运算,如结果为小数四舍五入保留小数点后两位。根据输入题数出题,题目应为随机,每次应不一样。如:题目数=377-55
3、=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),
4、用基本代码实现所要求的功能,在实现基本功能之后,逐渐对四则运算系统进行完善和修改。a) 修改逐个出题的出题模式,改成当输入题目数时,所有题目同时出现在窗口内。可以选用数组控件的模式进行实现。b) 修改由于窗体的大小限制只能出有限个题目的问题,加入了表格控件,由于表格控件不支持输入,所以嵌套一个text使其支持输入,实现可同时出几万道题目。c) 对运算系统进行创新修改,分别设计了“低级”、“中级”、“高级”的难度区别,使学生在做测试时逐渐的提高。d) 修改程序出现的bug,对输入题目数一栏进行了限定只能输入数字。对控件设计了在系统需要时才能使用,不使用时锁定的功能等。e) 对操作界面进行美观设计
5、和在功能上的创意设计,例如:在开始界面加入了带音效的命令按钮;根据不同的测试结果出现不同的音乐;对背景图片进行美观设计。1.2设计框图1.3窗口截图图1.1 进入系统页面图1.2 难度选择页面图1.3 难度为低级的操作页面图1.4 难度为高级的操作页面1.4设计故障及解决方法a) 在进行使用数组控件时,加入语句未能实现数组控件的加载和卸载,通过反复修改代码发现是语句连接有误,最终实现所要实现的功能。b) 在进行加入表格控件时,由于之前所安装的为精简版,发现不能加载,安装中文全版之后可以使用。c) 由于表格控件不支持输入,所以不能实现在其上进行输入答案的功能,在查阅相关书籍之后,发现可以通过嵌套
6、一个text来实现。问题顺利解决。2.倒计时器2.1设计思路 根据倒计时的要求,确定选用VB作为编码工具。倒计时输入的时间格式分为时、分、秒,分别输入自己想要倒计的时间可以进行倒计时,并显示剩余时间,时间到后有提示音和提示画面。在实现这些功能的基础之上,对其进行完善和修改。a) 在进入倒计时系统之前设计加入了一个欢迎的动画画面,画面温馨而有趣。b) 加入了滚动标题栏,使倒计时带有时间滚动的急迫感,增加一种人们的时间观念。c) 弹出的欢迎画面使用了椭圆形窗体,会使人眼前一亮,耳目一新。d) 对输入的时间进行了只能输入数字的处理,并能自动识别输入的大于60秒的秒数为几时几分几秒。e) 对界面进行美
7、观设计,使其看起来生动而有趣。2.2设计框图2.3窗口截图图2.1 倒计时系统欢迎动画画面图2.2 倒计时系统主页面2.4设计故障及解决方法a) 在进行输入倒计时时间的限定不能输入字母的时候,只要加入相应的语句就会连带着出现其他的问题,刚开始一直修改不好,后经同学指点方得要领,修改成功。b) 插入音乐的路径等一些常见问题。3.动画3.1设计思路 通过实习的要求,选用了flash软件,以自己为原型进行功夫设计,我选用小时候经常玩的游戏“魂斗罗”作为设计模型,把自己当成主人公加入其中,更多的是为了回味童年的欢乐。在设计当中,选用魂斗罗里面的经典画面和场景,把我加入其中,进行动画功夫设计。3.2设计
8、框图3.3窗口截图图3.2 爆炸的桥 我在空中飞舞图3.3 结尾3.4设计故障及解决方法由于对软件的操作不熟练,在制作过程中总会出现各种各样的问题,同学之间相互探讨和研究,共同解决问题。比如:帧的插入,关键帧的插入还有补间动画,场景的选择删除和连接,背景图片和音乐的插入等等。为了保证Flash动画的连贯性和美观性,对每一帧基本都进行了图片的修改和设计,工程量比较大,也考验人的耐心。在其的制作中也学到了很多新的知识。4.矩阵计算器4.1设计思路 选择了矩阵计算器,用VB编写,考虑到使用的方便和便捷性,我对矩阵的运算进行了分类,加法和乘法编码在一个窗体,转置和求矩阵的秩编码在另外一个窗体内,实现其
9、所需要的功能。并对其进行完善和修改。a) 对矩阵的操作界面进行了美观设计。使其看起来美观。b) 使用了闪烁标题栏的功能,增加矩阵计算器的可观性。c) 对按钮进行了音效设定。d) 增加的窗体伸缩的功能,方便用户进行使用。4.2设计框图4.3窗口截图图4.1 进入系统画面图4.2 矩阵加法和乘法运算界面4.4设计故障及解决方法a) 矩阵计算器最难的部分就是秩的运算,在实现秩运算的时候,又重新复习了一遍线性代数里面的求秩的方法,在用代码一步一步实现。b) 在进行闪烁标题栏设计的时候,功能相对复杂,代码所需要加入的函数总是出现错误,后经翻阅书籍发现是错误的定义了函数。c) 在进行窗体伸缩功能设计的时候
10、timer2在使用的时候本身是已经定义了可以进行伸展的功能只是在运行时不能实现,后经反复修改语句发现必须要在另一个函数定义里面也需要加入这些语句才能实现。四 实习总结 通过两个多星期的学习和实践,培养了自己独立思考问题、解决问题的能力,激发了自我学习的潜能。 在进行软件编程的时候,由于都是刚刚接触新的编程语言,对语言不够熟悉,在编程过程中就会出现各种问题,包括下标越界、函数未定义等等。尤其是在编写第一个四则运算程序的时候印象很深刻,在用数组控件和插入表格控件的时候语句编写总是出现错误,不能实现我所需要的功能,所以就翻阅我所能看到 的书进行学习和修改,用了整整一天的时间,终于修改成功,兴奋喜悦的
11、心情难以用语言来描述,只是我在想,编程是一种艺术,是一种能控制你心情大喜大悲的有力工具,当你怎么查也查不出错误的时候很痛苦,当你千辛万苦终于把你的代码修改成功的时候,那种成功喜悦的心情很是愉悦,兴奋也许就只是莫过于此。在用FLASH制作动画的时候,以自己为原型进行功夫设计,我就想到了小时候经常玩的游戏魂斗罗,所以就把自己当成了游戏里面的主人公进行动画设计,也算是当成一种童年的回忆。转眼之间小学期就要结束了,在小学期当中发现自己学会了很多,尤其是在编程语言方面,学到了很多新的知识,也懂得如何在最快的时间内写完程序,如何最好最快的改程序。还有以前就一直想学FLASH,总是由于各种各样的原因没有时间
12、学成,这次正好利用了这次机会学习FLASH,对利用FLASH如何制作动画也了解了。总之,小学期让我收获了很多,也学到了很多,希望以后还会有这样的机会。附:程序关键部分源代码1.算术运算测试系统源代码【高级运算程序关键部分源代码】Private Sub Command1_Click() On Error Resume Next Dim n As Integer, i As Integer Dim V As Single Dim s1 As String Dim z As Integer n = Val(Text1.Text) ReDim a(n - 1) ReDim B(n - 1) ReDim
13、 C(n - 1) ReDim D(n - 1) ReDim Op(n - 1) ReDim Answer(n - 1) MSFlexGrid1.Rows = n + 1 For i = 0 To n - 1 a(i) = Rnd * 100 B(i) = 1 + Rnd * 99 Op(i) = Rnd * 3 If Op(i) = 1 And a(i) B(i) Then z = a(i) a(i) = B(i) B(i) = z End If If Op(i) = 3 And B(i) = 0 Then B(i) = B(i) + 1 End If MSFlexGrid1.TextMat
14、rix(i + 1, 0) = i + 1 MSFlexGrid1.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) = Select Case Op(i) Case 0 Answer(i) = a(i) + B(i) Case 1 Answer(i) = a(i) - B(i) Case 2 Answer(i) = a(i) * B
15、(i) Case 3 Answer(i) = Format(a(i) / B(i), 0.#) If Right(Answer(i), 1) = . Then Answer(i) = Left(Answer(i), Len(Answer(i) - 1) End Select Next iText2.Text = F1 = FalseEnd Sub Dim i As Integer Dim n2 As Integer, n3 As Integer n2 = 0 n3 = 0 For i = 1 To MSFlexGrid1.Rows - 1 If MSFlexGrid1.TextMatrix(i
16、, 2) = Answer(i - 1) Then MSFlexGrid1.TextMatrix(i, 3) = 对 n2 = n2 + 1 Else MSFlexGrid1.TextMatrix(i, 3) = 错 End If MSFlexGrid1.TextMatrix(i, 4) = Answer(i - 1) n3 = n3 + 1 Next i Text6.Text = Format(n2 * 100 / n3, 0) WindowsMediaPlayer1.URL = F:22.WAVWindowsMediaPlayer1.Controls.play If Text6.Text
17、= 60 And Text6.Text = 90 Then MsgBox 哇,你的成绩是 & Text6.Text & 分,很优秀,真厉害!, vbOKOnly, 成绩End IfEnd SubPrivate Sub Command3_Click()Form4.ShowForm2.HideEnd SubPrivate Sub Command4_Click()Dim an As Integeran = MsgBox(真的想退出吗?, vbYesNoCancel + vbQuestion, 退出)If an = vbYes Then EndEnd IfEnd SubPrivate Sub Form
18、_Load()Form2.HideForm2.Top = (Screen.Height - Form2.Height) / 2Form2.Left = (Screen.Width - Form2.Width) / 2 Randomize OpName(0) = + OpName(1) = - OpName(2) = * OpName(3) = / With MSFlexGrid1 .ColWidth(0) = 1000 .ColWidth(1) = 2000 .ColWidth(2) = 800 .ColWidth(3) = 800 .ColWidth(4) = 1200 .TextMatri
19、x(0, 0) = 序号 .TextMatrix(0, 1) = 题目 .TextMatrix(0, 2) = 答案 .TextMatrix(0, 3) = 对错 .TextMatrix(0, 4) = 标准答案 End WithF1 = FalseWindowsMediaPlayer1.URL = F:22.WAVWindowsMediaPlayer1.Controls.stopEnd SubPrivate Sub MSFlexGrid1_EnterCell() With MSFlexGrid1 If .Col = 2 Then Text2.Left = .Left + .CellLeft
20、Text2.Top = .Top + .CellTop Text2.Width = .CellWidth Text2.Height = .CellHeight Text2.Text = .Text Text2.Visible = True Else Text2.Visible = False End If End WithEnd SubPrivate Sub MSFlexGrid1_Scroll() Text2.Visible = FalseEnd SubPrivate Sub Text1_Change() 限定只能输入数字If IsNumeric(Text1.Text) Then If In
21、t(Text1.Text) = Text1.Text Then If Text1.Text = 300 Then MsgBox 你出的题太多了!, vbOKOnly, 温馨提示 Command1.Enabled = False Else Command1.Enabled = True End If End IfElseIf Text1.Text Then MsgBox 你输入的不符合要求, vbOKOnly, 温馨提示 Command1.Enabled = False Else Command1.Enabled = TrueEnd IfF1 = TrueEnd SubPrivate Sub T
22、ext2_Change() MSFlexGrid1.Text = Text2.TextEnd Sub2.倒计时器关键部分源代码Private Sub Command3_Click() 重置功能 Text1.Text = Text2.Text = Text3.Text = Label1.Caption = 00:00:00 Command1.Caption = 开始 Command1.Enabled = TrueEnd SubPrivate Sub Text1_KeyPress(KeyAscii As Integer) 限定只能输入数字Dim Numbers As String Numbers
23、= 1234567890 + Chr(8) + Chr(46) If InStr(Numbers, Chr(KeyAscii) = 0 Then KeyAscii = 0 End IfEnd SubPrivate Sub Timer1_Timer() 计时功能 If Text1.Text = And Text2.Text = And Text3.Text = ThenTimer1.Enabled = False Else Timer1.Enabled = True h = Val(Text1.Text) m = Val(Text2.Text) s = Val(Text3.Text) n = h
24、 * 3600 + m * 60 + sIf n 0 Then n = n - 1 h = n 3600 m = (n Mod 3600) 60 s = n - h * 3600 - m * 60 Text1.Text = CStr(h) Text2.Text = CStr(m) Text3.Text = CStr(s) Label1.Caption = Format(h, 00) & : & Format(m, 00) & : & Format(s, 00)ElseIf n = 0 ThenTimer1.Enabled = False Command1.Enabled = True Text
25、1.Text = Text2.Text = Text3.Text = Form2.Show Form1.HideWindowsMediaPlayer1.URL = F:22.WAVWindowsMediaPlayer1.Controls.playEnd IfEnd IfEnd IfEnd Sub3.矩阵计算器关键部分源代码Private Sub Command3_Click() 矩阵加法Picture3.ClsIf m = 0 Or n = 0 Or p = 0 Or q = 0 Then MsgBox 请先输入矩阵, vbOKOnly, 提示 GoTo lab:End IfIf m p Or
26、 n q Then MsgBox 请输入行数和列数相同的矩阵才可相加, vbOKOnly, 提示 End IfIf m = p And n = q ThenLabel1.Caption = + ReDim c(1 To m, 1 To n) As Integer For i = 1 To m For j = 1 To n c(i, j) = a(i, j) + b(i, j) Picture3.Print c(i, j); Next j Picture3.Print Next iEnd Iflab:End SubPrivate Sub Command4_Click() 矩阵乘法Picture3
27、.ClsIf m = 0 Or n = 0 Or p = 0 Or q = 0 Then MsgBox 请先输入矩阵, vbOKOnly, 提示 GoTo lab:End IfIf n p Then MsgBox 请输入A矩阵列数和B矩阵行数相等的矩阵再做乘积, vbOKOnly, 提示End IfIf n = p ThenLabel1.Caption = x ReDim c(1 To m, 1 To q) As Integer For i = 1 To m For j = 1 To q For k = 1 To n c(i, j) = a(i, k) * b(k, j) + c(i, j) Next k Picture3.Print c(i, j); Next j Picture3.Pri
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1