Назначение и область применения

Автор работы: Пользователь скрыл имя, 12 Декабря 2012 в 17:09, курсовая работа

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

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

Содержание

1. Назначение и область применения 2
2. Постановка задачи 3
2.1 Теоретическая модель задачи 3
2.2 Входные данные 3
2.3 Выходные данные 3
2.4 Обработка ошибок 3
3. Реализация программно модуля 4
4. Разработка пользовательского интерфейса 14
5. Тестирование программного модуля 17
Заключение 19
Приложение A 20
Список используемой литературы 37

Вложенные файлы: 1 файл

Курсовая.doc

— 606.00 Кб (Скачать файл)



СОДЕРЖАНИЕ

 

 

 

1. Назначение и область применения

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

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

Целью данной курсовой работы является разработка тестирующей программы для контроля знаний по языку программирования C#. Также разработаны вопросы для тестов по теме: «Передача одномерных массивов в методы», представленные в Приложении А.

 

 

2. Постановка задачи

2.1 Теоретическая модель задачи

Разработать программное обеспечение  для проведения тестирования по теме: «Передача одномерных массивов в методы». Составить не менее 100 тестовых заданий. Каждое задание должно включать не менее 4 вариантов ответов. Разработка интерфейса. Разработки многофайлового проекта с несколькими формами.

В данном программном обеспечении  разработан проект с 2 формами, в которых содержатся:

1. Форма, служащая для создания  списка вопросов.

2. Форма с тестовыми заданиями  и результатом набранных баллов.

 

2.2 Входные данные

Данный проект имеет следующие входные данные:

1. Файл, содержащий вопросы, имеет расширение *.qst.

2. Ф. И. О., группа студента, выполняющего тест.

3. Ответы на тестовые вопросы.

 

2.3 Выходные данные

Выходными данными для данного  проекта являются:

1. Результат набранных баллов.

2. Логирующий файл, содержащий время  сдачи теста, а также информацию  о сдающем.

 

2.4 Обработка ошибок

При  выполнении  программного  модуля  необходимо  предусмотреть обработку следующих ошибок:

1. Ошибки, возникающие при неудачном  открытии файла вопросов.

2. Правильный подсчет количества  баллов.

 

 

3. Реализация программно  модуля

Данный проект состоит из двух частей:

- редактора

- тестирующей программы

 

Исходный  код:

 

        List<TextBox> AnswerText;               // Текстбоксы ответов

        List<CheckBox> AnswerChek;              // Чекбоксы ответов

        List<Question> Quest_collection;        // Коллекция вопросов

        TextBox question;                       // Вопрос

        string quest;                           // Текст вопроса вписанный в question

        const int chektop = 60;

        const int left_text = 35;

        const int left_chek = 15;

        List<bool> answers;                     // Правильные ответы = true

        List<string> ans;                       // Коллекция ответов

        BindingSource bs;

        FileStream DataOut;

        FileStream DataIn;

        BinaryFormatter fb;

        List<string> list_quest;                // Коллекция вопросов для listbox

        List<bool> UserAns;

        int position;                           // Номер выделенного элемента в listbox

        int index;                              // Колличество вариантов ответа

        bool open_files;                        // Если файл открыт = true

        string filename;                        // Имя файла, редактируемого в редакторе

 

 

Используемые методы:

button1_Click—запускается при нажатии на кнопку начать тест;

toolStripButton1_Click—завершение теста ,подсчет количества баллов;

end_question_Click—перейти к последнему вопросу;

at_home_Click—перейти к первому вопросу;

toolStripButton3_Click—следующий вопрос;

toolStripButton2_Click—предыдущий вопрос;

начатьтестToolStripMenuItem_Click—кнопка «Начать тест» в MenuStrip;

открытьToolStripMenuItem1_Click—открытие файла вопросов.

 

 

4. Разработка пользовательского  интерфейса

При  запуске  программы  на  экране  появляется  пользовательская  форма (Рисунок 1). На  форме  присутствуют:  текстовые  поля  для  ввода  данных (textbox), метки (Label), расположенные рядом с текстовыми полями для пояснения назначения текстовых полей, кнопка Button для начала теста, меню MenuStrip содержащее основные команды.


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 1. Внешний вид пользовательского  интерфейса

 

При нажатии на кнопку «Начать тест»  появляется SplitContainer, содержищий TextBox вопроса и вариантов ответа, а также CheckBox вариантов ответа (Рисунок 2).

При нажатии на кнопку «Завершить тест» происходит завершение тестирования и вывод на экран MessageBox с информацией о количестве набранных баллов (Рисунок 3).

 




 

 

Рисунок 2. Пользовательский интерфейс

 

Рисунок 3. Информация о количестве набранных баллов

 

При  запуске  редактора  на  экране  появляется  пользовательская  форма (Рисунок 4). На  форме  присутствуют: кнопки Button необходимые для добавления, удаления, редактирования вопросов, а также кнопки сохранения изменений результатов, меню ToolStrip и MenuStrip, которые содержат основные команды, SplitContainer, верхняя панель которого содержит listbox, отображающий список вопросов, в нижней панели осуществляется ввод вопроса и вариантов ответа (Рисунок 5).



 


 

 

 

 

 

