Passa al tema normale
Discussioni su argomenti di Informatica

Regole del forum

Consulta il nostro regolamento e la guida per scrivere le formule
Rispondi al messaggio

aiuto urgente programma in c

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!!!!

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}
}

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.

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

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”);
}

}

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");
}

}
Rispondi al messaggio


Skuola.net News è una testata giornalistica iscritta al Registro degli Operatori della Comunicazione.
Registrazione: n° 20792 del 23/12/2010.
©2000— Skuola Network s.r.l. Tutti i diritti riservati. — P.I. 10404470014.