Смекни!
smekni.com

Разработка компьютерного тестового контроля знаний студентов (стр. 3 из 10)

1) Вызов диалогового окна выбора файла с тестовыми заданиями.

2) Создание потока для чтения данных из файла.

3) Циклическое чтение (пока не прочитана пустая строка) сток из файла в таком порядке:


Рисунок 2.4 – Окно после нажатия на кнопку "Начать тестирование"

А) чтение строки с вопросом.

Б) чтение строки с количеством вопросов и номером правильного ответа.

В) циклическое чтение строк с вариантами ответа.

Г) вывод на экран запрос о вводе номера правильного ответа.

Д) проверка правильности введенного номера ответа

4) Определение общего результата тестирования как произведение 12 на отношение числа правильных ответов к общему числу вопросов.

Для вывода диалогового окна с текстом вопроса, вариантами ответа и элементом для ввода номера правильного ответа будем использовать функцию InputBox (Рисунок 2.5). А для этого необходимо подключит библиотеку Microsoft.VisualBasic.dll к ссылкам проекта.


Рисунок 2.5 – Ввод вопросов и вариантов ответа

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;

using System.IO;

namespace tester

{

public partial class Form1 : Form

{

int indexVopros = 0;

int kolPrav = 0;

string vopr, otv;

public Form1()

{

InitializeComponent();

}

private void button2_Click(object sender, EventArgs e)

{

Close();

}

private void button1_Click(object sender, EventArgs e)

{

if (openFileDialog1.ShowDialog() == DialogResult.OK) //открытиедиалоговогоокна

{

using (StreamReader sr = new StreamReader(openFileDialog1.FileName, Encoding.GetEncoding(1251)))// открытиепотокадлячтенияизфайла, которыйсодержитсимволы "кирилица 1251"

{

String line;

int kol, prav;//номер правильного ответа и количество ответов для каждого вопроса

label1.Text = "";

indexVopros = 0;

kolPrav = 0;

while (sr.Peek() != -1)

{

indexVopros = indexVopros + 1;

// чтениевопроса

line = sr.ReadLine();

vopr = /*Convert.ToString(indexVopros) + ". " + */ line;

// чтение количества ответов и номера правильного ответа

line = sr.ReadLine();

string s = Convert.ToString(line[0]);

kol = Convert.ToInt32(s);

s = Convert.ToString(line[2]);

prav = Convert.ToInt32(s);

// циклическое чтение перечня вариантов ответа

otv = "";

for (int i = 1; i <= kol; i++)

{

line = sr.ReadLine();// чтение вариантов ответа

otv = otv + Convert.ToString(i) + ")" + line + (char)13;

}

// вывод на экран нового окна с текстом вопроса и вариантами ответа и запросом на ввод номера правильного ответа

string otvet = Microsoft.VisualBasic.Interaction.InputBox(otv, vopr, "", Location.X, Location.Y);

//сравнение номера правильного ответа с номером введым пользователем

if (Convert.ToInt32(otvet) == prav)

{

//правильныйответ

kolPrav = kolPrav + 1;

label1.Text = label1.Text + Convert.ToString(indexVopros) + ". " + "Правильно" + (char)13;

}

else

{

//неправильныйответ

label1.Text = label1.Text + Convert.ToString(indexVopros) + ". " + "Неправильно" + (char)13;

}

}

//оцениваниерезультатовтестирования

int rez = Convert.ToInt32(12* kolPrav / indexVopros);

if (rez >= 10)

{

MessageBox.Show("Отлично: "+Convert.ToString(rez));

}

else

{

if (rez >= 7)

{

MessageBox.Show("Хорошо: " + Convert.ToString(rez));

}

else

{

if (rez >= 4)

{

MessageBox.Show("Удовлетворительно: " + Convert.ToString(rez));

}

else

{

MessageBox.Show("Неудовлетворительно: " + Convert.ToString(rez));

} } } } } } }

}

После запуска приложения на экране появляется окно (Рисунок 2.6):


Рисунок 2.6 – Окно после запуска приложения

Для выбора файла файла нажимаем на кнопку "Начать тестирование" (Рисунок 2.7).

Рисунок 2.7 – Выбор файла

Ответы предоставляются пользователю в следующем виде(Рисунок 2.8):


Рисунок 2.8 – Варианты ответов на вопрос

Далее выбирается вариант ответа и цифра с правильным ответом заносится в поле и нажимается "ОК". Ответ производится на все поставленные вопросы аналогично.

Результат тестирования выглядит следующим образом (Рисунок 2.9).

Рисунок 2.9 – Результат тестирования

На этом работа программы заканчивается.

Для выхода из программы следует нажать на кнопку "Закрыть программу". Следует заметить, что поскольку программа написана в среде Visual Studio 2008 на языке С#, то для ее запуска необходимо наличие библиотеки Microsoft FrameWork 3.5, которую безплатно можно скачать с сайта http://www.mictosoft.com.


