Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Tamerlan2711
0 / 0 / 0
Регистрация: 15.11.2015
Сообщений: 19
1

Сохранение результатов теста в файл

13.08.2018, 08:33. Просмотров 704. Ответов 2
Метки нет (Все метки)

Есть программа тестирования, база вопросов в текстовом документе (*txt), мне нужно чтобы по окончании тестирования результаты сохранялись в вордовском или текстовом файле. В идеале нужно чтобы результаты тестирования отправлялись на почту. Подскажите как можно реализовать это.
P.S. Программу писал не я, нужно доработать.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
using System;
using System.Windows.Forms;
// Другие директивы using удалены, поскольку они не используются в данной
// программе
namespace Тестирование
{
    public partial class Form1 : Form
    {
        // Внешние переменные:
        int СчетВопросов; // Счет вопросов
        int ПравилОтветов;  // Количество правильных ответов
        int НеПравилОтветов; // Количество не правильных ответов
        // Массив вопросов, на которые даны неправильные ответы:
        String[] НеПравилОтветы; // Размерность этого массива зададим позже
        int НомерПравОтвета;  // Номер правильного ответа
        int ВыбранОтвет;  // Номер ответа, выбранный студентом
        System.IO.StreamReader Читатель;
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            button1.Text = "Следующий вопрос";
            button2.Text = "Выход";
            // Подписка на событие изменение состояния
            // переключателей RadioButton:
            radioButton1.CheckedChanged += new EventHandler(ИзмСостПерекл);
            radioButton2.CheckedChanged += new EventHandler(ИзмСостПерекл);
           
