Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Programma in C

  1. #1

    Programma in C

    salve a tutti sono nuovo Smile come distro utilizzo ubuntu e windows
    frequento il politecnico di bari spero di trovarmi bene in questo forum...

    adesso arriviamo al punto: devo affrontare un esame di Fondamenti di Informatica il quale prevede lo studio del linguaggio C... il mondo dell'informatica mi ha affascinato e infatti esame a parte sto studiando da 2 libri di testo e dispense per cercare di comprendere il più velocemente possibile come programmare

    mi serve una mano nello scrivere un programma... la traccia sarebbe

    /* Sia dato un file contenente le seguenti informazioni relative alla gestione
    di un condominio:
    Identificativo condomino, locazione, quota mensile, n. mesi pagati
    Si costruisca un programma che realizzi le seguenti operazioni:
    - Inserimento di un nuovo condomino
    - Calcolo e stampa dell’importo totale versato per un condomino di cui sia
    fornito l’identificativo
    - Ricerca all’interno del file e stampa in un file di testo di tutte le
    informazioni presenti */

    io ho il programma ma è pieno di errori e mi hanno consigliato di farlo da 0....
    sto studiando tanta teoria ma mi servirebbe davvero questo programma e che sia CORRETTO in modo tale da prendere come esempio per imparare a fare programmi + difficili...

    vi sono davvero grato per ogni tipo di aiuto grazie 1000

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E quindi ? La tua precisa richiesta qual è ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    /* Sia dato un file contenente le seguenti informazioni relative alla gestione
    di un condominio:
    Identificativo condomino, locazione, quota mensile, n. mesi pagati
    Si costruisca un programma che realizzi le seguenti operazioni:
    - Inserimento di un nuovo condomino
    - Calcolo e stampa dell’importo totale versato per un condomino di cui sia
    fornito l’identificativo
    - Ricerca all’interno del file e stampa in un file di testo di tutte le
    informazioni presenti */

    qualcuno potrebbe postarlo?
    allego la versione "sbagliata" se qualcuno ha la pazienza di correggerlo... o di rifarlo da 0... non credo sia difficile per voi informatici
    asp non mi fa allegare il file .c ne il file . txt

  4. #4
    #include<stdio.h>
    #include<string.h>

    FILE *fp;
    int flag=0;
    int scelta;

    struct condominio {
    char nome [20];
    char cognome[20];
    char via [20];
    int civico ;
    float importo;
    int mesipagati;
    };

    struct condominio brozzi;

    void inserimento();
    void ricerca();
    void calcolo();
    void stampa();
    void cancella();
    void statistiche();
    void aggiungi(char[],float,struct condominio[]);

    main(){
    while(flag!=1) {
    printf("\n BENVENUTO NEL CONDOMINIO BROZZI");
    printf("\n 1-inserisci nuovo condomino");
    printf("\n 2-calcola e stampa importo di un condomino");
    printf("\n 3-stampa informazioni condominio");
    printf("\n 4 cancella gli appuntamenti per un determinato giorno");
    scanf("%d",&scelta);
    switch(scelta) {
    case 1:inserimento();
    break;
    case 2:calcolo();
    break;
    case 3:stampa();
    break;
    case 4:cancella();
    break;
    default:
    printf("\n comando non previsto");
    break;
    }
    printf("\n premer 1 per terminare, 0 per continuare");
    scanf("%d",&flag);
    }
    }

    void inserimento() {
    FILE*fp;
    fp=fopen ("brozzi.dat","a+");
    if(fp==NULL)
    {
    printf("\nImpossibile aprire il file");
    return;
    }
    printf("\n inserisci nome condomino:");
    scanf("%s",&brozzi.nome);
    printf("\n inserisci cognome condomino");
    scanf("%s",&brozzi.cognome);
    printf("\n inserisci via ");
    scanf("%s",&brozzi.via);
    printf("\n, numero civico ");
    scanf("%d",&brozzi.civico);
    printf("\n , inserisci importo" );
    scanf("%d" ,&brozzi.importo);
    printf("\n ,inserisci mesipagati ");
    scanf("%s", &brozzi.mesipagati);
    fwrite(&brozzi,sizeof(struct condominio),1,fp);
    fclose(fp);
    }

    void calcolo () {
    FILE *fp;
    char ricercanome[20];
    char ricercacognome[20];
    int importototale;

    fp=fopen("brozzi.dat","r+");
    fread(&brozzi,sizeof(struct condominio),1,fp);

    printf("\n cerca nome");
    scanf("%s",&ricercanome);
    printf("\n cerca cognome");
    scanf("%s",&ricercacognome);

    while(fread(&brozzi,sizeof(struct condominio),1,fp)!=0){
    if(strcmp(brozzi.nome,ricercanome)==0&&strcmp(broz zi.cognome,ricercacognome)==0)
    { printf("\n l'importo totale è: %f ", brozzi.mesipagati*brozzi.importo); }
    fclose(fp);
    }}
    //void stampa con ricerca , utilizzando stringcompare su cognome via civico.
    void stampa () {
    FILE *fp;
    FILE *fpt;

    struct condominio stampa ;
    char ricercacognome[20];

    fp=fopen("brozzi.dat","r+");
    fpt=fopen("brozzi.txt","w+");
    fread(&brozzi,sizeof(struct condominio),1,fp);
    fread(&stampa,sizeof(struct condominio),1,fp);
    printf("\n Inserisci cognome: ");
    scanf("%s",&ricercacognome);

    while(!feof(fp)) {
    if(ricercacognome==brozzi.cognome) {
    printf("\n le informazioni presenti sono : %s ",&brozzi.cognome);
    strcpy(brozzi.cognome,stampa.cognome);
    strcpy(brozzi.via, stampa.via);
    (brozzi.civico==stampa.civico);
    fwrite(fpt,sizeof(struct condominio),1,fp);

    fprintf(fpt,"%s",stampa.cognome);
    fprintf(fpt,"%s",stampa.via);
    fprintf(fpt,"%d",stampa.civico);
    }

    else {printf("\n condominio non trovato" );
    }
    fclose(fp);
    fclose(fpt);
    }}



    void modifica () {
    FILE*fp;
    char ricercavia[20];
    struct condominio modifica ;

    fp=fopen("brozzi.dat","r+");
    fread(&brozzi,sizeof(struct condominio),1,fp);
    printf("\n inserisci via : ");
    scanf("%s", &ricercavia);

    while (!feof(fp)) {
    if (ricercavia==brozzi.via ) {
    printf("\n nome condomino attuale : %s ",&brozzi.nome);
    printf("\n inserisci nuovo nome ");
    scanf("%s",&modifica.nome);
    strcpy(brozzi.nome,modifica.nome);

    // modifica del n civico
    printf("\n nome civico attuale : %d ",&brozzi.civico);
    printf("\n inserisci nuovo civico ");
    scanf("%s",&modifica.civico);
    (brozzi.civico==modifica.civico);
    fwrite(&brozzi,sizeof(struct condominio),1,fp);
    }

    else{ printf("\n condomino non trovato");
    }
    fclose(fp);
    }
    }

    void cancella () {
    FILE *fp;
    char ricercacognome[20];
    struct condominio cancella ;
    fp=fopen("brozzi.dat","r+");
    fread(&brozzi, sizeof(struct condominio),1,fp);
    printf ("\n inserisci cognome: ");
    scanf("%s",&ricercacognome);

    while (!feof(fp)) {
    if(ricercacognome==brozzi.cognome) {
    printf("\n il cognome %s , civico %d ",&brozzi.cognome,&brozzi.civico);
    strcpy(brozzi.cognome,cancella.cognome);
    (brozzi.civico==0);
    fwrite(&brozzi,sizeof(struct condominio),1,fp);
    }
    else { printf("\n nome non trovato ");
    }
    fclose(fp);
    }
    }

    //ricerca per cognome e ordinamento in ordine alfabetico
    void statistiche () {
    FILE *fp;

    struct condominio temp;
    struct condominio condomini[100];
    int i ;
    int j ;
    int dim;
    int n;

    fp=fopen("brozzi.dat","rb");
    fread(&brozzi, sizeof(struct condominio),1,fp);
    printf ("\n inserisci cognome: ");
    scanf("%s",&condomini[i]);


    for(i=0; i<dim;i++)
    {
    for(j=i+1; j<n; j++)
    {
    if(strcmp(brozzi[i].cognome,brozzi[j].cognome)==1)
    {
    temp=brozzi[i];
    brozzi[i]=brozzi[j];
    brozzi[j]=temp;
    }
    }

    /* aggiungi mesi pagati ad un condomino (cognome,importo) */
    void aggiungi(char cognome[],int importo[], struct condominio condomini [])
    {
    int i;
    int NumeroCondomini;
    int aggiornamento;
    int condomini;
    int cont =0;
    for(i=0;i<NumeroCondomini;i++)
    {
    if(strcmp(cognome,condomini[i].cognome)==0 &&
    strcmp(importo,condomini[i].importo)==0 )
    {
    condomini[i].mesipagati++;
    cont = 0 ;
    }
    }
    if(aggiornamento!=1)
    {
    strcpy(condomini[NumeroCondomini].cognome,cognome);
    strcpy(condomini[NumeroCondomini].importo,importo);
    comdomini[NumeroCondomini].mesipagati=1;
    NumeroCondomini++;
    }
    }

  5. #5
    Originariamente inviato da OceLoTXM
    qualcuno potrebbe postarlo?
    allego la versione "sbagliata" se qualcuno ha la pazienza di correggerlo... o di rifarlo da 0...
    Letto il Regolamento? Faresti meglio a farlo..

    Ecco una serie di errori da te commessi:

    1. nel forum non si chiedono sorgenti già pronti
    2. si espone il problema incontrato ed eventualmente le soluzioni adottate
    3. il codice va postato nei tag CODE

    In più ti consiglio di fare una ricerca, sia sul forum che in Rete, in quanto codesto genere di "programmi" scolastici si trovano benissimo..

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da MdE2005
    Letto il Regolamento? Faresti meglio a farlo..

    Ecco una serie di errori da te commessi:

    1. nel forum non si chiedono sorgenti già pronti
    2. si espone il problema incontrato ed eventualmente le soluzioni adottate
    3. il codice va postato nei tag CODE

    In più ti consiglio di fare una ricerca, sia sul forum che in Rete, in quanto codesto genere di "programmi" scolastici si trovano benissimo..
    Quoto e chiudo.
    Prendi visione del regolamento interno.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.