Практическая обработка набора данных, представленного в виде файла

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    378,78 Кб
  • Опубликовано:
    2014-05-03
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Практическая обработка набора данных, представленного в виде файла

Введение

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

1   Создание набора данных (МД).

2        Добавление новых элементов в конец МД.

          Просмотр всех элементов МД.

          Поиск элемента по номеру.

          Переход к работе с другим МД.

В соответствии с заданием моего варианта необходимо обеспечить реализацию двух запросов к заданному множеству структурированной информации:

6   Вставка нового элемента перед текущим элементом.

7        Сохранение всех элементов в другом МД.

Множество данных должно представлять собой информацию об породах собак:

1   средняя продолжительность жизни (longint).

2        рост (integer).

          название (string).

          тип: служебная, декоративная, охотничья, другая (перечислимый тип).

Условия и ограничения, которые должны быть соблюдены при написании данного программного комплекса:

1   Главную процедуру программы с реализацией простейшего меню следует определить в отдельном модуле.

2        Процедуры, реализующие запросы, должны быть размещены в одном или более модулях.

          Глобальные данные использовать нельзя.

          На экран выводить элементы в виде таблицы (один элемент - одна строка таблицы).

          Если после выполнения запроса изменяется хотя бы один элемент, то заканчивать запрос выводом всего множества элементов.

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

1      Описание программного комплекса


1.1   Структура программного комплекса


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

Главная программа подключает следующие модули: crt, menu, zaprosi.

В основной программе реализован вывод массива меню действий и выбор с помощью оператора case.

Псевдокод программы Kyrsov:

menu, zaprosi,crt;:f;:char;,poz:integer;(mas);

{vvod parametrov ekrana}

{vivod menu}poz of

:Sozdanie(mas,KolvoElm);

:DobavVkon(mas,KolvoElm);

:Porsmotr(mas,KolvoElm);

:Poisk(mas,KolvoElm);

:Perehod(mas,KolvoElm);

:VstavkaPered(mas,KolvoElm);

:VivodVfail(mas,KolvoElm);

:halt;;{izmenilsya el-t};{izmenilsya} then

{vivod vseh el-v}.

1.2   Описание модуля menu.tpu


В модуле menu.tpu описана одна процедура glavn.

Описательная часть модуля:

unit menu;crt,zaprosi;glavn(var poz:integer);

В menu.tpu осуществляется вывод меню интерфейса. Процедурой glavn (var poz:integer), обрабатывается нажатие клавиш, в зависимости от переданного параметра выполняется определённое действие, т.е пункт меню. Формальным параметром передаётся выбранный пункт в меню (poz).

Псевдокод процедуры glavn:

,k:integer;:char;:array [1..10] of string [40];

[1]:= Sozdanie MD ';

..

{вывод остальных пунктов меню}

{Назначение параметров окна}

{Назначение цвета текста и фона}i:=1 to 8 do

{Вывод пунктов меню}

{end for i:=1..}

{Назначение цвета текста и фона текущей строки}

{Вывод текущего пункта меню}

{Считывание нажатой клавиши}:=readkey;

{Назначение цвета текста и фона остальных строк}i:=1 to 8 do

{Вывод пунктов меню}

{end for i:=1..}vibor of

#72{vverh}: begin

{Prisvoenie stroke znach menshe na 1}:=poz-1;

{Proverka na vihod za granicy menu};

#80{vniz}: begin

{Prisvoenie stroke znach bolshe na 1}:=poz+1;

{Proverka na vihod za granicy menu};

#13 {Enter}: i:=poz;

#27: halt;;

{end case vibor of}

{Назначение цвета текста и фона текущей строки}

{Вывод текущего пункта меню}i=poz;;

1.3   Описание модуля procedur.tpu


В модуле procedur.tpu описаны процедуры которые реализуют запросы, и типы необходимые для работы с множеством данных.

Описательная часть модуля:


