База данных "Автосалон"

Создание базы данных для реализации автомобилей и запчастей в автосалоне и упрощения учета в сфере продажи. Описание предметной области, входные и выходные данные. Разработка архитектуры приложения, схемы алгоритмов; системные требования, интерфейс.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 01.04.2013
Размер файла 305,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

Введение

1. Аналитическая часть

1.1 Описание и постановка задачи

1.2 Назначение и цель создания

1.3 Описание предметной области

1.4 Описание входных данных

1.5 Описание выходных данных

1.6 Разработка архитектуры приложения

1.7 Обоснование выбора инструментальных средств

2. Технологическая часть

2.1 Описание системных требований

2.2 Описание пользовательского интерфейса

2.3 Реализация алгоритмов приложения

2.4 Руководство к использованию и эксплуатации

2.5 Результаты экспериментальной проверки

3. Охрана труда и техника безопасности;

Заключение;

Список литературы;

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

Приложение Б. Листинг программы

Введение

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

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

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

1. Аналитическая часть

1.1 Описание и постановка задачи

Задачей курсового проекта является написание базы данных «Автомагазин»

Цель данной базы данных:

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

Описание переменных.

В данной БД я использовал следящие переменные, представленные в таблице 1.1

Таблица 1.1

Обозначение и описание использованных переменных

Обозначение

тип

Описание

Procedure

procedure

Создание списка и меню.

F,f1,f2…

Text

Файловая переменная, которая представляет файл в текстовой форме

Name, marka

string

Для записи названия и марки автомобиля.

Bases

procedure

Создание основной базы

1.2 - Назначение и цель создания

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

1.3 Описание предметной области

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

1.4 Описание входных данных

В данную программу заносятся следующие данные: название автомобиля, марка, тип кузова и т.д. Для удаления элементов из базы данных достаточно ввести название удаляемого элемента.

1.5 Описание выходных данных

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

1.6 Разработка архитектуры приложения

Описание и анализ математической модели

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

На данном курсе нами был изучен язык программирование Pascal он и станет для нас основой для данного курсового проекта.

Паскаль - гибкий и развитый, простой для понимания язык программирования. Особенно привлекательна его поддержка технологии объектно-ориентированного программирования, с помощью данного языка программирования можно выполнить небольшую программу для решение не сложных арифметических задач а можно огромную программу которая сможет выполнять сложные расчеты. операторы языка Pascal позволяет записывать достаточно сложные алгоритмы в компактной и удобной форме. Синтаксис языка достаточно несложен. Программы записываются в свободном формате, что позволяет сделать их наглядными и удобными для изучения.

Язык очень прост и понятен в обращении, имеет свой HELP. Он идеально подходит для выполнения поставленной задачи в данном курсовом проекте.

1.7 Обоснование выбора инструментальных средств

Для проектирования данного курсового проекта мне была предоставлена среда программирования Pascal ABC. Разработка программ на ABC Pascal включает в себя следующие шаги (этапы разработки программы): ввод и редактирование текста, для трансляции программы - компилятор. Для отладки программы с анализом ее поведения, поиском ошибок, просмотром и изменением содержимого ячеек памяти компьютера - отладчик (Debugger).

Среду программирования Pascal ABC называют интегрированной (integration - объединение отдельных элементов в единое целое) средой программирования, так как она объединяет в себе возможности ранее разрозненных средств, используемых при разработке программ: редактора текстов, компилятора, отладчика. Интегрированная среда программирования ABC Pascal имеет следующие возможности:

- Поддержка клавиатуры, меню, диалоговых окон

- Много файловый редактор

- Расширенные возможности отладки

- Полное сохранение и восстановление среды разработки

После запуска интегрированной среды программирования ABC Pascal вы увидите окно, показанное на рисунке 2

Основная «работа» протекает в процедуре procedure, которая позволяет создавать удалять и редактировать базу данных. Это делается в коде ниже: например для создания списка автомобилей

procedureavtomobili_sozd;

var

int:integer;

s:string;

i:integer;

fl:string;

begin

New(avtomobili_Elem);

avtomobili_Zagol := avtomobili_Elem;

avtomobili_Elem^.Pred := nil;

i:=1;

fl:='Y';

avtomobili_max:=0;

Whilefl='Y' do

В случае если пользователь хочет добавить данные в список автомобилей в конце это процедуры будет выполнен запрос не хочет ли пользователь добавить еще один список автомобилей.

Writeln ('Будете еще вводить данные?(y/n)'); Readln(fl); fl :=

UpperCase(fl);

if ((fl<>'N') and (fl<>'Y')) then fl:='N';

iffl<> 'N' then

После выбора «у» начнётся создание нового списка автомобилей в противоположном случае пользователь вернется в основное меню. Показано на рисунке 1.1.

Рисунок 1.1 - Основное меню

2. Технологическая часть

2.1 Описания системных требований

Минимальные системные требования:

- Процессор: Intel/ AMD

- Операционная система MS-DOS/Windows все виды от 95 до Windows 8.

- Оперативная память 128 Мб

А также средства ввода-вывода информации:

- Клавиатура

- Монитор

2.2 Описание пользовательского интерфейса

При написания программы вид интерфейса был минимизирован для уменьшения объёма программы. Меню программы изображено на рисунке 2.1

Рисунок 2.1 - Вид программы

2.3 Реализация алгоритмов приложения

2.3.1 Назначение и цель создания

Данная программа предназначена для пользователей которым надоело возится с огромным количеством бумаг, уменьшением горы бумаг до одной программы размером меньше 1Мб.

