Практические задания в среде программирования Visual Studio Express C# 2012

 

Введение


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

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

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

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

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

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

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

6Удаление элементов, начиная от текущего.

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

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

1адрес (string).

2количество вкладчиков (longint).

сумма вкладов (real).

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

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

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

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

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

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

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

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


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


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


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

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

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

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

menu, Funkcii,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);

:UdalenieOtVibran(mas,KolvoElm);

:DobavVfail(mas,KolvoElm);

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

{vivod vseh el-v}.


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


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

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

unit menu;crt, funkcii;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Описание модуля funkcii.tpu


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

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

unit funkcii;crt;=(Gosudarst,akcionern,chastnii);=record: string[20];: longint;: real;: Vid;;=array[1..30] of bank;Sozdanie(var mas:F;var KolvoElm:integer);DobavVkon(var mas:F;var KolvoElm:integer);Porsmotr(mas:F; KolvoElm:integer);Poisk(mas:F; KolvoElm:integer);Perehod(var mas:F;var KolvoElm:integer);UdalenieOtVibran(var mas:F; var KolvoElm:integer);DobavVfail(mas:F; KolvoElm:integer);


Процедура 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);(' Perehod vipolnen :)');:=readkey;;

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

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

,k:integer;

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

{Запрос на ввод номера элемента от которого нужно удалять}

{Измена количество элементов на значение меньше на 1 чем выбранный номер}

;


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

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

:string;: file of predmet;,k:integer;:char;:T;

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

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

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

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

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

{end while not..}(fail);


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

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

{end for..}i:=1 to KolvoElm do

{запись данного массива в конец файла}(fail);

(' Dobavleno :)');:=readkey;

;


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.

Приложение А


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


uses menu,Funkcii,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);

:UdalenieOtVibran(mas,KolvoElm);

:DobavVfail(mas,KolvoElm);

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

Приложение Б


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

menu;crt,Funkcii;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]:='Udalenie nachinaya ot vibanogo el-ta';[7]:='Dobavlenie v konec drugogo MD ';[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;;.


Приложение В


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

funkcii;crt;=(Gosudarst,akcionern,chastnii);=record: string[20];: longint;: real;: Vid;;=array[1..30] of bank;Sozdanie(var mas:F;var KolvoElm:integer);DobavVkon(var mas:F;var KolvoElm:integer);Porsmotr(mas:F; KolvoElm:integer);Poisk(mas:F; KolvoElm:integer);Perehod(var mas:F;var KolvoElm:integer);UdalenieOtVibran(var mas:F; var KolvoElm:integer);DobavVfail(mas:F; KolvoElm:integer);

Sozdanie(var mas:F;var KolvoElm:integer);:integer;:string;: file of bank;:char;(black);;(green);:=0;:=1;i=1 do(KolvoElm);('Vvedite Adres banka:');(Mas ^ [KolvoElm].adres);('Vvedite Kolvo Vkladchikov:');(Mas ^ [KolvoElm].Kolvo);('Vvedite Summu vkladov:');(Mas ^ [KolvoElm].Summa);

('Vvedite Tip Banka: 1-Gosudarst 2-Akcionern 3-Chastnii:');(i);i of

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

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

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

:=readkey;;DobavVkon(var mas:F;var KolvoElm:integer);:integer;(black);;(green);(KolvoElm);('Vvedite Adres banka:');(Mas ^ [KolvoElm].adres);('Vvedite Kolvo Vkladchikov:');(Mas ^ [KolvoElm].Kolvo);('Vvedite Summu vkladov:');(Mas ^ [KolvoElm].Summa);

('Vvedite Tip Banka: 1-Gosudarst 2-Akcionern 3-Chastnii:');(i);i of

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

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

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

Porsmotr(mas:F; KolvoElm:integer);,k,j:integer;,x:longint;:char;(black);;(green);('?????????????????????????????????????????????????????');('? Adres ? Vkladchikov? Summa ? Tip banka ?');

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

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

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

{end for k:=1..}

:=round(mas ^ [i].summa);('? ',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('? Gosudarst ');: write('? Akcionern ');: write('? Chastnii ');;(' ? ');;

{end for i:=1..}('?????????????????????????????????????????????????????');:=readkey;;

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

('?????????????????????????????????????????????????????');('? Adres ? Vkladchikov? Summa ? Tip banka ?');('?????????????????????????????????????????????????????');('? ',mas ^ [i].adres);k:=1 to 11-length(mas ^ [i].adres) do(' ');

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

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

{end for k:=1..}

:=round(mas ^ [i].summa);('? ',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('? Gosudarst ');: write('? Akcionern ');: write('? Chastnii ');;(' ? ');('?????????????????????????????????????????????????????');:=readkey;;

Perehod(var mas:F;var KolvoElm:integer);:string;: file of bank;: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;;

UdalenieOtVibran(var mas:F; var KolvoElm:integer);,k:integer;(black);;(green);('Vvedite nomer el-ta nachinaya s kotorogo vse ydalite:');(i);:=(i-1);;

DobavVfail(mas:F; KolvoElm:integer);:string;: file of bank;,k:integer;:char;:T;(black);;(green);('Vvedite Pytb k faily');(PytbKfail);(fail,PytbKfail);(fail);not eof(fail) do(k);(fail, mas1[k]);;(fail);(fail);i:=1 to k do(fail, mas1[i]);

{end for..}i:=1 to KolvoElm do(fail,mas ^ [i]);(fail);(black);;(green);(' Dobavleno :)');:=readkey;;.


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

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