двусвязные списки

  • Автор темы AILEKCAHdP
  • Дата начала
A

AILEKCAHdP

Гость
#1
Написал программу,а она не запускается. И ошибок не выдает. Подскажите пожайлуста что не так сделал.

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

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();

}
}
 
D

Dimmuborgir

Гость
#2
Написал программу,а она не запускается. И ошибок не выдает
что значит не запускается? поподробнее пожалста. Среда Visual C++ 6.0 ?

попробвал скомпилить у себя, тут же ошибки:

main.obj : error LNK2001: unresolved external symbol "void __cdecl udalenie_EL(void)" (?udalenie_EL@@YAXXZ)
main.obj : error LNK2001: unresolved external symbol "void __cdecl dobavlenie_SP(void)" (?dobavlenie_SP@@YAXXZ)
main.obj : error LNK2001: unresolved external symbol "void __cdecl prosmotr_SP(void)" (?prosmotr_SP@@YAXXZ)

обратите внимание на параметры вышеуказанных функций в прототипе и собственно описании тела.
 
A

AILEKCAHdP

Гость
#3
Спасибо! Я исправил. Теперь работает, как часики)