c#实验报告_简易计算器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

相关文档
最新文档