Разработка программы тестирования студентов с графическим интерфейсом пользователя
Программирование на языке С#. Описание элементов управления, используемых в процессе создания программы. Доступ к отдельным знакам, извлечение подстрок. Инициализация пустых строк. Листинг программы, примеры использования ее для тестирования знаний.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 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