РАЗДЕЛ 3. ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ ОБЪЕКТА РАЗРАБОТКИ

В данном разделе проводится технико-экономический расчет программного обеспечения, расчет расходов на разработку, внедрение, эксплуатацию разработанного программного обеспечения.

3.1 Расчет расходов ПО, которое разрабатывается

Таблица 3.1 – Данные для расчета экономического эффекта ПО на 1.01.2010г.

№п/п Статьи затрат Усл. обозн. Ед. изм. Значения
Проектирование и разработка ПЗ
1 Часовая тарифная ставка программиста Зпр грн. 8,00
2 Коэффициент сложности программы с коэф. 1,40
3 Коэффициент коррекции программы Р коэф. 0,05
4 Коэффициент увеличения расходов труда Z коэф. 1,3
5 Коэффициент квалификации программиста k коэф. 1,0
6 Амортизационные отчисления Амт % 10,0
7 Мощность компьютера, принтера Квт/час 0,40
8 Стоимость ПЕОМ IBM Sempron LE1150(AM2)/1GB/TFT Втз грн. 3200,00
9 Тариф на электроэнергию Це/е грн. 0,56
10 Норма дополнительной зарплаты Нд % 15,0
11 Отчисление на социальные расходы Нсоц % 37,2
12 Транспортно-заготовительные расходы Нтр % 4,0
Эксплуатация П0
13 Численность обслуживающего персонала Чо чел 1
14 Часовая тарифная ставка обслуживающего персонала Зперс грн. 6,00
15 Время обслуживания систем То час/г 150
16 Стоимость ПЕОМ Втз грн. 3200,00
17 Норма амортизационных отчислений на ПЕОМ На % 10,0
18 Норма амортизационных отчислений на ПЗ НаП % 10,0
19 Накладные расходы Рнак % 25,0
20 Отчисление на содержание и ремонт ПЕОМ и ПО Нр % 10,0
21 Стоимость работы одного часа ПЕОМ Вг грн. 6,5

Первичными исходными данными для определения себестоимости ПО является количество исходных команд (операторов) конечного программного продукта. Условное количество операторов Q в программе задания может быть оценено по формуле:

, (3.1)

где у – расчетное количество операторов в программе, что разрабатывается (единиц);

с – коэффициент сложности программы;

р – коэффициент коррекции программы в ходе ее разработки.

Рассчитанное количество операторов в разработанной программе – 100.

Коэффициент с – относительная сложность задания относительно отношения к типичной задаче, сложность которой принята более 1, лежит в границах от 1,25 до 2,0 и выбирается равным 1,30. Коэффициент коррекции программы р – увеличение объема работ за счет внесения изменений в программу лежит в границах от 0,05 до 0,1 и выбирается равным 0,05.

Подставим выбранные значения в формулу (3.1) и определим величину Q:

Q = 100∙1,3 (1 + 0,05) = 14.

3.2 Расчет расходов на создание ПО

Расчет расходов на ПО проводится методом калькуляции расходов, в основу которого положена трудоемкость и заработная плата разработчиков. Трудоемкость разработки ПЗ рассчитывается по формуле:

(3.2)

где То – расходы труда на описание задания;

Ти – расходы труда на изучение описания задания;

Та – расходы труда на разработку алгоритма решения задания;

Тп– расходы труда на составление программы по готовой блок-схеме;

Тотл – расходы труда на отладку программы на ЭВМ;

Тд– расходы труда на подготовку документации.

Составные расходы труда, в свою очередь, можно определить по числу операторов Q для ПО, что разрабатывается. При оценке составных расходов труда используются:

– коэффициенты квалификации разработчика алгоритмов и программ – к;

– увеличение расходов труда в результате недостаточного описания задания – Z.

Коэффициент квалификации разработчика характеризует меру подготовленности исполнителя к порученной ему работе (он задается в зависимости от стажа работы), к = 1,0. Коэффициент увеличения расходов труда в результате недостаточного описания задания характеризует качество постановки задания, выданной для разработки программы, в связи с тем, что задание требовало уточнения и некоторой доработки. Этот коэффициент принимается равным 1,3.

Все исходные данные приведенные в таблице 3.1.

а) Трудоемкость разработки П0 составляет:

Расходы труда на подготовку описания задания То принимаются равными 18 чел/час, исходя из опыта работы. Расходы труда на изучение описания задания Те с учетом уточнения описания и квалификации программиста могут быть определены по формуле:

; (3.3)

Ти = 14∙1,3/80∙1 = 0,22(чел/час)

Расходы труда на разработку алгоритма решения задачи рассчитываются по формуле:

; (3.4)

Та=14/25∙1 = 0,56 (чел/час)

Расходы труда на составление программы по готовой блок-схеме Тп рассчитываются по формуле: