C'est une calculatrice crée avec borland C++ builder 6. Elle peut aditionner, soustraire, elever à une puissance, et diviser mais entière...
Vous pouvez ensuite créer un fichier de log avec tout les calcul effectuer. Il s'enregistre dans le meme repertoire que le *.exe
Son contenu est aussi visible lors de l'utilisation.
Source / Exemple :
//---------------------------------------------------------------------------
#include <vcl.h>
#include <stdio.h>
#pragma hdrstop
#include "ufmMain.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFmMain *FmMain;
//=========================================
//Projet calculatrice Follonier 10.06.2006
//=========================================
char affichage[25];
char affichageClear[25];
char memo[100];
int nombre1;
int nombre2;
int nombreIni;
int resultat;
int operation = 0;
int i;
int numerocalc = 0;
//---------------------------------------------------------------------------
__fastcall TFmMain::TFmMain(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::Button0Click(TObject *Sender)
{
strcat(affichage,"0");//concaténation du nombre a la fin de la chaîne
EdAffichage->Text = affichage;//affichage de la chaîne
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::Button1Click(TObject *Sender)
{
strcat(affichage,"1");
EdAffichage->Text = affichage;
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::Button2Click(TObject *Sender)
{
strcat(affichage,"2");
EdAffichage->Text = affichage;
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::Button3Click(TObject *Sender)
{
strcat(affichage,"3");
EdAffichage->Text = affichage;
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::Button4Click(TObject *Sender)
{
strcat(affichage,"4");
EdAffichage->Text = affichage;
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::Button5Click(TObject *Sender)
{
strcat(affichage,"5");
EdAffichage->Text = affichage;
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::Button6Click(TObject *Sender)
{
strcat(affichage,"6");
EdAffichage->Text = affichage;
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::Button7Click(TObject *Sender)
{
strcat(affichage,"7");
EdAffichage->Text = affichage;
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::Button8Click(TObject *Sender)
{
strcat(affichage,"8");
EdAffichage->Text = affichage;
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::Button9Click(TObject *Sender)
{
strcat(affichage,"9");
EdAffichage->Text = affichage;
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::ButtonClearClick(TObject *Sender)
{
stpcpy(affichage,affichageClear);//copie d'une chaîne vide sur affichage
EdAffichage->Text = affichage;//affichae affichage
sprintf(memo," CLEAR");
Memo1->Lines->Insert(0,memo);
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::ButtonBackClick(TObject *Sender)
{
int position = StrLen(affichage);//detection du dernier caractère
affichage[position-1] = 0;//effacement du dernier caractère visible
EdAffichage->Text = affichage;//affichage de la chaîne
sprintf(memo," BACK");
Memo1->Lines->Insert(0,memo);
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::ButtonPowerClick(TObject *Sender)
{ AnsiString testnb;
testnb = affichage;
if(testnb ==""){
sprintf(memo,"ERREUR ENTRER UN NOMBRE ENTIER");
Memo1->Lines->Insert(0,memo);
EdAffichage->Text = memo;
}
else{
operation = 1;//indicateur pour l'action du bouton égal
nombre1 = StrToInt(affichage);//enregistrement du 1er nombre
nombreIni = nombre1;//copie du 1er nombre dans une 2em variable pour le calcul
stpcpy(affichage,affichageClear);
EdAffichage->Text = affichage;
}
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::ButtonPlusClick(TObject *Sender)
{ AnsiString testnb;
testnb = affichage;
if(testnb ==""){
sprintf(memo,"ERREUR ENTRER UN NOMBRE ENTIER");
Memo1->Lines->Insert(0,memo);
EdAffichage->Text = memo;
}
else{
operation = 2;//indicateur pour l'action du bouton égal
nombre1 = StrToInt(affichage);//enregistrement du 1er nombre
stpcpy(affichage,affichageClear);
}
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::ButtonProduitClick(TObject *Sender)
{ AnsiString testnb;
testnb = affichage;
if(testnb ==""){
sprintf(memo,"ERREUR ENTRER UN NOMBRE ENTIER");
Memo1->Lines->Insert(0,memo);
EdAffichage->Text = memo;
}
else{
operation = 3;
nombre1 = StrToInt(affichage);
stpcpy(affichage,affichageClear);
}
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::ButtonDiviserClick(TObject *Sender)
{ AnsiString testnb;
testnb = affichage;
if(testnb ==""){
sprintf(memo,"ERREUR ENTRER UN NOMBRE ENTIER");
Memo1->Lines->Insert(0,memo);
EdAffichage->Text = memo;
}
else{
operation = 4;
nombre1 = StrToInt(affichage);
stpcpy(affichage,affichageClear);
}
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::ButtonMoinClick(TObject *Sender)
{ AnsiString testnb;
testnb = affichage;
if(testnb ==""){
sprintf(memo,"ERREUR ENTRER UN NOMBRE ENTIER");
Memo1->Lines->Insert(0,memo);
EdAffichage->Text = memo;
}
else{
operation = 5;
nombre1 = StrToInt(affichage);
stpcpy(affichage,affichageClear);
}
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::ButtonEgalClick(TObject *Sender)
{ AnsiString testnb;
testnb = affichage;
if(testnb ==""){
sprintf(memo,"ERREUR ENTRER UN NOMBRE ENTIER");
Memo1->Lines->Insert(0,memo);
EdAffichage->Text = memo;
}
else{
numerocalc = numerocalc +1;
resultat = 0;
i = 1;
nombre2 = StrToInt(affichage);//enregistrement du 2em nombre
// Tri de l'opération effectuée en fonction de l'opération selectionnée //
if(operation == 1){
for(i ; nombre2 > i ; i++){ //boucle pour
nombre1 = nombre1 * nombreIni; //élever nombre1
resultat = nombre1; //à l'exposant
} //nombre2
sprintf(memo,"%d-> %d p %d = %d",numerocalc,nombreIni,nombre2,resultat);
}
if(operation == 2){
resultat = nombre1 + nombre2;//addition de nombre1 a nombre2
sprintf(memo,"%d-> %d + %d = %d",numerocalc,nombre1,nombre2,resultat);
}
if(operation == 3){
resultat = nombre1 * nombre2;//produit de nombre1 et nombre2
sprintf(memo,"%d-> %d * %d = %d",numerocalc,nombre1,nombre2,resultat);
}
if(operation == 4){
resultat = nombre1 / nombre2;
sprintf(memo,"%d-> %d / %d = %d",numerocalc,nombre1,nombre2,resultat);
}
if(operation == 5){
resultat = nombre1 - nombre2;
sprintf(memo,"%d-> %d - %d = %d",numerocalc,nombre1,nombre2,resultat);
}
stpcpy(affichage,affichageClear);
EdAffichage->Text = resultat;
Memo1->Lines->Insert(0,memo);
}
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::FormCreate(TObject *Sender)
{
Memo1->Clear();
Memo1->ReadOnly = true;
sprintf(memo,"Nb les opérations sont effectuées avec des entiers, la division ne donne que des résultat avec reste.");
Memo1->Lines->Insert(0,memo);
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::BuSaveMemoClick(TObject *Sender)
{
AnsiString Save1;
AnsiString Save2;
AnsiString Save3;
int nbLign = Memo1->Lines->Count;
Save1 = "UN DOCUMENT LOG A ETE SAUVE DANS LE MEME REPERTOIRE QUE LE *.EXE";
Save2 = "IL CONTIENT TOUT LES CALCULS EFFECTUER PAR LE PROGRAMME:";
Save3 = "(-: Il A ETE ECRIS PAR MICHAEL FOLLONIER :-)";
Memo1->Lines->Insert(0,Save1);
Memo1->Lines->Insert(1,Save2);
Memo1->Lines->Insert(nbLign+2,Save3);
AnsiString logfileName;
logfileName = "CalculLog.log";
Memo1->Lines->SaveToFile(logfileName);
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::BuShowClick(TObject *Sender)
{
Memo1->Visible = true;
}
//---------------------------------------------------------------------------
void __fastcall TFmMain::ColorBox1Select(TObject *Sender)
{
Panel1->Color = ColorBox1->Selected;
}
//---------------------------------------------------------------------------
Conclusion :
...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.