aiuto urgente programma in c

Messaggioda inginfoaria » 26/10/2004, 08:30

salve, il 29 ho un esame di programmazione, il gg del mio complex, e ho ancora qlc dubbio!!!!!!!!!!!111

per creare un menù abbastanza semplice che compia operazioni di modifica, salvatagio o eliminazione di una persona da una rubrica in c ho trovato sul libro il seguente programmino... volevo sapere se è giusto e se c'è un modo ancora più semplice. se è giusto me lo potete spiegare pezzo per pezzo semplicemente!!!!!!!grazie a tutti


FILE *Rubri (nome file)

void ServiSalvataggio (void)
void ServiModifica (void) (non so perchè si usa void)
void ServiEleiminazione(void) (a cosa serve)

...... (tutte le altre variabili, Nmax, Contatore... struct....)


main()

printf
scanf.....quello che ho già scritto


poi [variabili e tipi necessari per la creazione di un menu... dichiarazioni... non so cosa scrivere];

while Contatore != NMax o Contatore<=NMax (ho sostit do\while con while e Contatore co Fine = False )

{puts ("\n Sono disponibili le seguenti operazioni. Per selezionare un'operazione premere il tasto a destra e invio\n");

puts ("Salvataggio Persona (ox?) S");

puts ("Modifica Persona M");

puts (Eliminazione Persona);


switch

{case 'S': ServiSalvataggio ();
break;

case M: ServiMOdifica ();
break;

case E: ServiEliminazione):
break}
}


però non so perchè si sa puts invece che fprintf (per i file)e se serve mettere switch... per cosa... insomma devo creare un menù dovo se calchi una lettera corrisponde un'operazione!!!!é questo in pratica che devo fare!!!!!!!!1


Eleonora


inoltre volevo sapere se è giusto scrivere, clacolando che ho posto persona x[NMax] e Contatore = 0; inoltre ultima domanda perchè devo scrivere x[Contatore] e non x[Nmax]

if (x.TelefonoUfficio=x.TelefonoCasa)

{
printf (“Ufficio==Casa\n”);
};

else

{
printf (“Ufficio!=Casa\n”);
};

if (x[Contatore].Cognome==x[Contatore+1].Cognome)

{
printf (“Le persone sono parenti\n”)
};
if (x[Contatore].Via=x[Contatore+1].Via)

{
printf (“le persone abitano nella stessa casa\n”)


è giusto?grazie mille!!!!
inginfoaria
Junior Member
Junior Member
 
Messaggio: 26 di 175
Iscritto il: 14/10/2004, 14:39

Messaggioda inginfoaria » 26/10/2004, 08:58

questo e il mio programma completo!!!!vi prego risp a quello sopra così capisco cm finirlo e se è giusto!!!!!!!!!

puts ("\n Sono disponibili le seguenti operazioni. Per selezionare un'operazione premere il tasto a destra e invio\n");

puts ("Salvataggio Persona (ox?) S");

puts ("Modifica Persona M");

puts (Eliminazione Persona);


switch

{case 'S': ServiSalvataggio ();
break;

case M: ServiMOdifica ();
break;

case E: ServiEliminazione):
break}
}
inginfoaria
Junior Member
Junior Member
 
Messaggio: 27 di 175
Iscritto il: 14/10/2004, 14:39

Messaggioda Anto » 26/10/2004, 09:14

Mi spiace, non tempo di controllare nel dettaglio il tuo programma.
Cmq dai un'occhiata a questo: http://programmazione.html.it/c/esempio/
(da www.html.it).

Confrontalo con il tuo, vedrai che magari avrai meno dubbi.
A presto.
Anto
Junior Member
Junior Member
 
Messaggio: 71 di 128
Iscritto il: 06/09/2003, 06:34
Località: Italy

Messaggioda inginfoaria » 26/10/2004, 09:45

printf (" 1) VISUALIZZA CONTATTO\n\n");
printf (" 2) AGGIUNGI CONTATTO\n\n");
printf (" 3) MODIFICA CONTATTO\n\n");
printf (" 4) RIMUOVI CONTATTO\n\n");
printf (" 5) LEGGI CONTATTI DA FILE\n\n");
printf (" 6) SALVA CONTATTI SU FILE\n\n");
printf (" 0) ESCI\n\n\n\n");
printf (" la tua scelta > ");

// Aspetto scelta dell'utente
scanf ("%i", &scelta);
scelta = (int)scelta;
if (scelta == 0) // ESCO DAL PROGRAMMA

ho trovato altrimenti questo ma non so cm metterlo dentro... viinvio il mio programma completo!!


/*Programma per la creazione di una rubrica telefonica, ultima scrittura 27 ottobre 2004 effettuata da Eleonora Brugnolli*/

#include <stdio.h>
#include <srting.h>

typedef struct
{
char Via[30];
char Citta[30];
char Stato [30];
char NCivico[5];
int Cap;
int TelefonoCasa;
int Cellulare;
char Email[30];
int TelefonoUfficio;
char Nome[30];
char Cognome[30];
char CodFiscale[16];
}Persona;

int Contatore;

int Nmax = 10;

Persona x[Nmax];

FILE *Rubri;

void ServiSalvataggio (void);

void ServiModifica (void);

void ServiEleiminazione(void);

main()
{
printf(“Inserisci numero massimo dei nomi\n”);
scanf (“%d”, &NMax);

for(Contatore = 0;
Contatore <= Nmax;
Contatore= Contatore + 1)

{
printf ("Inserisci Nome\n");
scanf ("%s",&x[Contatore].Nome);

printf ("Inserisci Cognome\n");
scanf ("%s",&x[Contatore].Cognome);

printf ("Inserisci CodFiscale\n");
scanf ("%s",&x[Contatore].CodFiscale);

printf ("Inserisci Via\n");
scanf ("%s",&x[Contatore].Via);

printf ("Inserisci Citta\n");
scanf ("%s",&x[Contatore].Citta);

printf (“Inserisici Cap\n”);
scanf (“%d”, &x[Contatore].Cap);

printf ("Inserisci NCivico\n");
scanf ("%s",&x[Contatore].NCivico);

printf ("Inserisci Stato\n");
scanf ("%s",&x[Contatore].Stato);

printf (“Inserisci TelefonoCasa\n”);
scanf (“%d”, &x[Contatore].TelefonoCasa);

printf (“Inserisci Cellulare\n”);
scanf (“%d”, &x[Contatore].Cellulare);

printf (“Inserisci Email\n”);
scan (“%s”, &x[Contatore].Email);

printf (“Inserisci TelefonoUfficio\n”);
scanf (“%d”, &x[Contatore].TelefonoUfficio);
}


if (x.TelefonoUfficio==x.TelefonoCasa)
printf (“Ufficio==Casa\n”);

else
printf (“Ufficio!=Casa\n”);

while (x[Contatore].Cognome==x[Contatore+1].Cognome)
printf (“Le persone sono parenti\n”);

while (x[Contatore].Via==x[Contatore+1].Via)
printf (“le persone abitano nella stessa casa\n”);

if (x[Contatore].TelefonoCasa=x[Contatore+1].TelefonoCasa)
printf (“le persone abitano assieme\n”);

else
printf (“le persone non vivono assieme ma in case separate\n”);

while (x[Contatore].Stato = Italia)
printf (“la persona è italiana\n”);

while (Contatore != Nmax)

{puts ("\n Sono disponibili le seguenti operazioni. Per selezionare un'operazione premere il tasto a destra e invio\n");

puts ("Salvataggio Persona S");

puts ("Modifica Persona M");

puts (“Eliminazione Persona E”);


switch (?)

{case 'S': ServiSalvataggio ();
break;

case M: ServiMOdifica ();
break;

case E: ServiEliminazione ();
break;}
}

}

ecco il void non so se usarlo... forse è meglio cm scritto prima del programma per salvare e creare un menù e cioè è meglio

