43146

Программа – тест: «Годны ли вы к службе в армии?»

Курсовая

Информатика, кибернетика и программирование

Польза тестов для человека. С давних времен каждый человек пытается узнать о себе что-то больше, чем уже знает. С развитием психологии большое количество людей узнают о некоторых чертах своего характера, которые в нем присутствуют, но он не обращал раньше на них внимание. Узнать больше о своей личности помогают тесты. Они представляют собой интересные вопросы, в результате которых можно получить определенную характеристику на человека. Наиболее популярны тесты, которые касаются взаимоотношений между людьми и личности человека, в общем.

Русский

2013-11-03

915 KB

1 чел.

ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ МОСКОВСКОЙ ОБЛАСТИ

«Международный университет природы, общества и человека «Дубна»

Филиал

«Протвино»

Кафедра

«Информационные технологии»

(наименование кафедры)

КУРСОВАЯ РАБОТА

ПО

Программирование на языке высокого уровня

(наименование учебной дисциплины)

ТЕМА: Программа – тест: «Годны ли вы к службе в армии?»

(наименование темы)

Выполнил: студент

ПС 112

группы

1

курса

Белогубцев Артём Юрьевич

(Ф.И.О.)

Руководитель:

к.т.н., доц. Астафьева М.П.

(ученая степень, ученое звание, занимаемая должность)

Дата защиты:

Оценка:

(подпись руководителя)

                                              

Оглавление

Оглавление 2

Введение 3

1 Теоретическая часть 4

2 Практическая часть 6

Заключение 12

Библиографический список 13

Приложения 14


Введение

Польза тестов для человека. С давних времен каждый человек пытается узнать о себе что-то больше, чем уже знает. С развитием психологии большое количество людей узнают о некоторых чертах своего характера, которые в нем присутствуют, но он не обращал раньше на них внимание. Узнать больше о своей личности помогают тесты. Они представляют собой интересные вопросы, в результате которых можно получить определенную характеристику на человека. Наиболее популярны тесты, которые касаются взаимоотношений между людьми и личности человека, в общем.

Польза первой группы тестов в том, что они дают возможность посмотреть на определенного вида отношения со стороны. Так есть вопросы, касающееся семейной жизни людей, ответив на них, человек начинает задумываться, как бы он поступил в той или иной ситуации в реальной жизни. Когда конечный итог его не устраивает можно еще раз пройти тест и ответить по-другому, таким образом, дается возможность знать разные способы поведения в жизненных ситуациях. Удобный способ пройти тест, это использование интернета, ведь существуют тесты онлайн, которые можно проходит в удобное для человека время. Некоторые люди не верят в тесты, и зря, к примеру, ответив на вопросы, которые касаются совместимости двух личностей, то можно избежать трудностей в дальнейшей совместной жизни. Единственное и важное условие реального результата это правдивые и осмысленные ответы на поставленные вопросы.

Тесты онлайн касающиеся личности человека приносят пользу для его общего развития и самообучения, ведь они помогают узнать о разных чертах характера, с их помощью можно определить темперамент, уровень интеллекта, способности и другие важные для человека характеристики. Люди, которые пользуются в своей жизни и прислушиваются к тестовым результатам, более успешны, самоуверенны, ведь они точно знают свои и сильные и слабые стороны характера. Поэтому польза тестов носит положительный характер для любого человека, который решил ими воспользоваться и определить благодаря ответам на вопросы черты характера или особенности личности.

Целью курсовой работы является разработка программного приложения «Программа – тест «Годны ли вы к службе в армии?».

Для достижения цели, необходимо выполнить следующие задачи: рассмотреть теоретические вопросы о языке программирования C#; разработать пользовательский интерфейс приложения; написать программный код; протестировать разработанную программу.


1 Теоретическая часть

Данное приложение было разработано  при помощи языка программирования C#, в среде программирования Microsoft Visual Studio 2008.

