Разработка программы обработки массива данных с построением диаграммы (предметная область – 'Оптовая база')

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

Разработка программы обработки массива данных с построением диаграммы (предметная область – 'Оптовая база')

Федеральное агентство по образованию РФ

Пензенская государственная технологическая академия

Кафедра «Информатика»

Дисциплина «Информатика и программирование»









Курсовой проект на тему

Разработка программы обработки массива данных с построением диаграммы (предметная область - «Оптовая база»)


Выполнила:

Студентка группы 09Э1

Шиянова О.Г.

Принял: доцент каф. «Информатика»

Долгушева Л.Н.



Пенза, 2010 г.

ЗАДАНИЕ

на курсовое проектирование

По дисциплине «Информатика и программирование»

Студенту Шияновой Олеси группы 09Э1

Тема проекта: Разработка программы обработки массива данных с построением диаграммы (предметная область-«Меню»)

(вариант 37)

Исходные данные (технические требования) на проектирование

.Состав входных и выходных данных:

входные данные: наименование блюда, вес, цена;

вычисляемое поле: цена со скидкой (10%);

выходные данные: обработанный массив данных, столбиковая диаграмма.

.Функции программы: ввод данных, запись данных в файл, чтение данных из файла, вывод данных на экран, дополнение данных, удаление данных, поиск информации по заданному атрибуту(наименование товара), сортировка данных(методом вставки), построение диаграммы(столбиковой).

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

Объём работы по курсу

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

.Графическая часть:

схемы программы(основной, подпрограммы сортировки, подпрограммы построения диаграммы)3 листа формата А4;

схема данных(1 лист формата А4).

.Экспериментальная часть: составление и отладка программы на русском языке Turbo Pascal.

Срок выполнения проекта по разделам:

1.Постановка задачи к 20.10.2010

2.Разработка алгоритмов к 30.10.2010

3.Написание программы к 15.11.2010

.Подготовка текста программы к 20.11.2010

5.Отладка программы к 30.11.2010

.Оформление пояснительной записки к 5.12.2010

.Оформление графической части к 10.12.2010

Цель курсового проектирования


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

Постановка задачи


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

Таблица 1 - Структура данных программы

МЕНЮ

Название блюда

Вес

Цена (руб.)

Цена со скидкой 10% (руб.)


Структура входных и выходных данных


Структура входных и выходных данных представлена в таблице 2.

Таблица 2 - Структура входных и выходных данных

Переменные

Значения переменных

Тип данных

Ограничения

A

Вспомогательная переменная

Integer

>0

B

Вспомогательная переменная

Integer

>0

K

Селектор

Char

>0

I

Граница цикла

Byte

0..100

N

Byte

0..100

Tabl, men

Массив

Array

1..100

Naz

Название блюда

String

<23

Ves

Вес блюда

Real

>0

Cen

Цена блюда

Real

>0

Skid

Цена блюда со скидкой 10%

Real

>0

Key

Признак обмена

boolean

True, false

j1, srd, w, wi

Переменные для построения и вывода диаграммы

Integer

>0

H


Longint

>0

x1, y, shag, lst


Integer

>0

str_name, str_skid, s

Переменные для вывода подписей диаграммы

String

[1..30]

D

Вспомогательная переменная

record

-

Poisk

Запись для осуществления поиска

Record

_

ps2

Запись для осуществления поиска

Record

_

Y

Номер удаляемой записи

Integer

>0

P

Признак выполнения 1 пункта меню

Integer

[0;1]

S

Индекс элемента

Integer

_

X

Признак нахождения элемента массива

Integer

_

D

Индекс удаляемого элемента

_

Nomer

номер записи

Integer

>0

gDriver, gmode

Переменные для инициализации графического режима

Integer

>0


Описание программы

 

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

При выборе второго пункта меню на экран выводится таблица с введенными данными.

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

При выборе четвёртого пункта происходит следующее: требуется ввести название блюд, запись о которых нужно удалить.

Результаты работы третьего и четвёртого пунктов меню можно увидеть во втором пункте меню.

При выборе пятого пункта происходит завершение программы.

При выборе шестого пункта производится сортировка введенных данных.

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

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

Руководство пользователя

 

Для запуска программы необходимо убедиться, что на компьютере пользователя установлен Turbo Pascal. Turbo Pascal - это программа позволяющая изучать язык программирования, с помощью которого можно писать программы, а также запускать их на выполнение. Для запуска этой программы нужно найти исполняемый модуль (с расширением .exe). Далее запускаем программу.

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

Первый пункт меню - ввод данных. Выбор первого пункта обязателен для корректного выполнения. Для его выбора необходимо нажать «V».При выборе первого пункта пользователю предлагается сначала ввести количество блюд, а затем необходимые данные о них: название блюда, вес и цену, причем последние 2 обязательно должны вводиться в виде числового выражения, если это условие не будет выполнено, то ввод не произведется до тех пор, пока оно не выполнится условие. Далее нужно ввести имя файла для сохранения и дополнение будет закончено. Нажмите enter для выхода в главное меню.

