说明:该程序是一个能随机在1-10数字之间整数进行的四则运算,程序可以根据用户输入的答案判断对错,并且可以统计出答题的总数和答对题的数量。
设计思路:用控制台应用程序设计,主要运用定义变量,并用while(){}循环,switch(表达式){case常量表达式1:语句1;break;case常量表达式2:语句2;break;.....default;语句m;break;}循环语句,if(){}循环语句来实现程序的运用。
代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace sizeyunsuan { class Program { static void Main(string[] args) { int x= 0; int y = 1;//第一道题 int z = 0;//答对的题 Random r=new Random(); while(x<1) { int a = r.Next(0, 11); int b = r.Next(0, 11); int c = r.Next(0, a);//减法第一个数不能比第二个数小 int d = r.Next(1, 11);//作为分母,除法分母不为0 Console.WriteLine("请您输入:1为加法,2为减法,3位乘法,4为除法"); Console.WriteLine("下一道题请您按Enter"); int w=int.Parse(Console.ReadLine()); switch (w) { case 1: Console.WriteLine("第{0}道:{1}+{2}=?", y, a, b); int result = Convert.ToInt32(Console.ReadLine()); if (result == a + b) { z++; } y++; break; case 2: Console.WriteLine("第{0}道:{1}-{2}=?", y, a, c); int result1 = Convert.ToInt32(Console.ReadLine()); if (result1 == a - c) { z++; } y++; break; case 3: Console.WriteLine("第{0}道:{1}*{2}=?", y, a, b); int result3 = Convert.ToInt32(Console.ReadLine()); if (result3== a * b) { z++; } y++; break; case 4: Console.WriteLine("第{0}道:{1}/{2}=?", y, a, d); int result4 = Convert.ToInt32(Console.ReadLine()); if (result4 == a / d) { z++; } y++; break; } Console.WriteLine("输入0继续答题,输入1结束答题"); int x1 = int.Parse(Console.ReadLine()); x=x1+ x; } Console.WriteLine("您一共答了{0}道题,其中答对了{1}道题",y-1,z); Console.ReadLine(); } } }
测试结果如下:
耗时分析:我打这个用了2天,在打代码时不太熟练,翻看课本,不能很熟练地运用好循环语句,学过的4种循环体容易弄混,在在这上面耗时太多,主要是我本想运用if(){}else{}做出每次做完一道题按回车键后会立即判断做出的题是正确还是错误的,可是每一次运行出来的结果总会出错, 运行出来错误的地方是它不能准确判断出正在做的题是第几道,在我试了许多次后还没做出来,是很遗憾的,并且浪费了很长时间。
总结:平常时应该多加练习,孰能生巧,多练习一些实例,学会后会发现一个简单的代码打了用不了那么长时间。这次由于是在家做,所以全靠自己,但我觉得最后组成一个小组做,因为一些原因自己是看不出来的,别人可能会发现,所以团队合作也是要有的。
我的感受:我上C#课时学过用窗体设计,所以我这次用的控制台,发现控制台做出来的效果没有窗体的好,窗体做出来的用户们可能更容易接受,因为简单明了。作为程序设计的开发者,我觉得我们应该站在用户的角度上去开发软件。
时间: 2024-10-10 06:28:20