1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225
| scors.cpp
/* fichier de base */
//le fichier à ouvrir peut étre modifié simplement en changean la constante Nom et la somme gagne
//juste en modifian la variable : ValeurAjou toute deux dans "variable.h"
#include <fstream>
#include <iostream>
#include <sstream>
using namespace std;
int main(int nNumberofArgs , char* pszArgs[])
{
# include <variable>//je delegue la responssabilité de cree les variable à variable.h
// cette parti ne sert que pour plus tard dans le listing le but est de
// détérminé les valeur des caractéres de l'ordianteur sous lequel il tourne
// Le faire dans une classe ne serait pas une mauvaise idée mais je comprend pas
// comment on utilise une fonction
char Carach[2]= "0" ;
int nat = 0 ;
for (; ; )// a partir du 0 je peut deviné les 9 autre chiffre
{
nat = nat +1 ;
if ( (char) nat == Carach[0] )
{ break;}
}
// maintenan je vois pour la virgule : j'en aurez besoin aussi
char Caravir[2] = ",";
int vir = 0 ;
for (; ; )
{if ( Caravir[1] == (char) vir )
{break ; }
vir ++ ;
}
// finit: maintenan que c'est fais on passe au chose sérieuse :
ifstream* pFileStream = new ifstream (Nom);//ouvre le fichier contenu dans nom
if (!pFileStream->good()) //si l'ouverture n'est pas bonne
{
cout << "impossible d'ouvrir :"
<< Nom
<<"\n"
<<"le fichier va etre reecri "
<<"si vous jouez pour la premier fois c'est normal ..."
<< endl ;
system ("PAUSE");
ValeurDebu = 0 ;
#include "operation.h"//delegation de l'operation
ofstream my(Nom);//ouvre le fichier contenu dans la constante "Nom"
my << ecriture //ecrir la valeur de "ecriture" dans le fichier texte
<< ","
<< endl ; //fin
cout << "resultat :"<< ecriture <<"\n"; //affiche le resultat
system ("PAUSE");
return 0; //fin du programme
}
else //si non
{
for(; ; )//boucle sans argument donc qui ne se termine pas mais qui permet l'utilisation de break
{
char lecture[256];
pFileStream -> getline( lecture,256 );//en gros il attibu les caractere du texte à la chaine
//de caractere lecture de 256 caractere
if (pFileStream -> fail())//permet de rendre le programme plus robuste
{
break;
}
cout<< "somme actuel :" << lecture << "\n";
system ("PAUSE");
cout<<"additione à :\n" << ValeurAjou << "\n";
system ("PAUSE");
int i = 0 ;
for(; ; )//boucle infini
{
if (lecture[i] == (char) vir )// si le caractere est une virgule
{ cout << "nat = " << nat << "\n";
cout << i << ":"<<< "\n" ;
i= i - 1 ; // on fais en sorte que i possede les coordoné du premier chiffre avans la virgule
cout << " fin de la boucle infini 1 i= "<< i << "\n" ;
cout << " ------------------------- \n";
break ;//et fin de la boucle
}
i++ ; // i + 1
} // cette boucle remplace avantagesement les centaine de ligne avec if de la verssion 1.1 et 1.2
int m = 1 , c = 0 , r = 0;
i = i -1 ;
for (; ; )
{
cout << i <<" = " << lecture[i]<< "\n" ;
c = (char) lecture[i] ;
cout << c << "\n" ;
#include <instin>
cout << r << " fois " << m <<" eguale " << r*m << "\n";
ValeurDebu = ValeurDebu + ( r * m); // r (retour) represente l'unité et m le multiple de 10
// par exemple 123 = 1*3 + 2 * 10 + 1 * 100
//c'est l'idee ici : cree un nombre par couche de 10
//l'avantage est que se sistem n'a pas de limite
cout << "ValeurDebu = " << ValeurDebu << "\n" ;
system ("PAUSE");
i= i - 1 ;
m = m * 10 ;
if (i < 0) {break;}
}
//ci dessou c'est un cas impossible qui revelle la triche de l'utilisation
//ou un bug inatendu .
if (ValeurDebu < ValeurAjou)//ça arrive quand on demande la valeur d'un caractere
{
cout <<"erreur :resultat improbable !\n";
cout <<"soit il y a eu une erreur suite à une tricheri \n";
cout <<"soit vous étes arrivée à la limite .\n";
cout <<"(ce qui est peu probable )\n" ;
cout <<"reinitialisasion par defo ... "<<"\n" ;
cout <<" vous reparte a 50 \n" ;
system ("PAUSE");
ValeurDebu = 50 ;//comme la somme est impossible on la defini arbitraireman à 50
}
#include <operation> //je l'ai delegué mais j'était pas obligé vu la taille de l'operation
cout << ValeurDebu << "+" << ValeurAjou << "\n";//on voi ce qu'il ce passe comme
//sa perssone ne peut refuté le calcull (tant qu'il est vrai)
cout << "resultat :"<< ecriture <<"\n";
system ("PAUSE");
//ecriture de la valeur dans le fichier:
ofstream my(Nom);//on reouvre le fichier (on le cree si il existe pas
my << ecriture //on ecrit la valeur comptenu dans ecriture
<<","
<< endl ; //c'est fini pour l'ecriture
return 0; //fin du programme
}
}
}//fin du listing
instin.h // j'ai developé ce programme pour la converssion d'un caractere qui represente un nombre
//en une valeur mais faites en se que vous voulez ...
#include "caractere.h"
if ( c == (char) nul )
{
r = 0 ;
}
if (c == (char) un )
{
r = 1 ;
}
if ( c == (char) deux )
{
r = 2 ;
}
if ( c == (char) trois )
{
r = 3 ;
}
if ( c == (char) quatre )
{
r = 4 ;
}
if ( c == (char) cinq )
{
r = 5 ;
}
if ( c == (char) six )
{
r = 6 ;
}
if ( c == (char) sept )
{
r = 7 ;
}
if ( c == (char) huit )
{
r = 8 ;
}
if ( c == (char) neuf )
{
r = 9 ;
}
caractere.h
//je cree les variable pour definir les numeros de caractére
//cette fois ce listing n'est pas aussi indépendant malheuresement
int nul = nat , un = nat + 1 , deux = nat + 2 ,trois = nat + 3 ;
int quatre = nat + 4 , cinq = nat + 5, six = nat + 6 ;
int sept = nat + 7 , huit = nat + 8 , neuf = nat + 9 ;
opreration.h
#include "iostream"
ecriture = ValeurDebu + ValeurAjou;
variable.h
double ecriture , ValeurAjou = 50 ,ValeurDebu = 0 ;//en double pour eviter l'arrivé à la limite
//(du moin dans une vie)
const char Nom[] = "scor.txt"; //la constante Nom de type char contien le nom du fichier |
Partager