A
AILEKCAHdP
Написал программу,а она не запускается. И ошибок не выдает. Подскажите пожайлуста что не так сделал.
Разработать программу для создания и работы с двусвязным списком, состоящим из структур. Для работы со списком создать меню со следующими пунктами:
1. Создание списка.
2. Просмотр списка.
3. Добавление в конец списка новой структуры.
4. удаление записи.
5. Выход.
Структура содержит название, цену, количество товара. Удалить из списка заданный товар.
Разработать программу для создания и работы с двусвязным списком, состоящим из структур. Для работы со списком создать меню со следующими пунктами:
1. Создание списка.
2. Просмотр списка.
3. Добавление в конец списка новой структуры.
4. удаление записи.
5. Выход.
Структура содержит название, цену, количество товара. Удалить из списка заданный товар.
Код:
#include<string.h>
#include<conio.h>
#include<io.h>
struct tov{
char nazvanie[10];
float cena;
int kol;
tov * nextElement;
tov * lastElement;
};
//=======================================
tov * firstElement, //первый
* endElement, //последний
* currentElement, //текущий
* nextElement, //следующий
* lastElement, //предыдущий
* tempElement;
int allElement=0;
FILE *save;
//=======================================
void Menu(void);
void sozdanie_SP(void);
void prosmotr_SP();
void dobavlenie_SP();
void udalenie_EL();
int main(){
firstElement=0;
endElement=0;
Menu();
getche();
return 0;
}
//=================== для ввода данных ===================
void enterElement(tov * element){
printf(" vvedite nazvanie tovara : ");
scanf("%s",&element->nazvanie);
printf(" vvedite cenu tovara : ");
scanf("%f",&element->cena);
printf(" vvedite kolichestvo tovara : ");
scanf("%d",&element->kol);
}
void sozdanie_SP(void){
tov * newElement; //новый
do{
allElement++;
newElement = new tov;
enterElement(newElement);
if (firstElement!=0){
newElement->nextElement=firstElement;
firstElement->lastElement=newElement;
firstElement=newElement;
} else firstElement=endElement=newElement;
}while(getche()!=27);
newElement->lastElement=endElement;
endElement->nextElement=newElement;
Menu();
}
//============================== Удаление одной записи ===================================
void udalenie_EL(tov * delRec){
delRec->lastElement->nextElement=delRec->nextElement;
delRec->nextElement->lastElement=delRec->lastElement;
delete delRec;
}
//============================== Добавление записи ===================================
void dobavlenie_SP(tov * lastRec, tov * nextRec){
tov *tempLast=lastRec;
tov *tempNext=nextRec;
do{
allElement++;
tov * newElement;
newElement = new tov;
enterElement(newElement);
newElement->lastElement=lastRec;
newElement->nextElement=nextRec;
lastRec->nextElement=newElement;
nextRec->lastElement=newElement;
lastRec=newElement;
}while(getche()!=27);
}
//============================== Создание меню ===================================
void Menu(void) {
printf(" MENU \n");
printf(" F1 - VVEDITE NAZVANIE TOVARA \n");
printf(" F2 - PROSMOTR \n");
printf(" F3 - DOBAVLENIE \n");
printf(" Del - UDALENIE \n");
printf(" Esc - VYHOD \n");
switch (getch()){
case 59: sozdanie_SP();break;
case 60: prosmotr_SP();break;
case 61: prosmotr_SP();break;
case 62: dobavlenie_SP();break;
case 63: udalenie_EL();break;
case 27: break;
default: Menu();
}
}