Тренажер по математике: добавить возможность сохранения максимального счета в настройках - C#
Формулировка задачи:
Программа интерактивный тренажер по математике, проверяющий умение пользователя выполнять простые арифметические операции над числами. в С#. Как можно изменить программу чтобы:
1.добавить возможность сохранения максимального счета в пользовательских настройках (Settings)
2.За более сложные вопросы должно начисляться большее количество очков.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{//интерактивный тренажер по математике
//Создаем новую переменную типа Random
//с ее помощью мы сможем генерировать случайные числа
Random rnd = new Random();
int score = 0;
//Уровень 1: числа от 1 до 10
score = score + Test(rnd.Next(1, 10), rnd.Next(1, 10));
//Уровень 2: числа от 1 до 100 кратные 15
score = score + Test(rnd.Next(1, 100) / 15 * 15, rnd.Next(1, 100) / 15 * 15);
//Уровень 3: числа от 1 до 100
score = score + Test(rnd.Next(1, 100), rnd.Next(1, 100));
//Уровень 4: числа от -15 до 15
score = score + Test(rnd.Next(-15, 0), rnd.Next(0, 15));
//Уровень 5: числа от -200 до 200 кратные 5
score = score + Test(rnd.Next(1, 200) / 5 * 5, rnd.Next(-200, 1) / 5 * 5);
//Уровень 6: числа от 1 до 500 кратные 2
score = score + Test(rnd.Next(1, 500)/2*2, rnd.Next(1, 500)/2*2);
//Уровень 7: числа от 1 до 1000
score = score + Test(rnd.Next(1, 1000), rnd.Next(1, 1000));
//Уровень 8: числа от -500 до 500
score = score + Test(rnd.Next(-500, 1), rnd.Next(1, 500));
//Уровень 9: числа от -1000 до 1000
score = score + Test(rnd.Next(-1000, 1), rnd.Next(1, 1000));
//Уровень 10: числа от -5000 до 5000
score = score + Test(rnd.Next(1, 5000), rnd.Next(-5000, 1));
Console.WriteLine("Вы набрали {0} очка", score);
Console.ReadKey();
}
private static int Test(int num1, int num2)
{
//Выводим на экран сообщение что надо найти сумму чисел...
Console.WriteLine("Введите сумму чисел {0} и {1}", num1, num2);
//получаем ответ введенный пользователем...
int UserSum = Convert.ToInt32(Console.ReadLine());
//считаем правильный ответ...
int RealSum = num1 + num2;
//если ответ пользователя совпадает с верным...
if (UserSum == RealSum)
{
Console.WriteLine("Верно");
return 1;
}
else
{
Console.WriteLine("Ошибка... верный ответ {0}", RealSum);
return 2;
}
}
}
}Решение задачи: «Тренажер по математике: добавить возможность сохранения максимального счета в настройках»
textual
Листинг программы
class Program
{
private static string path = @"Record.txt";
static void Main()
{
Console.WriteLine("Интерактивный тренажер");
int comm = -1;
do
{
Console.WriteLine();
Console.WriteLine("0. Выход\n1. Начать тест\n2. Рекорд");
Console.Write("Выберитке функцию: ");
try
{
comm = Convert.ToInt32(Console.ReadLine());
switch (comm)
{
case 0:
break;
case 1:
mathTest();
break;
case 2:
Console.WriteLine("Рекорд: {0}", record());
break;
default:
Console.WriteLine("Вы вели неверное значение.");
break;
}
}
catch (Exception e)
{
Console.WriteLine(e);
}
} while (comm != 0);
}
private static void mathTest()
{
//Создаем новую переменную типа Random
//с ее помощью мы сможем генерировать случайные числа
Random rnd = new Random();
int score = 0;
//Уровень 1: числа от 1 до 10
score += Test(rnd.Next(1, 10), rnd.Next(1, 10));
//Уровень 2: числа от 1 до 100 кратные 15
score += Test(rnd.Next(1, 100) / 15 * 15, rnd.Next(1, 100) / 15 * 15);
//Уровень 3: числа от 1 до 100
score += Test(rnd.Next(1, 100), rnd.Next(1, 100));
//Уровень 4: числа от -15 до 15
score += Test(rnd.Next(-15, 0), rnd.Next(0, 15));
//Уровень 5: числа от -200 до 200 кратные 5
score += Test(rnd.Next(1, 200) / 5 * 5, rnd.Next(-200, 1) / 5 * 5);
//Уровень 6: числа от 1 до 500 кратные 2
score += Test(rnd.Next(1, 500) / 2 * 2, rnd.Next(1, 500) / 2 * 2);
//Уровень 7: числа от 1 до 1000
score += Test(rnd.Next(1, 1000), rnd.Next(1, 1000));
//Уровень 8: числа от -500 до 500
score += Test(rnd.Next(-500, 1), rnd.Next(1, 500));
//Уровень 9: числа от -1000 до 1000
score += Test(rnd.Next(-1000, 1), rnd.Next(1, 1000));
//Уровень 10: числа от -5000 до 5000
score += Test(rnd.Next(1, 5000), rnd.Next(-5000, 1));
Console.WriteLine("Вы набрали {0} очка", score);
record(score);
}
private static int record()
{
int record = 0;
if (File.Exists(path))
{
StreamReader sr = File.OpenText(path);
try
{
// считываем строку с файла
record = Convert.ToInt32(sr.ReadLine());
}
catch (Exception e)
{
Console.WriteLine("Ошибка:\n{0}", e);
}
finally
{
sr.Close();
}
}
return record;
}
private static void record(int rec)
{
if (rec > record())
{
using (StreamWriter sw = new StreamWriter(path))
{
sw.WriteLine(rec);
sw.Close();
}
}
}
private static int Test(int num1, int num2)
{
//Выводим на экран сообщение что надо найти сумму чисел...
Console.Write("Введите сумму чисел {0} и {1}: ", num1, num2);
//получаем ответ введенный пользователем...
int UserSum = Convert.ToInt32(Console.ReadLine());
//считаем правильный ответ...
int RealSum = num1 + num2;
//если ответ пользователя совпадает с верным...
if (UserSum == RealSum)
{
Console.WriteLine("Верно");
if (((num1 > 500) || (num2 > 500)) || ((num1 < -500) || (num2 < -500)))
{
return 2;
}
else if (((num1 > 200) || (num2 > 200)) || ((num1 < -200) || (num2 < -200)))
{
return 2;
}
else if (((num1 > 100) || (num2 > 100)) || ((num1 < -100) || (num2 < -100)))
{
return 3;
}
else
{
return 1;
}
}
else
{
Console.WriteLine("Ошибка... верный ответ {0}", RealSum);
return 0;
}
}
}