Рисунок 5. Редактор вопросов

 

5. Тестирование программного  модуля

Чтобы протестировать работу программы  создадим в редакторе тестов тест с 5 вопросами (Рисунок 6):

 

Рисунок 6. Создание файла вопросов

 

В редакторе можно также редактировать  и удалять существующие вопросы. При редактировании необходимо внести изменения в нужный вопрос и нажать кнопку «Сохранить изменения».

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

Запустим Tester и выберем наш файл вопросов. Заполним поля фамилия и группа и начнем выполнение теста, после ответа на все вопросы нажмем кнопку «Завершить тест». На Рисунке 7 представлен результат выполнения теста. Откроем файл лога, находящийся в директории расположения исполняемого файла Tester.exe и просмотрим правильность выполнения (Рисунок 8).

 

 

 

Рисунок 7. Результат выполнения программы


 

Рисунок 8. Файл лога

 

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

 

 

Заключение

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

 

Приложение A

Список вопросов по теме «Передача  массивов в методы»:

  1. Что представляет собой массив?
  2. совокупность переменных разных типов с общим для обращения к ним типам.
  3. совокупность переменных одного типа с общим для обращения к ним именем.
  4.   переменная, которой присваивается несколько значений
  5.  
  6. Как объявить целочисленный массив?
  7. double [ ] mas;
  8. int [ ] mas;
  9. bool [ ] mas
  10. decimal [ ] mas;
  11. Как объявить вещественный массив?
  12. double [ ] mas;
  13. int [ ] mas;
  14. bool [ ] mas
  15. decimal [ ] mas;
  16. Как объявить булевой массив?
  17. double [ ] mas;
  18. int [ ] mas;
  19. bool [ ] mas
  20. decimal [ ] mas;
  21. Как выглядит форма записи объявления одномерного массива?
  22. имя_массива тип [ ] = new тип [ размер];
  23. new тип [ размер] = имя_массива тип [ ];
  24. тип имя_массива [ ] = new тип [размер];
  25. тип [ ] имя_массива = new тип [ размер];
  26. В C# массивы рассматриваются как классы, у них есть ...
  27. свойства
  28. свойства и методы
  29. методы
  30. верного ответа нет
  31. Как массивы размещаются в памяти?
  32. статически
  33. динамически
  34. интерполировано
  35. верного ответа нет
  36. Какая ошибка возникает при выходе за границу массива?
  37. StackOverflowExpection
  38. IndexOutOfRangeExpection
  39. OutOfMemoryExpection
  40. NullReferenceExpection
  41. Как передаются массивы в методы?
  42. вызовом по значению
  43. вызовом по ссылке
  44. вызовом по значению и по ссылке
  45. массивы нельзя передать в метод
  46. Что делает оператор ref ?
  47. организует вместо вызова по значению вызов по ссылке
  48. организует вместо вызова по ссылке вызов по значению
  49. объявляет переменную постоянной (const)
  50. дает возможность использовать регулярные выражения
  51. Сколько измерений имеет одномерный массив ?
  52. 2
  53. 1
  54. 3
  55. массив не имеет измерений
  56. Для чего используется оператор out ?
  57. Для передачи значения в метод
  58. Для получения  дополнительного значения из метода
  59. Для передачи и получения значения
  60. верного ответа нет
  61. Назначение инструкции return ?
  62. Для выхода из метода
  63. Для возврата значений
  64. Для выхода и возврата значений
  65. Для выхода из цикла
  66. С помощью каких операторов можно организовать вывод значений из метода, не используя return ?
  67. ref
  68. out
  69. ref и out
  70. this
  71. Метод, не возвращающий значения, объявляется как
  72. int Metod()
  73. double Metod()
  74. void Metod()
  75. public Metod()
  76. Метод, возвращающий значения типа int, объявляется как:
  77. int Metod()
  78. double Metod()
  79. void Metod()
  80. public Metod()
  81. Метод, возвращающий значения типа double,  объявляется как:
  82. int Metod()
  83. double Metod()
  84. void Metod()
  85. public Metod()

18. В данном  примере: 

а) двумерный  массив строк инициализируется и  передается в качестве параметра  в метод PrintArray, где отображаются его элементы.

б) двумерный  массив строк инициализируется и  передается в метод PrintArray, где отображаются его элементы.

в) массив строк инициализируется и передается в качестве параметра  в метод PrintArray, где отображаются его элементы.

г) массив строк инициализируется и передается в метод PrintArray, где отображаются его элементы.

 

19. В  данном примере:

а) двумерный массив строк инициализируется и передается в метод PrintArray, где  отображаются его элементы.

б) двумерный  массив строк инициализируется и передается в метод PrintArray, где отображаются его элементы.

в) массив строк инициализируется и передается в качестве параметра в метод PrintArray, где отображаются его элементы.

г) массив строк инициализируется и передается в метод PrintArray, где отображаются его элементы.

 

20. Здесь:

а) переводит  массив  целых чисел в массив вещественных.

б) передает массив в метод печати.

в) выводит  массив на экран.

г) передаёт двумерный массив в метод печати.

 

21.

а) инициализированный многомерный  массив передается в метод печати.

б) массив передается в метод печати.

в) частичное  объявление метода печати.

г) вывод  многомерного массива целых чисел  на экран.

 

22. В данной  программе:

а) одномерный массив целых чисел инициализируется и передается в метод Print2DArray. Затем метод отображает элементы этого массива.

б) двумерный массив заполняется целыми числами и  передается в метод Print2DArray. Затем  метод отображает элементы этого  массива.

в) одномерный массив заполняется целыми числами и передается в метод Print2DArray. Затем метод отображает элементы этого массива.

г) двумерный массив целых чисел  инициализируется и передается в  метод Print2DArray. Затем метод отображает элементы этого массива.

23.  К какому  фрагменту программы подходит эта блок-схема?

а) for (int i = 0; i < arr.GetLength(0); i++)

        {

            for (int j = 0; j < arr.GetLength(1); j++)

            {

                arr[i,j] = 0;

            }

        }

б) for (int i = 0; i < arr.GetLength(0); i++)

        {

            for (int j = 0; j < arr.GetLength(1); j++)

            {

               if (arr[i,j] == 0)

               arr[i,j] = i+j;

            }

        }

в) for (int i = 0; i < arr.GetLength(0); i++)

        {

            for (int j = 0; j < arr.GetLength(1); j++)

            {

                System.Console.WriteLine("Element({0},{1})={2}", i, j, arr[i, j]);

            }

        }

г) б) for (int i = 0; i < arr.GetLength(0); i++)

        {

            for (int j = 0; j < arr.GetLength(1); j++)

            {

               if (arr[i,j] == 0)

                 {

               arr[i,j] = i+j;

                k++;

                 }

            }

        }

 

24. Массивы  можно передавать в качестве  аргументов для параметров методов.  Поскольку массивы являются ссылочными типами, метод может изменять значение элементов.

а) не верно, так как метод не может  изменять значение элементов.

б) не верно, так как не все массивы  ссылочного типа (только одномерные массивы - ссылочные).

в) верно.

г) не верно, так как не все массивы ссылочного типа (только двумерные массивы - ссылочные).

 

25. Можно  ли выполнить  инициализацию  и передачу нового массива  в рамках одного шага, как показано  в следующем примере?

а) нет, массив нужно объявлять отдельно.

б) да.

в) можно, но только указывать аргументы нужно в [].

г) можно, но только указывать аргументы нужно  через точку с запятой (;).

 

26. Исправьте ошибку  в выражении:

Print2DArray(new int[] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } });

а) PrintArray(new int[,] { { 1, 2 }; { 3, 4 }; { 5, 6 }; { 7, 8 } });

б) Print2DArray(new int[,] { { 1, 2 }; { 3, 4 }; { 5, 6 }; { 7, 8 } });

в) Print3DArray(new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } });

г) Print2DArray(new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } });

 

27. Массив  с элементами n:

а) индексируется  от 1 до n+1.

б) индексируется от 0 до n-1.

в) индексируется  от 0 до n.

г) индексируется  от 1 до n-1.

 

28. Типы  массива являются ссылочными  типами, производными от абстрактного  базового типа:

а) ArrayTypeMismatchException

б) Mas.

в) Arr.

г) Array.

 

29. public void Metod();

{

//…

If (condition  _1) return;

//…

If (condition  _2) return;

statements

}

Возврат из этого метода осуществляется:

а) после выполнения заключительных операторов метода.

б) после выполнения первого условного оператора

в)  а,б,г

г) после выполнения второго условного оператора

 

30. Как называется  передаваемое значение методу?

а) параметр

б) аргумент

в)  параметр или  аргумент

г) нет правильного  ответа

 

31. Какая инструкция  показывает объявление метода, который  возвращает двумерный вещественный массив?

а) public double [,] mas ();

б) public int [] mas;

в)  public decimal [,] mas;

г) public double[]mas.

 

32. Выберите правильный  вариант генерации случайных  чисел:

а) Randomize  x=new Random();

б) Random  x=new Random();

в)  Randomize  new  x= Random();

г) Randomize  x=new Random;

 

33. Какой  правильный вариант генерации   случайного целого положительного  числа?

Random  x=new Random();

Double y;

а) y=x.Next (-8);

б) y=x.Next ();

в)  y=x.Next (x);

г) y=x.NextDouble (8);

 

34. Рекурсия методов – это когда…

а) внутри класса может быть несколько методов  с одинаковыми именами , но при  условии , что их параметры различны;

б) когда при обработке метода, метод  вызывает сам себя;

Информация о работе Назначение и область применения