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

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

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

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

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

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

Додаток А Лістинг програми Лістинг 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:40

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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