Проектирование и создание Windows-приложения «Оболочка для тестирования» на языке C# в системе MS VisualStudio.NET

Автор работы: Пользователь скрыл имя, 25 Сентября 2013 в 20:06, курсовая работа

Краткое описание

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

Содержание

Введение…………………………………………………………………………...2
1 Объектно-ориентированный язык программирования С#..............................3
2. Внешний вид форм программы ………………………………………………5
2.1 Внешний вид форм на этапе проектирования………………………………5
2.2 Внешний вид форм в рабочем состоянии…………………………………...8
3 Код программы……………....………………………………………………...12
Заключение……………………………………………………………………….20
Список использованных источников…………………………………………...21

Прикрепленные файлы: 1 файл

КП_ООП.docx

— 83.94 Кб (Скачать документ)

МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА  РФ

Федеральное государственное бюджетное  образовательное учреждение

высшего профессионального образования

«Пермская государственная сельскохозяйственная академия имени академика 

Д. Н. Прянишникова»

 

 

 

Кафедра: Информационных систем

 

 

 

КУРСОВОЙ ПРОЕКТ

 

по дисциплине: «Объектно-ориентированное программирование»

на тему: «Проектирование и создание Windows-приложения  «Оболочка для тестирования»  на языке C# в системе MS VisualStudio.NET»

 

 

Проект  выполнил:

студент факультета Прикладной информатики

Специальности 230201

группы  ИС – 31б

Иванов 

 

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

Старший преподаватель кафедры

информационных  систем

Кочкина М.А.

 

 

 

 

 

Пермь 2012

Содержание

Введение…………………………………………………………………………...2

1 Объектно-ориентированный язык программирования С#..............................3

2. Внешний  вид форм программы ………………………………………………5

2.1 Внешний  вид форм на этапе проектирования………………………………5

2.2 Внешний  вид форм в рабочем состоянии…………………………………...8

3 Код программы……………....………………………………………………...12

Заключение……………………………………………………………………….20

Список использованных источников…………………………………………...21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение

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

Разработать приложение необходимо на объектно-ориентированном языке  программирования С#.

 

 

 

 

 

 

 

 

 

 

1 Объектно-ориентированный язык  программирования С#

C# (произносится си шарп) — объектно-ориентированный  язык программирования. Разработан  в 1998—2001 годах группой инженеров  под руководством Андерса Хейлсберга  в компании Microsoft как язык разработки  приложений для платформы Microsoft .NET Framework и впоследствии был стандартизирован  как ECMA-334 и ISO/IEC 23270.

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

Переняв многое от своих предшественников — языков C++, Java, Delphi, Модула и Smalltalk —  С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие  себя как проблематичные при разработке программных систем, например, C# в  отличие от C++ не поддерживает множественное  наследование классов (между тем  допускается множественное наследование интерфейсов).

C# разрабатывался как язык программирования  прикладного уровня для Common Language Runtime (CLR)- «общеязыковая исполняющая среда» - компонент пакета Microsoft . NET Framework, виртуальная машина, исполняющая программы, написанные на .NET-совместимых языках программирования, и, как таковой, зависит, прежде всего, от возможностей самой CLR. Это касается, прежде всего, системы типов C#, которая отражает BCL.  Присутствие или отсутствие тех или иных выразительных особенностей языка диктуется тем, может ли конкретная языковая особенность быть транслирована в соответствующие конструкции CLR. Так, с развитием CLR от версии 1.1 к 2.0 значительно обогатился и сам C#; подобного взаимодействия следует ожидать и в дальнейшем. (Однако эта закономерность была нарушена с выходом C# 3.0, представляющего собой расширения языка, не опирающиеся на расширения платформы .NET.) CLR предоставляет C#, как и всем другим .NET-ориентированным языкам, многие возможности, которых лишены «классические» языки программирования. Например, сборка мусора не реализована в самом C#, а производится CLR для программ, написанных на C# точно так же, как это делается для программ на VB.NET, J# и др.

 

2 Внешний вид форм программы

2.1 Внешний вид форм на этапе  проектирования

На этапе  проектирования понадобилась только одна форма (рисунок 1).

Рисунок 1 – «Главная форма»

 

2.2 Внешний вид форм в рабочем  состоянии

После запуска программы форма  изменяет свой внешний вид:

Рисунок 2 – «Ввод данных о студенте», рисунок 3 - «Инструкции», рисунок 4 –  «Вопрос», рисунок 5 – «Завершение  тестирования».

 

Рисунок 2– «Ввод данных о студенте»

 

Рисунок 33 - «Инструкции»

Рисунок 4 –  «Вопрос»

 

Рисунок 5 – «Завершение тестирования»

 

3 Код программы

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 WindowsFormsApplication2

