Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Записка к курсовой Федорченко Ф.docx
Скачиваний:
8
Добавлен:
26.09.2019
Размер:
78.31 Кб
Скачать

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

#include "stdafx.h"

#include <iostream>

#include <math.h>

#include <conio.h>

#include <string>

#include <windows.h>

using namespace std;

struct VIP // структура

{

string izgotovitel; // содержание

string clasoboev;

string Cvet;

string Kollichestvo;

string Cena;

string dostavka;

string Zakaz;

VIP* next;//укзатели на начало и конец следующего элемента

VIP* prev;

};

class BASA //класс

{

private:// поля класса

VIP* bot; VIP* top;

public:// методы класса

BASA()//конструктор

{bot=0, top=0;} // указатели на нулевом елементе

void znachenie(string cv, string koll, string cen, string clas, string izg, string Zak, string dos);// ф-ии

void vivodim();

void vivodimTwo();

void Delete();

void DeleteAll();

};

void BASA::znachenie(string cv, string koll, string cen, string clas, string izg, string Zak, string dos)// обращение к классу через простраство имён

{ VIP* RULON = new VIP;// создание нового элемента

RULON->Cvet=cv; // передача раличных значений в класс а через него в структуру

RULON->Kollichestvo=koll;

RULON->Cena=cen;

RULON->clasoboev=clas;

RULON->izgotovitel=izg;

RULON->dostavka=dos;

RULON->Zakaz=Zak;

RULON->next = 0; // запомнить значение первого

if(top!=0) // если он не первый добавленный

{

bot->next=RULON;

bot = RULON;// новый элемент становится последним элементом списка

}

else // новый элемент становится единственным

// если он первый добавленный

{

top=bot=RULON;

}

}

void BASA::Delete() //удаление

{

VIP* RULON=top;// присвоение значения текущего указателя следующему

top=top->next; delete RULON;

}

void BASA::DeleteAll()// удалить все

{ while(top!=0) Delete(); }

void BASA::vivodim()

{

VIP* monitor = top;//

while(monitor)

{ cout<<"=================================="<<endl;

cout<<" Класс: "<<monitor->clasoboev<<endl;// передача значений на экран

cout<<" Изготовитель: "<<monitor->izgotovitel<<endl;

cout<<" Цвет: "<<monitor->Cvet<<endl;

cout<<" Колличество: "<<monitor->Kollichestvo<<endl;

cout<<" Цена: "<<monitor->Cena<<endl;

cout<<" Дата заказа: "<<monitor->Zakaz<<endl;

cout<<" Дата доставки: "<<monitor->dostavka<<endl;

cout<<"=================================="<<endl;

cout<<endl; monitor=monitor->next;

}

}

void BASA::vivodimTwo()// отдельный вывод элемента

{

int i;

VIP* monitor = top;//

cout<<"Введите номер нужного эелемента: "; cin>>i;

for(int d=1;d<i;d++)// цикл, позиции запрашиваемого элемента

monitor=monitor->next;// просчитать все элементы до указанного и вывести

while(monitor)

{ cout<<"=================================="<<endl;

cout<<" Класс: "<<monitor->izgotovitel<<endl;// передаём полученные значения на экран

cout<<" Изготовитель: "<<monitor->clasoboev<<endl;

cout<<" Цвет: "<<monitor->Cvet<<endl;

cout<<" Колличество: "<<monitor->Kollichestvo<<endl;

cout<<" Цена: "<<monitor->Cena<<endl;

cout<<" Дата заказа: "<<monitor->Zakaz<<endl;

cout<<" Дата доставки: "<<monitor->dostavka<<endl;

cout<<"=================================="<<endl;

cout<<endl;

break; }

}

string clas,koll,cen,cv,izg,Zak,dos;

int znachenie,znachenie2,znachenie3;

bool flag, flags;// флаги для выхода из цикла

int _tmain(int argc, _TCHAR* argv[])

{ BASA elem;// создать елемент структуры

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

do

{ flag=0;

cout<<endl;

cout<<"|----------------------------------------"<<endl;

cout<<"|Выберите действие: "<<endl;

cout<<"|Ввод данных 1: "<<endl;

cout<<"|Вывод данных 2: "<<endl;

cout<<"|Просмотр конкрет. элемента 3: "<<endl;

cout<<"|Удаление по порядку 4: "<<endl;

cout<<"|Удалить всё cразу 5: "<<endl;

cout<<"|Выход 0: "<<endl;

cout<<"|----------------------------------------"<<endl;

cin>>znachenie;

switch(znachenie)

{case 1:

cout<<endl;

cout<<"=================================="<<endl;

cout<<"Выерете класс обоев "<<endl;

cout<<"1. Бумажные обои: "<<endl;

cout<<"2. Виниловые обои: "<<endl;

cout<<"3. Текстильные обои: "<<endl;

cout<<"4. Пробковые обои: "<<endl;

cout<<"0. Вернуться: "<<endl;

cout<<"=================================="<<endl;

cin>>znachenie2;

if (znachenie2==0) break;

if (znachenie2==1) clas=" Бумажные обои";

if (znachenie2==2) clas=" Виниловые обои";

if (znachenie2==3) clas=" Текстильные обои";

if (znachenie2==4) clas=" Пробковые обои";cout<<endl;

cout<<"------------------------------------------"<<endl;

cout<<" Ваш выбор "<<clas<<endl;

cout<<" Выберете изготовителя: "<<endl;

cout<<"1 FINE-DECOR: "<<endl;

cout<<"2 JOHN VILMAN: "<<endl;

cout<<"3 SHAND KYDD: "<<endl;

cout<<"4 CROWN: "<<endl;

cout<<"5 cen: "<<endl;

cout<<"6 QUALITY: "<<endl;

cout<<"7 FlNE ART WALLCOVERING: "<<endl;

cout<<"8 FORBO-LANCASTER: "<<endl;

cout<<"0. Вернуться: "<<endl;

cout<<"------------------------------------------"<<endl;

cin>>znachenie3;

if (znachenie3==0) break;

if (znachenie3==1) izg="FINE-DECOR";

if (znachenie3==2) izg="JOHN VILMAN";

if (znachenie3==3) izg="SHAND KYDD";

if (znachenie3==4) izg="CROWN";

if (znachenie3==5) izg="cen";

if (znachenie3==6) izg="QUALITY";

if (znachenie3==7) izg="FlNE ART WALLCOVERING:";

if (znachenie3==8) izg="FORBO-LANCASTER";

cout<<endl;

cout<<"|----------------------------------------------|"<<endl;

cout<<"|вы выбрали "<<izg<<endl;

cout<<"|Введите цвет: "; cin>>cv;

cout<<"|Введите кол-во: ";cin>>koll;

cout<<"|Введите цену: ";cin>>cen;

cout<<"|Введите дату заказа: "; cin>>Zak;

cout<<"|Введите дату доставки: ";cin>>dos;

cout<<"|----------------------------------------------|"<<endl;

elem.znachenie(cv, koll, cen, clas, izg, Zak,dos);//присваеваем значения полученные при вводе элементу

flags=1; break;

case 2: elem.vivodim();break;

case 3: elem.vivodimTwo(); break;

case 4: elem.Delete(); break;

case 5: elem.DeleteAll(); break;

case 0: flag=1; exit; break;

default: cout<<"Непредусмотренный символ"<<endl; break; }

}

while(flag!=1);

return 0;

}