c#实验报告_简易计算器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重庆邮电大学移通学院
C#课程设计
一、实验目的:
构造一个类似Windows自带的计算器一样的简易计算器,能够连续进行加、减、乘、除四则整数运算,并能随时清除计算结果进行下一次计算。
二、具体实验步骤:
1、添加编辑框对应的变量m_Display
2、添加运算符类型变量
char CompuType; //用于存储运算符类型
CString FirstInput; //用于保存运算符前面的输入值
三、实验内容
设计的基本要求:能正确输入数据,能实现加,减,乘,除等算术运算,能实现简单的三角运算,运行结果能正确显示,可以清除数据等。
1、要点分析:这是一个简单的对话窗体设计,涉及button,editbox,static text,radio button,group box等控件,主要影响事件为BN_CLICKED
2、程序源代码:
using System;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Study
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private int opMain = 0; // 运算类型,其中1(加法) 2(减法) 3(乘法) 4(除法)
private double mainNum1 = 0; // 存储第一个数
private double mainNum2 = 0; // 存储第二个数
private bool isSecond = false; // 用来判断输入的是第一个还是第二个数
private bool isDone = false; // 用来判断是否按了等于按钮
private bool isDecimal = false; // 用来判断是否有小数
private bool isNokeydown = false;// 用来判断是否没输入第二个数而按了"="号键
private bool isKeyupclear = true;//用来判断是否按了clear键,程序开始前默认按了;
public void setText(string textest) //设置文本框的值
{
if (textest.Equals("clear"))
{
textBox1.Text = "0.";
isSecond = false;
isDone = false;
isDecimal = false;
isKeyupclear = true;
}
else
{
if (isSecond)
{
textBox1.Text = textest;
isSecond = false;
isDecimal = false;
}
else
{
if (isDone)
{
textBox1.Text = textest;
isDone = false;
}
else
{
if (isKeyupclear) //对是否按下clear键的判断
{
textBox1.Text = textest;
isKeyupclear = false;
}
else
textBox1.Text += textest;
}
}
}
btnEqual.Select(); //设置"="号的焦点
}
public void Calc(double num1, double num2, int op)
{
double answer = 0;
switch (op) //判断所进行的运算
{
case 1:
answer = num1 + num2;
break;
case 2:
answer = num1 - num2;
break;
case 3:
answer = num1 * num2;
break;
case 4:
answer = num1 / num2;
break;
case 5:
answer = num1 % num2;
break;
}
setText(answer.ToString()); //显示结果
}
//执行运算
private void doEquals()
{
if (isNokeydown) //判断已经输入第二个数后按了"="号键
{
mainNum2 = double.Parse(textBox1.Text);
setText("clear");
Calc(mainNum1, mainNum2, opMain);
isDone = true;
isNokeydown = false;
}
}
//切换正负
private void changeSign()
{
double storNum;