printf (" 1) VISUALIZZA CONTATTO\n\n");
printf (" 2) AGGIUNGI CONTATTO\n\n");
printf (" 3) MODIFICA CONTATTO\n\n");
printf (" 4) RIMUOVI CONTATTO\n\n");
printf (" 5) LEGGI CONTATTI DA FILE\n\n");
printf (" 6) SALVA CONTATTI SU FILE\n\n");
printf (" 0) ESCI\n\n\n\n");
printf (" la tua scelta > ");

// Aspetto scelta dell'utente
scanf ("%i", &scelta);
scelta = (int)scelta;
if (scelta == 0) // ESCO DAL PROGRAMMA
inginfoaria
Junior Member
Junior Member
 
Messaggio: 28 di 175
Iscritto il: 14/10/2004, 14:39

Messaggioda inginfoaria » 26/10/2004, 10:03

ecco il mio prog riveduto e corretto..... manca qlc?

/*Programma per la creazione di una rubrica telefonica, ultima scrittura 27 ottobre 2004 effettuata da Eleonora Brugnolli*/

#include <stdio.h>
#include <srting.h>

typedef struct
{
char Via[30];
char Citta[30];
char Stato [30];
char NCivico[5];
int Cap;
int TelefonoCasa;
int Cellulare;
char Email[30];
int TelefonoUfficio;
char Nome[30];
char Cognome[30];
char CodFiscale[16];
}Persona;

int Contatore;

int Nmax = 10;

Persona x[Nmax];

FILE *Rubri;

char i;

main()
{
printf(“Inserisci numero massimo dei nomi\n”);
scanf (“%d”, &NMax);

for(Contatore = 0;
Contatore <= Nmax;
Contatore= Contatore + 1)

{
printf ("Inserisci Nome\n");
scanf ("%s",&x[Contatore].Nome);

printf ("Inserisci Cognome\n");
scanf ("%s",&x[Contatore].Cognome);

printf ("Inserisci CodFiscale\n");
scanf ("%s",&x[Contatore].CodFiscale);

printf ("Inserisci Via\n");
scanf ("%s",&x[Contatore].Via);

printf ("Inserisci Citta\n");
scanf ("%s",&x[Contatore].Citta);

printf (“Inserisici Cap\n”);
scanf (“%d”, &x[Contatore].Cap);

printf ("Inserisci NCivico\n");
scanf ("%s",&x[Contatore].NCivico);

printf ("Inserisci Stato\n");
scanf ("%s",&x[Contatore].Stato);

printf (“Inserisci TelefonoCasa\n”);
scanf (“%d”, &x[Contatore].TelefonoCasa);

printf (“Inserisci Cellulare\n”);
scanf (“%d”, &x[Contatore].Cellulare);

printf (“Inserisci Email\n”);
scan (“%s”, &x[Contatore].Email);

printf (“Inserisci TelefonoUfficio\n”);
scanf (“%d”, &x[Contatore].TelefonoUfficio);
}


if (x.TelefonoUfficio==x.TelefonoCasa)
printf (“Ufficio==Casa\n”);

else
printf (“Ufficio!=Casa\n”);

if (x[Contatore].Cognome==x[Contatore-1].Cognome)
printf (“Le persone sono parenti\n”);

if (x[Contatore].Via==x[Contatore-1].Via)
printf (“le persone abitano nella stessa casa\n”);

if (x[Contatore].TelefonoCasa=x[Contatore-1].TelefonoCasa)
printf (“le persone abitano assieme\n”);

else
printf (“le persone non vivono assieme ma in case separate\n”);

if (x[Contatore].Stato = Italia)
printf (“la persona è italiana\n”);

while (Contatore != Nmax)

{printf ("\n Sono disponibili le seguenti operazioni. Per selezionare un'operazione premere il tasto a destra e invio\n");

printf("S Salvataggio Persona\n ");

printf ("M Modifica Persona\n ");

printf(“E Eliminazione Persona\n”);

printf (“A Aggiungi Persona\n”);

printf (“V Visualizza Persona\n”);

printf (“L Leggi Persona da FILE\n”);

printf (“F Salva Persona su FILE\n”);

printf (“0 Esci\n”);

printf (“la tua scelta >”);

scanf (“%i”, &scelta);

scelta = (int)scelta;

if (scelta==0)

printf (“Esci dal Programma\n”);

else
printf (“Scegli un’operazione e premi un tasto\n”);
}

}
inginfoaria
Junior Member
Junior Member
 