Целью создания данного курсового проекта является закрепление моих полученных знаний в среде программирования PasalABC

2.2.3 Требования к защите информации

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

Перечень и описание входных данных

2.4 Руководство к использованию и эксплуатации

Для запуска данной программы необходимо соблюдать следующие установки:

- Иметь данный программный продукт в наличии

- Соблюдать системные требования

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

Показано на рисунке 2.2

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

При выборе пунктов 1,6,11 в любой из записей АВТОМОБИЛИ, МАРКИ или ПРОДАЖИ. Будет создаваться новый список пользователю нужно будет необходимо заполнить необходимые поля. Показано на рисунке 2.3.

Рисунок 2.2 - Окно меню

Рисунок 2.3 - Ввод даных автомобиля

Это пример заполнения списка Автомобили после завершения заполнения будует создан новый текстовый фаил с названием который автомобили рисунок 2.4.

Рисунок 2.4 -визуальное изображения только что созданного списка

При выборе пунктов 2,7,12 будет происходить редактирование списка.

Рисунок 2.5 - Пример редактирования

Для сохранения всех изменений необходимо будет выбрать пункт 16

И нажать кнопку Enter для продолжения

Рисунок 2.6 - Сохранение базы данных

В результате редактирования получится:

Рисунок 2.7 - Вид сохранённого элемента

При выборе пункта 3,8,13 происходит удаление ранее добавленных записей которые уже не нужны.

Если в данной базе данных всего 1 элемент программа запрещает его удаление.

Рисунок 2.8 - Запрет на удаление одного элемента

Добавлаем несколько автомобилей в список базы данных,рисунок 2.9

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

После выбираем пункт удаления записи:

Рисунок 2.10 - Выбор удаления записи

После происходит удаление записи из спика базы данных. Показанно на рисунке 2.11

Рисунок 2.11 - Удаление элемента из списка

2.5 Результаты экспериментальной проверки

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

3. Охрана труда и техники безопасности

Согласно инструкции ИОТ 02-98 по охране труда для пользователей ЭВМ к работе на ЭВМ должен допускаться только обученный персонал, имеющий удостоверение направо пользование ЭВМ.

Пользователи ЭВМ обязаны выполнять правила внутреннего трудового распорядка и режим труда и отдыха: через час работы на ЭВМ делать перерыв на 10 минут, а через два часа делать перерыв на 15 минут. Помещение, в котором ЭВМ должно обеспечиваться освещением 500 люкс. Полы, столы и стулья должны быть изготовлены, из мало электризующихся материалов. Рабочие место пользователя выбирается, чтобы исключить возможность прикосновения оператора к токоведущим устройствам и шинам заземления, батареям отоплением, водопроводным трубам.

Работа пользователя ЭВМ связана с нахождением в электростатическом поле дисплея, поэтому не рекомендуется ношение одежды из материалов, на которых аккумулируется заряд статического электричества. Во время работы на ЭВМ пользователь должен строго выполнять инструкции по эксплуатации ЭВМ. Снимать кожухи ЭВМ, выполнять ремонтные работы могут только специалисты по обслуживанию. Не рекомендуется оставлять включенным ЭВМ без присмотра.

В случае возникновения короткого замыкания, нарушения защитного заземления или изоляции электропроводки не медленно отключить ЭВМ из сети. Оставить травмированное место таким, каким оно было, до прибытия комиссии по расследованию несчастного случая, если это не угрожает здоровью и жизни работников. Для защиты от излучения дисплея контролируется уровень экранизации.

Должны соблюдаться требования ГОСТ для рабочего места. Уровень глаз при вертикальном расположении на мониторе дисплея должен приходиться на центр экрана или 2/3 высоты экрана. А экран видеомонитора должен находиться от глаз пользователя на оптимальном расстоянии 75-85см.

Рабочий стол регулируется по высоте 680-760 мм, размеры рабочей поверхности стола 1600 Х 500 мм. После установленной длительности работы на ЭВМ, должны проводиться комплексные упражнения для глаз. Физические упражнения для снятия усталости, улучшения сердечнососудистой деятельности, дыхательной системы, снятия напряжения в плечевом поясе, профилактике общего утомления.

Заключение

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

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

Данная курсовая работа проходила на базе Колледжа «IT» с 15 сентября 2012 года по 30 декабря 2012 года на должности программиста. Работа велась в колледже и на дому.

Список литературы

1. Методическое пособие по программированию «Семакин»

2. help-в программе Pascal ABC

3. “Методическое пособие по программированию на языке Pascal ABC”. Ерёмин О.Ф.

база данный автомобиль учет

Приложение А

Схемы алгоритмов

Размещено на http://www.allbest.ru/

Данный алгоритм будет повторяться для всех процедур

Приложение Б

Текст программы

Листинг программы:

type

uavtomobili=^avtomobili;

avtomobili=record

name:string[25]; //Наименование

marka:string[25]; //Марка

god:integer; //Год

col:integer; //Количество

PRED:uavtomobili; // Предыдущаязапись

NEXT:uavtomobili; // Последующаязапись

end;

umarki=^marki;

marki=record

marka:string[25]; //Марка

model:string[30]; //Модель

PRED:umarki; // Предыдущаязапись

NEXT:umarki; // Последующаязапись

end;

uprodazha=^prodazha;

prodazha=record

nomer:integer; //номеравтомобиля

avtomobil:string[25]; //Наименование автомобиля

col:integer; //Количество

