Введение
Целью данного курсового проекта является решение прикладной задачи по учету распределения студентов по базам практики и разработка программного обеспечения для ведения и хранения этой информации и выдачи необходимых выходных форм.
Для достижения поставленной цели необходимо решить следующие задачи:
Выполнить постановку задачи, включая спецификации входных и выходных данных;
Спроектировать структуры данных для ведения и хранения информации;
Разработать алгоритм решения задачи;
Спроектировать структуру программы, определить состав и назначение процедур и функций программы;
Написать программу на алгоритмическом языке Паскаль;
Отладить программу, подготовить данные и выполнить контрольный расчет.
 1. Постановка задачи
Задача учета распределения студентов по базам практики должна включать в себя выполнение следующих функций:
Ввод и просмотр НСИ
Ввод исходной информации
Формирование требуемого выходного документа на основе НСИ и информации из входного документа
Организация элементарного оконного интерфейса , контроль вводимой информации.
Имеются следующие исходные данные:
Нормативно-справочная информация, включающая в себя два показателя:
Шифр завода
Наименование завода
2. Входной документ, включающий в себя следующие пока-затели:
Шифр завода
Общее количество студентов
Количество иногородних студентов
- Ф.И.О. и должность руководителя практики по данному
предприятию.
3. Выходной документ, включающий в себя следующие пока-затeли:
- Наименование завода
- Общее количество студентов
Количество иногородних студентов
- Ф.И.О. и должность руководителя практики по данному
предприятию
Кроме того, выходной документ должен содержать подсчет итогов по общему количеству студентов и количеству иного-родних студентов.
В работе предусмотреть возможность ввода и просмотра НСИ, ввод исходной информации и выдачу выходного документа с использованием входных данных и НСИ.
НСИ необходимо хранить в дисковом файле. Программа должна иметь “дружественный ” интерфейс, включающий в себя меню, контекстно-зависимую подсказку и контроль вводимой информации.
 2.Информационное обеспечение.
Информационное обеспечение включает в себя следующие виды информации:
Нормативно-справочная информация (НСИ)
Входная информация
Выходная информация
Диалоговая информация
 Нормативно справочная информация (НСИ)
представляет собой редко изменяющуюся информацию, необходимую для решения задачи. В нашем случае НСИ представляет собой типизированный файл, содержащий наименования и шифры предприятий, принимающих студентов на практику. Состав и структура НСИ приведены в таблице 2.1.
 Табл. 2.1.
|   Шифр завода  | 
  Наименование завода  | 
 Входная информация
включает в себя часто изменяемые данные о студентах и их руководителях, направляемых для прохождения производственной практики на предприятия. Состав и структура входных данных для рассматриваемой задачи приведена в таблице 2.2. Входные данные вводятся с клавиатуры и затем хранятся в типизированном файле.
 Табл. 2.2.
|   Шифр завода  | 
  Общее количество Студентов  | 
  Количество иногородних студентов  | 
  Ф.И.О. руководителя  | 
  Должность руководителя  | 
Выходная информация
представляет собой ведомость распределения студентов по базам практики, формируется с использованием входной информации и информации, хранящейся в НСИ, и приведена на рис.2.1.
Ведомость распределения студентов по базам практики.
|   Шифр завода
  | 
  Общее количество Студентов
  | 
  Количество иногородних студентов
  | 
  Ф.И.О. руководителя
  | 
  Должность руководителя
  | 
|   
  | 
  
  | 
  
  | 
  
  | 
  
  | 
Рис. 2.1. Выходной документ
Для эффективной организации взаимодействия пользователя с программой предназначена диалоговая информация
, организованная в виде “дружественного” интерфейса. Она представлена основным меню
, позволяющими выбрать необходимый режим работы программы, и контекстно-зависимой подсказкой
, облегчающей процесс общения пользователя с программным продуктом. В программе организован простейший оконный интерфейс
, реализованный средствами модуля CRT. 
Окно вывода меню (верхнее)- информация в этом окне находится на экране постоянно, не обновляясь в ходе работы программы.
Окно контекстно-зависимой подсказки (нижнее) – информация в этом окне периодически обновляется в соответствии с ходом исполнения программы.
Окно ввода данных и вывода результатов (среднее) – окно с изменяемой информацией.
 3. Разработка алгоритма. 
Разработка алгоритма велась методом нисходящего проектирования сверху вниз с последующей детализацией отдельных блоков.
Поскольку языком программирования выбран процедурно - ориентированный алгоритмический язык высокого уровня Pascal, основной задачей, подлежащей решению на этапе разработки алгоритма, является декомпозиция основной задачи с целью выделения отдельных подзадач, которые могут быть оформлены в виде подпрограмм.
4.Проектирование прикладного программного обеспечения
Программа спроектирована методом нисходящего прое
На следующем этапе были разработаны, отлажены и поочередно подключены подпрограммы, реализующие основные функции данной задачи.
Программа реализована на языке высокого уровня Pascal .
Прикладное программное обеспечение данного проекта состоит из трех файлов:
· программный файл
· файл НСИ
· файл базы данных.
В приведенной ниже таблице 4.1. приведены наименования, назначения и обращения к подпрограммам, включенным в состав прикладного программного обеспечения .
Таблица 4.1.
|   №  | 
  Назначение подпрограммы  | 
  Наименование подпрограммы  | 
|   1  | 
  Процедура для ввода НСИ  | 
  Procedure V_NSI;  | 
|   2  | 
  Процедура просмотра НСИ  | 
  Procedure Prosmotr;  | 
|   3  | 
  Ввод данных  | 
  Procedure Input;  | 
|   4  | 
  Функция поиска наименования завода по его шифру в файле НСИ  | 
  Function Poisk(Shifr:string):string;  | 
|   5  | 
  Процедура формиро-вания выходного документа и выдачи его на экран  | 
  Procedure Print_Doc;  | 
 5. Отладка и тестирование программы
Под отладкой понимается процесс, позволяющий получить программу, функционирующую с требуемыми характеристиками в заданной области входных данных.
Процесс отладки программы включает:
- создание совокупности тестовых эталонных значений, кото- рым должна соответствовать программа;
- статическую проверку текстов разработанных программ и данных на выполнение всех заданных правил;
- тестирование программы с исполнением ее с различными уровнями детализации;
Основным методом обнаружения ошибок при отладке программы является тестирование.
Набор тестов, которые были использованы при отладке данной программы приведен в таблице 5.1.
Таблица 5.1.
|   №  | 
  Входные данные  | 
  Выходной документ 
  | 
||||||
|   НСИ  | 
  Входной документ  | 
|||||||
|   Шифр завода  | 
  Наимен завода  | 
  Шифр завода  | 
  Количество студентов всего  | 
  Количество иногородних студентов  | 
  Ф.И.О. руководителя практики  | 
  Должность  | 
||
|   1  | 
  1111  | 
  З-д К.Либкнехта  | 
  1111  | 
  10  | 
  5  | 
  Иванов  | 
  Инженер  | 
  Рис 5.1 Рис 5.2  | 
|   2  | 
  2222  | 
  Шинный  | 
  5555  | 
  23  | 
  12  | 
  Петров  | 
  Экономист  | 
|
|   3  | 
  3333  | 
  Южнотрубный  | 
  2222  | 
  45  | 
  2  | 
  Сурко  | 
  Ст.инженер  | 
|
|   4  | 
  55555  | 
  Южмаш  | 
||||||
Выходной документ №1
НСИ 
|   Наименование завода
  | 
  Шифр завода
  | 
|   З- д К. Либкнехта  | 
  1111
  | 
|   Шинный з-д  | 
  2222
  | 
|   Южнотрубный  | 
  3333
  | 
|   Южмаш  | 
  5555
  | 
Рис 5.1.
Выходной документ №2
Ведомость распределения студентов по базам практики
|   Наименование завода  | 
  Количество студентов  | 
  Количество иногородних студентов  | 
  Ф.И.О. руководителя  | 
  Должность  | 
|   З- д К. Либкнехта  | 
  10  | 
  5  | 
  Иванов  | 
  Инженер  | 
|   Южмаш  | 
  23  | 
  12  | 
  Петров  | 
  Экономист  | 
|   Шинный з-д  | 
  45  | 
  2  | 
  Сурко  | 
  Ст. инженер  | 
 ИТОГО: 78 19
Рис 5.2.
Заключение
В данном курсовом проекте разработан программный продукт, позволяющий частично автоматизировать процесс распределения студентов по базам практики, а также отслеживать и управлять ходом прохождения производственной практики.