用VB制作四则运算器步骤及代码资料.docx
- 文档编号:23091993
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:13
- 大小:1.19MB
用VB制作四则运算器步骤及代码资料.docx
《用VB制作四则运算器步骤及代码资料.docx》由会员分享,可在线阅读,更多相关《用VB制作四则运算器步骤及代码资料.docx(13页珍藏版)》请在冰豆网上搜索。
用VB制作四则运算器步骤及代码资料
一、实验目的、目标
综合运用本课程的相关知识,完成两位数四则运算器的设计、编写与测试,培养学生的实践动手能力,并检测本课程的学习效果。
二、实验内容
基本要求:
✓两位数(指10-99的自然数)的加减乘除(除法指的是整除)运算,其中减法和除法必须满足“被操作数不小于操作数”(即可以不考虑20-56、4\20等情况)
✓两个操作数、运算符均随机产生
✓完成一题后自动判断对错,并显示出来
✓可以随时查看已经完成的题目情况
✓完成一题自动计算题目总数、正确数、错误数和正确率,并实时显示出来
扩展要求(不硬性规定):
✓在答错的题目后面给出正确答案
✓可增加时钟控件,10秒(或15秒)内必须完成一题
✓限制题目数目为固定值(如20题、50题)
✓把程序扩展成为多位数甚至任意位数的运算器
三、实验过程与步骤
1、在VisualBasic系统环境下,打开“工程设计”窗口。
2、新建两个窗口Form1和Form2,添加控件并进行控件的设置,Form1作用是进行题目数量和答题时间的选择并将数据进行保存以供Form2调用,Form2的作用是进行随机两位数(指10-99的自然数)的加减乘除(除法指的是整除)运算,完成一题后自动判断对错,给出错误题目的正确答案,并显示出来,添加时间钟控,显示计算题目总数、正确数、错误数和正确率。
3、在Form1窗口,双击控件打开代码窗口,设计窗体及控件的事件代码。
采用单选的形式选择题目数量和答题时间,当点击确定按钮时,调用Form2,当点击退出时,退出整个程序。
PublictishuAsInteger,shijianAsInteger
PrivateSubForm_Load()
Text1.Visible=False
Text2.Visible=False
Picture1.Height=Form1.Height
Picture1.Width=Form1.Width
Form1.Show
MsgBox"请选择题量和答题时间!
",48,"提示"
Form2.Hide
UnloadForm2
EndSub
PrivateSubOption1_Click(IndexAsInteger)
tishu=Val(Option1(Index).Caption)
Text1.Text=tishu
EndSub
PrivateSubOption2_Click(IndexAsInteger)
shijian=Val(Option2(Index).Caption)
Text2.Text=shijian
EndSub
PrivateSubCommand1_Click()
MsgBox"请直接在文本框中输入数字作答(其中除法为整除),"&vbLf&"回车完成一题,系统自动生成下一题",,"提示"
Form2.Show
Form1.Hide
EndSub
PrivateSubCommand2_Click()
End
EndSub
4、在Form2窗口,双击控件打开代码窗口,设计窗体及控件的事件代码。
(1)定义变量
Dima()AsInteger
Dimb()AsInteger
Dimc()AsInteger
Dimresult()AsDouble
DimcouAsInteger
DimnAsString
DimXAsString
DimiAsInteger
DimpAsInteger
DimsumAsInteger
DimrightAsInteger
DimwrongAsInteger
DimwAsDouble
DimwwAsString
DimSAsInteger
DimdAsInteger
(2)两位随机数(指10-99的自然数)的加减乘除(除法指的是整除)运算
PrivateSubproduct()
ReDimPreservea(cou)
ReDimPreserveb(cou)
ReDimPreservec(cou)
ReDimPreserveresult(cou)
a(cou)=10+Int(Rnd*90)
b(cou)=1+Int(Rnd*4)
c(cou)=10+Int(Rnd*90)
SelectCaseb(cou)
Case1
Label1.Caption=CStr(a(cou))
Label3.Caption=CStr(c(cou))
result(cou)=a(cou)+c(cou)
Label2.Caption="+"
Case2
IfVal(CStr(a(cou)))>Val(CStr(c(cou)))Then
Label1.Caption=CStr(a(cou))
Label3.Caption=CStr(c(cou))
result(cou)=a(cou)-c(cou)
Else
Label1.Caption=CStr(c(cou))
Label3.Caption=CStr(a(cou))
result(cou)=c(cou)-a(cou)
EndIf
Label2.Caption="-"
Case3
Label1.Caption=CStr(a(cou))
Label3.Caption=CStr(c(cou))
result(cou)=a(cou)*c(cou)
Label2.Caption="*"
Case4
IfVal(CStr(a(cou)))>Val(CStr(c(cou)))Then
Label1.Caption=CStr(a(cou))
Label3.Caption=CStr(c(cou))
result(cou)=Int(a(cou)/c(cou))
Else
Label1.Caption=CStr(c(cou))
Label3.Caption=CStr(a(cou))
result(cou)=Int(c(cou)/a(cou))
EndIf
Label2.Caption="/"
EndSelect
EndSub
(3)设定Form2加载时的相关数据
PrivateSubForm_Load()
Picture1.Height=Form2.Height
Picture1.Width=Form2.Width
Randomize
Callproduct
S=Val(Form1.Text2.Text)
Label9.Caption="剩余时间"&Space
(2)&S&Space
(1)&"S"
Label10.Caption="总题数:
"&Space
(2)&Val(Form1.Text1.Text)
sum=0
right=0
wrong=0
w=0
EndSub
(4)通过一个钟控和一个文本框的回车键方法实现两位随机数(指10-99的自然数)的加减乘除(除法指的是整除)运算的判断,给出错误答案并将式子显示出来,统计正确题数和错误题数
PrivateSubTimer1_Timer()
Ifp>=0Then
i=i+1
p=S-i
Label9.Caption="剩余时间"&Space
(2)&p&Space
(1)&"S"
EndIf
Ifp=0Then
wrong=wrong+1
Label7.Caption="错误题数:
"&Space
(2)&wrong
n="×"
X=result(cou)
List1.AddItem(Label1.Caption&Label2.Caption&Label3.Caption&Label4.Caption&Text1.Text&Chr(32)&CStr(n)&Space(3)&"答案是"&CStr(X))
i=-1
Callproduct
EndIf
Ifsum>=Val(Form1.Text1.Text)Then
MsgBox"共答"&Val(Form1.Text1.Text)&"题,"&"正确"&right&"题,"&"错误"&wrong&"题,"&"正确率为"&ww,,"成绩"
UnloadForm2
Form1.Show
LoadForm1
MsgBox"请重新选择题量和答题时间或者退出系统",48,"提示"
EndIf
EndSub
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
i=-1
IfText1.Text=""OrIsNumeric(Text1.Text)=FalseThen
MsgBox"请输入答案!
",48,"提示"
Else
IfVal(Text1.Text)<>result(cou)Thenn="×"Elsen="√"
Ifn="×"Then
wrong=wrong+1
Label7.Caption="错误题数:
"&Space
(2)&wrong
X=result(cou)
List1.AddItem(Label1.Caption&Label2.Caption&Label3.Caption&Label4.Caption&Text1.Text&Chr(32)&CStr(n)&Space(3)&"答案是"&CStr(X))
Else
right=right+1
Label6.Caption="正确题数:
"&Space
(2)&right
List1.AddItem(Label1.Caption&Label2.Caption&Label3.Caption&Label4.Caption&Text1.Text&Chr(32)&CStr(n))
EndIf
Text1.Text=""
EndIf
Callproduct
EndIf
EndSub
(5)利用另一个钟控统计已答题数和正确率
PrivateSubTimer2_Timer()
sum=right+wrong
Label5.Caption="已答题数:
"&Space
(2)&sum
Ifsum>0Then
w=right/sum
Ifw=0Then
ww=w
Label8.Caption="正确率:
"&Space
(2)&ww
Else
ww=Format(w,"#.###")*100&"%"
Label8.Caption="正确率:
"&Space
(2)&ww
EndIf
EndIf
EndSub
(6)利用两个按键控件和一个图形显示控件分别实现重新开始、退出系统、识别等功能
PrivateSubCommand3_Click()
UnloadForm2
Form1.Show
LoadForm1
MsgBox"请重新选择题量和答题时间或者退出系统",48,"提示"
EndSub
PrivateSubCommand1_Click()
End
EndSub
PrivateSubPicture2_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
MsgBox"版权所有,请勿模仿",48,"提示"
EndSub
四、测试数据及运行结果
【输入的测试数据,输出的结果】
五、实验总结、经验分享
【简单叙述心得,指出本次上机实验的关键环节或关键点;若经多次失败最终成功,请阐述失败之处和导致失败的原因,并简单给出你是如何一步步成功(或经验分享);若本次上机实验最终没有成功,则阐述成败之处及其原因分析。
无论何种情况,请进行自我评价】
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 制作 四则 运算器 步骤 代码 资料
![提示](https://static.bdocx.com/images/bang_tan.gif)