控制台实现四则运算测试
题目:编写一个能对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);
}
}