用控制台实现简单的计算器程序

这篇博客分享了一个使用C#编写的简单控制台计算器程序,包括加减乘除运算。程序通过读取用户输入并显示固定界面来交互,具有清除屏幕和光标定位功能。
摘要由CSDN通过智能技术生成

今天听了老师讲的控制台实现计算机的程序,想起来挺简单但真正实现起来确实挺复杂的。现在把自己写的简单的小程序和大家分享一下,功能不是很全,特别复杂的没有实现。

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace Computer
{
    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                GetDouble();
                Console.Clear();
            }
          

        }
        /// <summary>
        /// 固定界面
        /// </summary>
        /// <param name="str">显示的字符串</param>
        public static void Format(string str)
        {
            //Console.SetWindowSize(33, 21);
            //Console.SetBufferSize(50, 21);
            Console.ForegroundColor = ConsoleColor.DarkCyan;
            Console.WriteLine("▁ ▁ ▁ ▁ ▁ ▁ ▁ ▁ ▁ ▁ ▁ ");
            Console.WriteLine("▏                              ▏");
            Console.WriteLine("▏                              ▏");
            Console.WriteLine("▏     ▁ ▁ ▁ ▁ ▁ ▁ ▁     ▏");
            Console.WriteLine("▏   ▕                  ▕     ▏");
            Console.Write("▏   ▕" );
            Console.Write("{0}",str);
            WriteAt("▕     ▏", 25, 5);
            Console.WriteLine("▏   ▕                  ▕     ▏");
            Console.WriteLine("▏     ▔▔▔▔▔▔▔▔▔▔     ▏");
            Console.WriteLine("▏                              ▏");
            Console.WriteLine("▏                              ▏");
            Console.WriteLine("▏      ①  ②  ③   .          ▏");
            Console.WriteLine("▏                              ▏");
            Console.WriteLine("▏      ④  ⑤  ⑥   +          ▏");
            Console.WriteLine("▏                              ▏");
            Console.WriteLine("▏      ⑦  ⑧  ⑨   -          ▏");
            Console.WriteLine("▏                              ▏");
            Console.WriteLine("▏      0   =    /   *          ▏");
            Console.WriteLine("▏                              ▏");
            Console.WriteLine("▏                              ▏");
            Console.WriteLine("▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔");
       
       
       
        }
        /// <summary>
        /// 固定光标的方法
        /// </summary>
        /// <param name="a">传入要显示的字符串</param>
        /// <param name="i">光标left值</param>
        /// <param name="j">光标top值</param>
        public static void WriteAt(string a,int i,int j)
        {
            Console.SetCursorPosition(i,j);
            Console.WriteLine(a);
       
        }
        /// <summary>
        /// 选择要进行操作的+ - * 运算方法
        /// </summary>
        /// <param name="first">输入的第一个参数</param>
        /// <param name="second">输入的第二个参数</param>
        /// <param name="choose">选择进行操作的+ - * /</param>
        /// <returns></returns>
        public static double Type(double first,double second,char choose)
        {
            double result = 0;
            switch (choose)
            {
                case '+':

                    result = first + second;
                    return result;
                    break;
                case '-':
                   
                    result = first - second;
                    return result;
                    break;
                case '*':
                    result = first * second;
                    return result;
                    break;
                default:
                    return 0;
                    break;

            }
       
       
        }
       /// <summary>
       /// 整数类型的除法运算
       /// </summary>
        /// <param name="first">输入的第一个参数</param>
        /// <param name="second">输入的第二个参数</param>
        /// <param name="choose">选择进行操作的运算符</param>
       /// <returns></returns>
        public static int Type(int first, int second, char choose)
        {

            int result;
            switch(choose)
            {
                case '/':
                    result = first / second;
                    return result;
                    break;
                default:
                    return 0;
                    break;
               
           
            }

        }
        /// <summary>
        /// 从键盘上输入字符方法
        /// </summary>
        /// <returns></returns>
        public static string  GetNumber()
        {
           
            string tempstring = "";
            ConsoleKeyInfo info = new ConsoleKeyInfo();
            while (info.Key != ConsoleKey.Enter)
            {
                Format(tempstring);
                info = Console.ReadKey(true);
                tempstring = "";
                tempstring += info.KeyChar.ToString();
                Console.Clear();
               //if(info.Key == ConsoleKey.Backspace)
               // {
                   
                   
               //     while (info.Key == ConsoleKey.Backspace)
               //     {
               //         //tempstring.Substring(tempstring,1);
                   
               //     }
                  

               // }
               // else
               // {
               //     tempstring += info.KeyChar.ToString();
               //     Console.Clear();
               // }
            }

            return tempstring;

        }
        /// <summary>
        /// 获取结果的方法
        /// </summary>
        public static void  GetDouble()
        {
            string str1 = GetNumber();
            double first =Convert.ToDouble(str1);
            Console.WriteLine(first);
            Console.Clear();
            char choose = Console.ReadKey(true).KeyChar;
            if (choose == '/')
            {
                Console.WriteLine("请确保输入的数字为整型,否则会报错!");
           
           
            }
            Console.WriteLine(choose);

            string str2 = GetNumber();
            double second = Convert.ToDouble(str2);
            Console.WriteLine(second);
            Console.Clear();
            if (choose == '/')
            {
                int a = Convert.ToInt32(str1);
                int b = Convert.ToInt32(str2);
                int result = Type(a, b, choose);
                Format(result.ToString());
                Console.WriteLine(result.ToString());

            }
            else
            {
                string result = Type(first,second,choose).ToString();
                Format(result);
                Console.WriteLine(result);
           
           
            }
            Console.ReadLine();
       
        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值