开发计算机辅助教学程序,教小学生学乘法。程序功能:
(1)程序开始时让用户选择“年级”为1或2。一年级使只用1位数乘法;二年级使用2位数乘法。
(2)用Random对象产生两个1位或2位正整数,然后输入以下问题,例如:
How much is 6 times 7?
然后学生输入答案,程序检查学生的答案。如果正确,则打印“Very good!”,然后提出另一个乘法问题。如果不正确,则打印“No,Please try again.”,然后让学生重复回答这个问题,直到答对。
(3)答对3道题后程序结束。
(4)使用一个单独方法产生每个新问题, 这个方法在程序开始时和每次用户答对时调用。
using System;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
int cnt = 0;
Console.WriteLine("请选择你的年级:");
Console.WriteLine("1:一年级");
Console.WriteLine("2:二年级");
int mygrade = int.Parse(Console.ReadLine()); //记录选择的年级
while(cnt!=3) //cnt==3,则说明已经答对三次了,退出循环
{
cnt = question(mygrade, ref cnt); //参数是年级和答对的次数
}
}
static int question(int grade,ref int c)
{
Random rd = new Random();//产生随机数
int a, b;
if (grade == 1)
{
a = rd.Next(0, 9); //产生1位的随机数
b = rd.Next(0, 9);
}
else
{
a = rd.Next(10, 99); //产生2位的随机数
b = rd.Next(10, 99);
}
Console.WriteLine("How much is {0} times {1}?", a, b);
int ans = a * b;
string s;
int myans;
while ((s=Console.ReadLine())!=string.Empty) //一直作答直到答对
{
myans = int.Parse(s);
if (myans == ans)
{
c++; //答对的次数
Console.WriteLine("Very good!");
break;
}
else Console.WriteLine("No,Please try again.");
}
return c; //返回答对的次数
}
}
}