Програма тестування студентів

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
Комп’ютерні науки
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Курсовий проект
Предмет:
Програмування мовою С

Частина тексту файла (без зображень, графіків і формул):

Додаток А Лістинг програми Лістинг Menu // Підключення бібліотек using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Tests { public partial class Menu : Form { // Функція головного меню public Menu() { InitializeComponent(); } // Відкриття форми з обранням тесту private void pictureBox2_Click(object sender, EventArgs e) { LoadForm LF = new LoadForm(); LF.Show(); this.Hide(); } // Вихід з програми private void pictureBox1_Click(object sender, EventArgs e) { Application.Exit(); } } } Лістинг LoadForm // Підключення бібліотек using System; using System.Windows.Forms; using System.IO; using System.Xml; using System.Linq; using Check; namespace Tests { public partial class LoadForm : Form { XmlReader xmlThemeRead; // Створення об’єкту у папці ТЕСТ DirectoryInfo testsDirectory = new DirectoryInfo("Tests"); public LoadForm() { InitializeComponent(); if (!Checking.DataChecking()) MessageBox.Show("Розробив студент групи К12 2.9 Смірнов М.О", "Повідомлення", MessageBoxButtons.OK, MessageBoxIcon.Information); foreach (TextBox textbox in this.Controls.OfType<TextBox>()) { textbox.Dispose(); } if (testsDirectory.Exists == false) CreateTestDir(); comboBox1.Items.AddRange(testsDirectory.GetDirectories()); // Додавання папок з дерикторії Tests } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) // Оновлення listBox1 при обранні comboBox1 { ThemeLabel.Text = "Тема тесту: "; // Очищення теми DirectoryInfo testsDir = new DirectoryInfo("Tests\\" + comboBox1.Text); listBox1.Items.Clear(); // Очищення listBox1 foreach (FileInfo file in testsDir.GetFiles()) { listBox1.Items.Add(Path.GetFileNameWithoutExtension(file.FullName)); } pictureBox2.Enabled = false; } private void pictureBox1_Click(object sender, EventArgs e) { Application.Exit(); } private void Form_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("Ви впевнені що хочете вийти?", "Вихід", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) e.Cancel = true; else this.Visible = true; } public void CreateTestDir() { testsDirectory.Create(); testsDirectory.CreateSubdirectory("Периферійні пристрої"); } private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { try { xmlThemeRead = new XmlTextReader("Tests\\" + comboBox1.Text + "\\" + listBox1.Text + ".xml"); // Пошук вузла <Theme> do xmlThemeRead.Read(); while (xmlThemeRead.Name != "Theme"); // зчитуємо тему тесту xmlThemeRead.Read(); // вивести тему тесту ThemeLabel.Text = "Тема тесту: " + xmlThemeRead.Value; // виходимо з вузла <Theme> xmlThemeRead.Read(); pictureBox2.Enabled = true; } catch (Exception) { MessageBox.Show("Виберіть інший файл!", "Помилка!"); } } private void pictureBox2_Click(object sender, EventArgs e) { if (textBox1.Text == "") MessageBox.Show("Введіть Ваше ім'я!", "Помилка!", MessageBoxButtons.OK, MessageBoxIcon.Warning); // Просимо ввести ім'я else { string xmlPath = "Tests\\" + comboBox1.Text + "\\" + listBox1.Text + ".xml"; //Зберігаємо шлях до xml - файлу MainForm MF = new MainForm(xmlPath, textBox1.Text, ThemeLabel.Text); //Передаємо в форму 2 шлях до тесту і ім'я користувача MF.Show(); // Викликаємо форму тестування this.Visible = false; // Приховуємо форму } } } } Лістинг MainForm // Підключення бібліотек using System; using System.Xml; using System.Windows.Forms; namespace Tests { public partial class MainForm : Form { XmlReader xmlReader; // Ім’я користувача string PersonName; // Тема тесту string Theme; // загальна кількість питань int nv; // вірних відповідей int RightAnsw; int position = 0; // Питання string qw; // Варіанти відповідей string[] answ = new string[4]; // Вірна відповідь string right; bool righting; public MainForm(string TestPath, string personName, string theme) { InitializeComponent(); // Ім’я користувача PersonName = personName; // Тема тесту Theme = theme; MessageBox.Show("Для початку тестування натисніть \"ОК\"", "Тестування"); // Створюємо xmlReader xmlReader = new XmlTextReader(TestPath); // Читання xmlReader xmlReader.Read(); // Зчитування кі-сть питань ReadNombers(); LoadQwest(); ShowQwest(); } public void ReadNombers() { // пошук вузла <qw> do xmlReader.Read(); while (xmlReader.Name != "qw"); nv = Convert.ToInt32(xmlReader.GetAttribute("numbers")); // Читаємо атрибут вузла <qw> xmlReader.Read(); // Вхід в вузол <qw> } public void LoadQwest() { position++; if (position > nv) Itog(); else { // Пошук питань do xmlReader.Read(); while (xmlReader.Name != "q" + position); if (xmlReader.Name == "q" + position) { qw = xmlReader.GetAttribute("text"); // Зчитування питання right = xmlReader.GetAttribute("right"); // Зчитування відповіді xmlReader.Read(); // Вхід в вузол <q> // Пошук <answers> do xmlReader.Read(); while (xmlReader.Name != "answers"); xmlReader.Read(); // Вхід в вузол <answers> answ = xmlReader.Value.Split('|'); // Зберігання відповідей в масив } } } public void ShowQwest() { QwLabel.Text = qw; // Вивід питання // Вивід варіантів відповідей radioButton0.Text = answ[0]; radioButton1.Text = answ[1]; radioButton2.Text = answ[2]; radioButton3.Text = answ[3]; pictureBox2.Enabled = false; // Блокування кнопки } public void Checked() { if (righting == true) RightAnsw++; } public void Itog() { MessageBox.Show("Тестування завершено!", "Тестування"); FinalForm FF = new FinalForm(PersonName, Theme, nv, RightAnsw); this.Dispose(); FF.ShowDialog(); } private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { Application.Exit(); } private void pictureBox1_Click(object sender, EventArgs e) { Application.Exit(); } // Перевірка radioButton на активність private void radioButton_CheckedChanged(object sender, EventArgs e) { righting = false; if (radioButton0.Checked) { if (radioButton0.Text == right) righting = true; } if (radioButton1.Checked) { if (radioButton1.Text == right) righting = true; } if (radioButton2.Checked) { if (radioButton2.Text == right) righting = true; } if (radioButton3.Checked) { if (radioButton3.Text == right) righting = true; } pictureBox2.Enabled = true; } private void pictureBox2_Click(object sender, EventArgs e) { // Перевірка наявності питань Checked(); //Завантаження питання LoadQwest(); //Вивід питання ShowQwest(); righting = false; } } } Лістинг FinalForm // Підключення бібліотек using System; using System.Windows.Forms; using mark; namespace Tests { public partial class FinalForm : Form { // Кількість балів double Mark; public FinalForm(string PersonName, string Theme, int NumbersOfQwest, int RightAnswers) { InitializeComponent(); / /Заповнюємо текстові поля NameLabel.Text += PersonName; ThemeLabel.Text = Theme; NumbersLabel.Text += NumbersOfQwest.ToString(); RightLabel.Text += RightAnswers.ToString(); // обчислюємо оцінку // MarkOfQwest = 100 / NumbersOfQwest; // Mark = MarkOfQwest * RightAnswers; Mark = mark.MarkClass.Mark(NumbersOfQwest, RightAnswers); // виводимо оцінку MarkLabel.Text += Mark.ToString(); } private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { Application.Exit(); } private void pictureBox1_Click(object sender, EventArgs e) { Application.Exit(); } } }
Антиботан аватар за замовчуванням

10.05.2018 15:05-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!