Messaggio: 29 di 175
Iscritto il: 14/10/2004, 14:39

Messaggioda inginfoaria » 26/10/2004, 11:31

di nuovo correto... ma dopo printf e scanf quando comincai la serie degli if e dei while non mi compila perchè?


/*Programma per la creazione di una rubrica telefonica, ultima scrittura 27 ottobre 2004 effettuata da Eleonora Brugnolli*/

#include <stdio.h>

typedef struct
{
char Via[30];
char Citta[30];
char Stato [30];
char NCivico[5];
int Cap;
int TelefonoCasa;
int Cellulare;
char Email[30];
int TelefonoUfficio;
char Nome[30];
char Cognome[30];
char CodFiscale[16];
}Persona;

int Contatore;

const Nmax=4;

Persona x[4];

FILE *Rubri;

char i;

main()
{
for(Contatore = 0;
Contatore < Nmax;
Contatore= Contatore + 1)

{
printf ("Inserisci Nome\n");
scanf ("%s",&x[Contatore].Nome);

printf ("Inserisci Cognome\n");
scanf ("%s",&x[Contatore].Cognome);

printf ("Inserisci CodFiscale\n");
scanf ("%s",&x[Contatore].CodFiscale);

printf ("Inserisci Via\n");
scanf ("%s",&x[Contatore].Via);

printf ("Inserisci Citta\n");
scanf ("%s",&x[Contatore].Citta);

printf ("Inserisici Cap\n");
scanf ("%d", &x[Contatore].Cap);

printf ("Inserisci NCivico\n");
scanf ("%s",&x[Contatore].NCivico);

printf ("Inserisci Stato\n");
scanf ("%s",&x[Contatore].Stato);

printf ("Inserisci TelefonoCasa\n");
scanf ("%d", &x[Contatore].TelefonoCasa);

printf ("Inserisci Cellulare\n");
scanf ("%d", &x[Contatore].Cellulare);

printf ("Inserisci Email\n");
scanf ("%s", &x[Contatore].Email);

printf ("Inserisci TelefonoUfficio\n");
scanf ("%d", &x[Contatore].TelefonoUfficio);
}

char Italia;

if (x[Contatore].TelefonoUfficio=x[Contatore].TelefonoCasa)

printf ("Ufficio=Casa\n");

else
printf ("Ufficio!=Casa\n");

if (x[Contatore].Cognome==x[Contatore-1].Cognome)

printf ("Le persone sono parenti\n");

if (x[Contatore].Via==x[Contatore-1].Via)

printf ("le persone abitano nella stessa casa\n");

if (x[Contatore].TelefonoCasa=x[Contatore-1].TelefonoCasa)

printf ("le persone abitano assieme\n");

else

printf ("le persone non vivono assieme ma in case separate\n");

if (x[Contatore].Stato == "Italia")

printf ("la persona è italiana\n");

while (Contatore != Nmax)

{
int scelta;

printf ("\n Sono disponibili le seguenti operazioni. Per selezionare un'operazione premere il tasto a destra e invio\n");

printf("S Salvataggio Persona\n ");

printf ("M Modifica Persona\n ");

printf("E Eliminazione Persona\n");

printf ("A Aggiungi Persona\n");

printf ("V Visualizza Persona\n");

printf ("L Leggi Persona da FILE\n");

printf ("F Salva Persona su FILE\n");

printf ("0 Esci\n");

printf ("la tua scelta >");

scanf ("%d", &scelta);

scelta = (int)scelta;

if (scelta==0)
printf ("Esci dal Programma\n");

else
printf ("Scegli un'operazione e premi un tasto\n");
}

}
inginfoaria
Junior Member
Junior Member
 
Messaggio: 30 di 175
Iscritto il: 14/10/2004, 14:39


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite