Ecco il codice sorgente del programma da copiare nel blocco note e salvare come file .TXT, per poterlo poi utilizzare con il compilatore DEV-C++ come già descritto in questo articolo.
------------inizio codice------------
//Programma di Grando Ruggero
//TEST CALCOLO IN ALU CON LA SERIE DI FIBONACCI RICORSIVA
#include <iostream> //includo la libreria di visualizzazione
#include <time.h> //includo la libreria della funzione time
#include <string>
#include <fstream>
#include <iomanip>
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <process.h>
using namespace std;
long fib (long); //prototipo di funzione
void outputline (const char *,const char *, const char*, const char *, int);
int main()
{
long N;
string verificatest;
string verificainse;
string leggidatabase;
cout << "TEST DI CALCOLO PER IL PROCESSORE, UNITA' ALU (operazioni con numeri interi)." << endl;
cout << "Calcolo con la serie di Fibonacci in grado di occupare al massimo i sistemi di calcolo piu' potenti." << endl;
cout << "Prima versione by Grando Ruggero";
cout << endl << endl;
cout << "Vuoi iniziare il test? (SI/NO)";
cin >> verificatest;
for (int i=0; i < verificatest.length(); i++) {
verificatest[i] = toupper (verificatest[i]);
}
while (verificatest == "SI") {
cout << "Il test calcolera' il tempo di esecuzione della serie di Fibonacci con" << " il numero 42." << endl;
int N=42;
time_t now = time (0); //nella variabile now inizia il tempo
cout << "Fibonacci (" << N << ") e' " << fib(N) << "\n\n";
time_t after = time (0); //nella variabile after è registrato il termine del calcolo di fibonacci
double seconds = difftime (after,now); //nella variabile seconds vi è la differenza in secondi tra i due test
cout << "Tempo totale di esecuzione richiesto dalla CPU in ALU " << seconds << " secondi" << endl << endl;
ofstream outsistemafile ("sistema.dat", ios::app);
if ( !outsistemafile )
{
cerr << "Il file non può essere aperto" << endl;
exit (1);
}
char CPU [30];
char SCHEDA [30];
char RAM [30];
char SISTEMA [30];
int TEST;
cout << "Per inserire i record scrivere OK" << endl;
cin >> verificainse;
for (int j=0; j < verificainse.length(); j++) {
verificainse[j] = toupper (verificainse[j]);
}
while (verificainse == "OK")
{
cout << "Inserisci il modello di processore senza spazi?"<< endl;
cin >> CPU;
cout << "Inserisci il modello di scheda madre?" << endl;
cin >> SCHEDA;
cout << "Inserisci la quantita' di ram di sistema?" << endl;
cin >> RAM;
cout << "Inserisci quale sistema operativo stai utilizzando per il test?" << endl;
cin >> SISTEMA;
cout << "Inserisci il tempo di esecuzione del test precedente del tuo sistema?" << endl;
cin >> TEST;
outsistemafile << CPU << ' ' << SCHEDA << ' ' << RAM << ' ' << SISTEMA << ' ' << TEST << '\n';
cout << "Se vuoi inserire un'altro record (digita OK), altrimenti premi un tasto per continuare." << endl;
cin >> verificainse;
for (int j=0; j < verificainse.length(); j++) {
verificainse[j] = toupper (verificainse[j]);
}
}
outsistemafile.close();
cout << "Vuoi visualizzare il database del sistema?";
cin >> leggidatabase;
for (int l=0; l< leggidatabase.length(); l++) {
leggidatabase[l] = toupper (leggidatabase[l]);
} //fine del ciclo for
while (leggidatabase == "SI")
{
cout << "Benissimo ecco la visualizzazione dei dati del database" << endl << endl;
ifstream outsistemafile ("sistema.dat", ios::in);
if (!outsistemafile) {
cerr << "Il file non può essere aperto";
exit (1);
}
cout << setiosflags (ios::left) << setw (19) << "PROCESSORE" << setw(15) << "SCHEDAMADRE" << setw(9)<< "MEMORIA" << setw (21)<< "SISTEMA OP." << setw (12)<< "RIS. TEST" << endl << endl;
while (outsistemafile >> CPU >> SCHEDA >> RAM >> SISTEMA >> TEST) {
outputline (CPU, SCHEDA, RAM, SISTEMA, TEST);
}
outsistemafile.close ();
cout << "Vuoi visualizzare nuovamente il database del test?";
cin >> leggidatabase;
for (int l=0; l< leggidatabase.length(); l++) {
leggidatabase[l] = toupper (leggidatabase[l]);
} //fine del ciclo for
}//fine del ciclo while
cout << "Vuoi iniziare di nuovo il test? ";
cin >> verificatest;
for (int i=0; i < verificatest.length(); i++) {
verificatest[i] = toupper (verificatest[i]);
} //fine del ciclo for
} // fine del ciclo while
cout << "Grazie per aver utilizzato il test";
return 0;
} //fine del main
//Definizione della funzione ricorsiva di Fibonacci
long fib(long n)
{
if (n <= 2)
return 1;
else
return fib(n-1) + fib(n-2);
}
// Definizione della funzione outpuline
void outputline (const char *proc, const char *main, const char *mem, const char *sistop, int risult)
{
cout << setiosflags (ios::left) << setw (19) << proc << setw (15) << main << setw (9)<< mem << setw(24) <<sistop << setw (5)
<< resetiosflags (ios::left)
<< setiosflags (ios::fixed | ios::showpoint)
<< risult << '\n';
}
--------------fine codice-------------
Menu Sezione/Pagina Precedente/Pagina Successiva/Torna alla Homepage
Sito:www.megaoverclock.it