您好,欢迎来到微智科技网。
搜索
您的当前位置:首页小学期计算机实习总结报告

小学期计算机实习总结报告

来源:微智科技网
 小学期计算机实习总结报告

第一题、算术运算测试程序

题目要求:

制作一个可供小学数算的程序。

0—100 整数加减乘除四则运算,如结果为小数四舍五入保留小数点后两位。 根据输入题数出题,题目应为随机,每次应不一样。 如:题目数=3 77-55= 33*3= 100/3=

判断是否正确,如不正确给出正确答案,并计算分数,分数为正确题目的 百分比(四舍五入取整数)。 如:77-55= 22 对 33*3= 99 对

100/3= 33 错结果应为 33.33 分数为:67 分

设计思路:

本题我选用VB来设计,

首先是0——100整数加减乘除四则运算,故需要用到取随机数函数Rnd()以及Select Case语句。

其次小数四舍五入保留小数点后两位,这主要出现在除法运算中,需要用到format( );算分数时要四舍五入取整,需要用到CInt( ) 再次判断结果对错主要用到if„„else„„语句

大体思路确定后再根据题目要求确定需要使用的控件的种类和数量,其次以每种控件为单位将整个程序分成几块,先编写每小块的代码即每个控件的功能代码。 本题需要使用的控件为commandbutton(用于判断对错、得出分数、清空答题板和退出)、textbbox(用于输入结果)、label(用于显示所出题目)、optionbutton、(用于选择所要进行测试的题型)、picturebox(用于显示答题情况及最终分数) 分块一:

Private Sub Option1_Click() Command1.Caption = \"确认\" Command1.Enabled = True Text1.FontSize = 18 Randomize

shu1 = Int(Rnd * 100 + 1) //取0到100的随机整数 shu2 = Int(Rnd * 100 + 1) //取0到100的随机整数

jieguo = shu1 + shu2

Label1.Caption = shu1 & \"+\" & shu2 & \"=\" Label1.FontSize = 18

End Sub //此过程执行加法运算 与此相同可写出减法运算、乘法运算和除法运算的代码,但在写除法运算代码是需注意除数不能取0,即shu2 = Int(100*Rnd + 1) ,表示取1到100的随机数,而