Процедура Sozdanie (var mas:F;var KolvoElm:integer) создаёт новый массив данных. Формальными параметрами этой процедуры являются массив с данными (mas) типом (F), описанным в разделе типов и количеством элементов в массиве (KolvoElm).

Псевдокод процедуры Sozdanie:

:integer;:char;

{Назначение цвета текста и фона}:=0;:=1;i=1 do

{Подсчёт количества элементов};

{Ввод нового элемента}

{Запрос на ввод ещё элемента};;;

Процедура DobavVkon(var mas:F;var KolvoElm:integer) добавляет записи в конец массива, количество записей корректирует пользователь. Формальными параметрами этой процедуры являются массив с данными (mas) типом (F), описанным в разделе типов и количеством элементов в массиве (KolvoElm).

Псевдокод процедуры DobavVkon:

var:integer;

{Назначение цвета текста и фона}

{приращение счётчика количества элементов}

{Ввод Названия предмета}

{Ввод номера курса}

{Ввод чавсов в год}

{Запрос на ввод ещё одного предмета}(i);i=2;;

Процедура Porsmotr(mas:F; KolvoElm:integer) выводит массив записей в виде таблицы. Формальными параметрами этой процедуры являются массив с данными (mas) типом (F), описанным в разделе типов и количеством элементов в массиве (KolvoElm).

Псевдокод процедуры Porsmotr:

,k,j:integer;,x:longint;:char;

{Назначение цвета текста и фона}

{вывод шапки таблицы}i:=1 to KolvoElm do

{Вывод первого столбика}

{дополнение пробелами}

{Вывод второго столбика }

{Подсчёт количества символов в числе}(k);:=x div 10;:=z;(x<10) and (x<>0) then(k);:=0;;x=0;

{дополнение пробелами}

{Вывод третьего столбика}

{Подсчёт количества символов в числе}

{дополнение пробелами}

{Вывод четвёртого столбика}

;

{end for i:=1..}

{Вывод окончания таблицы};

Процедура Poisk(mas:F; KolvoElm:integer) выводит элемент по введенному номеру. Формальными параметрами этой процедуры являются массив с данными (mas) типом (F), описанным в разделе типов и количеством элементов в массиве (KolvoElm).

Псевдокод процедуры Poisk:

var,k,j:integer;,x:longint;:char;

{Назначение цвета текста и фона}

{вывод шапки таблицы}

{Запрос на ввод элемента}

{Вывод первого столбика}

{дополнение пробелами}

{Вывод второго столбика }

{Подсчёт количества символов в числе}(k);:=x div 10;:=z;(x<10) and (x<>0) then(k);:=0;;x=0;

{дополнение пробелами}

{Вывод третьего столбика}

{Подсчёт количества символов в числе}

{дополнение пробелами}

{Вывод четвёртого столбика}

{Вывод окончания таблицы};

Процедура perehod(var mas:F;var KolvoElm:integer) Помещает новый символ после выбранного. Формальными параметрами этой процедуры являются массив с данными (mas) типом (F), описанным в разделе типов и количеством элементов в массиве (KolvoElm).

Псевдокод процедуры Perehod:

:string;: file of predmet;:char;

{Назначение цвета текста и фона}

{Ввод пути к файлу}(fail,PytbKfail);

{открытие файла для чтения}

not eof(fail) do {Пока не конец файла}

{Наращение счётчика количества элементов}

{копирование по одному значению в массив данных};

{end while not..}(fail);;

Процедура VstavkaPered(var mas:F;var KolvoElm:integer) вставляет новый элемент перед выбранным. Формальными параметрами этой процедуры являются массив с данными (mas) типом (F), описанным в разделе типов и количеством элементов в массиве (KolvoElm).

Псевдокод процедуры SozdanieS:

:T;,i:integer;

{Назначение цвета текста и фона}

{Ввод номера элемента перед которым нужно вставить новый элемент}

