C#||应用框体设计计算器

简介: C#||应用框体设计计算器

题目:

设计一个简单计算器

思路:

首先在应用框体中设计自己喜欢的计算器格式,接着编辑其中的函数。抽取一个Call函数用来显示从键盘输入的数字,cleanall()函数进行清屏操作,mode()函数进行四则运算,switchmode()函数显示符号,最后将结果输出即可。


示例代码:

using System;
using System.Windows.Forms;
namespace Calculator
{
    public partial class FormMain : Form
    {
        double number1 = 0,number2 = 0,result;
        int inputnumber;
        enum Operator { none,plus,minus,multiplication,division}
        Operator mode = Operator.none;
        bool isequal = false;
        public FormMain()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            inputnumber =4;
            call(inputnumber);
        }
      private void button4_Click(object sender, EventArgs e)
        {
            inputnumber = 1;
            call(inputnumber);
        }
        private void button16_Click(object sender, EventArgs e)
        {
            inputnumber = 9;
            call(inputnumber);
        }
        private void button2_Click(object sender, EventArgs e)
        {
            inputnumber = 5;
            call(inputnumber);
        }
        private void button3_Click(object sender, EventArgs e)
        {
            inputnumber = 6;
            call(inputnumber);
        }
        private void button5_Click(object sender, EventArgs e)
        {
            inputnumber =2;
            call(inputnumber);
        }
        private void button6_Click(object sender, EventArgs e)
        {
            inputnumber =3;
            call(inputnumber);
        }
        private void button7_Click(object sender, EventArgs e)
        {
            inputnumber = 0;
            call(inputnumber);
        }
        private void button12_Click(object sender, EventArgs e)
        {
            mode = Operator.plus;
            switchmode();
        }
        private void button11_Click(object sender, EventArgs e)
        {
            mode = Operator.minus;
            switchmode();
        }
        private void button10_Click(object sender, EventArgs e)
        {
            mode = Operator.multiplication;
            switchmode();
        }
        private void button9_Click(object sender, EventArgs e)
        {
            mode = Operator.division;
            switchmode();
        }
        private void button8_Click(object sender, EventArgs e)
        {
            switch (mode)
            {
                case Operator.plus:
                    result = number1 + number2;
                    break;
                case Operator.minus:
                    result = number1 - number2;
                    break;
                case Operator.multiplication:
                    result = number1 * number2;
                    break;
                case Operator.division:
                    result = number1 / number2;
                    break;
            }
            number1 = 0;
            number2 = 0;
            isequal = true;
            labelbefore.Text = " ";
            labelmode.Text = " ";
       labelout.Text = Convert.ToString(result);
        }
        private void button14_Click(object sender, EventArgs e)
        {
            inputnumber = 8;
            call(inputnumber);
        }
        private void button13_Click(object sender, EventArgs e)
        {
            inputnumber = 7;
            call(inputnumber);
        }
        private void button15_Click(object sender, EventArgs e)
        {
            cleanall();
        }
        public void call(int an)
        {
            if (mode == Operator.none)
            {
                number1 = number1 * 10 + an;
                labelout.Text = Convert.ToString(number1);
            }
            else
            {
                number2 = number2 * 10 + an;
                labelout.Text = Convert.ToString(number2);
            }
        }
        private void labelout_Click(object sender, EventArgs e)
        {
            labelout.Text = Convert.ToString(number1);
        }
        public void cleanall()
        {
            number1 = 0;
            number2 = 0;
            labelout.Text = Convert.ToString(number1);
            labelbefore.Text = " ";
            labelmode.Text = " ";
            isequal = false;
            mode = Operator.none;
        }
        public void switchmode()
        {
            switch (mode)
            {
                case Operator.plus:
                     labelmode.Text = "+";
                     break;
                case Operator.minus:
                    labelmode.Text = "-";
                    break;
                case Operator.multiplication:
                    labelmode.Text = "x";
                    break;
                case Operator.division:
                    labelmode.Text = "/";
                    break;
            }
            if(isequal == true)
            {
                number1 = result;
            }
            labelbefore.Text = Convert.ToString(number1);
            labelout.Text = Convert.ToString(number2);
           
        }
    }
}


测试:

相关文章
|
1月前
|
开发框架 前端开发 .NET
LIMS(实验室)信息管理系统源码、有哪些应用领域?采用C# ASP.NET dotnet 3.5 开发的一套实验室信息系统源码
集成于VS 2019,EXT.NET前端和ASP.NET后端,搭配MSSQL 2018数据库。系统覆盖样品管理、数据分析、报表和项目管理等实验室全流程。应用广泛,包括生产质检(如石化、制药)、环保监测、试验研究等领域。随着技术发展,现代LIMS还融合了临床、电子实验室笔记本和SaaS等功能,以满足复杂多样的实验室管理需求。
36 3
LIMS(实验室)信息管理系统源码、有哪些应用领域?采用C# ASP.NET dotnet 3.5 开发的一套实验室信息系统源码
|
2月前
|
存储 运维 BI
基于C#-VC-MSSQL开发的全套PACS系统源码 3D PACS系统源码:可实现医学影像获取、存档、观片、处理、打印多项应用
PACS的功能价值在于通过连接不同的影像设备,存储与管理图像,图像的调用与后处理,实现资源共享,降低成本,达到提高工作效率、提升医疗水平的目地;
35 1
基于C#-VC-MSSQL开发的全套PACS系统源码  3D PACS系统源码:可实现医学影像获取、存档、观片、处理、打印多项应用
|
2月前
|
存储 监控 C#
在上网行为管理软件中实现C#的跨平台应用
本文介绍了使用C#实现跨平台上网行为管理应用的方法。首先,通过.NET Core SDK创建多操作系统兼容的开发环境。接着,利用HttpClient捕获和记录HTTP请求,示例代码展示了如何捕获请求URL。然后,使用SQLite存储网络行为数据,并提供了创建数据库和插入数据的代码。此外,还讨论了如何跨平台编译应用程序以及如何自动将数据提交到远程服务器。通过这些步骤,可以构建一个能在不同操作系统上运行的上网行为管理系统。
138 3
|
2月前
|
存储 数据采集 API
C# GetField 方法应用实例
C# GetField 方法应用实例
|
2月前
|
JSON 安全 API
C# GetMethod 方法应用实例
C# GetMethod 方法应用实例
|
2月前
|
开发框架 Linux C#
C#编程的跨平台应用
【4月更文挑战第21天】C#与.NET Core的结合使得跨平台应用开发变得高效便捷,提供统一编程模型和高性能。丰富的类库、活跃的社区支持及Visual Studio Code、Xamarin等工具强化了其优势。广泛应用在企业系统、云服务和游戏开发中,虽面临挑战,但随着技术进步,C#在跨平台开发领域的前景广阔。
|
2月前
|
SQL 开发框架 .NET
C#linq表达式的应用
C#linq表达式的应用
19 0
|
10月前
|
编译器 C# 数据库
C#之二十二 WIN应用程序的安装部署
C#之二十二 WIN应用程序的安装部署
47 0
|
2月前
|
程序员 C#
C# 面向对象编程进阶:构造函数详解与访问修饰符应用
构造函数是一种特殊的方法,用于初始化对象。构造函数的优势在于,在创建类的对象时调用它。它可以用于为字段设置初始值
53 1
|
2月前
|
C#
C# 运算符详解:包含算术、赋值、比较、逻辑运算符及 Math 类应用
运算符用于对变量和值执行操作。在C#中,有多种运算符可用,包括算术运算符、关系运算符、逻辑运算符等。
57 1