且结果小数超过两位的要四舍五入保留两位,即jieguo = Format(shu1 / shu2, \"0.00\")。 分块二:

Private Sub Option5_Click() Command1.Caption = \"确认\" Command1.Enabled = True

Dim suijishu As Integer, fuhao As String * 1 //定义suijishu为整型数据,fuhao为长度为1的字符串 Text1.FontSize = 18 Randomize

shu1 = Int(Rnd * 100 + 1) shu2 = Int(Rnd * 100 + 1)

suijishu = Int(Rnd * 4 + 1) //取1到4的随机整数 Select Case suijishu //随机选取加减乘除运算 Case 1

fuhao = \"+\"

jieguo = shu1 + shu2 Case 2

fuhao = \"-\"

jieguo = shu1 - shu2 Case 3

fuhao = \"*\"

jieguo = shu1 * shu2 Case 4

fuhao = \"/\"

If shu2 <> 0 Then //判断除数是否为0

jieguo = Format(shu1 / shu2, \"0.00\") //结果形式 End If End Select

Label1.Caption = shu1 & fuhao & shu2 & \"=\" //显示所出题目 Label1.FontSize = 18 End Sub

此过程主要是混合运算的代码,使用了select case 语句

分块三:

Private Sub Command1_Click() Option1.Value = False Option2.Value = False Option3.Value = False Option4.Value = False Option5.Value = False

If Command1.Caption = \"确认\" Then //判断做题者所填结果与正确结果是否相同

If Val(Text1.Text) = jieguo Then

Picture1.Print Label1.Caption; Text1; \"√ 太棒了!\" dui = dui + 1 Else

Text1.Text = \"\" Text1.SetFocus Picture1.Print Label1.Caption; Text1; \"(正确答案\"; jieguo; \")\"; \"× 好好再想想!\"

cuo = cuo + 1 End If End If

Text1.Text = \"\" End Sub

此命令按钮的功能是在做完题后检验结果对错,判断对错使用if„„else语句,用Val()函数取出text文本框中的数与正确结果进行比较进而判断对错。判断的结果用属性picture.print在picturebox中显示出来,其间也统计处了正确和错误的题数,为计算分数做准备。

分块四:

Private Sub Command2_Click()

Picture1.Print \"★★★★★★★给你算算多少分★★★★★★★\" Picture1.Print \"你一共做了\"; (dui + cuo); \"道题\" If dui + cuo <> 0 Then

Picture1.Print \"你得了\"; CInt(dui / (dui + cuo) * 100); \"分\" End If End Sub

计算分数,取整使用到CInt()函数 至此本程序的主体部分已完成,剩下的退出按钮和清空答题框按钮的代码都很容易写出,然后再找出所用的全局变量在程序开始对其定义,最后加一个工程运行过程即完成了代码的初步编写。在VB上通过编译不断进行调试,最终得到正确的代码。

本题的代码:

Dim jieguo As Single, shu1 As Integer, shu2 As Integer, dui As Integer, cuo As Integer

Private Sub Command1_Click() Option1.Value = False Option2.Value = False Option3.Value = False Option4.Value = False Option5.Value = False

If Command1.Caption = \"确认\" Then If Val(Text1.Text) = jieguo Then

Picture1.Print Label1.Caption; Text1; \"√ 太棒了!\" dui = dui + 1 Else

Text1.Text = \"\" Text1.SetFocus Picture1.Print Label1.Caption; Text1; \"(正确答案\"; jieguo; \")\"; \"× 好好再想想!\"

cuo = cuo + 1 End If End If

Text1.Text = \"\" End Sub

Private Sub Command2_Click()

Picture1.Print \"★★★★★★★给你算算多少分★★★★★★★\" Picture1.Print \"你一共做了\"; (dui + cuo); \"道题\" If dui + cuo <> 0 Then

Picture1.Print \"你得了\"; CInt(dui / (dui + cuo) * 100); \"分\" End If End Sub

Private Sub Form_Load()

Option1.Value = False Option2.Value = False Option3.Value = False Option4.Value = False Option5.Value = False End Sub

Private Sub Command3_Click() End

End Sub

Private Sub command4_click() Picture1.Cls End Sub

Private Sub Option1_Click() Command1.Caption = \"确认\" Command1.Enabled = True Text1.FontSize = 18 Randomize

shu1 = Int(Rnd * 100 + 1) shu2 = Int(Rnd * 100 + 1) jieguo = shu1 + shu2

Label1.Caption = shu1 & \"+\" & shu2 & \"=\" Label1.FontSize = 18 End Sub

Private Sub Option2_Click() Command1.Caption = \"确认\" Command1.Enabled = True Dim t As Integer Text1.FontSize = 18 Randomize

shu1 = Int(Rnd * 100 + 1) shu2 = Int(Rnd * 100 + 1) jieguo = shu1 - shu2

Label1.Caption = shu1 & \"-\" & shu2 & \"=\" Label1.FontSize = 18 End Sub

Private Sub Option3_Click() Command1.Caption = \"确认\" Command1.Enabled = True Text1.FontSize = 18 Randomize

shu1 = Int(Rnd * 100 + 1) shu2 = Int(Rnd * 100 + 1) jieguo = shu1 * shu2

Label1.Caption = shu1 & \"×\" & shu2 & \"=\" Label1.FontSize = 18 End Sub

Private Sub Option4_Click() Command1.Caption = \"确认\" Command1.Enabled = True Text1.FontSize = 18 Randomize

shu1 = Int(Rnd * 100 + 1) shu2 = Int(100 * Rnd + 1)

jieguo = Format(shu1 / shu2, \"0.00\") Label1.Caption = shu1 & \"÷\" & shu2 & \"=\" Label1.FontSize = 18 End Sub

Private Sub Option5_Click() Command1.Caption = \"确认\" Command1.Enabled = True

Dim suijishu As Integer, fuhao As String * 1 Text1.FontSize = 18 Randomize

shu1 = Int(Rnd * 100 + 1) shu2 = Int(Rnd * 100 + 1) suijishu = Int(Rnd * 4 + 1) Select Case suijishu Case 1

fuhao = \"+\"

jieguo = shu1 + shu2 Case 2

fuhao = \"-\"

jieguo = shu1 - shu2 Case 3

fuhao = \"*\"

jieguo = shu1 * shu2 Case 4

fuhao = \"/\"

If shu2 <> 0 Then

jieguo = Format(shu1 / shu2, \"0.00\") End If End Select

Label1.Caption = shu1 & fuhao & shu2 & \"=\" Label1.FontSize = 18 End Sub

最终得到的出的出题器:

优缺点评估:

最后得到的出题器软件最大的优点是测试前可以选择题型 ,最大缺点是一次只能出一道题而且不能进行混合运算。

从实用的角度来说这个出题器还是比较适合小学生使用的,“选择题型”这一点可以使他们能够根据自己的薄弱环节有针对性地进行强化训练,至于一次能够出几道题对测试结果的影响不是很大,尽管该题的要求是能够在做题前确定测试题数。

软件还有一个缺点:显示答题情况的picturebox由于没有scrollbars属性,使得显示范围只能局限在最初picturebox的大小范围,针对这一点我添加了一个清空答题板按钮,每当picturebox填满时将其清空,这样只是稍微解决了问题,因为清空后就不能看到之前的答题情况。

第二题、倒计时器

题目要求:

制作一个倒计时器,输入倒计时时间后,显示剩余时间,时间到后有提示音 和提示画面

给分原则:显示剩余时间 5 分 到时提示 5分

其它(界面美观,操作便捷,程序无 bug,功能有创意)

设计思路:

首先是倒计时需要用到Timer控件,然后输入倒计时时间可以用inputbox,显示剩余时间用label,提示音可以用Windowsmedia player 控件,提示画面可以再增加一个form2,将其界面当成提示画面,当时间到时form1 隐藏,form2显现。 根据这个思路需要的空间有:commandbutton(用于设置时间、启动时间、关闭铃声和退出)、label(用于显示剩余时间)、Timer(用于倒计时)、Windowsmedia player (用于播放铃声)

本题代码:

Dim Ts As Integer, Tm As Integer, Th As Integer

Dim StartT As Boolean //定义一个布尔型数据StartT对应倒计时器的启动与关闭

Private Sub Command1_Click() Command1.BackColor = vbBlue If StartT = False Then

Command1.Caption = \"暂停时间\" Command3.Caption = \"退出\" Else

Command1.Caption = \"启动时间\" Command3.Caption = \"重新设定\" End If

StartT = Not StartT Timer1.Interval = 1000 Timer1.Enabled = True End Sub

Private Sub Command2_Click() Command2.BackColor = vbBlue Th = Val(InputBox(\"输入小时\")) Tm = Val(InputBox(\"输入分钟\"))

Ts = Val(InputBox(\"输入秒\")) //输入倒计时时间 End Sub

Private Sub Form1_Load()

Command1.Caption = \"启动时间\" Command2.Caption = \"设置时间\" Command3.Caption = \"退出\" End Sub

Private Sub command3_click() Command3.BackColor = vbBlue

If Command3.Caption = \"重新设定\" Then Form1_Load Th = 0 Tm = 0 Ts = 0

ElseIf Command3.Caption = \"退出\" Then End End If End Sub

Private Sub timer1_timer() Th = Format(Th, \"00\") Tm = Format(Tm, \"00\") Ts = Format(Ts, \"00\")

Label1.Caption = Th & \":\" & Tm & \":\" & Ts If StartT = True Then If Ts > 0 Then Ts = Ts - 1 End If

If Ts = 0 And Tm > 0 Then Tm = Tm - 1 Ts = 59 End If

If Tm = 0 And Ts = 0 And Th > 0 Then Th = Th - 1 Tm = 59 Ts = 59

End If

If Th < 0 Then Th = 0 End If

If Tm < 0 Then Tm = 0 End If

If Th = 0 And Tm = 0 And Ts = 0 Then StartT = False Form1.Hide

Form2.Show //倒计时结束时弹出工程2的框图作为提示画面

WindowsMediaPlayer1.URL = App.Path & \"\\music\\raining.mp3\" //播放提示音乐 End If End If End Sub

Private Sub command4_click() Command4.BackColor = vbBlue

WindowsMediaPlayer1.Close //关闭提示音乐 Command1.Caption = \"启动时间\" End Sub

最终得到的倒计时器界面及提示画面:

软件的优缺点评估:

倒计时器的各种功能比较齐全,倒计时结束时弹出的提示画面及提示铃声能很好地起到提示作用,另外各个按钮都有双重功能,减少了使用控件的数量,不仅使程序代码更简洁而且也使倒计时器使用操作起来更方便。 倒计时器在很多方面还有待完善。首先是界面不够美观,如果对倒计时界面形状进行一些修改比如改成时钟的形状会更好一些;其次是提示铃声及画面不能由使用者自己设定;还有一点就是在倒计时结束时没有自动关闭的功能,即到时间后长时间没有人对其进行操作倒计时器会自动关闭。

第三题:

题目要求:

动画:以每位同学自己为原型设计一组功夫动画(20 分) 时间不少于 20 秒,动作不重复

给分原则: 突出人物形象特点,能明确看出为作者本人 (4 分) 美工精美(4 分)

动作流畅不重复(4 分) 与动作相符的配音 (4 分) 其它 (4 分)

设计思路:

主要利用flash软件来设计动画

首先我选择了《中国功夫》这首歌曲作为背景音乐,然后以这首歌曲的歌词内容

为主题来设计动画。然后就拍了几张自己功夫动作的照片,并用PS对其进行简单的加工,在做动画时配上合适的背景,插上相应的解说文字。最后对各个片段进行剪接最终完成了动画的制作。

动画基本符合题目要求,主题突出,动画主角是作者本人,背景音乐与动画也很搭配。但是也存在很多不足之处,首先是动画中几乎没有连贯的武打动作,其次就是背景的选择不是很搭配,如果能对背景图片进行一下PS处理,效果可能会更好。另外动画的内容也不是很吸引人,即设计思想欠佳。

第四题:

题目要求:

矩阵计算器(20 分)

可输入矩阵,并最大可进行 10*10 矩阵运算 给分原则: 矩阵加法 5 分 矩阵乘法 5 分 求转置矩阵 5 分 求矩阵的秩 5 分

设计思路:

首先是定义一个矩阵,这可以通过定义一个二维数组来设定,具体代码如下:

ReDim a(1 To m, 1 To n) As Long

For i = 1 To m

For j = 1 To n

矩阵输入可以用inputbox(),显示矩阵可以用picture.print 然后就是要在矩阵进行运算之前判定矩阵是否为空,要用到if语句,判断矩阵是否为空的代码如下,If m = 0 Or n = 0 Or p = 0 Or q = 0 Then MsgBox \"请先输入矩阵\提示\"

ElseIf m <> p Or n <> q Then

MsgBox \"请输入行数和列数相同的矩阵才可相加\vbOKOnly, \"提示\"

接着就是矩阵的各种运算,根据题目要求需要四个command 功能按钮,点击command1为矩阵的加法运算,实现这一运算需要再定义一个二维数组c(i ,j)作为最后的求和结果,求和即c(i ,j) = a(i ,j)+b(i ,j) ,然后用picture.print显示出来。进行乘法运算时,需要重新定义二维数组c(i ,j) ,即Redim c(i ,j).乘法运算的代码为:ReDim c(1 To m, 1 To q) As Long

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) 矩阵转置比较简单,即列变行,行变列。代码如下: ReDim c(1 To n, 1 To m) As Long For i = 1 To n For j = 1 To m c(i, j) = a(j, i)

本题的完整代码为:

Dim a(),b(),c() As Long Dim i,j,k,m,n,p,qAs Long Private Sub Command1_Click()

m = Val(InputBox(\"请输入A矩阵行数\提示\")) n = Val(InputBox(\"请输入A矩阵列数\提示\")) Picture1.Cls Picture3.Cls

If m <> 0 And n <> 0 Then

ReDim a(1 To m, 1 To n) As Long For i = 1 To m For j = 1 To n

a(i, j) = Val(InputBox(\"请输入矩阵a(\" & i & \数值\提示\"))

Picture1.Print a(i, j); Next j

Picture1.Print Next i

Else: Exit Sub End If End Sub

Private Sub Command2_Click()

p = Val(InputBox(\"请输入B矩阵行数\提示\")) q = Val(InputBox(\"请输入B矩阵列数\提示\")) Picture2.Cls Picture3.Cls

If p <> 0 And q <> 0 Then

ReDim b(1 To p, 1 To q) As Long For i = 1 To p For j = 1 To q

b(i, j) = Val(InputBox(\"请输入矩阵b(\" & i & \数值\提示\"))

Picture2.Print b(i, j); Next j

Picture2.Print Next i

Else: Exit Sub End If End Sub

Private Sub Command3_Click() Picture3.Cls

If m = 0 Or n = 0 Or p = 0 Or q = 0 Then MsgBox \"请先输入矩阵\提示\" ElseIf m <> p Or n <> q Then

MsgBox \"请输入行数和列数相同的矩阵才可相加\提示\" ElseIf m = p And n = q Then Label1.Caption = \"+\"

ReDim c(1 To m, 1 To n) As Long 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 i End If End Sub

Private Sub Command4_Click() Picture3.Cls

If m = 0 Or n = 0 Or p = 0 Or q = 0 Then MsgBox \"请先输入矩阵\提示\" ElseIf n <> p Then

MsgBox \"请输入A矩阵列数和B矩阵行数相等的矩阵再做乘积\提示\"

ElseIf n = p Then Label1.Caption = \"x\"

ReDim c(1 To m, 1 To q) As Long 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.Print Next i End If End Sub

Private Sub Command5_Click() If m = 0 Or n = 0 Then

MsgBox \"请先输入矩阵\Else

ReDim c(1 To n, 1 To m) As Long For i = 1 To n For j = 1 To m

c(i, j) = a(j, i)

Picture3.Print d(i, j);

Next j

Picture3.Print Next i End If End Sub

Private Sub Command6_Click() m = 0 n = 0 p = 0 q = 0

Picture1.Cls Picture2.Cls Picture3.Cls

Label1.Caption = \"\" End Sub

Private Sub Command7_Click() m = 0 n = 0

Picture1.Cls End Sub

提示\" Private Sub Command8_Click() p = 0 q = 0

Picture2.Cls End Sub

Private Sub Form1_Load() End Sub

Private Sub command9_click() End

End Sub

Private Sub Command10_Click() Dim rmark As Long Dim d() As Long Picture3.Cls If m = 0 Then

MsgBox \"请先输入矩阵\提示\" GoTo lab: End If

ReDim d(1 To m, 1 To m) As Long For i = 1 To m For j = 1 To m For k = 1 To n

d(i, j) = a(i, k) * a(j, k) + d(i, j) Next k Next j Next i

Dim temp_n As Long Dim result As Double Dim Matrix() As Long temp_n = m

Dim temp_m As Long

For temp_n = 1 To m

temp_m = m - temp_n + 1

ReDim Matrix(1 To m, 1 To m) As Long For i = 1 To m For j = 1 To m

Matrix(i, j) = d(i, j) Next j Next i

result = calcMatrix(Matrix(), temp_m) If result <> 0 Then Exit For

End If Next temp_n

Picture3.Print m - temp_n + 1 lab: End Sub

Function calcMatrix(g() As Long, k As Long) As Double Dim e, f As Integer Dim temp As Double

Dim i, j, x, y As Integer Dim temp1() As Double Dim temp2() As Double

ReDim temp1(1 To k, 1 To k) For i = 1 To k For j = 1 To k

temp1(i, j) = g(i, j) Next j Next i f = k

For e = 1 To f

ReDim g(1 To f, 1 To f) For i = 1 To f For j = 1 To f

g(i, j) = temp1(i, j) Next j Next i k = f

If k >= 2 Then

ReDim temp2(1 To k - 1, 1 To k - 1) For x = 1 To k - 1

For y = 1 To k - 1 If y < e Then

temp2(x, y) = g(x + 1, y) Else

temp2(x, y) = g(x + 1, y + 1) End If Next y Next x

k = k - 1

ReDim g(1 To k, 1 To k) For x = 1 To k For y = 1 To k

g(x, y) = temp2(x, y) Next y Next x

temp = (-1) ^ (1 + e) * temp1(1, e) * calcMatrix(g(), k) calcMatrix = calcMatrix + temp ElseIf k = 1 Then calcMatrix = g(1, 1)

End If Next e

End Function

软件的优缺点评估:

设计出的矩阵计算器具备了题目所要求的各种功能,使用起来操作简便,其中各个窗口设置的清零按钮可以在输入出错时及时纠正以及某一矩阵重复使用时可以只改另一矩阵而不必两个矩阵都重新输入。

软件缺点是能够进行的矩阵运算的阶数有限,输入矩阵利用的是inputbox,这样不是很方便,如果能在显示框中直接输入会更好一些。另外显示矩阵的框图使用的是picturebox控件,这样由于picturebox没有scrollbar属性使得显示范围只能有最初picturebox框图的范围而定。

本次小学期计算机实习的整体总结:

回首这三周紧张而又忙碌的小学期实习,我感触颇深,总结起来主要有以下几点收获。

通过这几题的认真钻研,我基本上学会了用VB编写一些简单的程序,并打包生成相应的软件。在得到小学期实习任务后,我首先选定VB作为自己的编程工具。 由于之前从未用过VB,完全是零基础的,所以我不得不先花些时间去熟悉一下VB,这主要是通过阅读参考书上的基础知识以及相关例题来完成的。然后我就进入这次实习的主要部分——编写程序,在这个过程中我根据需要用到的控件类型将程

序分成几块进行编写,对每一块中需要用到的函数我主要是通过百度外加参考书来了解其用法,在这个过程中我也进一步掌握了一些VB的基础知识和编程思想。在初步编写好程序后,调试也是一个比较麻烦的环节,在这个过程中经常会遇到一些自己无从下手的问题,比如倒计时器在生成exe文件后的音乐路径问题,起初不熟悉Windowsmediaplayer控件的使用,以为这个地方应该改用其它的控件,但经过几天的调试与查询,我发现用相对路径app.path可以解决这一问题。程序调试好后就是软件界面的修饰,这一点需要了解各控件的属性,也是通过查询相关资料解决了这一问题。

整个设计过程其实就是不断发现问题然后查询资料解决问题的过程,在这个过程中,相关专业知识的积累是很重要的一点收获,除此之外就是个人品质能力方面的收获。

解决问题的能力——在刚得到实习任务后,由于自己在大一时就没有学好C语言,无形中把这次实习任务的困难想的很大很大,不假思索地就准备寻求编程高手的帮助,好在自己尝试后稍有收获使得自己的兴趣得到了极大的激发,进而进行到底。现在回过头来想想,我很庆幸自己当时没有找“手”,尽管自己的软件跟那些有“手”相助的同学的相比显得极为“简陋”,但这毕竟是自己完成的,在这一过程中自己解决问题的能力得到了极大的提高,这也正是此次实习的真正目的。 查询(搜集)资料的能力——在程序的编写过程中涉及到了大量的资料查询与搜集,由于完成任务的时间有限,因此必须有正对性地进行资料的查询与搜集,如何做到有针对性就要看自己的相关能力,这一能力在当今知识爆炸的信息社会显得尤为重要。经过此次小学期实习,自己查询资料的能力得到了很大的提高,重要的一点体现就是根据所使用控件的类型将程序进行分块编写,分块之后自己查询资料的针对性大大提高,节省了相当一些时间。

与他人讨论分析的能力——这一点主要体现在flash动画的著作过程中,由于flash软件对大家来说都很陌生,使用起来问题不断,而这些问题的解决主要都是通过与室友的讨论来解决的。

以上就是此次小学期计算机实习的几点收获,最后要感谢老师在验收时的耐心指点,正是老师的指点才使自己对自己的完成情况有一个客观的评估,进而去完善其间的不足。

暑期计算机实习总结报告

学院:电子工程班级:姓名:徐浩然学号:日期:

2008211204 08210999 2010.7.21

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务