{Запоминание элементов начиная с выбранного}k:=i to KolvoElm do[k]:=mas ^ [k];

{Ввод нового элемента}(KolvoElm);

{Вставка элементов которые запоминали}k:=i+1 to KolvoElm do^ [k]:=mas1[k-1];

;

Процедура VivodVfail(mas:F; KolvoElm:integer) Сохраняет все элементы МД в другогом НД. Формальными параметрами этой процедуры являются массив с данными (mas) типом (F), описанным в разделе типов и количеством элементов в массиве (KolvoElm).

Псевдокод процедуры VivodVfail:

{Назначение цвета текста и фона}

{Ввод пути к файлу}(fail,PytbKfail);

{открытие файла для записи}i:=1 to k do

{запись информации в файл}

{end for..}

{закрытие файла}

end;

2      Описание работы программы по контрольному примеру


Программ начинается с вывода меню. Для передвижения по пунктам меню нужно использовать клавиши «Вверх» и «Вниз» (Рисунок 1).

Рисунок 1 - Главное меню

2.1   Создание набора данных


Чтобы создать НД, нужно выбрать в меню пункт «Создание НД». После выбора программа будет делать запросы на ввод каждого поля элемента, после введения элемента программа запрашивает подтверждения на ввод ещё одного элемента. После окончания создания НД программа вернется в меню. Создадим НД (рисунок 2).

Рисунок 2 - Создание НД

2.2   Добавление элементов в конец набора данных


Чтобы добавить в уже существующий набор данных новые элементы, нужно выбрать в меню пункт «Добавление новых элементов конец». Программа попросит ввести поочередно все пункты записи, после чего спросит нужно ли ввести ещё запись. На рисунке 3 - процесс добавления элементов, на рисунке 4 - конечное состояние набора данных.

Рисунок 5 - Добавление элементов в конец нд

Рисунок 6 - Конечное состояние нд

 

2.3   Просмотр всех элементов набора данных


Для просмотра всех элементов набора данных нужно выбрать в меню пункт «Просмотр всех элементов». Выводится таблица со всеми данными (рисунок 7).

Рисунок 7 - Вывод набора данных

2.4   Поиск элемента по номеру


Чтобы найти элемент по заданному номеру, нужно выбрать в меню пункт «Поиск элемента по номеру». После выбора программа попросит ввести номер элемента который хотите просмотреть, после чего программа выведет этот элемент в виде таблицы. После нажатия любой клавиши программа вернется в меню. Найдём элемент под номером 1 (рисунок 8).

Рисунок 8 - Поиск

 

2.5   Переход к другому НД


Чтобы перейти к другому набору данных нужно выбрать в меню пункт «Переход к другому НД», далее ввести имя файлв котором храниться другой НД. После перехода программа уведомит о его совершении. В примере выполнен переход от одного НД к другому и показаны результаты до (рисунок 9) и после(рисунок 10) перехода.

Рисунок 9 - НД до перехода

Рисунок 10 - Результат после перехода

2.6   Вставка элемента перед выбранным элементом


Для вставки элемента перед выбранным нужно выбрать в меню пункт «Вставка перед выбранным» а затем, нужно ввести номер элемента перед которым нужно вставить новый, после этого программа предоставит вам возможность ввести данные о новом элементе, после чего добавит его. На примере показан НД до(рисунок 12) и после(рисунок 13) добавления.

Рисунок 11 - До вставки

Рисунок 12 - После вставки

2.7   Сохранение НД в файле


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

Рисунок 13 - Сохранение

 

Заключение


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

файл сортировка массив данные

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


1 Савелин, В.К. MathCAD 7.0./ Руководство пользователя./ BHV-Киев, 1998.

2 Колесников, А. «Турбо Паскаль 7.0»/ В.Гинзвург./ BHV/ Киев, 1996.

3 Бородич, Ю.С. Паскаль для персональных компьютеров. - Минск: Высшая школа, 1991.