C# (Си-шарп) — объектно-ориентированный язык программирования для платформы .NET.  Разработан в 2000 году Андерсом Хейлсбергом, Скоттом Вилтамутом и Питером Гольде под эгидой Microsoft Research. Основным постулатом С# является высказывание: "всякая сущность есть объект". Язык основан на строгой компонентной архитектуре и реализует передовые механизмы обеспечения безопасности кода.

Вместе с выпуском новой платформы .NET компания Microsoft представила новый язык, идеально подходящий для новой платформы - C#.

Тем более, что в нем многие найдут любимые черты. Он близок и Delphi, и C++, и Java программистам.

1.1 Основные характеристики языка

Программист, привыкший к платформе Майкрософт, может представить себе C# как промежуточный вариант между C++ и Visual Basic, если рассматривать сложность языковых конструкций и возможности языка.

C# имеет C стиль синтаксиса (для управляющих конструкций, блоков кода, описания сигнатуры методов и др.), много общего с Java (отсутствие множественного наследования и шаблонов, наличие сборщика мусора) и Дельфи (ориентированность на создание компонент), в то же время имеет и свой колорит.

C# был создан специально для технологии ASP.NET.  В то же время на C# полностью написана и сама ASP.NET.

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

C# объектно-ориентированный язык, как и вся платформа .NET. Более того, это язык, ориентированный на написание компонент. C# создан для программирования в управляемой среде с присутствующим сборщиком мусора, но позволяет писать и неуправляемый (unmanaged) код.

Цельность концепции видна, скажем в реализации упаковки/распаковки. Это позволяет рассматривать все типы (даже примитивные) как объекты, что разрешает многие проблемы дизайна приложений.

При создании языка рассматривалась не только простота написания приложений, но и их поддержки - в связи с чем в язык включили поддержку XML комментариев и контроля версий. Настоящий подарок для программистов.

Помимо сборщика мусора и безопасности работы с типами для избежания ошибок в языке также применяется автоматическая инициализация переменных. Все типы, которые размещаются в стеке (value types, к которым относятся примитивные типы, структуры и прочие наследники класса ValueType) инициализируются нулями. Объекты остальных типов размещаются в куче, доступ к ним осуществляется по объектной ссылке, и ссылки эти инициализируются в значение null (которая говорит, что данная ссылка не имеет ассоциированного объекта в куче).

В C# представлена концепция пространств имен, аналогичная пакетам в Java. Это позволяет иерархически структурировать Вашу систему типов, делая код намного более понятным и позволяя избежать проблем с именованием. Вы можете рассматривать пространства имен как директории, а языковые типы как файлы в этих директориях.

Есть ли альтернативные технологии?

Сегодня платформа .NET - лучшее решение для разработки корпоративных приложений и Интернет систем. Платформа предоставляет возможность писать программы любого уровня сложности и назначения с использованием единой среды разработки.

Выделение и объединение лучших идей современных языков программирования делает язык C# не просто суммой их достоинств, а языком программирования нового поколения.

1.2 Версии языка C#

  •  Первая версия языка C# стандартизирована в ECMA и ISO
  •  Вторая версия языка C#  2.0 вышла 7 ноября 2005 вместе с Visual Studio 2005 и .NET 2.0.
  •  Третья версия языка C# была представлена в сентябре 2005 в виде проекта спецификации C# 3.0 и бета-версии C# 3.0, устанавливаемой в виде дополнения к Visual Studio 2005.


2 Практическая часть

Постановка задачи. Составить программу – тест «Годны ли вы к службе в армии?». На экране по очереди появляются 12 вопросов. На каждый из них нужно ввести ответ (да или нет). Результат теста оценивается в баллах. В зависимости от вопроса и ответа к общей сумме баллов прибавляется определённое число очков. После окончания опроса по общей сумме очков делается заключение по поводу годности опрашиваемого.

Рассмотрим  создание форм и их взаимодействие, разработку интерфейса, выбор элементов управления, создание файлов с вопросами и баллами, а также программный код.

2.1 Разработка пользовательских форм

Создание форм. В рассматриваемой курсовой работе предлагается создать следующие формы: «Приветствие», «Главная кнопочная»,  «Инструкция», «Тестирование»,  «Выдача результата»  и  «Выход».  На  Рисунке 1 представлено взаимодействие между этими формами, например, из формы «Тестирование» можно вернуться на «Главную кнопочную» форму,  перейти на формы «Выдача результата»  и  «Выход».

Рисунок1 – Блок-схема взаимодействия форм

Разработка интерфейса. Для создания приложения «Тест» потребуется разработать 6 форм в соответствии с рисунками:

Рисунок 2 – Форма  приветствие

Рисунок 3 – Главная кнопочная форм

Рисунок 4 – Форма инструкция

                                           Рисунок 5 – Форма тестирование

Рисунок - 6 Форма выхода

                      

Рисунок 7 – Форма выдачи результата

Таблица 1 – Свойства объектов

Объект

   Наименование свойств объекта

Значение свойства объекта

Форма приветствия

1

Form1

BackGroundImage

Вставьте любой рисунок

2

Form1

Text

Тест: Годны ли вы к службе в армии?

3

Label1

Text

Годны ли вы к службе в армии?

4

Label2

Text

Выполнил студен: Белогубцев А.

5

Form1

Button1

Далее

6

Form1

Button2

Выход

Главная кнопочная форма

1

Form2

Text

Добро пожаловать

2

PictureBox1

Image

Вставьте любой рисунок

3

Button1

Text

Инструкция

4

Button2

Text

Тестирование

5

Button3

Text

Титул

6

Button4

Text

Выход

Инструкция

1

Form3

Text

Инструкция

2

PictureBox1

Image

Вставьте любой рисунок

3

Label1

Text

Инструкция

4

Label2

Text

На экране по очереди появляются 12 вопросов. На каждый из них нужно ввести ответ (да или нет). В зависимости от вопроса и ответа к общей сумме прибавляется определённое число очков. После окончания опроса по общей сумме очков делается заключение по поводу годности  тестируемого к службе.

5

Button1

Text

Тестирование

6

Button2

Text

Выход

Форма тестирования

1

Form4

Text

Тестирование

2

PictureBox

Image

Вставьте любой рисунок

3

Button1

Text

Следующий вопрос

4

Button2

Text

Результаты тестирования

5

GroupBox1

RadioButton1

RadioButton2

RadioButton3

Text

Переключатели (Да, Нет, Наверное), объединенные рамкой

6

CheckBox1

Text

 Отказываюсь отвечать

7

Label1

Text

 № вопроса

8

Label2

Text

Вопрос

9

Button1

Text

Далее

10

Button2

Text

Выход

11

Buttin3

Text

Инструкция

Форма выдачи результата

1

Form5

Text

Результаты тестирования

2

PictureBox

Image

Вставьте любой рисунок

3

TextBox

Text

4

Label1

Text

5

Button1

Text

Далее

Форма выхода

1

Form6

Text

До новых встреч

2

BackGroundImage

Image

Вставьте любой рисунок

3

Button1

Text

Выход

2.2 Разработка файлов

Создание файлов с вопросами для теста и баллами. Заходим в директорию, где располагается наш проект, далее следуем в папку  bin, далее открываем  папку Debuge, где создаем два текстовых файла носящих названия  Questions.txt и Points.txt. Номер вопроса и сам вопрос будут считываться построчно в текстовые поля в форме №4 «Тестирование». Файл Questions.txt содержит следующую информацию :

  1.  Есть ли у вас хронические заболевания, травмы приведшие к инвалидности?
  2.  Имеете ли вы пристрастие к наркотическим веществам?
  3.  Склонны ли вы к самоубийству?
  4.  Способны ли переносить тяжёлые физические нагрузки?
  5.  Бывают ли у вас ничем не обоснованные порывы гнева?
  6.  Вы человек с традиционной ориентацией?
  7.  Сможете ли в напряженной, критической ситуации проявить самообладание, не  выплеснуть эмоции?
  8.  Будите ли вы выполнять приказы старшего по званию безпрекословно?
  9.  Сможете ли вы выжить в тяжелых условиях?
  10.  Вы адекватный человек?
  11.  Вы хотите служить в армии?
  12.  Останетесь служить по контракту на длительный период времени??

Файл Points.txt содержит баллы, которые в зависимости от ответа, прибавляются к общей сумме очков (первая строка – очки ля ответа «Да», вторая строка – для ответа «Нет», третья строка – очки для ответа «Наверное»):

yes,3,4,3,2,0,2,3,2,0,0,1,3

no,0,0,0,0,4,0,0,0,2,3,0,0

nav,4,2,2,4,1,5,3,3,2,1,3,1

otkaz, 0,0,0,0,5,0,0,0,0,0


Заключение

Целью данной работы являлось создание программы – теста «Годны ли вы к  Службе в армии?»

В процессе работы были:

  1.  Выполнены следующие поставленные задачи: проанализирована предметная область, составлена блок-схема приложения, выбран подход решения данной задачи, разработан дружественный пользовательский интерфейс, написан программный код.
  2.  Изучены и использованы средства реализации выбранного подхода решения задачи.
  3.  Выполнена цель курсовой работы: разработана программа.
  4.  Проверена работоспособность, проведено тестирование разработанной программы на тестовых данных.
  5.  Проверена работоспособность, проведено тестирование разработанной программы на тестовых данных.

Предполагается  модификация программы в ближайшем будущем, в связи с изменением требований поступления на военную службу и изменение критериев оценки здоровья и психологического состояния призывника.


Библиографический список

  1.  www.obninx.ru  Статья : Польза тестов для человека. http://www.obninx.ru/publications/interesting/polza-tjestov-dlja-chjelovjeka.html
  2.  www.corpsite.ru  Статья : Язык программирования С# (Си-шарп). http://corpsite.ru/Service/Technology/Language/CSharp.aspx?AspxAutoDetectCookieSupport=1.html
  3.  www.infoshell.ru Статья : Язык программирования С#  http://infoshell.ru/articles/63-programming-language-c.html
  4.  Павловская, Т.А.C#. Программирование на языке высокого уровня. Учебник/ Т.А. Павловская,СПБ.:Питер 2010.


Приложения

Приложение А Программный код формы «Тестирование»