Второй пункт меню - вывод записей на экран. Для его выбора необходимо нажать «Y». Все данные будут представлены в виде таблицы. Нажмите enter для выхода в главное меню.

Третий пункт - дополнение данных после элемента с заданным атрибутом. Для выбора нужно нажать «О». Если пользователь выбирает третий пункт меню, то выводится информация об этом пункте, а также необходимо ввести название блюда, после которого требуется добавить информацию. Результаты можно просмотреть при выборе второго пункта меню. Нажмите enter для выхода в главное меню.

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

Пятый пункт - выход из программы. Для выбора нужно нажать «H». При выборе этого пункта происходит завершение программы.

Шестой пункт - сортировка введенных данных. Для выбора нужно нажать «S». При успешном завершении выведется сообщение. Нажмите enter для выхода в главное меню.

Седьмой пункт - построение столбиковой диаграммы. Для выбора нужно нажать «D». Нажмите enter для выхода в главное меню.

Заключение

 

Данная программа разработана на языке программирования Turbo Pascal с использованием интерфейса типа «меню». В курсовом проекте разработана программа, обеспечивающая работу пользователя в диалоговом режиме с возможностью выбора функций с помощью одноуровневого меню вертикального типа в соответствии с заданным вариантом № 37.

Программа занимает около 10 Кб.

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

Приложение А. Схема программы









Приложение В. Текст программы

turbo pascal программа меню

program lab1;

