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


 

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

75805. КОМПЬЮТЕРНАЯ ПСИХОДИАГНОСТИКА 191 KB
  Специальный класс задач представляет комплексное использование методов психологической диагностики главным образом стандартизованных тестовых методик в связи с обследованием контингентов лиц подчас весьма значительных проживающих и работающих в зонах экологических катастроф...
75806. Виды вооруженных конфликтов и их основные характеристики 449.26 KB
  Целью данной работы является дать развернутое представление о вооруженных конфликтах, их видах и характеристиках для того, чтобы не допускать ошибок при характеристике того или иного вооруженного конфликта и быть грамотным в данной сфере.
75807. Виникнення держави і розвиток економіки 72.5 KB
  З найдавніших часів важливу господарську роль у Стародавній Індії відігравало також тваринництво. Уже за ведійської доби в долині Гангу існували велетенські тваринницькі ферми на десятки тисяч голів великої рогатої худоби. Населення країни тримало так багато корів і буйволів...
75808. Атопический дерматит у собак 139.5 KB
  Атопический дерматит – хроническое рецидивирующее заболевание, характеризующееся высыпаниями, зудом и сухостью кожи. Впервые его диагностируют у собак в возрасте от 6 месяцев до 3 лет (у шарпея заболевание регистрируют в 3-х месячном возрасте).
75809. Реформы местного управления в XVIII в 27 KB
  Реформы местного управления в XVIII в. продолжала действовать следующая система местных органов управления: воеводское управление и система областных приказов. Реорганизация местных органов управления произошла в начале XVIII в. Провинции стали основными единицами управления.
75810. СЕВЕРНАЯ ВОЙНА (1700-1721гг) 45 KB
  Причины: 1) необходимость выхода в Балтийское море 2) желание вернуть древнерусские земли в Прибалтике 3) заключение Северного союза: Дания, Саксония, Польша, Россия 4) заключение 30-летнего перемирия с Турцией(Украинцев «Крепость»...
75811. Денсаулық сақтау және фармацевтикалық қызмет көрсету салалары жұмыстарын реттейтін құқықтық және этикалық негіздер 34.9 KB
  ХХІ ғасырда еліміздің экономикалық алдының стратегиялық міндеттері халықтың денсаулығын нығайтуды талап етеді. Халық денсаулығы елдің ұттық қауіпсіздігі мен өркендеуін қамтамасыз ететін негізгі фактор болып саналады.