Динамічні структури даних. Циклічна черга. Функції та процедури, що працюють з циклічною чергою, страница 5

gidmetsl* add(gidmetsl* que);

void insert(gidmetsl* ptr);

void show(gidmetsl* que);

void show_info(gidmetsl* ptr);

gidmetsl *del(gidmetsl *que);

void readf();

void writef(gidmetsl *que);

void correct(gidmetsl *que);

void WaterList(gidmetsl *que);

void PressureList(gidmetsl *que);

void MAX(gidmetsl *que, int choice);

void Sorting();

void Sorting_Real(gidmetsl *ptr);

int number=0;

gidmetsl *liststart, *listfinal;

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

{  setlocale( LC_ALL,"Russian" );//русифицируем консоль

int v;

while(1)

{

cout<<("1: Вставка данных")<<endl;

cout<<("2: Вывод всех данных")<<endl;

cout<<("3: Считывание с файла")<<endl;

cout<<("4: Запись в файл")<<endl;

cout<<("5: Удаление одного элемента")<<endl;

cout<<("6: Корректировка выбранного элемента")<<endl;

cout<<("7: формирование списка элементов с температурой воды ниже заданного значения")<<endl;

cout<<("8: формирование списка элементов с атмосферным давлением выше  760 мм рт. ст.")<<endl;

cout<<("9: вывод даты с максимальной температурой воздуха")<<endl;

cout<<("10: вывод даты с максимальной температурой воды")<<endl;

cout<<("11: Cортировка по полю «температура воздуха»")<<endl;

cout<<("12: выход")<<endl;

cout<<("Введи вариант: ");

cin>>v;

switch (v)

{

case 1: listfinal=add(listfinal); break;

case 2: show(liststart); break;

case 3: readf(); break;

case 4: writef(liststart); break;

case 5: liststart=del(liststart); break;

case 6: correct(liststart); break;

case 7: WaterList(liststart); break;

case 8: PressureList(liststart); break;

case 9: MAX(liststart, 1); break;

case 10: MAX(liststart, 2); break;

case 11: Sorting(); break;

case 12: return 0; break;

default: cout<<("недопустимый вариант")<<endl;

}

}

}

gidmetsl *del(gidmetsl *que)

{if((liststart==NULL) && (listfinal==NULL))

cout<<"Очередь пуста!!!"<<endl;

else{

gidmetsl *ptr=que->right;

delete que;

number--;

return ptr;}

}

gidmetsl* add(gidmetsl* c_que)

{    gidmetsl *c_ptr=new gidmetsl;

insert(c_ptr);

if(number){

c_ptr->right=liststart;

listfinal->right=c_ptr;

c_que=c_ptr;

}

else

{    liststart=c_que=c_ptr;

c_que=c_ptr;

c_que->right=0;

}

number++;

return c_que;

}

void insert(gidmetsl* ptr)

{

cout<<("Введите Дату. Вводить без точек и запятых")<<endl;

cin>>ptr->data;

cout<<("Введите температуру воздуха. Если температура имеет десятичное значение - вводить через точку")<<endl;

cin>>ptr->AirTemperature;

cout<<("Введите температуру воды. Если температура имеет десятичное значение - вводить через точку")<<endl;

cin>>ptr->WaterTemperature;

cout<<("Введите атмосферное давление в мм.рт.ст. ")<<endl;

cin>>ptr->AtmospherePressure;

}

void show_info(gidmetsl* ptr)

{

cout<<"Дата:"<<ptr->data<<endl;

cout<<"Температура воздуха: "<<ptr->AirTemperature<<endl;

cout<<"Температура воды: "<<ptr->WaterTemperature<<endl;

cout<<"Атмосферное давление: "<<ptr->AtmospherePressure<<(" мм.рт.ст.")<<endl;

}

void show(gidmetsl* que)

{  if((liststart==NULL) && (listfinal==NULL))