uses graph,crt;{razdel opisaniya tipov}=record {obyavlenie tipa zapis'}:string; {nazvanie bluda}:real; {ves bluda}:real; {cena bluda}:real; {cena so skidkoy};{razdel opisaniya peremennyh},poisk,ps2:z;,b,i,n:integer;:char;:array[1..100] of z; {massiv zapisey}:z;,gmode:integer;:integer;_P:array[1..5] of string;:array[1..100] of z; {massiv zapisey},y,s,x,d:integer;menu; {procedura vyvoda menu};(3);(15);;;;(' ЙНННННННННННН»');(' є vvod File:Fє');(' ЙНННННННННННН»');(' є Vvod:V є');(' МНННННННННННН№');(' є vYvod:Y є');(' МНННННННННННН№');(' єdOpolnenie:Oє');(' МНННННННННННН№');(' є udalenie:U є');(' МНННННННННННН№');(' є vyHod:H є');(' МНННННННННННН№');(' єSortirovka:Sє');(' МНННННННННННН№');(' єDiagramma:D є');(' ИННННННННННННј');;(' Vvedite punkt menu: ');;masToFile;:file of z;_file: string[32];('Vvedite imya faila dlya sohraneniya: ');(name_file);(Spi,name_file);(Spi);i:=1 to n do {cikl zapolneniya massiva}(Spi,tabl[i]);;(Spi);;masFromFile;:file of z;_file: string[32];{cikl proverki nalichiya faila};('Vvedite imya faila dlya chteniya dannyh: ');(name_file);

{$I-}(Spi,name_file);(Spi);(Spi);

{$I+}(IOResult=0) and (name_file<>'');(Spi,name_file);(Spi);i:=1 to FileSize(Spi) do(spi,tabl[i]);:=i;(Spi);(' Dannye prochteny iz Faila.');;;vvod; {procedura vvoda dannyh};

{$i-}(' vvedite collichestvo blud');(n);

{$i+}IOResult=0;i:=1 to n do {cikl zapolneniya massiva}(i, ')');tabl[i] do {obrashenie k zapisi}(' vvedite nazvanie bluda ');(tabl[i].naz);

{$i-}(' vvedite ves bluda ');(tabl[i].ves);

{$i+}IOResult=0;

{ioresult-funkciya vozvrashaushaya 0,esli tip peremennoy sootvetstvuet obyavlennomu}

{$i-}(' vvedite cenu ');(tabl[i].cen);

{$i+}ioresult=0;IOResult=1 then writeln('nepravilnyi vvod,povtorite') else:=cen-(cen*10/100);;;;(' dobavlenie zakoncheno.');;;vivod; {procedura vyvoda dannyh na ekran};;(' ЙННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»');(' є menu є');(' МНННННННННННННННННННННННЛНННННННННННННННЛННННННННННННННННННННЛНННННННННН№');(' є nazvanie є ves є cena єso skidkoyє');(' МНННННННННННННННННННННННОНННННННННННННННОННННННННННННННННННННОНННННННННН№');i:=1 to n do(' є',(tabl[i].naz):23,'є',(tabl[i].ves):15:2,'є',(tabl[i].cen):20:2,'є',(tabl[i].skid):10:2,'є');;(' ИНННННННННННННННННННННННКНННННННННННННННКННННННННННННННННННННКННННННННННј');;;;dop; { procedura dopolneniya zapisey v tablicu}: string; {nazvanie - dlya poiska dannyh};n>0 then {proverka - vvedeny li dannye}('vvedite nazvanie bluda,posle kotorogo neobhodimo vstavit novyu zapis');(nazv);i:=1 to n do(nazv=tabl[i].naz) then('zapis naydena');:=i;:=1;{priznak};x<>1 then('zapis ne naydena,povtorite');;;{tsikl vvoda nov.zapisi\zapisey}('vvedite nazvanie bluda ili * dlya okonchaniya');(men.naz);men.naz<>'*' then('vvedite ves');(men.ves);('vvedite cenu');(men.cen);.skid:=men.cen-(men.cen*10/100);:=n+1;i:=n downto s+1 do[i+1]:=tabl[i];[s+1]:=men;;men.naz='*';;writeln('dannye ne vvedeny');('nagmite lubyu klavishu');;;udal; {podprogramma udaleniya}n>0 then{tsikl vvoda korrektnogo vvoda zapisi};

{$i-}('vvedite nomer zapisi kotoryu nugno udalit');(y);

{$i+}IOResult=0;((y<=n)and(y>0));(y<>n) then:=n-1;i:=y to n do[i]:=tabl[i+1];:=n-1;('zapis udalena');writeln('dannye ne vvedeny');('nagmite lubyu klavishu');;;sort;:z;,j:integer;;j:=2 to N do:= j;tabl[i].skid < tabl[i-1].skid do:=tabl[i];[i]:=tabl[i-1];[i-1]:=d;:= i-1;(' sortirovka proshla ucpeshno');;;diagramma;,short_name,str_name,str_skid,YgN,MaxY:string;:longint;,w,x1,y,ErrorCode,srd,wi,Yg,lst,shag:integer;_skid,pnp,HSize,StepY,lineNumbers:real;:=detect;:=2;:=0;(gdriver,gmode,'');{inicializaciya graficheskogo reghima raboty}:=GraphResult;

{esli znachenie funkcii=0,eto sootvetstvuet normal'nomu zaversheniu graficheskoy operacii}ErrorCode<>grOk then(' Oshibka inicializacii grafiki:');( GraphErrorMsg(ErrorCode)); {soobshenie ob oshibke}(1);;;

{ochishaetsya ekran I ustanavlivautsya parametry graficheskogo driver na standartnoe znachenie }(black);(yellow);(60,461,630,461); {stroit otrezok ot t.(x1,y1) do (x2,y2),os' x}(60,22,50,460); {y}_skid:=0;i:=1 to n do(tabl[i].skid>max_skid) then_skid:=tabl[i].skid;;:=max_skid/435;(white);:=round((568/n)-2);(srd,s);:=52;i:=1 to n do(i+2);(1,i); {shtrihovka,1-cod sploshnoy zalivki,i -cvet}:=(abs((tabl[i].skid/pnp)-435))+22; {razmer stolbikov}HSize<1 then(wi,460,wi+srd,round(HSize)+1) {postroenie diagrammy}(wi,460,wi+srd,round(HSize));_name:=tabl[i].naz; {nazvanie stolbikov}_name:='';y:=1 to 3 do_name:=short_name+str_name[y];;(tabl[i].skid:6:2,str_skid);(round(wi+(srd/2)-10),464,short_name);

{stroka vydaetsya,nachinaya s pozicii(x,y)}(round(HSize))>430 then(round(wi+(srd/2)-34),round(HSize-25),'['+str_skid+']')(round(wi+(srd/2)-34),round(HSize+6),'['+str_skid+']');:=wi+srd+3;;:=22;(round(max_skid)>21) then:=max_skid/20;:=max_skid;:=19;:=22;:=1;:=round(max_skid);lst>1 then:=round(435/lst);:=max_skid;;i:=0 to lst do(yellow);(47,Yg,49,Yg);(round(lineNumbers),YgN);lst<>0 then(4,Yg,YgN);:=(abs((tabl[i].skid/pnp)-435))+22;(52,10,'Cena so skidkoi');(49,1,'Y');(630,461,'X');(36,456,'0');(DarkGray);(52,Yg,620,Yg);:=Yg+Shag;:=lineNumbers-StepY;;;; {zavershenie raboty s graficheskim reghimom};{osnovnaya chast' programmy};(3);(15);(' kursovaya rabota ');(' variant 37 ');(' vypolnila: studentka');(' gruppy 09e1');(' Shiyanova Olesya');(' proveril: ');(' docent ');(' kafedry "informatika" ');(' Dolgusheva L.N. ');(' ');(' ');(' naghmite я"enter" dlya perehoda v menu ');(' ННННННННННННННННННННННННННННННННННННННН ');;:=0;true do;:=readkey;k of

'F', 'f': begin masFromFile; menu; end;

'V', 'v': vvod;

'Y', 'y': vivod;

'O', 'o': dop;

'U', 'u': udal;

'H', 'h': exit;

'S', 's': sort ;

'D', 'd': diagramma;writeln('nepravilno nabran punkt menu')

end;;.

Приложение С. Примеры работы программы


Рисунок С1. Вывод информации о программе

Рисунок С2. Вид главного меню


Рисунок С4. Вывод таблицы

Рисунок С5. дополнение

Рисунок С6. Вывод диаграммы без сортировки

Рисунок С7. Вывод диаграммы с применением сортировки

Похожие работы на - Разработка программы обработки массива данных с построением диаграммы (предметная область – 'Оптовая база')

 

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