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

Программирование на языке С#. Описание элементов управления, используемых в процессе создания программы. Доступ к отдельным знакам, извлечение подстрок. Инициализация пустых строк. Листинг программы, примеры использования ее для тестирования знаний.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 12.03.2013
Размер файла 539,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Разработка программы тестирования студентов

с графическим интерфейсом пользователя

Введение

Язык программирования С# был создан в конце 1990-х годов и стал частью общей NET-стратегии Microsoft. Впервые он увидел свет в качестве б-версии в середине 2000 года. Главным архитектором С# был Андерс Хейлсберг (Anders Hejlsberg) -- один из ведущих специалистов в области языков программирования, получивший признание во всем мире. Достаточно сказать, что в 1980-х он был автором весьма успешного продукта Turbo Pascal, изящная реализация которого установила стандарт для всех будущих компиляторов. С# непосредственно связан с С, C++ и Java. И это не случайно. Эти три языка -- самые популярные и самые любимые языки программирования в мире. Более того, почти все профессиональные программисты сегодня знают С и C++, и большинство знает Java. Поскольку С# построен на прочном, понятном фундаменте, то переход от этих "фундаментальных" языков к "надстройке" происходит без особых усилий со стороны программистов. Так как Андерс Хейлсберг не собирался изобретать свое "колесо", он сосредоточился на введении усовершенствований и новшеств.

"Дедушкой" С# является язык С. От С язык С# унаследовал синтаксис, многие ключевые слова и операторы. Кроме того, С# построен на улучшенной объектной модели, определенной в C++. Если вы знаете С или C++, то с С# вы сразу станете друзьями. С# и Java связаны между собой несколько сложнее. Как упоминалось выше, Java также является потомком С и C++. У него тоже общий с ними синтаксис и сходная объектная модель. Подобно Java C# предназначен для создания переносимого кода. Однако С# -- не потомок Java. Скорее С# и Java можно считать двоюродными братьями, имеющими общих предков, но получившими от родителей разные наборы "

Задание

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

Имеется текстовый файл с тестами, правильный ответ/ответы помечены, выдаём тесты пользователю и подсчитываем его баллы.

Во входном файле каждый вопрос и вариант ответа занимает одну строку. Первым символом каждого варианта ответа является *. Правильный вариант ответа помечен символами «*!»Пустые строки игнорируются. Пример.

Сколько будет 2х2?

* 3

*! 4

Сколько будет 3х3?

* 3

*! 9

1. Теоретические сведения

OpenFileDialog - диалоговое окно для открытия файла.

ListBox - Элемент управления позволяет отобразить список позиций, из которых пользователь может выбрать нужную щелчком мыши. listBox.SelectedIndex - Возвращает или задает индекс выделенной в настоящее время строки.

MessageBox - Стандартное диалоговое окно. Отображает окно сообщения, содержащее текст, кнопки и символы, с помощью которых информируется и инструктируется пользователь.

StreamReader

StreamReader позволяет производить чтение каких либо потоков данных, в большинстве случаев этим потоком является файл.

Находится StreamReader, как и другие классы для работы с файлами, в пространстве System.IO

Основные методы класса это модификации чтения потока

Read, ReadLine и ReadToEnd отличаются соответственно блоками чтения потока

StreamWriter

StreamWriter позволяет производить Запись данных в поток, в большинстве случаев этим потоком является файл. Находится StreamWriter, как и другие классы для работы с файлами, в пространстве System.IO

Основные методы класса это модификации записи потока Write и WriteLine. Отличается в том, что WriteLine в конец добавляется символ перевода строки. В конструкторе можно указать, тот момент будет ли производится запись в конец файла или файл будет переписан.

И еще одним важным методом является метод Close(), которым должен обяхательно заканчиваться процесс записи в файл, иначе другие приложения не смогут с ним работать из-за его занятости.

Строки. Средства работы со строками

Строка в C# -- это массив знаков, объявленный с помощью ключевого слова string. Строковый литерал объявляется с помощью кавычек, как показано в следующем примере.

string s = "Hello, World!";

Переприсваивание

Строки можно целиком переприсваивать:

string s1 = "Hello";

string s2 = s1; //переприсваиваем

Объединение строк

Можно объединять строки с помощью оператора +, как показано в следующем примере:

string s1 = "orange";

string s2 = "red";

s1 += s2;

Console.WriteLine(s1); // напечатается "orangered"

Если требуется добавить в строку обратную косую черту, перед ней нужно поставить еще одну обратную косую черту. Следующая строка:

string filePath = "\\\\My Documents\\";

Console.WriteLine(filePath);

/* Напечатается:

\\My Documents\

*/

Точные строки: символ @

Символ @ служит для того, чтобы конструктор строк пропускал escape-знаки и переносы строки. Следующие две строки являются идентичными:

string p1 = "\\\\My Documents\\My Files\\";

string p2 = @"\\My Documents\My Files\";

Чтобы поставить в точной строке знак двойных кавычек, нужно использовать по два таких знака, как показано в следующем примере:

string s = @"You say ""goodbye"" and I say ""hello""";

Доступ к отдельным знакам

Квадратные скобки [] служат для доступа к отдельным знакам в объекте string, но при этом возможен доступ только для чтения:

string str = "test";

char x = str[2]; // x = 's';

string s5 = "Printing backwards";

for (int i = 0; i < s5.Length; i++)

Console.Write(s5[s5.Length - i - 1]);

// напечатается "sdrawkcab gnitnirP"

Извлечение подстрок

Для извлечения подстроки из строки используется метод Substring.

string s3 = "Visual C# Express";

string s4 = s3.Substring(7, 2);

Console.WriteLine(s4); // напечатается "C#"

Замена по образцу

Для замены подстроки в строке по образцу используется метод Replace.

string s3 = "Visual C# Express";

string s5 = s3.Replace("C#", "Basic");

Сonsole.WriteLine(s5);

// напечатается "Visual Basic Express"

Удаление фрагментов и вставка строк в строки

Может быть выполнена с помощью методов Remove и Insert:

string x = "ZX Spectrum";

x=x.Remove(2, 1);

x = x.Insert(2,"-");

Console.WriteLine(x);

Console.ReadKey();

Пустые строки

Пустая строка -- это экземпляр объекта String, содержащий 0 знаков. Пустые строки часто используются в различных сценариях программирования, представляя пустое текстовое поле. Для пустых строк можно вызывать методы, потому что такие строки являются допустимыми объектами String. Пустые строки инициализируются следующим образом:

string s = "";

Преобразование строк в другие типы

С помощью объекта Convert:

N = Convert.ToInt32(s1);

M = Convert.ToDouble(s2);

F = Convert.ToBoolean(s3);

B = Convert.ToByte(s4);

C = Convert.ToChar(k);

s5= Convert.ToString(x);

С помощью метода Parse:

N = int.Parse(s1);

N = int.Parse(Console.ReadLine());

M = Double.Parse(s2);

F = bool.Parse(s3);

2. Листинг программы

Form1.cs

using System;

using System.IO;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace Prog_test

{

public partial class Form1 : Form

{

Form2 frm = new Form2();

public string fn = "";

public Form1()

{

InitializeComponent();

}

public string FName()

{

return fn;

}

private void button1_Click(object sender, EventArgs e)

{

frm.Show();

frm.Activate();

Visible = false;

}

private void openFileDialog1_FileOk(object sender, CancelEventArgs e)

{

}

private void Form1_Load(object sender, EventArgs e)

{

}

}

}

Form2.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.IO;

using System.Windows.Forms;

namespace Prog_test

{

public partial class Form2 : Form

{

public Form2()

{

InitializeComponent();

}

private void Form2_Activated(object sender, EventArgs e)

{

}

public string[] vopr = new string[10];//массив вопросов

public string[,] otv = new string[10, 10];//массив ответов

public int[] n_otv = new int[10];//массив номеров верных ответов

public int[] k_otv = new int[10];//массив количества ответов

public int i = 0;

public int ts = 1;//номер вопроса в тесте

public int vv = 0;//номер текущего вопроса

public int vern = 0;//число верных ответов

private void openFileDialog1_FileOk(object sender, CancelEventArgs e)

{

StreamReader f1 = new StreamReader(openFileDialog1.FileName);//Формирование символьного потока для файла 1х вопросов

string s;

while (f1.EndOfStream != true)//пока файл не кончился -действуем

{

s = f1.ReadLine(); //считывыаем строку из файла

if (s.IndexOf("*") != 0)//если в строке нет * в начале - это вопрос

{

vv++;//увеличиваем номер вопроса

vopr[vv] = s;

k_otv[vv] = 0;

}

else

{

k_otv[vv]++;//если это один из вариантов ответа увеличиваем счетчик количества вариантов

s = s.Replace("*", ""); //убираем служебные символы

if (s.IndexOf("!") == 0)

{

s = s.Replace("!", "");

n_otv[vv] = k_otv[vv];//если вариант правильный - пишем это в переменную для прав. вариана

}

otv[vv, k_otv[vv]] = s; //записываем ответы в массив

}

}

//выводим на форму вопрос и варианты ответов

label1.Text = vopr[ts];

label2.Text = "Вопрос номер " + ts.ToString();

for (i = 1; i < k_otv[ts] + 1; i++)

listBox1.Items.Add(otv[ts, i]);

}

private void Form2_Load(object sender, EventArgs e)

{

openFileDialog1.ShowDialog();

}

private void listBox1_Click(object sender, EventArgs e)

{

if (listBox1.SelectedIndex + 1 == n_otv[ts])

{

MessageBox.Show("Верно!");

vern++;

}

else

{

MessageBox.Show("Неверно!");

}

//пока не отвечены все вопросы - загружаем следующий

if (ts < vv)

{

ts++;

listBox1.Items.Clear();

label1.Text = vopr[ts];

label2.Text = "Вопрос номер " + ts.ToString();

for (i = 1; i < k_otv[ts] + 1; i++)

listBox1.Items.Add(otv[ts, i]);

}//если вопросы кончились - выводим результаты

else

{

Close();

MessageBox.Show("Правильных ответов: " + vern.ToString());

}

}

private void Form2_FormClosing(object sender, FormClosingEventArgs e)

{

Form1 f1 = new Form1();

f1.Visible = true;

}

}

}

Пример текстового файла с вопросами

D:\c# kursovaya\kursovaya2011\3.txt

в каком году была перестройка?

*1994

*!1991

*1994

сколько килограмм в 1 тонне?

*1024

*!1000

*100

Кто прорубил окно в Европу?

*НиколайII

*ПетрIII

*!ПетрI

3. Контрольный пример

Рис.1 - Диалоговое окно открытия файла с тестом(3.txt ).

Рис.2 - Выполнение теста.

Список литературы

программа листинг тестирование

1) Абрамян М.Э. Visual C# на примерах. - СПб.: БХВ-Петербург, 2008. - 496 с.: ил.

2) Культин Н.Б. Microsoft Visual C# в задачах и примерах. - СПб.: БХВ-Петербург, 2009. - 320 с.: ил. + CD-ROM.

3) Павловская Т.А. C#. Программирование на языке высокого уровня. Учебник для вузов. - СПб.: Питер, 2009. - 432 с.: ил.

4) Карли Уотсон, Кристиан Нейгел, Якоб Хаммер Педерсен, Эрик Уайт Visual C# 2008: базовый курс.: Пер. с англ. - М. : ООО «И.Д. Вильямс», 2009. 1216 с.: ил.

Размещено на Allbest.ru

...

