Создание справочника "Парфюмерный магазин" при помощи программы Turbo Pascal
При помощи Turbo Pascal достаточно не просто создать программу, которая бы демонстрировала работу с базами данных. Для этого существует огромное количество специализированных программ. Основа и сущность формирования базы данных при помощи Turbo Pascal.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 04.07.2008 |
Размер файла | 479,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
readln(f,Baza.FMany);
readln(f,Baza.FSim);
if (Baza.FRazdel=MRazdel) and (Baza.FPodRazdel=Podrazd) then
begin
write (fotchet,'Код товара '); writeln(fotchet,Baza.FKod);
write (fotchet,'Название ');writeln(fotchet,Baza.FName);
write (fotchet,'Серия ');writeln(fotchet,Baza.FSeria);
write (fotchet,'Производитель ');writeln(fotchet,Baza.FProizvod);
write (fotchet,'Описание ');writeln(fotchet,Baza.FOpisan);
write (fotchet,'Цена ');writeln(fotchet,Baza.FMany);
writeln(fotchet,'-----------------------------------------');
end;
end;
close(fotchet);
close(f);
end;
if ord(ch)=63 then {Если нажата F5 то в файл отчета добавляется только
текущая позиция}
begin
tek:=nach;
writeln(fotchet,'Отчет по текущему товару');
writeln;
writeln(fotchet,'---------------------------------------------------------');
while not Eof(f) do
begin
readln(f,Baza.FKod);
readln(f,Baza.FRazdel);
readln(f,Baza.FPodRazdel);
readln(f,Baza.FName);
readln(f,Baza.FSeria);
readln(f,Baza.FProizvod);
readln(f,Baza.FOpisan);
readln(f,Baza.FMany);
readln(f,Baza.FSim);
if (Baza.FKod=tek^.nomer) then
begin
write (fotchet,'Код товара '); writeln(fotchet,Baza.FKod);
write (fotchet,'Название ');writeln(fotchet,Baza.FName);
write (fotchet,'Серия ');writeln(fotchet,Baza.FSeria);
write (fotchet,'Производитель ');writeln(fotchet,Baza.FProizvod);
write (fotchet,'Описание ');writeln(fotchet,Baza.FOpisan);
write (fotchet,'Цена ');writeln(fotchet,Baza.FMany);
writeln(fotchet,'-----------------------------------------');
end;
end;
close(fotchet);
close(f);
end;
until (ord(ch)=8) or (ord(ch)=61) or (ord(ch)=63);
{Закрыте файлов и вывод на прежнее место}
clrscr;
shapka;
writespisok;
end;
procedure NewTovar; {Процедура добавления нового товара}
var f1,f2,f3:text; {Файловые переменные}
kod:integer; {Переменная которой присваивается новый код товара}
begin
clrscr;
Baza.FRazdel:=MRazdel; Baza.FPodRazdel:=PodRazd;
{Форма заполнения данных о новом товаре}
GoToXY(10,1); Textcolor(10); Writeln('Заполните форму. После заполнение очередного пункта нажмите ввод');
GoToXY(3,4); writeln('Раздел ',Baza.FRazdel);
GoToXY(3,5); writeln('Подраздел ',Baza.FPodRazdel);
GoToXY(3,6); Writeln('Опешите назначение товара');
GoToXY(3,8); Writeln('Введите серию товара, если нет то введите символ "-" ');
GoToXY(3,10); Writeln('Введите производителя');
GoToXY(3,12); Writeln('Опешите товар подробнее');
GoToXY(3,22); Writeln('Цена товара');
GoToXY(3,5); Textcolor(11);
GoToXY(3,7);readln(Baza.FName);
GoToXY(3,9);readln(Baza.FSeria);
GoToXY(3,11);readln(Baza.FProizvod);
GoToXY(3,13);readln(Baza.FOpisan);
GoToXY(20,22);readln(Baza.FMany);
GoToXY(10,23);Textcolor(10); Writeln('Сохранить Y, Отмена N');
ch:=readkey;
if (ord(ch)= 121) or (ord(ch)= 173) then {Если нажата Y на английском
и Н на русском, то считывается из файла, который хранит коды товаров,
запоминает последний, увеличивает на единицу и добавляет новый код
в файл кодов}
begin
clrscr;
assign(f2,'e:\prog\kod.dat');
reset(f2);
while not Eof(f2) do readln(f2,Kod);
close(f2);
Baza.FKod:=Kod+1;
append(f2);
write(f2,'');
writeln(f2,Baza.FKod);
close(f2);
assign(f3,'e:\prog\bd.dat');
{Записывает в БД информацию о новом товаре}
append(f3);
writeln(f3,Baza.FKod);
writeln(f3,Baza.FRazdel);
writeln(f3,Baza.FPodRazdel);
writeln(f3,Baza.FName);
writeln(f3,Baza.FSeria);
writeln(f3,Baza.FProizvod);
writeln(f3,Baza.FOpisan);
writeln(f3,Baza.FMany);
writeln(f3,'*');
close(f3);
GoToXY(18,12); writeln('Запись сохранена для продолжения нажмите ввод');
readln;
end;
clrscr;
shapka;
podRazdel;
GoToXY(27,21);Textcolor(21); writeln('Для продолжения работы нажмите ESC');
end;
procedure vivod; {Основная процедура вывода}
{Общий принцип: На экране появляется первый элемент выбранного раздела и подраздела
Далее пользователь при помощи кнопок PageUp PageDown перемещается по всем товарам}
var hod:integer; {Счетчик ходв}
begin
schet; {Считать общее количество позиций}
f1:=7;f2:=11;f3:=7;f4:=11;f8:=11;pu:=11;pd:=11;f10:=7; {Переменные цвета нижних кнопок}
Text1:='Двигайтесь кнопками';
Text2:='PageDown,PageUp'; {Подсказки}
Text3:='Для выхода нажмите';
Text4:='ESC';
RP; {Выводится первый товар}
hod:=1; {Сделан первый ход}
writeSpisok; {Вывести на экран товар соответствующий коду товара из списка}
repeat
ch:=readkey;
if (ord(ch)=81) and (ScetRP<>0) then {Если нажата PageDown}
begin
if ScetRP<>hod then
begin
hod:=hod+1;
PoiskFPR; {Считывается весь файл и проверяется соответствие каждого товара
разделу и подразделу и проверяет входит ли код товара в список
если входит то ищет дальше если нет то...}
addspisok; {Если нет то добавляет в список}
writeSpisok; {Выводит товар соответствующий коду товара из списка}
end;
end;
if (ord(ch)=73) and (ScetRP<>0) then {Если нажата PageUp}
begin
if hod<>1 then
begin
hod:=hod-1;
DelSpisok; {Удаляет последний элемент списка}
writeSpisok; {Выводит уже другой последний элемент}
end;
end;
if ord(ch)=60 then NewTovar; {Если нажата F2 то в данный раздел и подраздел ввести новый товар}
if (ord(ch)=66) and (ScetRP<>0) then Del;{Если нажата клавиша F8, то процедура удаление товара}
if (ord(ch)=62) and (ScetRP<>0) then PrintF;{Если нажата клавиша F4, то процедура создания отчета}
until ord(ch)=27;
end;
procedure Vhod; {Процедура обработки события по нажатию клавише ввод}
begin
Lom:=1;
if ord(ch)=13 then {Если нажат ввод}
begin
for i:=1 to nabor do
begin
if (men[i]=15) then {Если текущий цвет белый то... }
begin
if razdel=1 then {Если открыт подраздел...}
begin
podrazd:=Lom; {Присвоить подразделу его порядковый номер}
vivod; {Вывод на экран}
kolvo:=0;
end;
if (Lom=1) and (razdel=0) then
begin
rozd:='1'; {Номер раздела}
MRazdel:=1;{Номер подраздела}
razdel:=1; {Показывает что открыт подраздел, а не раздел}
end;{Далее аналогично}
if (Lom=2) and (razdel=0) then begin rozd:='2'; MRazdel:=2; razdel:=1; end;
if (Lom=3) and (razdel=0) then begin rozd:='3'; MRazdel:=3; razdel:=1; end;
if (Lom=4) and (razdel=0) then begin rozd:='4'; MRazdel:=4; razdel:=1; end;
if (Lom=5) and (razdel=0) then begin rozd:='5'; MRazdel:=5; razdel:=1; end;
if (Lom=6) and (razdel=0) then begin rozd:='6'; MRazdel:=6; razdel:=1; end;
if (Lom=7) and (razdel=0) then begin rozd:='7'; MRazdel:=7; razdel:=1; end;
if (Lom=8) and (razdel=0) then begin rozd:='8'; MRazdel:=8; razdel:=1; end;
if (Lom=9) and (razdel=0) then begin rozd:='9'; MRazdel:=9; razdel:=1; end;
end;
Lom:=Lom+1;
end;
end;
if ord(ch)=8 then {Если нажата <- то вернутся назад}
begin
rozd:='0'; {Открывает раздел}
razdel:=0; {Показывает что открыт раздел}
end;
podRazdel; {Процедура создание подразделов}
end;
procedure Poisk;
var punkt:integer; {Переменная ввода выбранного критерия поиска}
NSP:string; {Переменная условия поиска}
fol:integer; {Переменная счетчик}
begin
clrscr;
fol:=0; {Счетчик указывающий количество найденных позиций}
GoToXY(10,2); Textcolor(10); Writeln('Выберете критерии поиска');
{GoToXY(10,3); Writeln('и нажмите ввод');}
Textcolor(11); GoToXY(12,6); Writeln('1: Название');
GoToXY(12,8); Writeln('2: Серия');
GoToXY(12,10); Writeln('3: Производитель');
GoToXY(12,12); Writeln('4: Отмена');
repeat
ch:=readkey;
if (ord(ch)=49) or (ord(ch)=50) or (ord(ch)=51) then
begin
{GoToXY(12,14); readln(punkt);}
GoToXY(12,14);writeln('Введите условие и нажмите ввод');
GoToXY(12,16);readln(nsp);
assign(f,'e:\prog\bd.dat');
reset(f);
while (not Eof(f)) do {Считывает очередной товар}
begin
readln(f,Baza.FKod);
readln(f,Baza.FRazdel);
readln(f,Baza.FPodRazdel);
readln(f,Baza.FName);
readln(f,Baza.FSeria);
readln(f,Baza.FProizvod);
readln(f,Baza.FOpisan);
readln(f,Baza.FMany);
readln(f,Baza.FSim);
If (Baza.FName=NSP) or (Baza.FSeria=Nsp) or (Baza.FProizvod=Nsp) then
begin
clrscr;
Tablo;
f1:=7;f2:=7;f3:=7;f4:=7;f8:=7;pu:=7;pd:=11; f10:=7; {Цвета нижних кнопок}
Text1:='Двигайтесь кнопкой';
Text2:='PageDown'; {Подсказка}
Text3:='Для выхода нажмите';
Text4:='ESC';
Shapka;
fol:=fol+1;
repeat
ch:=readkey;
until (ord(ch)=81) or (ord(ch)=27);
f1:=11;f2:=7;f3:=11;f4:=7;f8:=7;pu:=7;pd:=11;f10:=11; {Цвета нижних кнопок}
if ord(ch)=27 then break;
end;
end;
close(f);
clrscr;
GoToXY(15,12);Textcolor(4);
if fol>0 then writeln('Больше совпадений нет, для продолжения работы нажмите ввод')
else writeln('Cовпадений нет, для продолжения работы нажмите ввод');
readln;
break;
end;
until ord(ch)=52;
clrscr;
Text1:='Двигайтесь курсором';
Text2:='до нужного раздела'; {Подсказка}
Text3:='и нажмите ВВОД';
Text4:='Для возврата <-';
Shapka;
podRazdel;
end;
procedure help;
var k:string;
n:integer;
begin
clrscr;
n:=0;
assign(f,'e:\prog\help.dat');
reset(f);
while not Eof(f) do {Считывает очередной товар}
begin
if (n=24) or (n=48) or (n=72) or (n=96) or (n=120) or (n=120) then readln;{ch:=readkey;}
readln(f,k);
writeln(k);
n:=n+1;
end;
readln;
close(f);
clrscr;
Shapka;
podRazdel;
end;
procedure perem; {Процедура перемещает элементы меню}
begin
{Массив цветов. Первый белый остальные зеленые}
men[1]:=15; men[2]:=2; men[3]:=2; men[4]:=2; men[5]:=2; men[6]:=2; men[7]:=2;
men[8]:=2; men[9]:=2; men[10]:=2;men[11]:=2;men[12]:=2;men[13]:=2; men[14]:=2; men[15]:=2;
repeat
podRazdel; {Процедура вывода подразделов}
strok:=1; {Текущая строка}
GoToXY(79,1);
ch:=readkey; {Просит ввести курсором направления движения}
if (ord(ch)=80) then {Если вниз тогда текущий становится белым,
а нижний становится зеленым}
begin
for i:=1 to nabor do
begin
if (men[i]=15) and (strok<>nabor) then
begin
men[strok]:=2;
men[strok+1]:=15;
end
else strok:=strok+1;
end;
end;
if ord(ch)=72 then {Если вверх, то текущий белым, а верхний зеленым}
begin
for i:=1 to nabor do
begin
if (men[i]=15) and (strok<>1)then
begin
men[strok]:=2;
men[strok-1]:=15;
end
else strok:=strok+1;
end;
end;
if ord(ch)=59 then Help; {Если нажата клавиша F1}
if ord(ch)=61 then Poisk;{Если нажата клавиша F3}
{До тех пор пока не нажат ввод или назад или выход}
until (ord(ch)=13) or (ord(ch)=8) or (ord(ch)=68);
vof:=true;
if (ord(ch)<>68) then vhod;{Если не нажат выход то вход в очередной раздел или подраздел}
end;
{Основная программа}
begin
rozd:='0'; {Подраздел не выбран, значит выводить главный раздел}
razdel:=0; {Показывает что открыт раздел, а не подраздел}
vof:=false; {Переменная показывает что перемещений не было}
repeat
clrscr;
f1:=11;f2:=7;f3:=11;f4:=7;f8:=7;pu:=7;pd:=7;f10:=11; {Цвета нижних кнопок}
Text1:='Двигайтесь курсором';
Text2:='до нужного раздела'; {Подсказка}
Text3:='и нажмите ВВОД';
Text4:='Для возврата <-';
shapka; {Процедура выводит разметку на экран}
GoToXY(79,1);
perem; {Процедура перемещения курсором в разделах и подразделах}
until (ord(ch)=68) ; {До тех пор пока не нажат пункт EXIT}
end.
Подобные документы
Структура и основные элементы языка Turbo Pascal. Алгоритм составления простейших программ на Turbo Pascal. Применение условного оператора и сильноветвящихся алгоритмов. Циклы с предусловием и постусловием, сочетание циклических и условных операторов.
реферат [64,0 K], добавлен 20.03.2016Разработка программ на языке Turbo Pascal на основе использования массивов данных. Особенности хранения данных, способы объявления переменных, действия над элементами массивов, их ввод и вывод. Практическое применение одномерных и многомерных массивов.
методичка [17,8 K], добавлен 25.11.2010Основы работы на языке высокого уровня Turbo Pascal. Основное оборудование и программное обеспечение. Операторы, необходимы для работы в графической среде Turbo Pascal. Запуск графического режима. Текст программы в графической среде Turbo Pascal.
лабораторная работа [12,7 K], добавлен 14.05.2011Разработка эскизного и технического проектов программы "Helpopr" (ввод, хранение и вывод данных на дисплей по запросу пользователя). Язык программирования Turbo Pascal. Описание алгоритма программы. Требования к компьютеру и программному обеспечению.
курсовая работа [198,1 K], добавлен 03.02.2010Анализ эффективности методов сортировки данных в языке Turbo Pascal. Разработка эскизного и технического проекта программы. Сортировка без и с использованием дополнительной памяти, за исключением небольшого стека (массива). Сортировка связанных списков.
курсовая работа [359,0 K], добавлен 23.05.2012Программирование и структура программы на языке Turbo Pascal и MS Visual C++6.0. Вычисление площади круга. Реализация программы в системе Turbo Pascal и MS VISUAL C++6.0 для Windows. Структура окна ТРW. Сохранение текста программы в файле на диске.
лабораторная работа [3,7 M], добавлен 22.03.2012Создание программы для обработки структуры данных. Возможность ввода и записи данных на персональном компьютере. Прикладное программирование на языке Turbo Pascal. Свободное редактирование записанных данных с помощью программы, написанной на Turbo Pascal.
лабораторная работа [11,4 K], добавлен 13.05.2011История создания и развитие Pascal. Особенности пакета программирования Turbo. его возможности редактора текстов, компилятора и отладчика. Построения программы на языке Turbo Pascal, ее структура, типы алгоритмов, одномерные и многомерные массивы.
курсовая работа [519,3 K], добавлен 25.06.2011Разработка программы, реализующей игру "Змейка" в среде Turbo Pascal. Возможность создания игры в модуле библиотеки crt, что позволяет использовать программу на компьютерах без графических библиотек и компьютерах, имеющих малый объём оперативной памяти.
курсовая работа [190,5 K], добавлен 02.02.2013Написание программы "телеграф", который принимает от пользователя сообщения и выводит его на экран в виде последовательности точек и тире. Их вывод сортируется звуковым сигналом соответствующей длительности. Программа написана на языке Turbo Pascal.
курсовая работа [565,6 K], добавлен 18.08.2008