Языки программирования Pascal & Delphi [Электронный ресурс]/ Структурное программирование - Режим доступа: <http://www.maksakov-sa.ru/TehProgram/StrProgr/index.html> - Дата доступа: 28.05.2013

 

Приложение А


Текст главной программы

uses menu,Zaprosi,crt;:f;:char;,poz:integer;(mas);;(black);(white);(poz);poz of

:Sozdanie(mas,KolvoElm);

:DobavVkon(mas,KolvoElm);

:Porsmotr(mas,KolvoElm);

:Poisk(mas,KolvoElm);

:Perehod(mas,KolvoElm);

:VstavkaPered(mas,KolvoElm);

:VivodVfail(mas,KolvoElm);

:halt;;(poz=8)or (poz=2) or (poz=6);(poz=2)or(poz=6) then(mas,KolvoElm);.

Приложение Б


Текст модуля реализации меню (menu)

menu;crt,Zaprosi;glavn(var poz:integer);glavn(var poz:integer);,k:integer;:char;:array [1..10] of string [40];

[1]:='Sozdanie MD ';[2]:='Dobavlenie Novih el-v v konec ';[3]:='Prosmotr vseh el-v ';[4]:='Poisk el-ta po nomery ';[5]:='Perehod Kdrugomy MD ';[6]:='Vstavka el-ta pered tekushim ';[7]:='Sohranenye MD v faile ';[8]:='EXIT ';

(1,1,80,25);(white);;

(black);(white);i:=1 to 8 do(1,i);(MasMenu[i]);;

{end for i:=1..}(yellow);(red);:=1;(1,poz);(MasMenu[poz]);

:=readkey;(black);(white);i:=1 to 8 do(1,i);(MasMenu[i]);;

{end for i:=1..}:=0;vibor of

#72{vverh}: begin

{Prisvoenie stroke znach menshe na 1}:=poz-1;

{Proverka na vihod za granicy menu}poz<1 then:=8;;

#80{vniz}: begin

{Prisvoenie stroke znach bolshe na 1}:=poz+1;

{Proverka na vihod za granicy menu}poz>8 then:=1;;

#13 {Enter}: i:=poz;

#27: halt;;

{end case vibor of}(yellow);(red);(1,poz);(MasMenu[poz]);i=poz;;.

Приложение В

Текст модуля реализации всех запросов (zaprosi)

Sozdanie(var mas:F;var KolvoElm:integer);:integer;:string;: file of Sobaka;:char;(black);;(green);:=0;:=1;i=1 do(KolvoElm);('Vvedite Porodu sobaki:');(Mas ^ [KolvoElm].Nazvanie);('Vvedite srednuu life sobaki:');(Mas ^ [KolvoElm].Life);('Vvedite Rost sobaki:');(Mas ^ [KolvoElm].Rost);('Vvedite Tip sobaki: 1- Dekorat 2-Slugeb 3-Ohotnichaya:');(i);i of

:Mas ^ [KolvoElm].Tip:=Dekorat;

:Mas ^ [KolvoElm].Tip:=Slugeb;

:Mas ^ [KolvoElm].Tip:=Ohotnichaya;;('Hotite vvesti eshe? Da-1, Net-2');(i);;

:=readkey;;

DobavVkon(var mas:F;var KolvoElm:integer);:integer;(black);;(green);(KolvoElm);('Vvedite Porodu sobaki:');(Mas ^ [KolvoElm].Nazvanie);('Vvedite srednuu life sobaki');(Mas ^ [KolvoElm].Life);('Vvedite Rost sobaki:');(Mas ^ [KolvoElm].Rost);('Vvedite Tip sobaki: 1- Dekorat 2-Slugeb 3-Ohotnichaya:');(i);i of

:Mas ^ [KolvoElm].Tip:=Dekorat;

:Mas ^ [KolvoElm].Tip:=Slugeb;