Подобные документы

  • Проектирование программы в среде Delphi для тестирования знаний студентов по программированию, с выводом оценки по окончанию тестирования. Разработка экранных форм и алгоритма программы. Описание программных модулей. Алгоритм процедуры BitBtn1Click.

    курсовая работа [365,0 K], добавлен 18.05.2013

  • Решения задачи графическим и программным способами. Описание алгоритма решения графическим способом, укрупненная схема алгоритма. Ввод элементов двумерного массива, вывод преобразованного массива, разработка программы на языке pascal, листинг программы.

    курсовая работа [115,5 K], добавлен 22.05.2010

  • Назначение и архитектура экспертных систем, их применение в сфере образования. Экспертные системы тестирования, принципы их функционирования. Инструментальные средства создания приложения и разработка программы тестирования. Описание программы, листинг.

    дипломная работа [706,4 K], добавлен 07.05.2012

  • Клиент-серверная архитектура проектируемой программы по проверке знаний студентов, структура базы данных. Разработка ее программно-интерфейсной реализации в среде Delphi. Установка и запуск приложения, информация для пользователя, листинг программы.

    дипломная работа [2,1 M], добавлен 20.06.2011

  • Разработка программы проверки знаний для тестирования студентов по программированию с кодом на языке Delphi. Проектирование визуального интерфейса и словесный алгоритм работы программы. Алгоритмы разработанных процедур и функций, инструкция пользователя.

    курсовая работа [506,5 K], добавлен 21.02.2011

  • Составление и описание программы для тестирования знаний пользователя по разделу математики "Обыкновенные дроби", написанной на языке Visual C++ с использование библиотеки MFC. Основные характеристики элементов управления разрабатываемой программы.

    курсовая работа [776,9 K], добавлен 29.06.2011

  • Создание сетевой системы тестирования с целью автоматизации процесса контроля знаний, оценивания результатов и создания тестовых заданий. Файлы проекта и их назначение. Описание алгоритмов и модулей программы. Работа с сетью, руководство пользователя.

    контрольная работа [928,3 K], добавлен 23.12.2012

  • Описание алгоритма решения задачи графическим способом. Вывод элементов массива. Описание блоков укрупненной схемы алгоритма на языке Pascal. Листинг программы, а также ее тестирование. Результат выполнения c помощью ввода различных входных данных.

    контрольная работа [150,4 K], добавлен 03.05.2014

  • Обеспечение универсальности функций тестирования при разработке программы для тестирования студентов. Бесплатное программное обеспечение. Анализ выбора среды программирования. Особенности среды Delphi и СУБД MySQL. Описание алгоритма и блок-схемы.

    курсовая работа [1,6 M], добавлен 01.02.2013

  • Разработка программы тестирования студентов по MS PowerPoint с кодом на языке Delphi. Создание алгоритма для решения функциональных требований задачи. Описание переменных, вспомогательных процедур, входных и выходных данных для реализации программы.

    курсовая работа [1,5 M], добавлен 21.09.2010

  • Описание принципа развивающей игры в слова "Виселица". Разработка программы, реализующей задачу данной игры на языке Delphi. Обоснование выбора среды программирования, листинг файла, результаты отладки и тестирования, руководство для пользователя.

    курсовая работа [572,7 K], добавлен 14.07.2012

  • Блок-схема модулей программы. Главная цель бизнеса ООО "Регион". Протокол тестирования продукта. Руководство пользователя программы. Расчет цены предложения и минимального количества копий тиражирования. Образец отчета "Книга продаж", листинг программы.

    дипломная работа [1,0 M], добавлен 18.09.2014

  • Создание программы на языке программирования С#, которая проверяет наличие в матрице хотя бы одного столбца, содержащего положительный элемент, поиск его номера. Упорядочивание его элементов по возрастанию. Листинг программы и инструкция по работе с ней.

    курсовая работа [1,9 M], добавлен 28.05.2014

  • Описание алгоритма решения задачи графическим способом. Ввод элементов исходного массива в цикле. Нахождение определённых элементов. Сортировка элементов с помощью пузырькового метода. Разработка программы на языке Pascal. Поиск наибольшего элемента.

    лабораторная работа [123,5 K], добавлен 15.01.2014

  • Разработка программы на языке Pascal. Описание переменных. Действия, которые должна выполнить программа согласно выбранного алгоритма. Детализация графической части программы. Листинг и тестирование программы. Вывод массива данных на экран монитора.

    контрольная работа [360,4 K], добавлен 13.06.2012

  • Описание алгоритма решения задачи по вычислению суммы элементов строк матрицы с использованием графического способа. Детализация укрупненной схемы алгоритма и разработка программы для решения задачи в среде Turbo Pascal. Листинг и тестирование программы.

    курсовая работа [446,0 K], добавлен 19.06.2014

  • Создание программы на языке Visual C++ с использованием библиотеки MFC для тестирования знаний пользователя в области геометрии. Генерирование тестовых заданий, введение ответа, оценка результата; логическая структура приложения; техническое обеспечение.

    курсовая работа [2,1 M], добавлен 26.06.2011

  • Структурная схема получения гороскопа по дате рождения. Листинг исходных кодов программы и руководство пользователя. Ввод данных с помощью объекта класса QDateEdit. Разработка пользовательского интерфейса. Выбор стратегии тестирования и отладка программы.

    курсовая работа [1,0 M], добавлен 31.05.2015

  • Проектирование модульной структуры программы сетевого мессенджера, назначение модуля "frmMsg". Разработка главной формы и интерфейса пользователя программы. Проектирование модуля формы "About". Разработка методики тестирования и отладка программы.

    курсовая работа [606,7 K], добавлен 19.01.2012

  • Постановка задачи и математическое описание ее решения. Назначение программного обеспечения. Описание принятых идентификаторов. Выбор языка программирования и написание программы на входном языке. Методика отладки программы и проведение ее тестирования.

    курсовая работа [96,1 K], добавлен 25.06.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.