{

    public partial class Form1 : Form

    {

        StreamWriter sw;

        string fam, k;

        int v = 1, s = 0, f = 0;

        int[] a;

        public Form1()

        {

            InitializeComponent();

 

            //массив не повторяющихся чисел (вопросов)

           

            Random rnd = new Random();

            HashSet<int> hs = new HashSet<int>();

            while (hs.Count < 10) hs.Add(rnd.Next(15));

            a = hs.ToArray();

            foreach (int q in a);

 

            //открытие файла с тестом

           

            System.IO.StreamReader potok;

            try

            {

                potok = new

                System.IO.StreamReader(@"D:\\test\test.txt", System.Text.Encoding.GetEncoding(1251));

                textBox2.Text = potok.ReadToEnd();

                potok.Close();

            }

            catch { MessageBox.Show("Файл исходных данных не найден", "Внимание!"); }

 

        }

       

 

        private void button1_Click(object sender, EventArgs e)

        {

            //1 студенту разрешено тестироваться 1 раз, проверка:

 

            int access = 1;

            fam = textBox1.Text;

            string str = string.Empty;

           

            using (StreamReader sr = new StreamReader(@"D:\\test\rez.txt", System.Text.Encoding.GetEncoding(1251)))

            {

                while (!sr.EndOfStream)

                {

                    str = sr.ReadLine();

                    if (str.Contains(fam.ToLower()))

                    {

                        MessageBox.Show("Студент " + fam + " уже проходил тестирование", "Ошибка!");

                        textBox1.Text = "";

                        textBox1.Focus();

                        access = 0;

                    }

                }

                if (access == 1)

                {

                    groupBox2.Visible = false;

                    groupBox1.Visible = true;

                    button2.Text = "Студент " + fam + ", нажмите чтобы начать тестирование";

                }

                   

            }

              

        }

 

       

 

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

       

        int Otv()

        {

            if ((radioButton1.Checked) && (string.Compare(radioButton1.Text, k) == 0))

 

            {

               

                return f++;

            }

            else if ((radioButton2.Checked) && (string.Compare(radioButton2.Text, k) == 0))

            {

              

                return f++;

            }

            else if ((radioButton3.Checked) && (string.Compare(radioButton3.Text, k) == 0))

            {

               

                return f++;

            }

            else if ((radioButton4.Checked) && (string.Compare(radioButton4.Text, k) == 0))

            {

               

                return f++;

            }

            else

            {

               

                return f;

               

            }

          }

 

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

       

        string rez()

    {

        if (f >= 90)

        {

            return "Отлично";

        }

        else if ((f >= 70) && (f < 90))

        {

            return "Хорошо";

        }

        else if ((f >= 50) && (f < 70))

        {

            return "Удовлетворительно";

        }

        else if (f < 50)

        {

            return "Неудовлетворительно";

        }

        else

            return "";

    }

   

   

   

 

 

        private void button3_Click(object sender, EventArgs e)

        {

 

            Otv();

            radioButton1.Visible = true;

            radioButton2.Visible = true;

            radioButton3.Visible = true;

            radioButton4.Visible = true;

            label1.Visible = true;

            label2.Visible = false;

            groupBox1.Text = "вопрос " + v;

 

           

            //заполнение вопроса и ответов на форме

 

            if (s < 10)

            {

                label1.Text = textBox2.Lines[(a[s] * 6) + 1];

                radioButton1.Text = textBox2.Lines[(a[s] * 6) + 2];

                radioButton2.Text = textBox2.Lines[(a[s] * 6) + 3];

                radioButton3.Text = textBox2.Lines[(a[s] * 6) + 4];

                radioButton4.Text = textBox2.Lines[(a[s] * 6) + 5];

                k = textBox2.Lines[(a[s] * 6) + 6];

 

                button2.Text = "Следующий вопрос";

 

                s = s + 1;

                v = v + 1;

 

                if (s == 10)

                {

                    button2.Text = "Завершить тестирование";

                }

            }

            else

            {

                f = (f * 10);

                groupBox1.Visible = false;

               

 

                //запись резултата в файл

 

                fam = fam.ToLower();

                using (sw = new StreamWriter("D:\\test\\rez.txt", true, System.Text.Encoding.GetEncoding(1251)))

                {

                    sw.WriteLine(fam +"\t" + rez());

                    sw.Close();

                }

                if (MessageBox.Show(rez() + " , у вас - " + f + " баллов" + "\n\n" + "Да - перезапуск программы, Нет - выход", "Что дальше?", MessageBoxButtons.YesNo) == DialogResult.No)

                    this.Close();

                else Application.Restart();

               

            }

          

        }

 

    }

}

 

Заключение

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

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

Список  использованных источников

1. http://ru.wikipedia.org/wiki/C_Sharp

2. Культин  Н.Б. «Microsoft Visual C# в задачах и примерах». БХВ.:Петербург, 2009.-322с.

3. Кочкина  М.А. «Язык программирования C# в среде Microsoft Visual Studio.NET 2005». Учебно-методическое пособие для лабораторных работ. Пермь, Пермская государственная сельскохозяйственная академия имени академика Д.Н. Прянишникова. 2008.-137с.

 


Информация о работе Проектирование и создание Windows-приложения «Оболочка для тестирования» на языке C# в системе MS VisualStudio.NET