VB计算器实验.docx
- 文档编号:27247142
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:20
- 大小:82.35KB
VB计算器实验.docx
《VB计算器实验.docx》由会员分享,可在线阅读,更多相关《VB计算器实验.docx(20页珍藏版)》请在冰豆网上搜索。
VB计算器实验
软件开发环境与工具
实验报告
实验一
实验题目:
计算器的设计与实现
实验类型:
验证型
实验地点:
软件实验室一
指导教师:
**
专业班级:
计算机科学与技术系**班
姓名:
***
2013年10月25日
1、实验题目:
计算器的设计与实现。
二、实验目的:
1、进一步熟悉并且掌握VisualStudio2010集成开发环境的使用。
2、学会使用常用的几种控件。
3、掌握中三种分支结构的使用。
4、初步掌握的基本编程方法和技巧。
5、根据所学知识能够独立完成一个简易计算器。
三、实验内容:
设计一个简单的计算器,使之能够实现加、减、乘、除基本的四则运算。
四、实验设计思路:
先在窗体上设计计算器的外观,包含按钮和文本输出框,然后写出各个触发事件,包含数字事件、运算符事件等,之后再写各类运算函数,包括加法、减法、乘法和除法,完了在主函数中调用各函数进行运算。
五、实验步骤:
1、在MicrosoftVisualStudio2010中,点击“新建项目”,命名为"计算器",再点击“确定”,进入窗体设计界面。
2、使用按钮以及文本框在窗体设计界面设计一个简易计算器。
界面如下:
3、分别在不同的按钮中编写相应的函数来实现其功能并且验证通过。
六、实验代码:
PublicClass计算器
Dimstrdx()AsString={"","",""}'声明一个字符串,用以存取数值
Dimcalcount1AsString=""
Dimcalcount2AsString=""'声明2个字符串,用以存取运算符
DimstrvalueAsBoolean=False'声明一个布尔型的变量,用以区别小数点的运用
PrivateSub数字0_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles数字0.Click
IfTextBox1.Text="0"Then'配合清零使用,如果显示框内为0,将显示内容清空
TextBox1.Text=""
EndIf
Ifstrdx(0)=""Then'输入键入的数字
strdx(0)=sender.text
TextBox1.Text&=strdx(0)&"."
ElseIfstrvalue=FalseThen'输入两位数
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)&"."'
Else
strdx(0)=strdx(0)&sender.text'配合小数点的使用,防止出现2个小数点
TextBox1.Text&=strdx(0)
EndIf
EndSub
PrivateSub数字1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles数字1.Click
IfTextBox1.Text="0"Then
TextBox1.Text=""
EndIf
Ifstrdx(0)=""Then
strdx(0)=sender.text
TextBox1.Text&=strdx(0)&"."
ElseIfstrvalue=FalseThen
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)&"."
Else
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)
EndIf
EndSub
PrivateSub数字2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles数字2.Click
IfTextBox1.Text="0"Then
TextBox1.Text=""
EndIf
Ifstrdx(0)=""Then
strdx(0)=sender.text
TextBox1.Text&=strdx(0)&"."
ElseIfstrvalue=FalseThen
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)&"."
Else
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)
EndIf
EndSub
PrivateSub数字3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles数字3.Click
IfTextBox1.Text="0"Then
TextBox1.Text=""
EndIf
Ifstrdx(0)=""Then
strdx(0)=sender.text
TextBox1.Text&=strdx(0)&"."
ElseIfstrvalue=FalseThen
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)&"."
Else
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)
EndIf
EndSub
PrivateSub数字4_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles数字4.Click
IfTextBox1.Text="0"Then
TextBox1.Text=""
EndIf
Ifstrdx(0)=""Then
strdx(0)=sender.text
TextBox1.Text&=strdx(0)&"."
ElseIfstrvalue=FalseThen
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)&"."
Else
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)
EndIf
EndSub
PrivateSub数字5_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles数字5.Click
IfTextBox1.Text="0"Then
TextBox1.Text=""
EndIf
Ifstrdx(0)=""Then
strdx(0)=sender.text
TextBox1.Text&=strdx(0)&"."
ElseIfstrvalue=FalseThen
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)&"."
Else
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)
EndIf
EndSub
PrivateSub数字6_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles数字6.Click
IfTextBox1.Text="0"Then
TextBox1.Text=""
EndIf
Ifstrdx(0)=""Then
strdx(0)=sender.text
TextBox1.Text&=strdx(0)&"."
ElseIfstrvalue=FalseThen
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)&"."
Else
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)
EndIf
EndSub
PrivateSub数字7_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles数字7.Click
IfTextBox1.Text="0"Then
TextBox1.Text=""
EndIf
Ifstrdx(0)=""Then
strdx(0)=sender.text
TextBox1.Text&=strdx(0)&"."
ElseIfstrvalue=FalseThen
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)&"."
Else
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)
EndIf
EndSub
PrivateSub数字8_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles数字8.Click
IfTextBox1.Text="0"Then
TextBox1.Text=""
EndIf
Ifstrdx(0)=""Then
strdx(0)=sender.text
TextBox1.Text&=strdx(0)&"."
ElseIfstrvalue=FalseThen
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)&"."
Else
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)
EndIf
EndSub
PrivateSub数字9_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles数字9.Click
IfTextBox1.Text="0"Then
TextBox1.Text=""
EndIf
Ifstrdx(0)=""Then
strdx(0)=sender.text
TextBox1.Text&=strdx(0)&"."
ElseIfstrvalue=FalseThen
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)&"."
Else
strdx(0)=strdx(0)&sender.text
TextBox1.Text&=strdx(0)
EndIf
EndSub
PrivateSub加法_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles加法.Click
Ifcalcount1=""Then'点击按键后,将calcount1置为此运算键
calcount1=sender.text
strdx
(1)=strdx(0)'将strdx(0)的值赋给strdx
(1),再将strdx(0)置空,以便继续输入
strdx(0)=""
ElseIfcalcount2="="Then'如果是连等运算,可以将上一次运算的结果strdx
(2)赋值给strdx
(1),strdx(0)置空,以便继续输入
calcount1=sender.text
strdx
(1)=strdx
(2)
strdx(0)=""
strdx
(2)=""'将上一次的结果清空
calcount2=""'将上一次置的等号清除
Else:
SelectCasecalcount1'用来实现连续的加减乘除
Case"+"
strdx
(1)=Str(Val(strdx(0))+Val(strdx
(1)))
strdx(0)=""
calcount1=sender.text
Case"-"
strdx
(1)=Str(Val(strdx
(1))-Val(strdx(0)))
strdx(0)=""
calcount1=sender.text
Case"*"
strdx
(1)=Str(Val(strdx(0))*Val(strdx
(1)))'如果后一运算符的优先级高,先算后面的
strdx(0)=""
calcount1=sender.text
Case"/"
strdx
(1)=Str(Val(strdx
(1))/Val(strdx(0)))'如果后一运算符的优先级高,先算后面的
strdx(0)=""
calcount1=sender.text
EndSelect
EndIf
TextBox1.Text&=sender.text'连接
EndSub
PrivateSub减法_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles减法.Click
Ifcalcount1=""Then
calcount1=sender.text
strdx
(1)=strdx(0)
strdx(0)=""
ElseIfcalcount2="="Then
calcount1=sender.text
strdx
(1)=strdx
(2)
strdx(0)=""
strdx
(2)=""
calcount2=""
Else:
SelectCasecalcount1
Case"+"
strdx
(1)=Str(Val(strdx(0))+Val(strdx
(1)))
strdx(0)=""
calcount1=sender.text
Case"-"
strdx
(1)=Str(Val(strdx
(1))-Val(strdx(0)))
strdx(0)=""
calcount1=sender.text
Case"*"
strdx
(1)=Str(Val(strdx(0))*Val(strdx
(1)))
strdx(0)=""
calcount1=sender.text
Case"/"
strdx
(1)=Str(Val(strdx
(1))/Val(strdx(0)))
strdx(0)=""
calcount1=sender.text
EndSelect
EndIf
TextBox1.Text&=sender.text
EndSub
PrivateSub乘法_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles乘法.Click
Ifcalcount1=""Then
calcount1=sender.text
strdx
(1)=strdx(0)
strdx(0)=""
ElseIfcalcount2="="Then
calcount1=sender.text
strdx
(1)=strdx
(2)
strdx(0)=""
strdx
(2)=""
calcount2=""
Else:
SelectCasecalcount1
Case"+"
strdx
(1)=Str(Val(strdx(0))+Val(strdx
(1)))
strdx(0)=""
calcount1=sender.text
Case"-"
strdx
(1)=Str(Val(strdx
(1))-Val(strdx(0)))
strdx(0)=""
calcount1=sender.text
Case"*"
strdx
(1)=Str(Val(strdx(0))*Val(strdx
(1)))
strdx(0)=""
calcount1=sender.text
Case"/"
strdx
(1)=Str(Val(strdx
(1))/Val(strdx(0)))
strdx(0)=""
calcount1=sender.text
EndSelect
EndIf
TextBox1.Text&=sender.text
EndSub
PrivateSub除法_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles除法.Click
Ifcalcount1=""Then
calcount1=sender.text
strdx
(1)=strdx(0)
strdx(0)=""
ElseIfcalcount2="="Then
calcount1=sender.text
strdx
(1)=strdx
(2)
strdx(0)=""
strdx
(2)=""
calcount2=""
Else:
SelectCasecalcount1
Case"+"
strdx
(1)=Str(Val(strdx(0))+Val(strdx
(1)))
strdx(0)=""
calcount1=sender.text
Case"-"
strdx
(1)=Str(Val(strdx
(1))-Val(strdx(0)))
strdx(0)=""
calcount1=sender.text
Case"*"
strdx
(1)=Str(Val(strdx(0))*Val(strdx
(1)))
strdx(0)=""
calcount1=sender.text
Case"/"
strdx
(1)=Str(Val(strdx
(1))/Val(strdx(0)))
strdx(0)=""
calcount1=sender.text
EndSelect
EndIf
TextBox1.Text&=sender.text
EndSub
PrivateSub小数点_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles小数点.Click
strvalue=True'使用小数点后将strvalue置为0
strdx(0)=strdx(0)&"."
TextBox1.Text&=strdx(0)'连接
EndSub
PrivateSub清零_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles清零.Click
strdx(0)=""将所有变量置0,以便重新运算
strdx
(1)=""
strdx
(2)=""
calcount1=""
calcount2=""
strvalue=False
TextBox1.Text="0"
EndSub
PrivateSub等号_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles等号.Click
TextBox1.Text&="="'连接
Ifstrdx
(2)=""Then
calcount2="="'如果是第一次输入等号,将calcount2置为等号
SelectCasecalcount1'实现运算
Case"+"
TextBox1.Text&=Str(Val(strdx
(1))+Val(strdx(0)))
strdx
(2)=Str(Val(strdx
(1))+Val(strdx(0)))
Case"-"
TextBox1.Text&=Str(Val(strdx
(1))-Val(strdx(0)))
strdx
(2)=Str(Val(strdx
(1))-Val(strdx(0)))
Case"*"
TextBox1.Text&=Str(Val(strdx
(1))*Val(strdx(0)))
strdx
(2)=Str(Val(strdx
(1))*Val(strdx(0)))
Case"/"
Ifstrdx(0)="0"Then
TextBox1.Text="error!
"
Else
TextBox1.Text&=Str(Val(strdx
(1))/Val(strdx(0)))
strdx
(2)=Str(Val(strdx
(1))/Val(strdx(0)))
EndIf
EndSelect
ElseIfcalcount2="*"Then'连续运算时有优先级问题时改变运算顺序
strdx(0)=Str(Val(strdx(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 计算器 实验