简单的计算器

来源:互联网 发布:天健深圳分所 知乎 编辑:程序博客网 时间:2024/06/07 04:06
实验目的和要求
1. 设计背景
设计拥有简单的计算功能,方便计算简单的计算题。方便用户的使用。
2. 设计功能
具有一般计算功能,能进行基本的加减乘除运算,还具有求根号,倒数等功能。特点是能进行不同进制的运算和不同进制间的转换。
3. 模块分解
该计算器分为3个模块,分别是
Textbox:显示区:显示数字和计算结果的功能
button:计算区:提供运算符和数字,与用户交互进行运算
radioButton:转换区: 用于进制之间的转换
4. 设计界面


标准型                            科学型

5. 按键定义
Button1~button29为1到F相应的数字键和运算符
RadioButton1~4 用于各种进制之间的转换
Textbox1  为显示区,显示输入和计算结果
6. 其他定义
        int command = 0;
        string stringbefore;  //存储算数运算符按下之前的字符串。
        string stringlast;    //存储算数运算符按下之后的字符串。
        long    metadata;     //进制转换时存储中间值。
        double doublebefore = 0;   //存储算数运算符按下之前的数字。
        double doublelast = 0;     //存储算数运算符按下之后的数字。
        double result = 0;      //存储运算之后的数字值。
       bool flag = true ;//判断是否已经按过了算数运算符。

实验内容
? 设计思路与源程序
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace 计算器实验
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private void label1_Click(object sender, EventArgs e)
        {


        }


        private void txt_Result_TextChanged(object sender, EventArgs e)
        {


        }


        private void button0_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            txt_Result.Text += btn.Text;


        }


        private void button1_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            txt_Result.Text += btn.Text;


        }

 private void button2_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            txt_Result.Text += btn.Text;


        }


        private void button3_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            txt_Result.Text += btn.Text;


        }


        private void button4_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            txt_Result.Text += btn.Text;


        }

private void button5_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            txt_Result.Text += btn.Text;


        }


        private void button6_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            txt_Result.Text += btn.Text;


        }


        private void button7_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            txt_Result.Text += btn.Text;


        }


        private void button8_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            txt_Result.Text += btn.Text;


        }


        private void button9_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            txt_Result.Text += btn.Text;


        }

 private void btn_Add_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            txt_Result.Text = txt_Result.Text + " " + btn.Text + " ";


        }


        private void btn_Minus_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            txt_Result.Text = txt_Result.Text + " " + btn.Text + " ";


        }


        private void btn_Multiply_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            txt_Result.Text = txt_Result.Text + " " + btn.Text + " ";


        }


        private void btn_Divide_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            txt_Result.Text = txt_Result.Text + " " + btn.Text + " ";


        }


        private void btn_Clear_Click(object sender, EventArgs e)
        {
            txt_Result.Text = "";
        }

  private void btn_Result_Click(object sender, EventArgs e)
        {
            double d_result;
            string s_txt = txt_Result.Text;
            int space = s_txt.IndexOf(' ');
            string s1 = s_txt.Substring(0, space);
            char operation = Convert.ToChar(s_txt.Substring((space + 1), 1));
            string s2 = s_txt.Substring(space + 3);
            double arg1 = Convert.ToDouble(s1);
            double arg2 = Convert.ToDouble(s2);
            switch (operation)
            {
                case '+':
                    d_result = arg1 + arg2;
                    break;
                case '-':
                    d_result = arg1 - arg2;
                    break;
                case '*':
                    d_result = arg1 * arg2;
                    break;
                case '/':
                    if (arg2 == 0)
                    {
                        throw new ApplicationException();
                    }
                    else
                    {
                        d_result = arg1 / arg2;
                    }
                    break;
                default:
                    throw new ApplicationException();
            }

     txt_Result.Text = d_result.ToString();
            


        }

    }

}

0 0