A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 李伟斌 于 2012-12-5 12:49 编辑

namespace 练习
{
    class Program
    {
        public double num1 { get; set; }     //运算数字1
        public double num2 { get; set; }     //运算数字2
        public double num3 { get; set; }     //运算结果
        public string fuHao { get; set; }    //运算符号
        //定义委托  下面的委托方法,我觉要不要都无所谓。
        public delegate void YunSuanDelegate(string fuHao);   
        public void FuHao(string fuHao, YunSuanDelegate yunSuan)
        {
            yunSuan(fuHao);
        }
        //加法
        public void JiaFa(string fuHao)
        {
            num3 = num1 + num2;
           
        }
        //减法
        public void JianFa(string fuHao)
        {
            num3 = num1 - num2;
        }
        //乘法
        public void chengFa(string fuHao)
        {
            num3 = num1 * num2;
        }
        //除法
        public void chuFa(string fuHao)
        {
            do       //当输入的除数为零的时候进入循环
            {
                if (num2 == 0)   
                {
                    Console.WriteLine("除数不能为零(0),请重新输入:");
                    num2 = double.Parse(Console.ReadLine());
                }
            } while (num2 == 0);    //只要输入的除数为零(0)时就继续循环

            num3 = num1 / num2;
        }


        static void Main(string[] args)
        {
            Program program = new Program();
            try
            {
                Console.WriteLine("输入第一个运算的数:");
                program.num1 = double.Parse(Console.ReadLine());
                Console.WriteLine("请选择运算符号:+.- * /");
                program.fuHao = Console.ReadLine();
                Console.WriteLine("请输入第二个运算的数:");
                program.num2 = double.Parse(Console.ReadLine());
                switch (program.fuHao)
                {
                    case "+":
                        program.JiaFa("+");
                        break;
                    case "-":
                        program.JianFa("-");
                        break;
                    case "*":
                        program.chengFa("*");
                        break;
                    case "/":
                        program.chuFa("/");
                        break;
                    default:
                        Console.WriteLine("你的输入的运算符号有误!!");
                        break;
                }

                Console.WriteLine("运算的结果是:" + program.num3);
                Console.ReadLine();
            }
            catch (DataException dataException)
            {
                Console.WriteLine(dataException.ToString());
            }
        }
    }
}

大家帮看看还有什么可以改进的,给点意见吧!!!谢谢

点评

继续努力 。 争取用winform写一个  发表于 2012-12-5 01:30

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

3 个回复

正序浏览
{:2_33:} 受教了!
回复 使用道具 举报
加减法操作可以放在一个方法里面,不用每个都写一个方法,既不美观,也不方便阅读
回复 使用道具 举报
你的用委托写的有点麻烦,看看我的,一目了然
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace ConsoleApplication1
  6. {
  7.     class 计算器
  8.     {
  9.         static void main(string[] ager) {
  10.             CCount count = new CCount();
  11.             Console.Write("请输入第一个数:\n");
  12.             int a = Convert.ToInt32(Console.ReadLine());
  13.             Console.Write("请输入第二个数:\n");
  14.             int b = Convert.ToInt32(Console.ReadLine());
  15.             Console.Write("请输入运算符符号(+-*/):\n");
  16.             string type = Console.ReadLine();
  17.             Console.Write(count.Sum(a,b,type)+"\n");
  18.             Console.ReadLine();
  19.         }
  20.     }
  21.     public class CCount {
  22.         public int Sum(int a,int b,string type) {
  23.             switch (type)
  24.             {
  25.                 case "+":
  26.                     return a + b;
  27.                     break;
  28.                 case "-":
  29.                     return a - b;break;
  30.                 case "*":
  31.                     return a * b;break;
  32.                 case "/":
  33.                     return a / b;break;
  34.                 default:
  35.                     return 0; break;
  36.             }
  37.         }
  38.     }
  39. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马