namespace WindowsFormsApplication1

   public partial class Form4 : Form

   {

       public Form4()

       {

           InitializeComponent();

       }

       //для чтения вопросов из файла Questions.txt:

       string s;

       const int n = 13;

       int numb = 0;

       string[] bufq = new string[n];

       //для чтения ответов из файла Points.txt и записи ответов в массивы yes и no, nav, otkaz:

       const int m = 13;

       int[] yes = new int[m];

       int[] no = new int[m];

       int[] nav = new int[m];

       int[] otkaz = new int[m];

       string[] buf;

       int ball=0;//баллы

       string t1, t2, t3;

       //результаты

       private void button2_Click(object sender, EventArgs e)

       {

           Form3 f3 = new Form3();

           f3.Show();

           this.Close();

       }

       private void button3_Click(object sender, EventArgs e)

       {

           Form6 f6 = new Form6();

           f6.Show();

           this.Close();

       }

       private void Form4_Load(object sender, EventArgs e)

       {

           //чтение из Points.txt в массивы yes и no, nav, otkaz

           try

           {

               StreamReader fp = new StreamReader("Points.txt");

               while (fp.Peek() > -1)

               {

                   buf = fp.ReadLine().Split(',');

                   if (buf[0].ToString() == "yes")

                       for (int i = 1; i < buf.Length ; ++i)

                           yes[i] = int.Parse(buf[i]);

                   else if (buf[0].ToString() == "no")

                       for (int i = 1; i < buf.Length ; ++i)

                           no[i] = int.Parse(buf[i]);

                   else if (buf[0].ToString() == "nav")

                       for (int i = 1; i < buf.Length; ++i)

                           nav[i] = int.Parse(buf[i]);

                   else if (buf[0].ToString() == "otkaz")

                       for (int i = 1; i < buf.Length; ++i)

                           nav[i] = int.Parse(buf[i]);

               }

               fp.Close();

               StreamReader fq = new StreamReader("Questions.txt", System.Text.Encoding.Default);

               while ((s = fq.ReadLine()) != null)

               {

                   bufq[numb] = s;

                   numb++;

               }

               numb = 0;

               fq.Close();

           }

           catch (FileNotFoundException ex)

           {

               MessageBox.Show(ex.Message);

               MessageBox.Show("Проверьте правильность имени файла!");

               return;

           }

           catch (Exception ex)

           {

               MessageBox.Show("Error: " + ex.Message);

               return;

           }

           //отображение первого вопроса при запуске формы:

           textBox1.Text = (numb + 1).ToString();

           richTextBox1.Text = bufq[numb];

           numb++;

           //При загрузке формы выбран один из вариантов ответа:

           radioButton1.Checked = false;

           radioButton2.Checked = false;

           checkBox1.Checked = false;

       }

       private void button1_Click(object sender, EventArgs e)

       {

           switch (Convert.ToInt32(textBox1.Text))

           {

               case 4:

                   {

                       checkBox1.Visible = true;

                       break;

                   }

               default:

                   {

                       checkBox1.Visible = false;

                       break;

                   }

           }

           //Показываем результаты тестирования в зависимости от набранных баллов

           if (button1.Text == "Результаты")

           {

               if (ball <= 9)

               {

                   t1 = "От 0 до 9";//результат

                   t2 = "ВЫ ГОДНЫ, обладаете отличным здоровьем!!!";

                         

                   t3 = "0_9.jpg";

                  // 'Указывается путь и имя картинки, соответствующей   

                  Соответсвующей набранному колличеству баллов.                                  

               }

               if (ball > 9 && ball <= 19)

               {

                   t1 = "От 9 до 19";

                   t2 = "Вы обладаете  хорошим здоровьем, ВЫ ГОДНЫ к службе";

                   t3 = "10_18.jpg";

               }

               if (ball > 19 && ball <= 28)

               {

                   t1 = "От 19 до 28";

                   t2 = "Ваши показатели в пределах нормы,вы ОГРАННИЧЕННО ГОДНЫ к службе в армии.";

                        

                   t3 = "19_28.jpg";

               }

               if (ball >= 29)

               {

                   t1 = "Более 29.";

                   t2 = "ВЫ НЕ ГОДНЫ!!! Сходите на консультацию к специалисту!";

                         

                   t3 = "от_29.jpg";

               }

               Form5 f5 = new Form5();

               f5.TBtext = t1;

               f5.TBtext1 = t2;

               f5.Picture = t3;

               f5.Show();

               this.Close();

           }

           //считываем из буфера bufq, в котором находятся вопросы:

           if (numb < n - 1)

           {

               textBox1.Text = (numb + 1).ToString();

               richTextBox1.Text = bufq[numb];

               numb++;

           }

           else

           {

               textBox1.Text = "";

               richTextBox1.Text = "Тестирование завершено.";

               button1.Text = "Результаты";

           }

           radioButton1.Checked = false;

           radioButton3.Checked = false;

           radioButton2.Checked = false;

           checkBox1.Checked = false;

           radioButton1.Enabled = true;

           radioButton3.Enabled = true;

           radioButton2.Enabled = true;

           checkBox1.Enabled = true;

       }

       private void radioButton1_CheckedChanged(object sender, EventArgs e)

       {

           if (radioButton1.Checked == true)

           {

               ball += yes[numb];

               radioButton2.Enabled = false;

               radioButton3.Enabled = false;

           }

       }

       private void radioButton2_CheckedChanged(object sender, EventArgs e)

       {

           if (radioButton2.Checked == true)

           {

               ball += no[numb];

               radioButton1.Enabled = false;

               radioButton3.Enabled = false;

               checkBox1.Enabled = false;

           }

       }

       private void radioButton3_CheckedChanged(object sender, EventArgs e)

       {

           if (radioButton3.Checked == true)

           {

               ball += nav[numb];

               radioButton1.Enabled = false;

               radioButton2.Enabled = false;

               checkBox1.Enabled = false;

           }

       }

       private void checkBox1_CheckedChanged(object sender, EventArgs e)

       {

           if (checkBox1.Checked == true)

           {

               ball += otkaz[numb];

               radioButton1.Enabled = false;

               radioButton2.Enabled = false;

               radioButton3.Enabled = false;

           }

       }

   }

