Пояснительная записка к курсовой работе по дисциплине "Информатика" кр 030500. 12. 000ПЗ

Вид материалаПояснительная записка

Содержание


1 Постановка задачи
2.1 Алгоритм решения задачи.
Прочитать из файла
Добавить запись
Удалить запись
2.2.2 Переменные и константы
2.2.3 Описание процедур
3.1 Программная реализация
3.2 Общие сведения
3.2.1 Список файлов
3.2.2 Технические требования
Список использованной литературы
2)"Прочитать из файла".
3)"Добавить запись"
Найденные недочеты и возможные варианты улучшения
Подобный материал:

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

АЛТАЙСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

им. И.И.ПОЛЗУНОВА


Кафедра "Прикладная математика"


УДК 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 Развернутая постановка задачи


Создать файл расписания занятий.


Запись имеет вид:
        • Номер группы
        • Номер недели
        • День недели
        • Номер пары
        • все данные о занятии на этой паре


Программа должна иметь функции:
  1. Создание файла
  2. Показ расписания занятий для заданной группы
  3. Удаление из файла (или добавление) записи указанной группы



2 Решение задачи


2.1 Алгоритм решения задачи.


2.1.1 Алгоритм программы.


После запуска программы на экране появляется меню, состоящее их следующих пунктов:


  1. Ввести данные
  2. Прочитать из файла
  3. Добавить запись
  4. Удалить запись
  5. Выход


Затем программа предлагает выбрать один из пунктов меню. Для этого необходимо ввести номер интересующего вас пункта и нажать <ввод>

  1. Ввести данные

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

  1. Прочитать из файла

У пользователя запрашивается номер группы, затем программа производит чтение расписания из файла и отображение его в виде таблицы на экране. В случае, когда программа не находит данных по запрашиваемой группе, на экран выводиться сообщение «Данных по такой группе не найдено!»

  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 Заключение


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


В программе реализованы операции создания файла базы данных, добавления, удаления записей и поиска расписаний. Таким образом, были выполнены все поставленные задачи.


Список использованной литературы

  1. Егорова Е.В. Программирование на языке высокого уровня. Часть 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. Ввести данные
  2. Прочитать из файла
  3. Добавить запись
  4. Удалить запись
  5. Выход


Далее представлено тестирование каждого пункта меню.


1) "Ввести данные"

Сначала появляется запрос:


Введите количество записей=1

Номер группы: 41


Неделя №1

Понедельник
  1. математика
  2. ин-яз
  3. ФВС

Вторник
  1. программирование
  2. информатика

...

...

...


и т.д. пока не будет заполнено полностью всё расписание


Происходит возврат в главное меню


2)"Прочитать из файла".

Сначала появляется запрос:


Введите номер группы: 41


Затем выводиться расписание введённой группы в виде таблицы:





3)"Добавить запись"


Программа запрашивает ввод полей новой записи.


4)"Удалить запись"


Программа предлагает ввести номер группы, после чего удаляет её расписание.


5)"Выход"


Выход из программы.


Приложение В (руководство системного программиста)


Руководство по использованию данного программного продукта приведено в приложении Г.


Найденные недочеты и возможные варианты улучшения:

  • При вводе информации программа не проверяет, является ли символ числом; при вводе в числовое поле иного символа происходит сбой в работе.


Данная программа может быть усовершенствована добавлением более живым графическим интерфейсом. Т.к. ее структура является модульной, то достаточно легко могут быть добавлены несколько дополнительных процедур/функций для более широких возможностей работы пользователя с базой данных.


Приложение Г (блок-схемы)


Основная программа: