using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace primary_school
{
class Program
{
static void Main(string[] args)
{
MyMath my = new MyMath(10,0,50);
Console.WriteLine("******************************");
Console.WriteLine(" 小学1~2年级50以内加减法自测");
Console.WriteLine("******************************");
Console.Write("点击任意按键开始。。。");
Console.ReadKey();
Console.WriteLine("");
Console.WriteLine("******************************");
Console.WriteLine(" 题目生成中");
Console.WriteLine("******************************");
my.creat();
my.out_question();
my.ss();
Console.WriteLine("点击任意按键退出。。。");
Console.ReadKey();
}
}
class MyMath
{
int _count;//题目数量
int _minNum;//运算数最小极限
int _maxNum;//运算数最大极限
List<Topic> list = new List<Topic>();
ArrayList al = new ArrayList();
public struct Topic
{
public int num1;//运算数
public int num2;//运算数
public string symbol;//运算符
public int result;//结果
//public bool res_flag;//结果状态
}
public MyMath(int count,int min,int max)
{
this._count = count;
this._maxNum = max;
this._minNum = min;
}
public int add(int a,int b)
{
if (0 < (a + b) && 50 > (a + b))
{
return a + b;
}
else
{
return -1;
}
}
public int subtraction(int a,int b)
{
if (0 < (a - b) && 50 > (a - b))
{
return a - b;
}
else
{
return -1;
}
}
public void creat()
{
Random ran = new Random();
for (int i = 0; i < _count; i++)
{
Topic t;
switch (ran.Next(0, 1))
{
case 0://生成减法
t.symbol = "-";
do
{
t.num1 = ran.Next(0, 50);
t.num2 = ran.Next(0, 50);
t.result = subtraction(t.num1, t.num2);
} while (t.result == -1);
//t.res_flag = false;
list.Add(t);
break;
case 1://生成加法
t.symbol = "+";
do
{
t.num1 = ran.Next(0, 50);
t.num2 = ran.Next(0, 50);
t.result = add(t.num1, t.num2);
} while (t.result == -1);
//t.res_flag = false;
list.Add(t);
break;
}
}
}
public void out_question()
{
int index = 1;
foreach (Topic t in list)
{
int k = 1;
bool temp = true;
do
{
if(k == 1)
Console.WriteLine("第" + index + "题:");
Console.Write(t.num1.ToString() + " " + t.symbol + " " + t.num2.ToString() + " = ");
if (t.result == int.Parse(Console.ReadLine()))
{
//t.res_flag = true;
temp = false;
}
else
{
if (k <= 3)
{
Console.WriteLine("错误,请重新作答!");
k++;
}
else
{
k++;
temp = false;
}
}
} while (temp);
al.Add(k);
index++;
Console.WriteLine("------------------------------");
}
}
public void ss()
{
int score = 0;
string grade = "";
foreach (int a in al)
{
switch (a)
{
case 1:
score += 10;
break;
case 2:
score += 7;
break;
case 3:
score += 5;
break;
case 4:
score += 0;
break;
}
}
if (90<=score)
{
grade = "SMART";
}
else if ((80<=score) && (score < 90))
{
grade = "GOOD";
}
else if ((70 <= score) && (score < 80))
{
grade = "OK";
}
else if ((60 <= score) && (score < 70))
{
grade = "PASS";
}
else
{
grade = "TRY AGAIN";
}
Console.WriteLine("******************************");
Console.WriteLine("您的成绩是:{0}", score);
Console.WriteLine("您的等级是:" + grade);
Console.WriteLine("******************************");
}
}
}