控制台实现四则运算测试

题目:编写一个能对0--10之间的整数进行四则运算的“软件”
        程序能接收用户输入的整数答案,并判断对错
        程序结束时,统计出答对、答错的题目数量。

需求分析:使用控制台来编写,产生随机数,需要使用 Random()方法;

      能够接受用户输入,统计答对答错题目数量,则需要定义变量来实现;

      用户可以选择四则运算,则要写四个方法;还要有一个结束方法;


 

具体设计思路:从主函数开始,main():

代码如下:

    判断用户的输入之后,调用对应的方法:

方法代码如下:

//应该注意,当用户选择除法是,除数产生随机数不能为0;

//代码不完善,因为00为int类型,故当计算结果为0时,用户输入0时,计算机会显示程序结束,结束测试并输出结果,所以,应将退出的判断条件写成string类型比较,

当用户不输入00,一直循环调用的方法;当用户输入00,调用退出方法

Exit()方法代码如下:


 

测试效果如下:

 

  


 

psp耗时:需求分析:10min;具体设计:1h;代码复审:5min;测试:10min;


总结,在设计程序的时候,要先有一个完整的构思,每个方法有什么作用,都要考虑清楚,不然做到一半会做不下去,然后就是要清楚你的代码,要是有那个模块没有按照自己预想的结果执行,方便找到原因,不然程序出现bug会不容易找到问题的根本。

该程序在代码编写具体实现时,无法接着产生随机数让用户计算,无法循环Add()方法;后来将其加入自己的方法中,来自己调用自己。


 

代码:

class Program
    { 
       
        static void Main(string[] args)
        {
            Console.WriteLine("----------程序说明------------");
            Console.WriteLine("输入 + 号表示选择加法        |");
            Console.WriteLine("输入 - 号表示选择减法        |");
            Console.WriteLine("输入 * 号表示选择乘法        |");
            Console.WriteLine("输入 / 号表示选择除法        |");
            Console.WriteLine("输入 00 表示结束程序          |");
            Console.WriteLine("------------------------------");
            Console.Write("请输入你想要的运算:");//以上直接输出,为程序说明
            string SF = Console.ReadLine();//定义变量,接收用户的输入
            if (SF == "+")//判断用户输入是否为“+”,是则运行Add()方法
            {
                Console.WriteLine("加法测试:");
                Add();//调用Add()方法
            }
            else if (SF == "-")
            {
                Console.Write("减法测试:");
                Sub();//调用Sub()方法
            }
            else if (SF == "*")
            {
                Console.Write("乘法测试:");
                Mul();
            }
            else
            {
                Console.Write("除法测试:");
                Div();
            }
            Console.ReadLine();

        }
     
        public static void Add()
        {
           
            int sum, c;//定义sum为真实值,c为接收用户输出的值
            Random rd = new Random();
            int a = rd.Next(11);//产生随机数
            int b = rd.Next(11);
            sum = a + b;
            Console.Write("{0}+{1}=", a, b);
            Console.Write("");//接收用户输入结果
            c = int.Parse(Console.ReadLine());//转换成int类型并赋值给c
            if (sum == c)//判断
            {
                Console.WriteLine("计算正确!");
                count++; right++;
                Add();//继续调用Add()该方法
            }
            else if (c == 00)
            {
                Exit();//当用户输入值为00,则调用Exit()方法
             }

            else
            {
                Console.WriteLine("计算错误!");
                count++;//算错只加总,不加right
                Add();
            }
           
        }
        public static void Sub()
        {
            int sum, c;
            Random rd = new Random();
            int a = rd.Next(11);
            int b = rd.Next(11);
            sum = a - b;
            Console.Write("{0}-{1}=", a, b);
            Console.Write("");
            c = int.Parse(Console.ReadLine());
            if (sum == c)
            {
                Console.WriteLine("计算正确!");
                right++; count++;
                Sub();
            }
            else if (c == 00)
            {
                Exit();
            }
            else
            {
                Console.WriteLine("计算错误!");
                count++;
                Sub();
            }
        }
        public static void Mul()
        {
            int sum, c;
            Random rd = new Random();
            int a = rd.Next(11);
            int b = rd.Next(11);
            sum = a * b;
            Console.Write("{0}*{1}=", a, b);
            Console.Write("");
            c = int.Parse(Console.ReadLine());
            if (sum == c)
            {
                Console.WriteLine("计算正确!");
                right++; count++;
                Mul();
            }
            else if (c == 00)
            {
                Exit();
            }
            else
            {
                Console.WriteLine("计算错误!");
                count++;
                Mul();
            }
        }
        public static void Div()
        {
            double sum, c;
            Random rd = new Random();
            int a = rd.Next(11);
            int b = rd.Next(1, 11);
            sum = a / (double)b;
            Console.Write("{0}/{1}=", a, b);
            Console.Write("");
            c = double.Parse(Console.ReadLine());
            if (sum == c)
            {
                Console.WriteLine("计算正确!");
                count++; right++;
                Div();
            }
            else if (c == 00)
            {
                Exit();
            }
            else
            {
                Console.WriteLine("计算错误!");
                count++;
                Div();
            }

        } 
        public static int  count = 0,right=0;//定义全局变量,在运算方法中实现增加,最后在exit()中调用其值
        public static void Exit()
        {
            Console.WriteLine("程序结束!");
            Console.WriteLine("本次共测试{0}道题,答对{1}道",count,right);
        }
    }

 

posted @ 2015-09-27 17:54  无休止丿  阅读(305)  评论(7)    收藏  举报