黑马程序员技术交流社区

标题: 加减乘除的小程序,!大家帮我看看有什么地方需... [打印本页]

作者: 李伟斌    时间: 2012-12-4 18:32
标题: 加减乘除的小程序,!大家帮我看看有什么地方需...
本帖最后由 李伟斌 于 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());
            }
        }
    }
}

大家帮看看还有什么可以改进的,给点意见吧!!!谢谢
作者: 生活墨墨    时间: 2012-12-5 10:21
你的用委托写的有点麻烦,看看我的,一目了然
  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. }
复制代码

作者: 生活墨墨    时间: 2012-12-5 10:25
加减法操作可以放在一个方法里面,不用每个都写一个方法,既不美观,也不方便阅读
作者: 李伟斌    时间: 2012-12-5 12:49
{:2_33:} 受教了!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2