cena:integer; //Цена одного

chislo:integer; //Число

mes:integer; //Месяц

god:integer; //Год

PRED:uprodazha; //Предыдущая запись

NEXT:uprodazha; //Последующая запись

end;

var

avtomobili_Elem, avtomobili_Zagol, avtomobili_y, avtomobili_x, avtomobili_Sled, avtomobili_Last:uavtomobili; //Указатели для работы с группами

marki_Elem, marki_Zagol, marki_y, marki_x, marki_Sled, marki_Last:umarki; // Указатьель для работы с покупателями

prodazha_Elem, prodazha_Zagol, prodazha_y, prodazha_x, prodazha_Sled, prodazha_Last: uprodazha; // Указатель для работы с успеваемостью

avtomobili_max,avtomobili_nom,marki_max,marki_nom,prodazha_max,prodazha_nom:integer; // Максимальное количество элементов списка

k:integer; //Для работы меню

//==============================================================================

//Создание списка автомобилей //==============================================================================

procedureavtomobili_sozd;

var

int:integer;

s:string;

i:integer;

fl:string;

begin

New(avtomobili_Elem);

avtomobili_Zagol := avtomobili_Elem;

avtomobili_Elem^.Pred := nil;

i:=1;

fl:='Y';

avtomobili_max:=0;

Whilefl='Y' do

begin

Writeln ('Введите данные по автомобилю');

Writeln ('=====================================');

Writeln ('Нименвание: '); readln(s);

avtomobili_Elem^.name:=s;

Writeln ('Марка: '); readln(s);

avtomobili_Elem^.marka:=s;

Writeln ('Год: '); readln(int);

avtomobili_Elem^.god:=int;

Writeln ('Колтчество: '); readln(int);

avtomobili_Elem^.col:=int;

avtomobili_max := avtomobili_max+1;

Writeln ('Будетеещевводитьданные?(y/n)'); Readln(fl); fl := UpperCase(fl);

if ((fl<>'N') and (fl<>'Y')) then fl:='N';

iffl<> 'N' then

begin

avtomobili_x:=avtomobili_Elem;

NEW(avtomobili_Elem);

avtomobili_Elem^.Pred:= avtomobili_x;

avtomobili_Elem^.Next:=avtomobili_Zagol;

avtomobili_x^.Next:=avtomobili_Elem;

end else

begin

avtomobili_Elem^.Next:=avtomobili_Zagol;

avtomobili_Zagol^.Pred:=avtomobili_Elem;

end;

i:=i+1;

end;

avtomobili_nom:= avtomobili_max;

end;

//==============================================================================

// Созданиеспискамарок

//==============================================================================

proceduremarki_sozd;

var

int:integer;

s:string;

i:integer;

fl:string;

begin

New(marki_Elem);

marki_Zagol:=marki_Elem;

marki_Elem^.Pred:=nil;

i:=1;

fl:='Y';

marki_max:=0;

While fl='Y' do

begin

Writeln('Введите данные по маркам');

Writeln('=====================================');

Writeln('Наименованиемарки: '); readln(s);

marki_Elem^.marka:=s;

Writeln ('Модель: '); readln(s);

marki_Elem^.model:=s;

marki_max:=marki_max+1;

Writeln('Будете еще вводить данные? (y/n)'); Readln(fl); fl := UpperCase(fl);

if ((fl<>'N') and (fl<>'Y')) then fl:='N';

iffl<> 'N' then

begin

marki_x:=marki_Elem;

NEW(marki_Elem);

marki_Elem^.Pred:= marki_x;

marki_Elem^.Next:=marki_Zagol;

marki_x^.Next:=marki_Elem;

end else

begin

marki_Elem^.Next:=marki_Zagol;

marki_Zagol^.Pred:=marki_Elem;

end;

i:=i+1;

end;

marki_nom:= marki_max;

end;

//==============================================================================

// Создание списка продаж

//==============================================================================

procedureprodazha_sozd;

var

int,i:integer;

s:string;

fl:string;

begin

New(prodazha_Elem);

prodazha_Zagol:=prodazha_Elem;

prodazha_Elem^.Pred := nil;

fl:='Y';

While fl='Y' do

begin

Writeln('Данные по продажам');

Writeln('=====================================');

Writeln('Номер: '); readln(int);

prodazha_Elem^.nomer:=int;

Writeln('Наименованиеавтомобиля: '); readln(s);

prodazha_Elem^.avtomobil:=s;

Writeln('Количество: '); readln(int);

prodazha_Elem^.col:=int;

Writeln('Цена: '); readln(int);

prodazha_Elem^.cena:=int;

Writeln('Число: '); readln(int);

prodazha_Elem^.chislo:=int;

Writeln('Месяц: '); readln(int);

prodazha_Elem^.mes:=int;

Writeln('Год: '); readln(int);

prodazha_Elem^.god:=int;

prodazha_max := prodazha_max + 1;

Writeln('Будетеещевводитьданные? (y/n)'); Readln(fl); fl := UpperCase(fl);

if ((fl<>'N') and (fl<>'Y')) then fl:='N';

iffl<> 'N' then

begin

prodazha_x:=prodazha_Elem;

NEW(prodazha_Elem);

prodazha_Elem^.Pred:=prodazha_x;

prodazha_Elem^.Next:=prodazha_Zagol;

prodazha_x^.Next:=prodazha_Elem;

end else

begin

prodazha_Elem^.Next:=prodazha_Zagol;

prodazha_Zagol^.Pred:=prodazha_Elem;