            НачалоТеста();
        }
        void НачалоТеста()
        {
            var Кодировка = System.Text.Encoding.GetEncoding(1251);
            try
            {
                // Создание экземпляра StreamReader для чтения из файла
                Читатель = new System.IO.StreamReader(
                System.IO.Directory.GetCurrentDirectory() +
                                               @"\test.txt", Кодировка);
                this.Text = Читатель.ReadLine(); // Название предмета
                // Обнуление всех счетчиков:
                СчетВопросов = 0; ПравилОтветов = 0; НеПравилОтветов = 0;
                // Задаем размер массива для НеПравилОтветы:
                НеПравилОтветы = new String[100];
            }
            catch (Exception Ситуация)
            {   // Отчет о всех ошибках:
                MessageBox.Show(Ситуация.Message, "Ошибка",
                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            ЧитатьСледВопрос();
        }
        void ЧитатьСледВопрос()
        {
            label1.Text = Читатель.ReadLine();
            // Считывание вариантов ответа:
            radioButton1.Text = Читатель.ReadLine();
            radioButton2.Text = Читатель.ReadLine();
            
            // Выясняем, какой ответ - правильный:
            НомерПравОтвета = int.Parse(Читатель.ReadLine());
            // Переводим все переключатели в состояние "выключено":
            radioButton1.Checked = false;
            radioButton2.Checked = false;
           
            // Первую кнопку задаем не активной, пока студент не выберет
            // вариант ответа
            button1.Enabled = false;
            СчетВопросов = СчетВопросов + 1;
            // Проверка, конец ли файла:
            if (Читатель.EndOfStream == true) button1.Text = "Завершить";
        }
        void ИзмСостПерекл(Object sender, EventArgs e)
        {
            // Кнопка "Следующий вопрос" становится активной, и ей
            // передаем фокус:
            button1.Enabled = true; button1.Focus();
            RadioButton Переключатель = (RadioButton)sender;
            var tmp = Переключатель.Name;
            // Выясняем номер ответа, выбранный студентом:
            ВыбранОтвет = int.Parse(tmp.Substring(11));
        }
        private void button1_Click(object sender, EventArgs e)
        {
            // Щелчок на кнопке
            // "Следующий вопрос/Завершить/Начать тестирование снач"
            // Счет правильных ответов:
            if (ВыбранОтвет == НомерПравОтвета) ПравилОтветов =
                                                ПравилОтветов + 1;
            if (ВыбранОтвет != НомерПравОтвета)
            {
                // Счет неправильных ответов:
                НеПравилОтветов = НеПравилОтветов + 1;
                // Запоминаем вопросы с неправильными ответами:
                НеПравилОтветы[НеПравилОтветов] = label1.Text;
            }
            if (button1.Text == "Начать тестирование сначала")
            {
                button1.Text = "Следующий вопрос";
                // Переключатели становятся видимыми, доступными для выбора:
                radioButton1.Visible = true;
                radioButton2.Visible = true;
                
                // Переход к началу файла:
                НачалоТеста(); return;
            }
            if (button1.Text == "Завершить")
            {
                // Закрываем текстовый файл:
                Читатель.Close();
                // Переключатели делаем невидимыми:
                radioButton1.Visible = false;
                radioButton2.Visible = false;
              
                // Формируем оценку за тест:
                label1.Text = String.Format("Тестирование завершено.\n" +
                    "Правильных ответов: {0} из {1}.\n" +
                    "Оценка в пятибальной системе: {2:F2}.", ПравилОтветов,
                    СчетВопросов, (ПравилОтветов * 5.0F) / СчетВопросов);
                // 5F - это максимальная оценка
                button1.Text = "Начать тестирование сначала";
                // Вывод вопросов, на которые "Вы дали неправильный ответ":
                var Str = "СПИСОК ВОПРОСОВ, НА КОТОРЫЕ ВЫ ДАЛИ " +
                          "НЕПРАВИЛЬНЫЙ ОТВЕТ:\n\n";
                for (int i = 1; i <= НеПравилОтветов; i++)
                    Str = Str + НеПравилОтветы[i] + "\n";
 
                // Если есть неправильные ответы, то вывести через
                // MessageBox список соответствующих вопросов:
                if (НеПравилОтветов != 0) MessageBox.Show(
                                          Str, "Тестирование завершено");
            } // Конец условия if (button1.Text == "Завершить")
            if (button1.Text == "Следующий вопрос") ЧитатьСледВопрос();
        }
        private void button2_Click(object sender, EventArgs e)
        {
            // Щелчок на кнопке "Выход"
            this.Close();
        }
    }
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2018, 08:33
Ответы с готовыми решениями:

Как реализовать возможность просмотра результатов теста?
Добрый день ребята, будьте добры помогите новичку. Есть тест, каждый его...

Сохранение результата теста
Здравствуйте! В общем хочу сделать такую весч. У меня есть программа, тест...

Сохранение результатов и настроек
Как можно сделать так, что бы приложение запоминало настройки, которые применил...

Сохранение результатов datagridview
на форме datagridview.При двойном клике на какую нибудь ячейку меняется цвет...

Вывод результатов в конце "теста"
Сделал небольшой тест, состоящий из CheckBox'ов..Ну это даже не тест, а больше...

2
PoPsa85
195 / 146 / 73
Регистрация: 01.07.2018
Сообщений: 509
13.08.2018, 10:29 2
Лучший ответ Сообщение было отмечено Tamerlan2711 как решение

Решение

Похоже 1С`ик код писал. Если совсем просто:
C#
1
2
3
4
5
6
7
8
9
10
label1.Text = String.Format("Тестирование завершено.\n" +
                    "Правильных ответов: {0} из {1}.\n" +
                    "Оценка в пятибальной системе: {2:F2}.", ПравилОтветов,
                    СчетВопросов, (ПравилОтветов * 5.0F) / СчетВопросов);
//Добавить
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"result.txt")){
file.WriteLine(ПравилОтветов);
file.WriteLine((ПравилОтветов * 5.0F) / СчетВопросов);
file.Clsose();
}
P.S. А вообще код ужасный. Не показывайте больше никому.
1
Tamerlan2711
0 / 0 / 0
Регистрация: 15.11.2015
Сообщений: 19
13.08.2018, 12:15  [ТС] 3
спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2018, 12:15

Распознавание речи Google и сохранение результатов в текстовый файл
Здравствуйте. Передо мной стоит задача в создании программы для непрерывного...

Подскажите пожалуйста, как нарисовать модель молекулы используя входной файл, например файл результатов гаусяна
К примеру , чтобы получилось такое Данные можно взять из этого файла(все...

Сохранить результат теста в текстовый файл по указанному пути
есть работающий тест, необходимо сохранить результат теста в текстовый файл, и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru