[求助]求一款一模一样的计算器,很急,谢了
2.基本要求:①要求用Visual Basic对象的思想来完成程序的设计。
②在设计程序的过程中,要求会使用Command 命令按钮、命令按钮控件数组、TextBox文本框等基本控件。
③要求在程序中能够运用结构化程序的基本结构,如if-elseif、Select Case- End Select、for– next、do -loop等)。
④要求在程序中即能用鼠标单击相应的控件数组元素进行正整数的加、减、乘、除运算,又可以在键盘上输入相应数字和运算符号实现运算。
⑤程序界面布局合理、美观。
3.创新要求:
基本要求达到后,进行创新设计:实现小数、负数的计算。
三、设计方法和基本原理:
1. 问题描述:
① 在窗体上单击标有数字、运算符号、等号的控件元素会在文本框显示出计算结果。
② 输入键盘上的数字、运算符号、等号同样也会计算出运算结果。
2.问题的解决方案:
① 在窗体上分别创建用于0-9个操作数字和+、-、*、/运算符号的控件数组,并创建用于显示操作数、运算结果的文本框及其它控件。
② 单击数字控件数组元素时,先判断参加运算的数是否是新的操作数,用以确定单击数字键后数字在文本框中的显示方式,如果是新的操作数如234,那么连续单击2,3,4数字键,在文本框中会显示234 。
③ 单击操作符,结束第一个操作数的输入,同时把第一个操作数存储到一个全局变量中(如:StoredValue),记下操作符的index值,并做好开始输入下一个操作数的准备。
④ 单击等号(=),结束第二个操作数的输入并存储,根据上面记下的index值选择操作符计算。
⑤ 如果用键盘操作运算,应根据所按键对应的KeyAscii值转换成对应的字符来判断执行什么操作,确定调用哪个事件过程。最后完成运算。
四、主要技术问题的描述:
① 连续输入新操作数的若干个数字时,应采用
txtDisplay.Text =txtDisplay.Text & Format$(Index)
txtDisplay.Text = txtDisplay.Text & cmdNumber(Index).Caption
txtDisplay.Text = txtDisplay.Text & Index
② 对于正整数运算单击操作符会结束本操作数的输入,需设置一个逻辑变量,使其逻辑值为true ,准备新操作数的输入。
③ 当一个对象(本题指文本框)具有焦点时,在键盘上按键操作触发下面事件过程:
Private Sub Form_KeyPress(KeyAscii As Integer),在该过程中调用
txtDisplay_KeyPress KeyAscii
根据KeyAscii对应的字符,调用相应过程。
④ 当用户在拥有焦点的对象上释放键时触发下面事件过程:
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)在该过程中调用txtDisplay_KeyUp KeyCode, Shift
KeyUp 事件可应用于大多数键,但最经常地还是应用于功能键、组合键、区别数字小键盘和常规数字键等。
根据KeyCode代码对应的常数调用对应过程。 KeyCode代码常数可以在vb帮助系统或vb对象浏览器中的对象库中查到。