Don't like ads? PRO users don't see any ads ;-)

Interrogazione Informatica

By: LookedPath on May 23rd, 2012  |  syntax: C++  |  size: 2.00 KB  |  hits: 26  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <cstdio>
  4. #include <string.h>
  5. #include <windows.h>
  6. #include <algorithm>
  7. #include <vector>
  8.  
  9. using namespace std;
  10.  
  11. void centra(char* s)
  12. {
  13.   int l=strlen(s);
  14.   int pos=(int)((80-l-2)/2);
  15.   cout<<"*";
  16.   for(int i=0;i<pos;i++)
  17.      cout<<" ";
  18.   cout<<s;
  19.   for(int i=0;i<pos;i++)
  20.      cout<<" ";
  21.   cout<<"*";
  22. }
  23. void pausa() {
  24.     fflush(stdin);
  25.     cout<<"Premi INVIO per continuare...";getchar();
  26.     }
  27. void pausatermina() {
  28.     fflush(stdin);
  29.     cout<<"Premi INVIO per terminare il programma...";getchar();
  30.     }
  31. void errore(){cout<<"Hai inserito dei valori non validi"<<endl;
  32.               pausatermina();
  33.               }
  34.  
  35. int avvio(string cmd="ncmd" ,float val1=0 ,float val2=0)
  36. {
  37.     if(cmd=="ncmd") {for(int i=0;i<80;i++)cout<<"*";
  38.     centra("Hai avviato questo programma dall'interfaccia grafica del tuo O.S.");centra("puoi anche avviarlo tramite shell facendogli eseguire comandi arbitrari.");
  39.     centra("In tal caso la sintassi del comando deve essere quella seguente:");centra(" [nome eseguibile] [comando] [valore1] [valore2]");
  40.     centra("Un esempio pu\xffffff95 essere: eseguibile1.exe somma 1 2");
  41.     for(int i=0;i<80;i++)cout<<"*";
  42.     pausa();
  43.     return 0;} else {if(cmd=="somma") {cout<<"La somma "<<val1<<"+"<<val2<<" ha come risultato "<<val1+val2<<endl;
  44.                                        pausatermina();
  45.                                        } else {cout<<"Hai avviato il programma tramite shell ma con dei parametri sbagliati: "<<cmd<<" "<<val1<<" "<<" "<<val2<<endl;
  46.                                                pausatermina();
  47.                                        }
  48.     }
  49.  
  50. return 0;
  51. }
  52.  
  53. int main(int argc,char *argv[])
  54. {
  55. std::string cmdin;float val1in,val2in;
  56. switch(argc) {case 1:
  57.               avvio();
  58.               break;
  59.               default:
  60.               cmdin = argv[1];val1in=atof(argv[2]);val2in=atof(argv[3]);
  61.               avvio(cmdin,val1in,val2in);
  62.               break;
  63. }
  64.     return 0;
  65. }