end;

i:=i+1;

end;

prodazha_nom:=prodazha_max;

end;

//==============================================================================

// Редактированиеавтомобиля

//==============================================================================

procedureavtomobili_red;

var

int:integer;

s:string;

i,nom:integer;

begin

write('Введите название автомобиля для редактирования = '); readln(s);

avtomobili_x := avtomobili_Zagol;

i:=1;

avtomobili_Elem:=NIL;

whilei<= avtomobili_max do

begin

if avtomobili_x^.name=s then avtomobili_Elem:=avtomobili_x;

avtomobili_x:=avtomobili_x^.Next;

i:=i+1;

end;

ifavtomobili_Elem<>NIL then

begin

Writeln('Введите данные по автомобилю');

Writeln('=====================================');

Writeln('Наименование: '); readln(s);

avtomobili_Elem^.name:=s;

Writeln ('Марка: '); readln(s);

avtomobili_Elem^.marka:=s;

Writeln('Год: '); readln(int);

avtomobili_Elem^.god:=int;

Writeln('Количество: '); readln(int);

avtomobili_Elem^.col:=int;

endelse

begin

Writeln('Автомобиль с наименованием ',s,' не найден!');

end;

end;

//==============================================================================

// Удалениеавтомобиля

//==============================================================================

procedureavtomobili_udal;

var

i:integer;

s:string;

begin

ifavtomobili_max>1 then

begin

Writeln('Введите наименование удаляемого автомобиля'); Readln(s);

avtomobili_Elem:=avtomobili_Zagol;

i:=1;

avtomobili_x:=NIL;

whilei<=avtomobili_max do

begin

if avtomobili_Elem^.name=s then

begin

avtomobili_x:=avtomobili_Elem;

end;

avtomobili_Elem:=avtomobili_Elem^.Next;

i:=i+1;

end;

ifavtomobili_x<>NIL then

begin

avtomobili_Elem:=avtomobili_x;

if avtomobili_Elem^.name=avtomobili_Zagol^.name then

begin

writeln('Не могу удалить этот элемент списка!');

end else

begin

avtomobili_x:=avtomobili_Elem^.Pred;

avtomobili_y:=avtomobili_Elem^.Next;

avtomobili_x^.Next:=avtomobili_y;

avtomobili_y^.Pred:=avtomobili_x;

avtomobili_max:=avtomobili_max - 1;

Dispose(avtomobili_Elem);

end;

end;

endelse

begin

