Пояснительная записка к курсовой работе по дисциплине "Информатика" кр 030500. 12. 000ПЗ
Вид материала | Пояснительная записка |
- Пояснительная записка к курсовой работе на тему: «Активный полосовой фильтр» по дисциплине, 342.06kb.
- Пояснительная записка к курсовой работе по дисциплине: «Электроника и микросхемотехника», 171.54kb.
- Пояснительная записка к курсовой работе по дисциплине «Обработка изображения, распознавание, 186.43kb.
- Пояснительная записка к курсовой работе по дисциплине: «Теория чисел», 275.76kb.
- Пояснительная записка к курсовой работе по дисциплине "Системное программное обеспечение", 277.1kb.
- Пояснительная записка к курсовой работе по дисциплине "Гидромашины и компрессоры", 200.01kb.
- Методическое пособие по дисциплине «информатика» (2семестр), 838.3kb.
- Пояснительная записка к курсовой работе кр-080502-П60-11-12, 646kb.
- Методические рекомендации по выполнению курсовой работы по дисциплине «Композиция, 102.15kb.
- Экзамен Контрольная работа Для студентов заочной формы обучения Пояснительная записка, 240.09kb.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
АЛТАЙСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
им. И.И.ПОЛЗУНОВА
Кафедра "Прикладная математика"
УДК 681.3 Курсовая работа защищена с оценкой
_______________________________
Руководитель
работы _________________________
старший преподаватель З.Г. Тырышкина
РАБОТА С ФАЙЛАМИ НА ЯЗЫКЕ
TURBO PASCAL 7.0
Пояснительная записка
к курсовой работе
по дисциплине "Информатика"
КР 030500.12.000ПЗ
Работу выполнил Д. А.Завьялов
студент группы ПОИ-41 ___________
Нормоконтролер ___________________старший преподаватель З.Г. Тырышкина
2006
Введение
Целью данной работы является разработка программы на языке программирования Паскаль для работы с файлом, содержащим данные о потребителях электроэнергии.
Первая версия языка Паскаль была разработана швейцарским ученым Никлаусом Виртом, сотрудником Высшей технической школы в Цюрихе, в 1968. Изначально Вирт ставил перед собой задачу создания учебного языка программирования, который бы строился на небольшом количестве базовых понятий, имел простой синтаксис, допускал перевод программ в машинный код простым компилятором. Язык Паскаль обеспечивает возможность создания больших программ, поддерживая их строгую логическую структуру. Однако для коротких программ Паскаль может оказаться излишне громоздким.
Признание программистов и простых пользователей этот язык получил после появления диалекта Турбо Паскаль, созданного американской фирмой Борланд. Паскаль считается важнейшим инструментом для обучения методам структурного программирования и с 1983 введен во всех средних школах США в учебные курсы для учащихся, которые специализируются в области информатики. Наличие специальных методик создания трансляторов с Паскаля упростило их разработку и способствовало широкому распространению языка.
Прилагаемый отчет содержит задание, подробное описание алгоритма работы программы, использованного при ее создании. В приложениях к отчету содержится полный текст программы на языке Паскаль, руководство пользователя и руководство системного программиста.
Содержание
Введение 2
1 Постановка задачи 4
1.1 Развернутая постановка задачи 4
2 Решение задачи 5
2.1 Алгоритм решения задачи 5
2.1.1 Алгоритм программы 5
2.2 Структура данных 6
2.2.1 Типы данных 6
2.2.2 Переменные и константы 6-7
2.2.3 Описание процедур 7
3 Описание программного обеспечения 8
3.1 Программная реализация 8
3.2 Общие сведения 8
3.2.1 Список файлов 8
3.2.2 Технические требования 8
4 Заключение 9
Список использованных источников 10
Приложения 11
Приложение А (текст программы) 11
Приложение Б (тестирование) 14
Приложение В (руководство системного программиста) 16
Приложение Г (блок-схемы)……………………………………………....17
1 Постановка задачи
Создать базу данных расписаний учеников Вуза.
1.1 Развернутая постановка задачи
Создать файл расписания занятий.
Запись имеет вид:
- Номер группы
- Номер недели
- День недели
- Номер пары
- все данные о занятии на этой паре
Программа должна иметь функции:
- Создание файла
- Показ расписания занятий для заданной группы
- Удаление из файла (или добавление) записи указанной группы
2 Решение задачи
2.1 Алгоритм решения задачи.
2.1.1 Алгоритм программы.
После запуска программы на экране появляется меню, состоящее их следующих пунктов:
- Ввести данные
- Прочитать из файла
- Добавить запись
- Удалить запись
- Выход
Затем программа предлагает выбрать один из пунктов меню. Для этого необходимо ввести номер интересующего вас пункта и нажать <ввод>
- Ввести данные
Программа предлагает ввести количество записей, которое требуется создать. Затем программа вызывает процедуру для ввода расписания, которая последовательно запрашивает все необходимые данные: Номер группы, Номер недели, расписание на каждый день. После ввода всей информации программа возвращается в главное меню. Особенность этого пункта в том, что программа очищает файл со старым расписанием и создаёт вместо него новое.
- Прочитать из файла
У пользователя запрашивается номер группы, затем программа производит чтение расписания из файла и отображение его в виде таблицы на экране. В случае, когда программа не находит данных по запрашиваемой группе, на экран выводиться сообщение «Данных по такой группе не найдено!»
- Добавить запись
Программа обращается к процедуре для ввода расписания, все действия дальше аналогичны пункту «Ввод данных». Различие лишь в том, что в данном пункте расписание группы добавляется ко всем остальным.
- Удалить запись
На экране отображается сообщение, в котором запрашивается номер группы. После нажатия на <ввод>, программа ищет в файле расписаний нужную группу, в случае если такая группа найдена, система удаляет её расписание.
5. Выход
2.2 Структура данных
2.2.1 Типы данных
В программе используется следующие типы данных (и переменные), определенные программистом и используемые для работы с информацией о расписании одной группы:
Type
***************************************************
* Запись содержит информацию об одном учебном дне *
***************************************************
Tpara = record
para:array [1..colpar] of string;
end;
******************************************************
* Запись содержит информацию об одной учебной неделе *
******************************************************
Tweek = record
day:array [1..6] of Tpara;
end;
*******************************************************
* Запись содержит информацию: *
* no – номер группы *
* nowe – информация о двух учебных *
* неделях (полное расписание) *
*******************************************************
Traspis = record
no:integer;
nowe:array [1..2] of Tweek;
end;
2.2.2 Переменные и константы
В программе используются переменные следующих типов:
– integer
– char
– FILE
– boolean
– string
– типы, определяемые программистом и описанные в прошлом пункте.
В различных подпрограммах также используются некоторые локальные дополнительные переменные.
Константы:
// массив дней недели
days:array [1..6] of string = ('Понедельник','Вторник','Среда','Четверг','Пятница','Суббота');
// имя файла с расписаниями
filename = 'raspis.dat';
// имя временного файла
tempfile = 'temp.dat';
// максимальное количество пар в один день
colpar = 3;
2.2.3 Описание процедур
procedure menu – очищает экран и выводит меню
procedure vvod – осуществляет ввод расписания
function formstr (s:string; l:integer):string – функция дополняет строку недостающим числом пробелов. Она используется при выводе таблицы расписания.
3 Описание программного обеспечения (ПО)
3.1 Программная реализация
Данный программный продукт был реализован на языке программирования Паскаль с использованием компилятора Turbo Pascal v7.0 и разработан для машин IBM PC XT и выше.
3.2 Общие сведения
Наименование программы: GAI_DB
Разработчик: Завьялов Д. А., гр. ПОИ-41 ФИПИ
Назначение программы: Работа с базой данных расписания студентов.
3.2.1 Список файлов
KURSOVIK.PAS – Текст программы на языке Pascal.
KURSOVIK.EXE – Файл для запуска программы
RASPIS.DAT – Файл базы данных программы, создаваемый
пользователем непосредственно на этапе работы
программы.
3.2.2 Технические требования
Процессор: Intel 80286 и выше
RAM: 1Mb и выше
Видеокарта: 256Kb и выше
Свободное дисковое пространство: 41kb+размер файлов данных
Операционная система MS-DOS3.2 и выше
4 Заключение
В результате работы была получена программа с модульной структурой. Программа проста в обращении, имеет текстовый интерфейс на русском языке и низкие системные требования. Она интуитивно понятна, что делает ее доступной в обращении для любого пользователя. Также она может быть использована для хранения и других данных (если изменить некоторые сообщения, выводимые на экран).
В программе реализованы операции создания файла базы данных, добавления, удаления записей и поиска расписаний. Таким образом, были выполнены все поставленные задачи.
Список использованной литературы
- Егорова Е.В. Программирование на языке высокого уровня. Часть I. Барнаул: АлтГТУ, 2003.–176 с.
Приложения
Приложение А (текст программы)
uses crt;
const
days:array [1..6] of string = ('Понедельник','Вторник','Среда','Четверг','Пятница','Суббота');
filename = 'raspis.dat';
tempfile = 'temp.dat';
colpar = 3;
type
Tpara = record
para:array [1..colpar] of string;
end;
Tweek = record
day:array [1..6] of Tpara;
end;
Traspis = record
no:integer;
nowe:array [1..2] of Tweek;
end;
var
f,tf:file of Traspis;
raspis:Traspis;
n,i,j,h,w,d,p,g,sf,tmp,ng:integer;
flag:boolean;
procedure menu;
begin
clrscr;
writeln ('1. Ввести данные');
writeln ('2. Прочитать из файла');
writeln ('3. Добавить запись');
writeln ('4. Удалить запись');
writeln ('5. Выход');
end;
procedure vvod;
begin
write ('Номер группы: ');
readln (raspis.no);
for j:=1 to 2 do
begin
writeln;
writeln ('Неделя №',j);
for d:=1 to 6 do
begin
writeln (' ',days[d]);
for w:=1 to colpar do
begin
write (' ',w,'. ');
readln (raspis.nowe[j].day[d].para[w]);
end;
end;
end;
end;
function formstr (s:string; l:integer):string;
var
i,j:integer;
t:string;
begin
i:=l-length (s);
for j:=1 to i do
s:=s+' ';
formstr:=s;
end;
begin
repeat
menu;
readln (p);
case p of
1:
begin
clrscr;
write ('Введите количество записей=');
readln (n);
{---------}
assign (f,filename);
rewrite (f);
{---------}
for i:=1 to n do
begin
fillchar (raspis,sizeof(raspis),0);
vvod;
write (f,raspis);
end;
{---------}
close (f);
end;
2:
begin
clrscr;
write ('Введите номер группы: ');
readln (ng);
assign (f,filename);
reset (f);
sf:=filesize (f);
flag:=false;
for g:=1 to sf do
begin
read (f,raspis);
if raspis.no=ng then
begin
for j:=1 to 2 do
begin
clrscr;
writeln ('Неделя №',j);
tmp:=1;
writeln ('╔═════════════════════════╦══════════════════════════╦════════════════════════╗');
for d:=1 to 2 do
begin
if tmp=4 then writeln ('╠═════════════════════════╬══════════════════════════╬════════════════════════╣');
writeln ('║ ',formstr (days[tmp],24),'║ ',formstr (days[tmp+1],25),'║ ',formstr (days[tmp+2],23),'║');
writeln ('╠═════════════════════════╬══════════════════════════╬════════════════════════╣');
for w:=1 to colpar do
begin
write ('║ ',w,'. ',formstr(raspis.nowe[j].day[tmp].para[w],21));
write ('║ ',w,'. ',formstr(raspis.nowe[j].day[tmp+1].para[w],22));
writeln ('║ ',w,'. ',formstr(raspis.nowe[j].day[tmp+2].para[w],20),'║')
end;
tmp:=4;
end;
writeln ('╚═════════════════════════╩══════════════════════════╩════════════════════════╝');
readkey;
end;
flag:=true;
break;
end else flag:=false;
end;
close (f);
if not flag then
begin
writeln ('Данных по такой группе не найдено!');
readkey;
end;
end;
3:
begin
clrscr;
assign (f,filename);
reset (f);
seek (f,filesize(f));
vvod;
write (f,raspis);
close (f);
end;
4:
begin
clrscr;
write ('Введите номер группы: ');
readln (ng);
assign (f,filename);
assign (tf,tempfile);
reset (f);
rewrite (tf);
seek (f,0);
flag:=false;
for i:=1 to filesize(f) do
begin
read (f,raspis);
if raspis.no<>ng then write (tf,raspis)
else flag:=true;
end;
close (f);
erase (f);
rename (tf,filename);
close (tf);
if not flag then
begin
writeln ('Данных по такой группе не найдено!');
readkey;
end;
end;
end;
until p=5;
end.
Приложение Б (тестирование)
В данном разделе описан процесс тестирования программы. Все найденные недочеты описаны в приложении В
После запуска на экране появляется следующее меню:
************* MENU ************
- Ввести данные
- Прочитать из файла
- Добавить запись
- Удалить запись
- Выход
Далее представлено тестирование каждого пункта меню.
1) "Ввести данные"
Сначала появляется запрос:
Введите количество записей=1
Номер группы: 41
Неделя №1
Понедельник
- математика
- ин-яз
- ФВС
Вторник
- программирование
- информатика
...
...
...
и т.д. пока не будет заполнено полностью всё расписание
Происходит возврат в главное меню
2)"Прочитать из файла".
Сначала появляется запрос:
Введите номер группы: 41
Затем выводиться расписание введённой группы в виде таблицы:
3)"Добавить запись"
Программа запрашивает ввод полей новой записи.
4)"Удалить запись"
Программа предлагает ввести номер группы, после чего удаляет её расписание.
5)"Выход"
Выход из программы.
Приложение В (руководство системного программиста)
Руководство по использованию данного программного продукта приведено в приложении Г.
Найденные недочеты и возможные варианты улучшения:
- При вводе информации программа не проверяет, является ли символ числом; при вводе в числовое поле иного символа происходит сбой в работе.
Данная программа может быть усовершенствована добавлением более живым графическим интерфейсом. Т.к. ее структура является модульной, то достаточно легко могут быть добавлены несколько дополнительных процедур/функций для более широких возможностей работы пользователя с базой данных.
Приложение Г (блок-схемы)
Основная программа: