计算器制作实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一简易计算器的制作

一.实验要求

1.参照Windows系统提供的计算器功能,制作一个自己的计算器,至少能完成数据的加减乘除的基本功能。

2.控件的焦点以及Tab键的设置和使用

3.多个控件(按钮)事件的共享

4.键盘的事件的应用

二. 设计思路

1.创建主体框架:建立程序的主要界面后,系统自动生成界面的主要窗

口生成代码。对于每个按钮的的代码段中,分别添加事件触发的处理代码。

设置两个textBox,一个显示表达式,一个显示运算结果。

2数字1-9,小数点,运算符号的按键的事件处理都是在textBox1中分别添加相对应的数字字符,把数字当成是字符串处理。用赋值语句进行添加。每次点击后textBox1的显示内容变为一个新的表达式。

3四则运算时采用compute方法直接计算表达式。该方法功能强大,优先级和运算规则皆宜考虑在内。但是上次计算的结果不能直接运算,利用括号的作用排除了这一问题。

4三角函数的运算,调运Math类中的方法。

5小数点,归零键,和删除键需仔细设置。

6每个运算方法均用try-catch语句处理异常,异常用MessageBox进行提示,确保程序运行正常。

三核心代码

1 数字1-9,小数点,运算符号的按键的事件处理都是在textBox1中分别添加相对应的数字字符

if (textBox1.Text != "0")

{

textBox1.Text += button8.Text;

}

else

{

textBox1.Text = button8.Text;

}

2 四则运算

{

try

{

DataTable shi = new DataTable();

textBox2.Text = pute(textBox1.Text, "").ToString();//利用Compute方法进行四则用算

textBox1.Text = "(" + textBox1.Text + ")";//为表达式加上括号,使上一步的计算结果直接参与下一步计算

}

catch (Exception err)

{

MessageBox.Show("请检查表达式, 错误", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

3 三角函数计算

try

{

DataTable shi = new DataTable();

String b = pute(textBox1.Text, "").ToString();

double a = double.Parse(b);

textBox2.Text = Math.Cos(a).ToString();

}//将表达式运算后的结果,进行cos运算;故可直接计算表达式

catch (Exception err)

{

MessageBox.Show("请检查表达式, 错误, MessageBoxButtons.OK, MessageBoxIcon.Error);

}

4 小数点判定

if (textBox1.Text.Contains("."))

{

MessageBox.Show("不能有两个小数点, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);

}//对是否有两个小数点进行判定

else

{

if (textBox1.Text.Length != 0)

{

textBox1.Text += button20.Text;

}

else

{

textBox1.Text = "0.";//防止小数点出现在开头

}

}

5 设置后退键

int r=textBox1.Text.Length;

if (r > 1)

{

textBox1.Text = textBox1.Text.Remove(r - 1);//删除最右边的字符}

else

{

textBox1.Text = "";//只剩一个字符时直接为空?

}

}//设置后退键

6 设置归零键

textBox1.Text = "";

textBox2.Text = "";

}//归零键设置:使表达式结果为空

四程序运行后如图1 四则运算

2 上一步计算结果直接进行三角运算

五实验总结

1首次亲自做出一个计算器,感觉颇有成就感。在制作的过程中,才深刻感受到面向对象的真正含义。比

如设置小数点的代码时,需要考虑实际操作过程中的各

种情况,再逐一解决。这种设计思想的确高效快捷。

2之前只学过Java的控制台程序,故首次学习VS窗体程序感觉比较陌生。通过这次的学习有了大致的了

解,也对VS强大的功能感到震撼,比如try-catch异常

处理语句颇为实用;并产生了浓厚的兴趣,希望自己也

可以设计更多实用软件。

3觉得学习编程语言一方面需掌握一下处理基本事件的方法,如如何获得输入的字符串等;另一方面,需要

对软件本身提供的各类方法有一定映像,比如本实验中

应用的compute方法,可以提高很大效率。

4有个疑问,设置后退键时,能否设置其事件为触发键盘事件,即按下Ctrl+Z作用?还没设置成功,但会继

续探讨。

相关文档
最新文档