:Mas ^ [KolvoElm].Tip:=Ohotnichaya;;('Hotite vvesti eshe? Da-1, Net-2');(i);i=2;;

Porsmotr(mas:F; KolvoElm:integer);,k,j:integer;,x:longint;:char;(black);;(green);;('║ Poroda ║ Life ║ Rost ║ Tip ║');

i:=1 to KolvoElm do;('║ ',mas ^ [i].Nazvanie);k:=1 to 11-length(mas ^ [i].Nazvanie) do(' ');

{end for k:=1..}('║ ',mas ^ [i].Life);:=0;(z);:=mas ^ [i].Life;:=k div 10;:=j;(j<10) and (j<>0) then(z);:=0;;j=0;

x:=1 to 11-z do(' ');

{end for k:=1..}

:=mas ^ [i].Rost;('║ ',x);:=0;

(k);:=x div 10;:=z;(x<10) and (x<>0) then(k);:=0;;x=0;

j:=1 to 10-k do(' ');

{end for k:=1..}mas ^ [i].Tip of: write('║ Dekorat ');: write('║ Slugeb ');: write('║ Ohotnichaya');;(' ║ ');;

{end for i:=1..}:=readkey;;

Poisk(mas:F; KolvoElm:integer);,k,j:integer;,x:longint;:char;(black);;(green);('Vvedite nomer el-ta');(i);

('║ Poroda ║ Life ║ Rost ║ Tip ║');('║ ',mas ^ [i].Nazvanie);k:=1 to 11-length(mas ^ [i].Nazvanie) do(' ');

{end for k:=1..}('║ ',mas ^ [i].Life);:=0;(z);:=mas ^ [i].Life;:=k div 10;:=j;(j<10) and (j<>0) then(z);:=0;;j=0;

x:=1 to 11-z do(' ');

{end for k:=1..}

:=mas ^ [i].Rost;('║ ',x);:=0;

(k);:=x div 10;:=z;(x<10) and (x<>0) then(k);:=0;;x=0;

j:=1 to 10-k do(' ');

{end for k:=1..}mas ^ [i].Tip of: write('║ Dekorat ');: write('║ Slugeb ');: write('║ Ohotnichaya');;(' ║ ');;:=readkey;;

Perehod(var mas:F;var KolvoElm:integer);:string;: file of sobaka;:char;(black);;(green);:=0;('Vvedite Pytb k faily');(PytbKfail);(fail,PytbKfail);(fail);not eof(fail) do(KolvoElm);(fail, mas ^ [KolvoElm]);;

{end while not..}(fail);

(' Perehod vipolnen :)');:=readkey;;

VstavkaPered(var mas:F;var KolvoElm:integer);:T;,i:integer;(black);;(green);('Vvedite nomer el-ta pered kotorim vstavite drugoi');(i);k:=i to KolvoElm do[k]:=mas ^ [k];('Vvedite Porodu sobaki:');(Mas ^ [i].Nazvanie);('Vvedite Srednuu life sobaki:');(Mas ^ [i].Life);('Vvedite rost sobaki:');(Mas ^ [i].Rost);('Vvedite Tip sobaki: 1- Dekorat 2-Slugeb 3-Ohotnichaya:');(i);i of

:Mas ^ [i].Tip:=Dekorat;

:Mas ^ [i].Tip:=Slugeb;

:Mas ^ [i].Tip:=Ohotnichaya;;(KolvoElm);k:=i+1 to KolvoElm do^ [k]:=mas1[k-1];;

VivodVfail(mas:F; KolvoElm:integer);:string;: file of sobaka;:integer;:char;(black);;(green);('Vvedite Pytb k faily');(PytbKfail);(fail,PytbKfail);(fail);i:=1 to KolvoElm do(fail, mas ^ [i]);

{end for..}(fail);(black);;(green);(' Sohraneno :)');:=readkey;

;

.

Похожие работы на - Практическая обработка набора данных, представленного в виде файла

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!