PAGE 12


 

А также другие работы, которые могут Вас заинтересовать

12237. Определение константы скорости инверсии тростникового сахара 144 KB
  Определение константы скорости инверсии тростникового сахара Цель работы: ознакомиться оптическим методом изучения кинетики реакции; определить порядок реакции по сахару и катализатору; определить среднюю константу скорости рассчитать ошибки в измерениях. Принци
12238. Определение температурного коэффициента электропроводности 30.22 KB
  Измерение электропроводности электролитов различной концентрации и определение температурного коэффициента электропроводности Цель: установить зависимость удельной и эквивалентной электропроводности электролита от концентрации и те
12239. Определить pH и буферную емкость ацетатных буферных растворов 40.44 KB
  Цель работы: определить pH и буферную емкость ацетатных буферных растворов. Исследуемая цепь Pt CHхингидрон KClнасHg2Cl2 Hg Рабочие формулы где: – потенциал хингидронового электрода – потенциал каломельного электрода Таблица 1 Данные из...
12240. Исследование влияния параметров схемы на токовую и тепловую загрузку тиристоров в управляемом выпрямителе 12.43 MB
  Курс Силовые полупроводниковые приборы. Лабораторная работа 2. Тема: исследование влияния параметров схемы на токовую и тепловую загрузку тиристоров в управляемом выпрямителе. Схема: мостовая схема выпрямления однофазного тока при активной и активноиндуктивной н
12241. Вертикально связанные квантовые точки в полупроводниках 334.42 KB
  Квантовые точки, используемые на сегодняшнем рынке – это наноразмерные полупроводники, которые изменяют цвет в зависимости от изменений температуры. Точки имеют два слоя – внутреннее ядро селенида кадмия и внешняя оболочка сульфида цинка. Так как квантовые точки биосовместимы, учёные используют их в качестве альтернативы флоуресцентным красителям, чтобы метить и отслеживать клеточные компоненты
12242. Определение рН раствора с помощью хингидронного электрода 107.5 KB
  Определение рН раствора с помощью хингидронного электрода Цель работы: определение рН и буферной емкости ацетатных буферных растворов. Принцип метода: потенциометрическое определение производят измеряя ЭДС гальванического элемента во втором одни из электродов во
12243. Финансово-хозяйственные операции по отражению объекта учета 99.48 KB
  Я ставлю перед собой цель рассказать, как видеться учет доходов на предприятии. Предприятия отличаются отрасли, производством, численностью, правовой формой и так далее, но я рассмотрю общую систему учета доходов предприятия...
12244. Дизъюнктивные нарушения 659.91 KB
  Вернемся к основной теме. Как уже было сказано дизъюнктивные нарушения — это разрыв пластов, горных пород которые образуются, при воздействии двух разнонаправленных сил на слой горных пород, слой сначала изгибается, а затем – разрывается.
12245. Діагностика міжособистісних стосунків у підлітковому віці 346 KB
  Важливим аспектом життєдіяльності колективу, знання якого має важливе практичне значення для кожного, хто працює з людьми, є міжособистісні стосунки у групі. Ці стосунки неминуче виникають між членами колективу на ґрунті їхнього спілкування та взаємодії у процесі реалізації завдань, на виконання яких спрямовуються їхні зусилля.