Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - programma per la lettura di una lista
Forum - C/C++ - programma per la lettura di una lista

Avatar
drelq (Normal User)
Newbie


Messaggi: 1
Iscritto: 27/03/2008

Segnala al moderatore
Postato alle 15:57
Lunedì, 14/04/2008
Ciao...sono nuovo.
Ho bisogno urgente per questo programma:
E' sbagliato, qualcuno riesce a mettermelo a posto?

Codice sorgente - presumibilmente C++

  1. /*Programma per la lettura dal file  stu708.txt di una lista di nomi e date di nascita di una classe di 111 studenti. Il programma inoltre effettua l'ordinamento della lista degli studenti per nome o data di nascita secondo il desiderio dell'utente*/
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include <math.h>
  6.  
  7. /*funzione per creare casualmente le date mancanti*/
  8. void create_data(int lista[], int n)
  9. {
  10.   int i ,stime, ltime;
  11.   ltime=time(NULL);
  12.   stime=ltime/2;
  13.   srand(stime);
  14.  
  15.   i=0;
  16.   while (i<=n)
  17.   {
  18.     lista[i]=rand()%n;
  19.     i++;
  20.   }
  21.  
  22. }
  23.  
  24. /*la funzione swap realizza lo scambio dei elementi*/
  25.  
  26. void swap(int *x,int *y)
  27. {
  28.    int temp;
  29.    temp = *x;
  30.    *x = *y;
  31.    *y = temp;
  32. }
  33.  
  34. /*funzione per ordinare a seconda del campo scelto gli studenti*/
  35. void bubble_sort(int lista[],int n)
  36. {
  37.    int i,j;
  38.    for(i=0;i<(n-1);i++)
  39.       for(j=0;j<(n-(i+1));j++)
  40.              if(lista[j] > lista[j+1])
  41.                     swap(&lista[j],&lista[j+1]);
  42. }
  43. struct Classe{
  44.           char  Cognome;
  45.           char  Nome;
  46.           int   Giorno;
  47.           int   Mese;
  48.           int  Anno;
  49. };
  50. main (int argc, char *argv[])
  51. {
  52. struct Classe d;
  53. char t,n,c ,g ,m ,a;
  54. FILE *in,*out;
  55. in=fopen("stud708","r");
  56. if(in==NULL){
  57. printf("il file non puo' essere aperto");
  58.    exit(1);
  59. }
  60. out=fopen("list_stud_ord","w");
  61. if(out==NULL){
  62. printf("il file non puo' essere aperto");
  63.    exit(1);
  64. }
  65. fscanf(in, "%s,%s,%d,%d,%d", &d.Cognome, &d.Nome, &d.Giorno, &d.Mese, &d.Anno);
  66. if(d.Giorno==NULL && d.Mese==NULL && d.Anno==NULL)
  67. create_data(d.Giorno,111);
  68. create_data(d.Mese,111);
  69. create_data(d.Anno,111);
  70. printf("Seleziona il tipo di ordinamento, premi n se si desidera per nome, c per cognome,g per giorno,m per mese e a per anno: ");
  71. scanf("%s", &t);
  72. switch (t)
  73.   case (t==n):
  74.                          bubble_sort(d.Nome,111);      
  75.                          break;
  76.  
  77.   case (t==c):
  78.                         bubble_sort(d.Cognome,111);
  79.                         break;
  80.  
  81.   case (t==g):
  82.                         bubble_sort(d.Giorno,111);
  83.                         break;
  84.  
  85.   case (t==m):
  86.                          bubble_sort(d.Mese,111);
  87.                          break;
  88.  
  89.   case (t==a):
  90.                         bubble_sort(d.Anno,111);
  91.                         break;
  92. }
  93.  fprintf(out,"%s, %s, %d, %d, %d");
  94.  fclose(in);
  95.  fclose(out);
  96.  return 0;
  97. }



Aggiustato il tag code

Ultima modifica effettuata da pierotofy il 14/04/2008 alle 16:04
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6110
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 16:05
Lunedì, 14/04/2008
Testo quotato

Postato originariamente da drelq:
E' sbagliato, qualcuno riesce a mettermelo a posto?



Cominciamo con un passo alla volta: in che punto è sbagliato? Il programma si compila? I risultati sono sbagliati?


Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM Quote