Pomożcie mi dokonczyć program, tak zeby działał. bede naprawde bardzo wdzieczy . Nie wiem czemu nie chce działać. Pewnie coś powaliłem :/
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
struct lista
{
char imie[20],nazwisko[20],tel[16];
};
struct wezel
{
wezel *nastepny, *poprzedni;
lista *zawartosc;
};
void wczytaj(wezel *&pierwszy, wezel *&ostatni);
void dodaj(wezel *&pierwszy, wezel *&ostatni, lista *nowe);
void drukuj(wezel *pierwszy);
void wyszukaj(wezel *pierwszy);
void zapisz(wezel *pierwszy);
void odczytaj(wezel *&pierwszy, wezel *&ostatni);
void usun(wezel *&pierwszy, wezel *&ostatni);
int main()
{
int koniec;
int wybor;
/* wezel *pierwszy;
wezel *ostatni;
pierwszy = NULL;
ostatni = NULL;
odczytaj(pierwszy,ostatni);*/
koniec = 1;
do(
printf("MENU\n");
printf("1. Przeglad wszystkich pracownikow\n");
printf("2. Nowy pracownik\n");
printf("3. Wyszukaj pracownika\n");
printf("4. Usun inf pracownika\n");
printf("5. KONIEC\n");
printf("Wprowadz odpowiedni znak:");
scanf("%s");
switch(wybor)
{
case 1: drukuj(pierwszy);
break;
case 2: wczytaj(pierwszy,ostatni);
break;
case 3: wyszukaj(pierwszy);
break;
case 4: usun(pierwszy,ostatni);
break;
case 5: zapisz(pierwszy);
koniec = 0;
break;
}
) while (koniec);
}
void wczytaj(wezel *&pierwszy, wezel *&ostatni)
{
lista *nowe;
nowe = new lista;
printf("Podaj imie:\n");
scanf("%s",nowe->imie);
printf("Podaj Nazwisko:\n");
scanf("%s",nowe->nazwisko);
printf("Podaj Telefon: \n");
scanf("%s",nowe->tel);
dodaj(pierwszy,ostatni,nowe);
}
void Dodaj(wezel *&pierwszy, wezel *&ostatni, dane *nowe)
{
int i;
wezel *w_nowy, *w_wezel;
w_nowy = new wezel;
w_nowy->zawartosc = nowe;
if (pierwszy == NULL) {
pierwszy = w_nowy;
ostatni = w_nowy;
pierwszy->nastepny = ostatni;
ostatni->poprzedni = pierwszy;
ostatni->nastepny = NULL;
pierwszy->poprzedni = NULL;
} else {
if (strcmp(w_nowy->zawartosc->imie, pierwszy->zawartosc->imie) <0) {
pierwszy->poprzedni = w_nowy;
w_nowy->nastepny = pierwszy;
pierwszy = w_nowy;
pierwszy->poprzedni = NULL;
} else
if (strcmp(w_nowy->zawartosc->imie, ostatni->zawartosc->imie) > 0) {
ostatni->nastepny = w_nowy;
w_nowy->poprzedni = ostatni;
ostatni = w_nowy;
ostatni->nastepny = NULL;
} else {
w_wezel = pierwszy;
while (strcmp(w_wezel->zawartosc->imie,w_nowy->zawartosc->imie) < 0)
w_wezel = w_wezel->nastepny;
w_nowy->nastepny = w_wezel;
w_nowy->poprzedni = w_wezel->poprzedni;
w_wezel->poprzedni->nastepny = w_nowy;
w_wezel->poprzedni = w_nowy;
}
}
}
void DrukLista(wezel *pierwszy)
{
wezel *w_wezel;
w_wezel = pierwszy;
if (w_wezel == NULL) {
printf("LISTA JEST PUSTA\n");
return;
}
printf("Wykaz pracownikow:\n");
while (w_wezel != NULL) {
printf("");
cout << w_wezel->zawartosc->nazwisko << " " << w_wezel ->zawartosc->imie <<
" " << w_wezel->zawartosc->adres << endl;
w_wezel = w_wezel->nastepny;
}
}
void Wyszukaj(wezel *pierwszy)
{
char tekst;
wezel *w_wezel;
int znaleziono = 0;
printf("Podaj imie:\n");
scanf("%s", tekst);
w_wezel = pierwszy;
if (w_wezel == NULL) {
printf("LISTA JEST PUSTA");
return;
}
while (w_wezel != NULL) {
if (strcmp(w_wezel->zawartosc->nazwisko,tekst) == 0) {
printf("ZNALEZIONE DANE\n");
printf("\n",w_wezel->zawartosc->imie );
printf("\n",w_wezel->zawartosc->nazwisko);
printf("\n",w_wezel->zawartosc->tel);
znaleziono = 1;
}
w_wezel = w_wezel->nastepny;
}
if (znaleziono == 0)
printf("Danych nie znaleziono");
}
void Odczytaj(wezel *&pierwszy, wezel *&ostatni)
{
int numer;
lista *w_dane;
FILE *plik;
plik = fopen("lista.txt", "a+");
if(! plik)
{
printf("NIEPOPRAWNE OTWARCIE PLIKU");
return
}
while (!feof(plik)){
w_dane = new lista;
scanf((char *)) w_dane, sizeof(lista);
if (!feof(plik)){
scanf(char *) w_dane, sizeof(lista)};
if (scanf(!feof(plik)))
dodaj(pierwszy,ostatni, w_dane);
else
delete w_dane;
}
fclose(plik);
}
void Zapisz(wezel *pierwszy)
{
wezel *w_wezel;
FILE * plik;
plik = fopen("lista.txt", "a+");
w_wezel = pierwszy;
while (pierwszy != NULL) {
fprintf(plik,char *,pierwszy->zawartosc, sizeof(lista));
delete pierwszy->zawartosc;
pierwszy = pierwszy->nastepny;
delete w_wezel;
w_wezel = pierwszy;
}
fclose(plik);
}
void Usun(wezel *&pierwszy, wezel *&ostatni)
{
char tekst;
wezel *w_wezel, *pom1, *pom2;
printf("Podaj imie:");
scanf("%s",tekst);
w_wezel = pierwszy;
if (w_wezel == NULL) {
printf("LISTA JEST PUSTA");
return;
}
while (w_wezel != NULL) {
if (strcmp(w_wezel->zawartosc->nazwisko,tekst) == 0) {
pom1 = w_wezel->poprzedni;
pom2 = w_wezel->nastepny;
if ((pom1 != NULL) && (pom2 != NULL)) {
pom1->nastepny = pom2;
pom2->poprzedni = pom1;
}
else
if (pierwszy == ostatni) {
pierwszy = NULL;
ostatni = NULL;
}
else
if ((pom1 != NULL) && (pom2 == NULL)) {
pom1->nastepny = NULL;
ostatni = pom1;
}
else
if ((pom1 == NULL) && (pom2 != NULL)) {
pom2->poprzedni = NULL;
pierwszy = pom2;
}
delete w_wezel->zawartosc;
delete w_wezel;
w_wezel = pom2;
printf("INFORMACJE USUNIETO");
} else
w_wezel = w_wezel->nastepny;
}
}