Программа по учету товаров на складе
Написание программы на языке Pascal для учета работы магазина DVD-дисков, в которой содержится база наименований товара, цен, производителей и количества дисков на складе. Разработка функций добавления элемента в базу, сортировка, поиск по названию.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 09.12.2012 |
Размер файла | 498,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Аннотация
Данная работа была выполнена на языке Pascal. Паскаль (англ. Pascal) -- язык программирования общего назначения. Один из наиболее известных языков программирования, широко применялся в промышленном программировании, до сих пор используется для обучения программированию в высшей школе, является базой для ряда других языков.
Условие задачи
Написать программу для учета работы магазина DVD-дисков. В программе должна содержаться база наименований товара, цен, производителей и количество дисков на складе. Должны быть следующие функции: добавление элемента в базу, удаление элемента из базы, вывод элементов на экран, сортировка, поиск по названию.
Краткая теория
Метод "пузырька". По-видимому, самым простым методом сортировки является так называемый метод "пузырька". Чтобы уяснить его идею, представьте, что массив (таблица) расположен вертикально. Элементы с большим значением всплывают вверх наподобие больших пузырьков. При первом проходе вдоль массива, начиная проход "снизу", берется первый элемент и поочередно сравнивается с последующими. При этом:
· если встречается более "легкий" (с меньшим значением) элемент, то они меняются местами;
· при встрече с более "тяжелым" элементом, последний становится "эталоном" для сравнения, и все следующие сравниваются с ним.
В результате наибольший элемент оказывается в самом верху массива.
Записи. Запись представляет собой набор элементов разных типов, каждый из которых имеет свое имя и называется полем записи. Тип записи конструируется следующим образом:
record
список полей
список методов
end
Описание процедур и функций
Процедура или функция представляет собой последовательность операторов, которая имеет имя, список параметров и может быть вызвана из различных частей программы. Функции, в отличие от процедур, в результате своего выполнения возвращают значение, которое может быть использовано в выражении. Для единообразия функции и процедуры называются подпрограммами.
Любая используемая в программе процедура или функция должна быть предварительно описана в разделе описаний.
Описание процедуры имеет вид:
procedure имя (список формальных параметров);
раздел описаний
begin
операторы
end;
Описание функции имеет вид:
function имя (список формальных параметров): тип возвращаемого значения;
раздел описаний
begin
операторы
end;
Главная процедура, вызывающая другие процедуры из списка
Процедура создания базы данных
Процедура вывода базы данных на экран
Процедура, меняющая элементы базы данных местами
Процедура добавления записи
Процедура сортировки методом «пузырька»
Процедура удаления записи
Процедура поиска записи в базе данных по наименованию диска
program diski;
uses
crt;
type
spisok = record
vt: string;
nm: integer;
dvm: string;
no: integer;
end;
procedure Sozd(var mas: array of spisok; qty: integer);//создание массива
var
i: integer;
zk: spisok;
begin
setlength(mas, qty);
for i := 0 to high(mas) do
begin
write('Наименование диска: ');
readln(zk.vt);
write('Цена:');
readln(zk.nm);
write('Производитель:');
readln(zk.dvm);
write('Количество на складе:');
readln(zk.no);
writeln;
mas[i].vt := zk.vt;
mas[i].nm := zk.nm;
mas[i].dvm := zk.dvm;
mas[i].no := zk.no;
end;
end;
procedure vyvod(mas: array of spisok);//вывод массива
var
i: integer;
begin
writeln('==============================================');
writeln('№| Наименование диска| Цена | Производитель | Количество на складе');
writeln('==============================================');
for i := 0 to high(mas) do
begin
write(i);
write(' ');
write(mas[i].vt);
write(mas[i].nm:22);
write(mas[i].dvm:16);
write(mas[i].no:15);
writeln;
writeln('==============================================');
end;
end;
procedure swap(var x, y: string);//процедура замены элементов местами
var
t: string;
begin
t := x;
x := y;
y := t
end;
procedure sort(mas: array of spisok);//сортировка
var
i, j: integer;
begin
for j := 1 to high(mas) do
for i := 0 to high(mas) - j do
if (mas[i].nm > mas[i + 1].nm) and (mas[i].nm <> 0) then
begin
swap(mas[i].nm, mas[i + 1].nm);
swap(mas[i].vt, mas[i + 1].vt);
swap(mas[i].dvm, mas[i + 1].dvm);
swap(mas[i].no, mas[i + 1].no);
end;
vyvod(mas);
end;
procedure add(var mas:array of spisok);//добавление элемента
begin
setlength(mas, length(mas) + 1);
write('Наименование диска: ');
readln(mas[high(mas)].vt);
write('Цена: ');
readln(mas[high(mas)].nm);
write('Производитель: ');
readln(mas[high(mas)].dvm);
write('Количество на складе: ');
readln(mas[high(mas)].no);
writeln;
end;
procedure delete(var mas:array of spisok);//удаление записи
var
n: integer;
begin
writeln('Введите номер записи для удаления');
readln(n);
if (n <= high(mas)) then
begin
mas[n].vt := '';
mas[n].nm := 0;
mas[n].dvm := '';
mas[n].no := 0;
end;
swap(mas[n].nm, mas[high(mas)].nm);
swap(mas[n].vt, mas[high(mas)].vt);
swap(mas[n].dvm, mas[high(mas)].dvm);
swap(mas[n].no, mas[high(mas)].no);
setlength(mas, length(mas) - 1);
vyvod(mas);
end;
procedure poisk( mas:array of spisok);//поиск по наименованию
var
i: integer;
name: string;
begin
writeln('Введите название для поиска');
readln(name);
for i := 0 to high(mas) do
begin
if name = mas[i].vt then
begin
writeln('Совпадение по Наименованию');
writeln('==============================================');
writeln('Наименование диска | Цена | Производитель | Количество на складе');
writeln('=============================================');
write(mas[i].vt);
write(mas[i].nm:24);
write(mas[i].dvm:12);
write(mas[i].no:15);
writeln;
writeln('==============================================');
end;
end;
end;
Procedure main();
var
z, mt: integer;
mas: array of spisok;
label 10;
begin
clrscr;
10:
writeln();
writeln('1-Создать новый список');
writeln('2-Вывести на экран текущий список');
writeln('3-Удалить выбранный элемент');
writeln('4-Добавление записи');
writeln('5-Поиск по текущему списку');
writeln('6-Сортировка по цене');
writeln('7-выход');
readln(z);
if (mt = 0) and (z in [2..6]) then
begin
Writeln('Создайте базу данных для начала');
sozd(mas, mt);
end;
if (mt = 0) and (z = 1) then
begin
writeln('Введите количество элементов списка');
readln(mt);
end;
case z of
1: begin
writeln('введите количество элементов');
readln(mt);
sozd(mas, mt);
end;
2: vyvod(mas);
3: delete(mas);
4: add(mas);
5: poisk(mas);
6: sort(mas);
7: EXIT;
end;
goto 10;
readln;
end;
begin
main();
end
Вывод созданной базы данных на экран. Был указан размер - 5. Соответственно база данных содержит 5 записей.
Поиск записей в базе данных по наименованию диска. Был запрос наименование «Кен» - найдено две записи, содержащие данное наименование.
Через процедуру «4-добавление записи», была добавлена запись с наименованием «ГОР».
После этого была выведена база данных.
После выбора процедуры «6-сортировка по цене», записи были отсортированы по цене в порядке её возрастания. Запись с наименьшей ценой стоит в начале базы данных, с наибольшей - в конце.
Тестирование программы:
1. Ошибка при попытке указать количество элементов базы данных в виде буквенной записи.
2. Ошибки при попытке указать цену или количество дисков на складе в виде буквенной записи
3. Ошибка переполнения массива базы данных происходит если ввести большое количество элементов базы. Подобная ошибка возникает и в разделах «цена» и «кол-во на складе»
Использованные источники
программа язык учет база
1.http://ru.wikipedia.org/wiki/Pascal
2.http://www.vzmakh.ru/info/pascal/modules/page14.html
3. http://ru.wikipedia.org/wiki/%D0%91%D0%BB%D0%BE%D0%BA- %D1%81%D1%85%D0%B5%D0%BC%D0%B0
Размещено на Allbest.ru
Подобные документы
Разработка базы данных для автоматизированного учета материальных средств на складе. Порядок хранения информации, запрет на удаление любого атрибута таблицы. Запрос для выдачи отчетов о наличии и расположении товара на складе. Создание меню программы.
курсовая работа [1,6 M], добавлен 15.01.2015Анализ эффективности методов сортировки данных в языке Turbo Pascal. Разработка эскизного и технического проекта программы. Сортировка без и с использованием дополнительной памяти, за исключением небольшого стека (массива). Сортировка связанных списков.
курсовая работа [359,0 K], добавлен 23.05.2012Разработка на языке программирования С++ программы анализа логических дисков. Интерфейс, диалог с пользователем. Определение текущего диска, его размера, занятого и свободного места, информации о кластерах. Организация программы с использованием меню.
курсовая работа [182,1 K], добавлен 22.10.2012Описание алгоритма решения задачи графическим способом. Ввод элементов исходного массива в цикле. Нахождение определённых элементов. Сортировка элементов с помощью пузырькового метода. Разработка программы на языке Pascal. Поиск наибольшего элемента.
лабораторная работа [123,5 K], добавлен 15.01.2014Роль оптовой торговли в рыночной экономике. Сортовой и партионный способы учета товаров. Организация бухгалтерского учета и документооборота на предприятии. Разработка базы данных для автоматизации учета переоценки стоимости товаров на оптовом складе.
дипломная работа [2,8 M], добавлен 15.01.2012Разработка программы, создающей и управляющей базой данных, ее реализация на языке Turbo Pascal. Организация алгоритма программы. Вывод информации и возможность добавления информации в базу данных. Поиск информации в базе данных по заданному значению.
курсовая работа [26,7 K], добавлен 19.06.2010Общие сведения по использованию базы данных. Описание предметной области программы. Выбор средств программирования для разработки приложений, технология работы. Оценка автоматизированного рабочего места продавца компакт-дисков в среде Borland C++ Builder.
курсовая работа [1,3 M], добавлен 24.12.2010Проектирование базы данных для организации, занимающейся продажей музыкальных CD-дисков с учетом следующих потоков информации: перечня наименований дисков, поставщиков, сотрудников, поставок и продажи продукции. Создание отчетов с помощью мастера.
курсовая работа [25,9 K], добавлен 28.11.2010Написание программы "телеграф", который принимает от пользователя сообщения и выводит его на экран в виде последовательности точек и тире. Их вывод сортируется звуковым сигналом соответствующей длительности. Программа написана на языке Turbo Pascal.
курсовая работа [565,6 K], добавлен 18.08.2008Разработка программы на языке Pascal. Описание переменных. Действия, которые должна выполнить программа согласно выбранного алгоритма. Детализация графической части программы. Листинг и тестирование программы. Вывод массива данных на экран монитора.
контрольная работа [360,4 K], добавлен 13.06.2012