在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
用户需求: 要求编写一个0-10之间的整数进行四则运算,程序能接收输入的整数答案,并判断对错,程序结束时,统计出答对、答错的题目数量!并且0-10的整数是随机生成的,用户可以用键盘输入来选择四则运算中的一种。比如输入1代表加法运算,用户用键盘来输入一个字符来结束程序的运行并显示!统计出结果!
设计思路: 1、既然要编写一个0-10之间的整数,那么我就定义三个数据类型为int的变量,其中两个用来存整数,另一个用来存最后的计算结果。 具体的代码实现: 1、这个是用来显示菜单栏的,我们可以通过选择'1' '2' '3'...等来决定用哪一种算法! using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _Random { class Program { static void Main(string[] args) { mathvoid op = new mathvoid(); string Z = ""; do { Console.WriteLine("-------------------------------四则运算-------------------------"); Console.WriteLine(""); Console.WriteLine("请选择您使用的运算方法:1.加法 2.减法 3.乘法 4.除法 5.退出!"); Z = Console.ReadLine(); switch (Z) { case "1": op.mathjia(); continue; case "2": op.mathjian(); continue; case "3": op.mathcheng(); continue; case "4": op.mathchu(); continue; case "5": op.result(); break; default: Console.WriteLine("输入无效!"); continue; } break; } while (true); } } }
2、下面这个是用来调用的方法!
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _Random { public class mathvoid { public static int right = 0; //记录答对的总数! public static int wrong = 0; //记录答错的总数! public void mathjia() //加法运算! { int a, b; int result; Random rd = new Random(); a = rd.Next(0, 11); b = rd.Next(0, 11); Console.WriteLine("请计算:{0}+{1}=?", a, b); result = Convert.ToInt32(Console.ReadLine()); if (result == a + b) { Console.WriteLine("回答正确!"); right++; } else { Console.WriteLine("错误,继续努力!"); wrong++; } } public void mathjian() //减法运算! { int a, b; int result; Random rd = new Random(); a = rd.Next(0, 11); b = rd.Next(0, 11); Console.WriteLine("请计算:{0}-{1}=?", a, b); result = Convert.ToInt32(Console.ReadLine()); if (result == a - b) { Console.WriteLine("回答正确!"); right++; } else { Console.WriteLine("错误,继续努力!"); wrong++; } } public void mathcheng() //乘法运算! { int a, b; int result; Random rd = new Random(); a = rd.Next(0, 11); b = rd.Next(0, 11); Console.WriteLine("请计算:{0}*{1}=?", a, b); result = Convert.ToInt32(Console.ReadLine()); if (result == a * b) { Console.WriteLine("回答正确!"); right++; } else { Console.WriteLine("错误,继续努力!"); wrong++; } } public void mathchu() //除法运算! { int a, b; int result; Random rd = new Random(); a = rd.Next(0, 11); b = rd.Next(0, 11); if (b != 0) { Console.WriteLine("请计算:{0}/{1}=?", a, b); result = Convert.ToInt32(Console.ReadLine()); if (result == a / b) { Console.WriteLine("回答正确!"); right++; } else { Console.WriteLine("错误,继续努力!"); wrong++; } } else { if (a != 0) { Console.WriteLine("请计算:{0}/{1}=?", b, a); result = Convert.ToInt32(Console.ReadLine()); if (result == b / a) { Console.WriteLine("回答正确!"); right++; } else { Console.WriteLine("错误,继续努力!"); wrong++; } } } } public void result() //统计结果! { Console.WriteLine("总共做了{0}道题:你做对了{1}道题,做错了{2}道题。",right+wrong,right,wrong); } } }
3、最后这个是运行的控制台!
PSP耗时分析 : 1、首先,预测完成这个任务我需要的时间是12个小时,实际用了9个小时左右吧。 总结: 当接到一个项目的时候,大概看一下客户的要求是什么!预测一下大概需要花费多少时间,这是给自己的一个标准。
在除法的方法中,会产生类似于9/7=?这样的式子,作业要求是用户接收整数结果,那么9/7=1,这是一个正确的答案。可在实际生活中,就不符合我们的习惯!那么如果我改成数据类型为double的result,我该如何答题???
思考题: 如果用户要求处理的范围是0-100,程序应如何应对扩展性。 答:把产生随机数的范围改一下,改成 程序能处理用户的错误输入,比如用户输入一个小数或一个字符 答:在switch() {case : }里面,我添加了default,如果输入的不是switch里的字符,将会输出:"输入无效!" |
请发表评论