Тренажер по математике: добавить возможность сохранения максимального счета в настройках - 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; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д