Advertisement
tegusta

Studenti_strutture

Apr 15th, 2012
296
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.63 KB | None | 0 0
  1. /*
  2. Studente : Scia Massimiliano
  3. Classe : 3IC
  4. Data : 15/04/12 09:47
  5. Nome del file :
  6. */
  7.  
  8. #include <iostream>
  9. #include <cmath>
  10. #include <ctime>
  11. #include <cstdlib>
  12. #include <cctype>
  13. #include <windows.h>
  14. #include <fstream>
  15. #include <time.h>
  16. #include <stdio.h>
  17. #define N 100
  18.  
  19. using namespace std;
  20.  
  21. struct stud{
  22.         char nome[N];
  23.         char cognome[N];
  24.         float voto;
  25. };//stud
  26.  
  27. void end(void){
  28.     fflush(stdin);
  29.     cout<<"\n\nPremere Invio per continuare.";
  30.     getchar();
  31. }//end
  32.  
  33. int dim(){
  34.      int n;
  35.      cout<<"\nInserisci il numero di alunni: ";
  36.      cin>>n;
  37.      return n;
  38. }//dim
  39.  
  40. stud studenti(){
  41.     stud f;
  42.     cout<<"\nNome studente: ";
  43.     fflush(stdin);
  44.     cin.get(f.nome,N,'\n');
  45.     fflush(stdin);
  46.     cout<<"\nCognome studente: ";
  47.     cin.get(f.cognome,N,'\n');
  48.     fflush(stdin);
  49.     cout<<"\nVoto di "<<f.cognome<<": ";
  50.     cin>>f.voto;
  51.     fflush(stdin);
  52.     return f;
  53. }//studenti
  54.  
  55. void ins_stud(stud f[], int n){
  56.      cout<<"\n\nInserire i dati relativi agli studenti...";
  57.      for(int i=0;i<n;i++){
  58.          cout<<"\n\t\tStudente "<<i+1<<":\n";
  59.          f[i]=studenti();
  60.      }//for
  61. }//visualize
  62.  
  63. void modifica(stud f[], int pos, char scelta){
  64.      if(scelta=='a' || scelta=='A'){
  65.           fflush(stdin);
  66.           cout<<"\nInserisci il nuovo nome: ";
  67.           cin.get(f[pos].nome,N,'\n');
  68.           fflush(stdin);
  69.           cout<<"\nInserisci il nuovo cognome: ";
  70.           cin.get(f[pos].cognome,N,'\n');
  71.           fflush(stdin);
  72.           cout<<"\nInserisci il nuovo voto: ";
  73.           cin>>f[pos].voto;
  74.      }//if
  75.      else if(scelta=='n' || scelta=='N'){
  76.           fflush(stdin);
  77.           cout<<"\nInserisci il nuovo nome: ";
  78.           cin.get(f[pos].nome,N,'\n');
  79.           fflush(stdin);
  80.      }//else-if
  81.      else if(scelta=='c' || scelta=='C'){
  82.           fflush(stdin);
  83.           cout<<"\nInserisci il nuovo cognome: ";
  84.           cin.get(f[pos].cognome,N,'\n');
  85.           fflush(stdin);
  86.      }//else-if
  87.      else{
  88.           cout<<"\nInserisci il nuovo voto: ";
  89.           cin>>f[pos].voto;
  90.      }//else
  91. }//modifica
  92.  
  93. void elimina(stud f[], int* n, int pos){
  94.      for(int i=pos;i<*n;i++)
  95.           f[i]=f[i+1];
  96.      *n=*n-1;
  97. }//elimina
  98.  
  99. void visual(stud f[], int n){
  100.     cout<<"\nLe informazioni sugli studenti sono:\n\n";
  101.     for(int i=0;i<n;i++)
  102.         cout<<"\n"<<f[i].nome<<" "<<f[i].cognome<<", voto: "<<f[i].voto;
  103. }//visual
  104.  
  105. int main(){
  106.     int pos;
  107.     char scelta,scelta1;
  108.     stud f[N];
  109.     int n=dim();
  110.     ins_stud(f,n);
  111.     cout<<"\nVuoi modificare (m) o eliminare (e)? (*) per terminare e stampare.";
  112.     cout<<"\n-> ";
  113.     do{
  114.         cin>>scelta1;
  115.         fflush(stdin);
  116.         if(scelta1!='*' && scelta1!='m' && scelta1!='e')
  117.             cout<<"\nErrore\n";
  118.     }//do
  119.     while(scelta1!='*' && scelta1!='m' && scelta1!='e');
  120.     scelta1=tolower(scelta1);
  121.     if(scelta1=='*')
  122.         visual(f,n);
  123.     else if(scelta1=='m'){
  124.         cout<<"\nCosa vuoi modificare?";
  125.         cout<<"\nn - nome\nc - cognome\nv - voto\na - tutto\n-> ";
  126.         do{
  127.             cin>>scelta;
  128.             fflush(stdin);
  129.             if(scelta!='a' && scelta!='n' && scelta!='c'  && scelta!='v')
  130.                 cout<<"\nErrore\n";
  131.         }//do
  132.         while(scelta!='a' && scelta!='n' && scelta!='c'  && scelta!='v');
  133.         cout<<"\nIn che posizione?\n-> ";
  134.         cin>>pos;
  135.         pos--;
  136.         modifica(f,pos,scelta);
  137.         visual(f,n);
  138.     }//if
  139.     else{
  140.         cout<<"\nIn che posizione?\n-> ";
  141.         cin>>pos;
  142.         pos--;
  143.         elimina(f,&n,pos);
  144.         visual(f,n);
  145.     }//else
  146.     end();
  147.     return 0;
  148. }//main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement