IL CODICE SORGENTE IN C++.

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