Gogeta ss4
17-09-2004, 15:30
Ecco il codice:
#include "stdafx.h"
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <iomanip.h>
#include <stdlib.h>
struct struttura_dipendente
{
char codice[5];
char nome[50];
char cognome[50];
float stipendio;
};
typedef struttura_dipendente dipendenti;
struct lista_dipendenti
{
dipendenti info;
struct lista_dipendenti *next;
};
typedef lista_dipendenti lista;
void inserisci(void);
void visualizza(void);
bool controllo_lista(void);
lista *punt_lista=NULL;
char cerca[5];
int main(int argc, char* argv[])
{
int scelta;
bool controllo;
do
{
cout <<setw (25) <<"\nMENU' PRINCIPALE";
cout <<setw (15) <<"\n1)Inserisci Dipendente";
cout <<setw (15) <<"\n2)Ricerca Dipendente";
cout <<setw (15) <<"\nUscita";
cout <<setw (25) <<"Scelta: ";
cin >>scelta;
switch (scelta)
{
case 1: inserisci();
break;
case 2: controllo=controllo_lista();
if(controllo==false)
cout <<"Non hai inserito nessun dipendente in lista";
else
visualizza();
break;
case 0: exit(EXIT_SUCCESS);
default: cout <<"Opzione Inesistente";
}
} while (scelta!=0);
return 0;
}
//Definizione delle funzioni
void inserisci ()
{
register lista *p;
system ("cls");
p=new lista;
cout <<setw (25) <<"\nIscrizione Nuovo Dipendente";
cout <<"\nInserisci il codice di riconoscimento del dipendente: ";
cin >>p->info.codice;
cin.ignore(80,'\n');
cout <<"\nInserisci il nome del dipendente: ";
cin.getline(p->info.nome,50);
cout <<"\nInserisci il cognome del dipendente: ";
cin.getline(p->info.cognome,50);
cout <<"\nInserisci lo stipendio del dipendente: ";
cin >>p->info.stipendio;
if(punt_lista==NULL)
{
p->next=NULL;
punt_lista=p;
}
else
{
p->next=punt_lista;
punt_lista=p;
}
}
void visualizza ()
{
bool trovato=false;
register lista *p;
system ("cls");
for(p=punt_lista;p!=NULL,trovato==false;p=p->next)
{
if(strcmp(cerca,p->info.codice)==0)
{
trovato=true;
cout <<setw (25) <<"\nDipendete Trovato!";
cout <<"\nNome: " <<p->info.nome;
cout <<"\nCognome: " <<p->info.cognome;
cout <<"\nStipendio: " <<p->info.stipendio;
}
}
if(trovato==false)
cout <<"Codice Inesistente";
}
bool controllo_lista()
{
if(punt_lista==NULL)
return false;
else
return true;
}
L'inserimento non mi da problemi, quando perņ faccio la visualizzazione mi si blocca alla strcmp della funzione, dove sbaglio??
#include "stdafx.h"
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <iomanip.h>
#include <stdlib.h>
struct struttura_dipendente
{
char codice[5];
char nome[50];
char cognome[50];
float stipendio;
};
typedef struttura_dipendente dipendenti;
struct lista_dipendenti
{
dipendenti info;
struct lista_dipendenti *next;
};
typedef lista_dipendenti lista;
void inserisci(void);
void visualizza(void);
bool controllo_lista(void);
lista *punt_lista=NULL;
char cerca[5];
int main(int argc, char* argv[])
{
int scelta;
bool controllo;
do
{
cout <<setw (25) <<"\nMENU' PRINCIPALE";
cout <<setw (15) <<"\n1)Inserisci Dipendente";
cout <<setw (15) <<"\n2)Ricerca Dipendente";
cout <<setw (15) <<"\nUscita";
cout <<setw (25) <<"Scelta: ";
cin >>scelta;
switch (scelta)
{
case 1: inserisci();
break;
case 2: controllo=controllo_lista();
if(controllo==false)
cout <<"Non hai inserito nessun dipendente in lista";
else
visualizza();
break;
case 0: exit(EXIT_SUCCESS);
default: cout <<"Opzione Inesistente";
}
} while (scelta!=0);
return 0;
}
//Definizione delle funzioni
void inserisci ()
{
register lista *p;
system ("cls");
p=new lista;
cout <<setw (25) <<"\nIscrizione Nuovo Dipendente";
cout <<"\nInserisci il codice di riconoscimento del dipendente: ";
cin >>p->info.codice;
cin.ignore(80,'\n');
cout <<"\nInserisci il nome del dipendente: ";
cin.getline(p->info.nome,50);
cout <<"\nInserisci il cognome del dipendente: ";
cin.getline(p->info.cognome,50);
cout <<"\nInserisci lo stipendio del dipendente: ";
cin >>p->info.stipendio;
if(punt_lista==NULL)
{
p->next=NULL;
punt_lista=p;
}
else
{
p->next=punt_lista;
punt_lista=p;
}
}
void visualizza ()
{
bool trovato=false;
register lista *p;
system ("cls");
for(p=punt_lista;p!=NULL,trovato==false;p=p->next)
{
if(strcmp(cerca,p->info.codice)==0)
{
trovato=true;
cout <<setw (25) <<"\nDipendete Trovato!";
cout <<"\nNome: " <<p->info.nome;
cout <<"\nCognome: " <<p->info.cognome;
cout <<"\nStipendio: " <<p->info.stipendio;
}
}
if(trovato==false)
cout <<"Codice Inesistente";
}
bool controllo_lista()
{
if(punt_lista==NULL)
return false;
else
return true;
}
L'inserimento non mi da problemi, quando perņ faccio la visualizzazione mi si blocca alla strcmp della funzione, dove sbaglio??