Writeln(' Не могу удалить - В списке всего один элемент'!');

end;

end;

//==============================================================================

// Добавлениеавтомобиля

//==============================================================================

procedureavtomobili_dob;

var

int:integer;

s:string;

i,nom:integer;

begin

New(avtomobili_Elem);

avtomobili_Elem^.Pred:=avtomobili_Zagol;

avtomobili_Elem^.Next:=avtomobili_Zagol^.Next;

avtomobili_Zagol^.Next:=avtomobili_Elem;

avtomobili_max:=avtomobili_max+1;

avtomobili_nom:=avtomobili_nom+1;

Writeln(Введите данные по автомобилю');

Writeln('=====================================');

Writeln('Наименование: '); readln(s);

avtomobili_Elem^.name:=s;

Writeln('Марка: '); readln(s);

avtomobili_Elem^.marka:=s;

Writeln('Год: '); readln(int);

avtomobili_Elem^.god:=int;

Writeln('Количество: '); readln(int);

avtomobili_Elem^.col:=int;

end;

//==============================================================================

// Списоквсехавтомобилей

//==============================================================================

procedure avtomobili_report0;

var

int:integer;

s:string;

i,nom:integer;

begin

avtomobili_Elem:=avtomobili_Zagol;

i:=1;

Writeln('====================================================');

Writeln(' Список всех автомобилей');

Writeln('====================================================');

Writeln(' Наименование | Марка | Год Количество.');

whilei<=avtomobili_max do

begin

Write(avtomobili_Elem^.name:18);

Write('|');

Write(avtomobili_Elem^.marka:18);

Write('|');

Write(avtomobili_Elem^.god:4);

Write('|');

Write(avtomobili_Elem^.col:8);

avtomobili_Elem:=avtomobili_Elem^.Next;

Writeln;

i:=i+1;

end;

Writeln('====================================================');

writeln('=== нажмите ENTERдля продолжения ===');readln;

end;

//==============================================================================

//Редактированиемарки //==============================================================================

proceduremarki_red;

var

int:integer;

s:string;

i,nom:integer;

begin

write('Введите наименование марки для редактирования = '); readln(s);

marki_x:=marki_Zagol;

i:=1;

marki_Elem:=NIL;

whilei<=marki_max do

begin

if marki_x^.marka=s then marki_Elem:=marki_x;

marki_x:=marki_x^.Next;

i:=i+1;

end;

ifmarki_Elem<>NIL then

begin

Writeln('Введите данные по маркам');

Writeln('=====================================');

Writeln('Наименованиемарки: '); readln(s);

marki_Elem^.marka:=s;

Writeln('Модель: '); readln(s);

marki_Elem^.model:=s;

end else

begin

Writeln('Такаямарка ',s,' ненайдена!');

end;

end;

//==============================================================================

// Удалениемарки

//==============================================================================

proceduremarki_udal;

var

int,i:integer;

s:string;

begin

ifmarki_max>1 then

begin

Writeln('Введите марку для удаления'); Readln(s);

marki_Elem:=marki_Zagol;

i:=1;

marki_x:=NIL;

whilei<=marki_max do

begin

if marki_Elem^.marka=s then

begin

marki_x:=marki_Elem;

end;

marki_Elem:=marki_Elem^.Next;

i:=i+1;

end;

ifmarki_x<>NIL then

begin

marki_Elem:=marki_x;

if marki_Elem^.marka=marki_Zagol^.marka then

begin

writeln('Не могу удалить этот элемент из списка!');

end else

begin

marki_x:=marki_Elem^.Pred;

marki_y:=marki_Elem^.Next;

marki_x^.Next:=marki_y;

marki_y^.Pred:=marki_x;

marki_max:=marki_max-1;

Dispose(marki_Elem);

end;

end;

endelse

begin

Writeln('Не могу удалить - В списке всего один элемент');

end;

end;

//==============================================================================

// Добавлениемарки

//==============================================================================

proceduremarki_dob;

var

int:integer;

s:string;

i,nom:integer;

begin

New(marki_Elem);

marki_Elem^.Pred:=marki_Zagol;

marki_Elem^.Next:=marki_Zagol^.Next;

marki_Zagol^.Next:=marki_Elem;

marki_max:=marki_max+1;

marki_nom:=marki_nom+1;

Writeln(Введите данные по маркам);

Writeln('=====================================');

Writeln('Наименованиемарки: '); readln(s);

marki_Elem^.marka:=s;

Writeln('Модель: '); readln(s);

marki_Elem^.model:=s;

end;

//==============================================================================

// Списоквсехмарок

//==============================================================================

procedure marki_report0;

var

int:integer;

s:string;

i,nom:integer;

begin

marki_Elem := marki_Zagol;

i:=1;

Writeln(' Список всех марок');

Writeln('======================================');

Writeln(' Марка | Модель ');

whilei<=marki_max do

begin

Write(marki_Elem^.marka:18);

Write(marki_Elem^.model:18);

marki_Elem:=marki_Elem^.Next;

Writeln;

i:=i+1;

end;

Writeln ('======================================');

writeln('=== нажмите ENTERдля продолжения ===');readln;

end;

//==============================================================================

// Редактированиепродаж

//==============================================================================

procedureprodazha_red;

var

int:integer; s:string; i,nom:integer;

begin

write('Введите номер записи для редактирования = '); readln(int);

prodazha_x:=prodazha_Zagol;

i:=1;

prodazha_Elem:=NIL;

whilei<=prodazha_max do

begin

if prodazha_x^.nomer=int then prodazha_Elem:=prodazha_x;

prodazha_x:=prodazha_x^.Next;

i:=i+1;

end;

ifprodazha_Elem<>NIL then

begin

Writeln(' Введите данные о продажи ');

Writeln('=====================================');

Writeln('Номер: '); readln(int);

prodazha_Elem^.nomer:=int;

Writeln('Наименованиеавтомобиля: '); readln(s);

prodazha_Elem^.avtomobil:=s;

Writeln(Количество: '); readln(int);

prodazha_Elem^.col:=int;

Writeln('Цена: '); readln(int);

prodazha_Elem^.cena:=int;

Writeln('Число: '); readln(int);

prodazha_Elem^.chislo:=int;

Writeln('Месяц: '); readln(int);

prodazha_Elem^.mes:=int;

Writeln('Год: '); readln(int);

prodazha_Elem^.god:=int;

endelse

begin

Writeln('Запись о продаже с номером ',int,'не найдена!');

end;

end;

//==============================================================================

// Удаление записи о продажи

//==============================================================================

procedureprodazha_udal;

varint,i: integer; s:string;

begin

ifprodazha_max>1 then

begin

Writeln('Введите номер записи для удаления'); Readln(int);

prodazha_Elem := prodazha_Zagol;

i:=1;

prodazha_x:=NIL;

whilei<=prodazha_max do

begin

if prodazha_Elem^.nomer=int then

begin

prodazha_x:=prodazha_Elem;

end;

prodazha_Elem:=prodazha_Elem^.Next;

i:=i+1;

end;

ifprodazha_x<>NIL then

begin

prodazha_Elem:=prodazha_x;

ifprodazha_Elem^.NOMER=prodazha_Zagol^.NOMER then

begin

writeln('Не могу удалить этот элемент списка!');

end else

begin

prodazha_x:=prodazha_Elem^.Pred;

prodazha_y:=prodazha_Elem^.Next;

prodazha_x^.Next:=prodazha_y;

prodazha_y^.Pred:=prodazha_x;

prodazha_max:=prodazha_max-1;

Dispose(prodazha_Elem);

end; end;

endelse

begin

Writeln('Не могу удалить - в списке всего один элемент!');

end; end;

//==============================================================================

// Добавление записи о продажи

//==============================================================================

procedureprodazha_dob;

varint:integer; s:string; i,nom:integer;

begin

New(prodazha_Elem);

prodazha_Elem^.Pred:=prodazha_Zagol;

prodazha_Elem^.Next:=prodazha_Zagol^.Next;

prodazha_Zagol^.Next:=prodazha_Elem;

prodazha_max:=prodazha_max+1;

prodazha_nom:=prodazha_nom+1;

Writeln('Введите данные о продади');

Writeln('=====================================');

Writeln('Номер: '); readln(int);

prodazha_Elem^.nomer:=int;

Writeln('автомобили: '); readln(s);

prodazha_Elem^.avtomobil:=s;

Writeln('количество: '); readln(int);

prodazha_Elem^.col:=int;

Writeln('цена: '); readln(int);

prodazha_Elem^.cena:=int;

Writeln('число'); readln(int);

prodazha_Elem^.chislo:=int;

Writeln('Месяц: '); readln(int);

prodazha_Elem^.mes:=int;

Writeln('Год: '); readln(int);

prodazha_Elem^.god:=int;

end;

//==============================================================================

// Список всех записей о продажах

//==============================================================================

procedure prodazha_report0;

varint:integer; s:string; i,nom:integer;

begin

prodazha_Elem := prodazha_Zagol;

i:=1;

Writeln(' Список всех записей о продажах');

Writeln('===================================================================');

Writeln(' Номер | Автомобиль |Кол. | Цена |Число |Месяц|Год ');

whilei<=prodazha_max do

begin

Write(prodazha_Elem^.nomer:10);

Write ('|');

Write(prodazha_Elem^.avtomobil:20);

Write ('|');

Write(prodazha_Elem^.col:6);

Write ('|');

Write(prodazha_Elem^.cena:6);

Write ('|');

Write(prodazha_Elem^.chislo:6);

Write ('|');

Write(prodazha_Elem^.mes:6);

Write ('|');

Write(prodazha_Elem^.god:6);

Write ('|');

prodazha_Elem:=prodazha_Elem^.Next;

Writeln;

i:=i+1;

end;

Writeln('===================================================================');

writeln('=== нажмите ENTERдля продолжения ===');readln;

end;

//==============================================================================

// Сохранение базы данных в файле

//==============================================================================

proceduresave_base;

var i:integer; f1:Text;

begin

// Сохранениефайласавтомобилями

Assign(f1,'avtomobili.txt');

Rewrite(f1);

avtomobili_Elem := avtomobili_Zagol;

i:=1;

whilei<=avtomobili_max do

begin

writeln(f1,avtomobili_Elem^.name);

writeln(f1,avtomobili_Elem^.marka);

writeln(f1,avtomobili_Elem^.god);

writeln(f1,avtomobili_Elem^.col);

avtomobili_Elem:=avtomobili_Elem^.Next;

i:=i+1;

end;

Close(f1);

// Сохранение файла с марками

Assign(f1,'marki.txt');

Rewrite(f1);

marki_Elem:=marki_Zagol;

i:=1;

whilei<=marki_max do

begin

writeln(f1,marki_Elem^.marka);

writeln(f1,marki_Elem^.model);

marki_Elem:=marki_Elem^.Next;

i:=i+1;

end;

Close(f1);

//Сохранение файла с продажами

assign(f1,'prodazha.txt');

Rewrite(f1);

prodazha_Elem := prodazha_Zagol;

i:=1;

whilei<=prodazha_max do

begin

writeln(f1,prodazha_Elem^.nomer);

writeln(f1,prodazha_Elem^.avtomobil);

writeln(f1,prodazha_Elem^.col);

writeln(f1,prodazha_Elem^.cena);

writeln(f1,prodazha_Elem^.chislo);

writeln(f1,prodazha_Elem^.mes);

writeln(f1,prodazha_Elem^.god);

prodazha_Elem:=prodazha_Elem^.Next;

i:=i+1;

end;

Close(f1);

writeln('Сохранение базы успешно произведено!');

writeln('=== нажмите ENTERдля продолжения ===');readln;

end;

//==============================================================================

// Чтение базы данных из файлов

//==============================================================================

procedureread_base;

var

i:integer;

f1:Text;

begin

if (Not FileExists('avtomobili.txt')) or

(Not FileExists('marki.txt')) or

(Not FileExists('prodazha.txt')) then

begin

Writeln('Не хватает файлов базы данных !');

endelseа

begin

// Чтение файла с запчастями

Assign(f1,'avtomobili.txt');

Reset(f1);

New(avtomobili_Elem);

avtomobili_Zagol:=avtomobili_Elem;

avtomobili_Elem^.Pred:=nil;

avtomobili_max:=0;

i:=1;

while not eof(f1) do

begin

readln(f1,avtomobili_Elem^.name);

readln(f1,avtomobili_Elem^.marka);

readln(f1,avtomobili_Elem^.god);

readln(f1,avtomobili_Elem^.col);

avtomobili_max:=avtomobili_max+1;

if not eof(f1) then

begin

avtomobili_x:=avtomobili_Elem;

NEW(avtomobili_Elem);

avtomobili_Elem^.Pred:=avtomobili_x;

avtomobili_Elem^.Next:=avtomobili_Zagol;

avtomobili_x^.Next:=avtomobili_Elem;

end else

begin

avtomobili_Elem^.Next:=avtomobili_Zagol;

avtomobili_Zagol^.Pred:=avtomobili_Elem;

end;

i:=i+1;

end;

avtomobili_nom:=avtomobili_max;

Close(f1);

//чтение файла с марками

Assign(f1,'marki.txt');

reset(f1);

New(marki_Elem);

marki_Zagol:=marki_Elem;

marki_Elem^.Pred:=nil;

marki_max:=0;

i:=1;

while not eof(f1) do

begin

readln(f1,marki_Elem^.marka);

readln(f1,marki_Elem^.model);

marki_max:=marki_max+1;

if not eof(f1) then

begin

marki_x:=marki_Elem;

NEW(marki_Elem);

marki_Elem^.Pred:= marki_x;

marki_Elem^.Next:=marki_Zagol;

marki_x^.Next:=marki_Elem;

end else

begin

marki_Elem^.Next:=marki_Zagol;

marki_Zagol^.Pred:=marki_Elem;

end;

i:=i+1;

end;

marki_nom:=marki_max;

Close(f1);

// Чтение файла с продажами

Assign(f1,'prodazha.txt');

Reset(f1);

New(prodazha_Elem);

prodazha_Zagol:=prodazha_Elem;

prodazha_Elem^.Pred:=nil;

prodazha_max:=0;

i:=1;

while not eof(f1) do

begin

readln(f1,prodazha_Elem^.nomer);

readln(f1,prodazha_Elem^.avtomobil);

readln(f1,prodazha_Elem^.col);

readln(f1,prodazha_Elem^.cena);

readln(f1,prodazha_Elem^.chislo);

readln(f1,prodazha_Elem^.mes);

readln(f1,prodazha_Elem^.god);

prodazha_max:=prodazha_max+1;

if not eof(f1) then

begin

prodazha_x:=prodazha_Elem;

NEW(prodazha_Elem);

prodazha_Elem^.Pred:= prodazha_x;

prodazha_Elem^.Next:=prodazha_Zagol;

prodazha_x^.Next:=prodazha_Elem;

end else

begin

prodazha_Elem^.Next:=prodazha_Zagol;

prodazha_Zagol^.Pred:=prodazha_Elem;

end;

i:=i+1;

end;

prodazha_nom:=prodazha_max;

Close(f1);

writeln('Чтение базы произведено успешно');

writeln('=== нажмите ENTERдля продолжения ===');readln;

end;

end;

//==============================================================================

// Служебная функция - возврат запчасти по наименованию

//==============================================================================

functionget_avtomobili(name:string):uavtomobili;

var i:integer;

begin

avtomobili_x:=avtomobili_Zagol;

i:=1;

avtomobili_Elem:=NIL;

whilei<=avtomobili_max do

begin

if avtomobili_x^.name=name then avtomobili_Elem:=avtomobili_x;

avtomobili_x:=avtomobili_x^.Next;

i:=i+1;

end;

ifavtomobili_Elem<>NIL then

begin

result:=avtomobili_Elem;

end else

begin

result:=NIL;

end;

end;

//==============================================================================

// Служебная функция - возврат марки по наименованию.

//==============================================================================

functionget_marki(marka:string):umarki;

var i:integer;

begin

marki_x:=marki_Zagol;

i:=1;

marki_Elem:=NIL;

whilei<=marki_max do

begin

if marki_x^.marka=marka then marki_Elem:=marki_x;

marki_x:=marki_x^.Next;

i:=i+1;

end;

ifmarki_Elem<>NIL then

begin

result:=marki_Elem;

end else

begin

result:=NIL;

end; end;

//==============================================================================

// Списокпродаж

//==============================================================================

procedurereport_prod;

varint:integer; s:string; i,nom:integer;

begin

prodazha_Elem:=prodazha_Zagol;

i:=1;

Writeln(' Список всех записей о продаже');

Writeln('==============================================================================');

Writeln (' Номер | Автомобили | Кол. | Цена |Сумма |число | месяц ');

whilei<=prodazha_max do

begin

Write(prodazha_Elem^.nomer:10);

Write('|');

Write(prodazha_Elem^.avtomobil:20);

Write('|');

Write(prodazha_Elem^.col:6);

Write('|');

Write(prodazha_Elem^.cena:6);

Write('|');

Write(prodazha_Elem^.col*prodazha_Elem^.cena:10);

Write('|');

Write(prodazha_Elem^.chislo:6);

Write('|');

Write(prodazha_Elem^.mes:6);

Write('|');

Write(prodazha_Elem^.god:6);

Write('|');

prodazha_Elem:=prodazha_Elem^.Next;

Writeln;

avtomobili_Elem:=get_avtomobili(prodazha_Elem^.avtomobil);

if (avtomobili_Elem<>NIL) then

begin

Writeln('(марка: ',avtomobili_Elem^.marka,', год',avtomobili_Elem^.god,')');

marki_Elem:=get_marki(avtomobili_Elem^.marka);

if (marki_Elem<>NIL) then

begin

Writeln('(модель ',marki_Elem^.model,')');

end; end;

i:=i+1;

end;

Writeln ('==============================================================================');

writeln('===нажмитеENTERдляпродолжения ==');readln;

end;

//==============================================================================

// Основнаяпрограмма

//==============================================================================

begin

while k<19 do

begin

writeln('==============АВТОМОБИЛИ=====================');

writeln('1 - Создать запись');

writeln('2 - Редактировать запись');

writeln('3 - Удалить запись');

writeln('4 - Добавить запись');

writeln('5 - Вывести список');

writeln('============МАРКИ=====================');

writeln('6 - Создать запись');

writeln(' 7- Редактировать запись');

writeln('8 - Удалить запись');

writeln('9 - Добавить запись');

writeln('10 - Вывести список');

writeln('============ПРОДАЖИ=================');

writeln('11 - Создать запись');

writeln('12 - Редактировать запись');

writeln('13 - Удалить запись');

writeln('14 - Добавить запись');

writeln('15 - Вывести список');

writeln('============БАЗА========================');

writeln('16 - Сохранить базу на флешку');

writeln('17 - Прочитать базу с флешки');

writeln('============Отчет о продажах============');

writeln('18 - Вывести отчет');

writeln('========================================');

writeln('19 - Выхлд');

readln(k);

case k of

1:avtomobili_sozd;

2:avtomobili_red;

3:avtomobili_udal;

4:avtomobili_dob;

5:avtomobili_report0;

6:marki_sozd;

7:marki_red;

8:marki_udal;

9:marki_dob;

10:marki_report0;

11:prodazha_sozd;

12:prodazha_red;

13:prodazha_udal;

14:prodazha_dob;

15:prodazha_report0;

16:save_base;

17:read_base;

18:report_prod;

end; end; end.

Размещено на Allbest.ru

...

Подобные документы

  • Словесное описание предметной области. Построение схемы функциональных зависимостей. Реализация базы данных средствами утилиты Enterprise Manager в формате SQL Server Management Studio. Разработка алгоритмов работы программы и приложения пользователя.

    дипломная работа [1,8 M], добавлен 26.03.2015

  • Проектирование базы данных "Автосалон" с использованием Microsoft Access. Создание таблиц с информацией об автомобилях, их стоимости, стране-производителе, покупателях. Построение информационной схемы базы, форм для занесения данных в таблицы и отчета.

    контрольная работа [5,2 M], добавлен 28.06.2011

  • Анализ предметной области. Предположительный набор необходимых функций. Даталогическое и инфологическое проектирование. Реляционная модель данных. Создание запросов и атрибутов. Физическая модель данных. Разработка приложения для работы с базой данных.

    курсовая работа [720,8 K], добавлен 26.04.2015

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

    курсовая работа [1,5 M], добавлен 07.01.2014

  • Анализ предметной области и создание таблиц базы данных "Фирма по продаже запчастей". Простой выбор данных и обработка группирующих запросов с условием средствами MS SQL Server 2008. Создание хранимых процедур и функций, изменение структуры базы данных.

    курсовая работа [6,1 M], добавлен 16.12.2015

  • Анализ предметной области и введение ограничений. Выделение базовых сущностей. Концептуальная модель данных. Построение схемы реляционной модели базы данных магазина одежды в третьей нормальной форме. Описание физической БД. Проектирование интерфейса.

    курсовая работа [2,6 M], добавлен 20.11.2013

  • Понятие баз данных и принципы проектирования информационных систем. Разработка программы для отслеживания финансовой стороны работы компании в среде Delphi 7. Создание таблиц и схемы данных. Разработка клиентского приложения и процедуры добавления данных.

    курсовая работа [1,4 M], добавлен 25.04.2012

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

    курсовая работа [700,0 K], добавлен 14.01.2015

  • Создание базы данных в СУБД MS ACCESS 2007 для оптимизации продаж в музыкальном магазине. Описание предметной области, разработка инфологической модели данных. Пользовательский интерфейс: информация о товаре, производителях, продавцах, отчет по чекам.

    курсовая работа [847,3 K], добавлен 10.02.2014

  • Назначение и область применения базы данных "Филателист". Описание предметной области, предполагаемые пользователи и цель проекта. Входные и выходные документы и сообщения. Реализация базы данных в среде MS Access 2007. Руководство пользователя.

    курсовая работа [1,6 M], добавлен 20.03.2017

  • Разработка базы данных для автоматизации учета и хранения сведений о заявках от работодателей. Проектирование приложения в СУБД Access. Описание запросов, отчетов и представлений данных. Интерфейс, условия выполнения и тестирование программного продукта.

    курсовая работа [3,7 M], добавлен 05.04.2012

  • Создание структуры базы данных на примере "Школьного журнала" с использованием метода и принципа нормализации. Понятия базы данных, архитектуры БД и проектирования. Описание предметной области; приложения для работы с базой данных TTable и TQuery.

    дипломная работа [996,4 K], добавлен 01.04.2012

  • Выбор среды программирования, предметной области автоматизированной информационной системы "Риелторская контора". Входные и выходные данные, создание запросов SQL. Проектирование интерфейса проекта. Использование для отчета реляционной модели данных.

    отчет по практике [2,4 M], добавлен 13.01.2011

  • Описание платформы NET Framework. База данных Microsoft Access. Разработка Windows приложения. Модель программирования Windows Forms. Функциональное назначение программы. Входные и выходные данные. Требования к техническому и программному обеспечению.

    курсовая работа [2,2 M], добавлен 15.03.2015

  • Создание базы данных "Автовокзал" как части информационной системы. Требования к базе данных и этапы ее разработки. Анализ информационных потоков, выбор модели. Входные и выходные данные. Программирование базы данных на языке Borland Delphi 7.0.

    курсовая работа [105,8 K], добавлен 16.05.2011

  • Анализ предметной области создания программы организации, предоставляющей услуги проката DVD и CD дисков. Описание информационных процессов, обоснование необходимости автоматизации. Разработка приложения, среда реализации и пользовательский интерфейс.

    курсовая работа [43,6 K], добавлен 23.03.2010

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

    курсовая работа [1,3 M], добавлен 08.08.2012

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

    курсовая работа [1,5 M], добавлен 22.11.2010

  • Рассмотрение теоретических основ проектирования. Анализ предметной области и разработка таблиц базы данных. Заполнение таблиц, поиск данных с помощью фильтра. Создание форм, разработка запросов. Создание и настройка отчетов, составление приложения.

    курсовая работа [2,8 M], добавлен 01.06.2014

  • Анализ предметной области, потребности различных категорий пользователей разрабатываемой базы данных. Описание концептуальной схемы и преобразование ее в реляционную БД. Создание ER-модели в среде ER-Win. Генерация файлов, разработка запросов в SQL.

    курсовая работа [786,4 K], добавлен 15.12.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.