Lille problem...

Tags:    c++

Jeg er igang med at lave en lille lommeregner i C++
Men hver gang jeg har regnet noget ud så kommer resultatet osv.
Men hvad kan jeg gøre for at den "reseter", altså man starter koden forfra?
- Det er nemlig lidt irriterende at skulle åbne scriptet igen, gang på gang.
- Håber der er nogen der kan hjælpe :)




Hej Nicklas

Det er meget afhænig af hvordan du har kodet dit program. Som udgangspunkt reseter man ikke, men har en hovedløkke som sikre at ens program køre indtil brugeren afslutter via en bestemt kommando.

f.eks

#include <iostream.h>
#include <conio>
//---------------------------------------------------------------------------

int main(int argc, char* argv[])
{
char cKey;
float fNumber1,fNumber2;

do
{
clrscr();
cout << "\\nType 2 numbers:\\n";
cin >> fNumber1;
cin >> fNumber2;
cout << "\\nTotal: " << (fNumber1+fNumber2);
cout << "\\nPress e for exit ";
cKey = getche();
}
while(cKey != 'e');
return 0;
}

Hilsen
Thomas Vanting

[Redigeret d. 29/11-05 13:36:35 af Thomas Vanting]




Hej Nicklas

Det er meget afhænig af hvordan du har kodet dit program. Som udgangspunkt reseter man ikke, men har en hovedløkke som sikre at ens program køre indtil brugeren afslutter via en bestemt kommando.

f.eks

#include <iostream.h>
#include <conio>
//---------------------------------------------------------------------------

int main(int argc, char* argv[])
{
char cKey;
float fNumber1,fNumber2;

do
{
clrscr();
cout << "\\nType 2 numbers:\\n";
cin >> fNumber1;
cin >> fNumber2;
cout << "\\nTotal: " << (fNumber1+fNumber2);
cout << "\\nPress e for exit ";
cKey = getche();
}
while(cKey != 'e');
return 0;
}

Hilsen
Thomas Vanting

[Redigeret d. 29/11-05 13:36:35 af Thomas Vanting]


Jeg er ny til C++, og forstår ikke alt for meget af det du skrev der.
Men du kan se min kode her:
Fold kodeboks ind/udKode 

Måske ikke det bedste kode, men somsagt er jeg også ny til det :)
- Kan du forklare hvordan jeg får sat noget ind så man kan starte forfra uden at skulle lukke programmet, eller komme med koden? :)




Med nedenstående vil du kunne taste 99 gange. Hvis du vil kunne taste endnu flere gange, skal du ændre 100-tallet i while-løkken.

Fold kodeboks ind/udKode 


Min blog: http://winsor.hotserv.dk



Med nedenstående vil du kunne taste 99 gange. Hvis du vil kunne taste endnu flere gange, skal du ændre 100-tallet i while-løkken.

Fold kodeboks ind/udKode 


Min blog: http://winsor.hotserv.dk


Der er lidt problemer stadigvæk :(
Hver gang når den har regnet det ud, så kommer der så man kan prøve igen, men man kan ikke skifte til de andre.
F.eks. hvis jeg valgt 1 (plus) i starten så bliver den ved med at regne plus, den skifter ikke hvis man skriver f.eks. 2 (minus)

Sådan som jeg helt præcist vil have at det skal være i prompten er noget alá:

Hvad vil du regne? Plus, minus, gange eller division?
Tryk 1 for plusregning..
Tryk 2 for minusregning..
Tryk 3 for gangeregning..
Tryk 4 for divisionsregning..
Tryk nu et tal:

Så trykker man 1
Så kommer man til plus:

Skriv et tal: 1
Skriv nu tallet der skal pluses med 1: 2
Resultatet af: 1 + 2 = 3

- Alt det fungere fint, nu kommer problemet:

Så nu kommer der en tekst:

Tryk 9 for at prøve igen:

Og når man så trykker 9 kommer der kun:

Hvad vil du regne? Plus, minus, gange eller division?
Tryk 1 for plusregning..
Tryk 2 for minusregning..
Tryk 3 for gangeregning..
Tryk 4 for divisionsregning..
Tryk nu et tal:

frem, også kan man begynde forfra? :)

- Lidt indviklet, men håber i forstår





Indlæg senest redigeret d. 18.11.2007 12:22 af Bruger #8422
Jeg ville lave en løkke som aldrig blev brut ( while(1) ) så den kunne gøre det uendelig mange gange.



Jeg ville lave en løkke som aldrig blev brut ( while(1) ) så den kunne gøre det uendelig mange gange.


Kan du komme med et lille eksempel? :)



[pre]
#include <iostream>

using namespace std;

int main ()
{
int tal1,tal2;
int x,y;


while(1) //START UENDELIGM LØKKE
{
cout << "Hvad vil du regne? Plus, minus, gange eller division?" << endl;
cout << "Tryk 1 for plusregning.." << endl;
cout << "Tryk 2 for minusregning.." << endl;
cout << "Tryk 3 for gangeregning.." << endl;
cout << "Tryk 4 for divisionsregning.." << endl;
cout << "Tryk 9 for at afslutte.." <<endl; // MAN skal også kunne gå ud!
cout << "Tryk nu et tal: ";
cin >> x;

if (x == 1)
{
cout << "Skriv et tal: ";
cin >> tal1;
cout << "Skriv nu tallet der skal pluses med " << tal1 << ": ";
cin >> tal2;
cout << "Resultatet af: " << tal1 << " + " << tal2 << " = " << tal1+tal2;
}
else if (x == 2)
{
cout << "Skriv et tal: ";
cin >> tal1;
cout << "Skriv nu tallet der skal minuses med " << tal1 << ": ";
cin >> tal2;
cout << "Resultatet af: " << tal1 << " - " << tal2 << " = " << tal1-tal2;
}
else if (x == 3)
{
cout << "Skriv et tal: ";
cin >> tal1;
cout << "Skriv nu tallet der skal ganges med " << tal1 << ": ";
cin >> tal2;
cout << "Resultatet af: " << tal1 << " * " << tal2 << " = " << tal1*tal2;
}
else if (x == 4)
{
cout << "Skriv et tal: ";
cin >> tal1;
cout << "Skriv nu tallet der skal divideres med " << tal1 << ": ";
cin >> tal2;
cout << "Resultatet af: " << tal1 << " / " << tal2 << " = " << tal1/tal2;
}

else if(x == 9)
{
break;
}

cout << "";
cin >> y;
} //SLUTTER UENDELIG LØKKE
}



Fold kodeboks ind/udKode 



Har kigget lidt på. Det ser fint ud men er der en måde så man kan slette alt teksten? - Svært at forklare, men her kommer en lille forklaring:

Når man åbner kommer:

Tryk 1 for plusregning..
Tryk 2 for minusregning..
Tryk 3 for gangeregning..
Tryk 4 for divisionsregning..
Tryk 9 for at afslutte..

- Og når man så har har regnet ud, så kommer der en tekst hvor der står, tryk på 5 for at prøve igen og når man så trykker 5, så bliver alt tidligere tekst slettet i Prompten, også kommer der igen kun:

Tryk 1 for plusregning..
Tryk 2 for minusregning..
Tryk 3 for gangeregning..
Tryk 4 for divisionsregning..
Tryk 9 for at afslutte..

- Og på den måde starte forfra, stdenfor der står alle de gamle regnestykker osv. :)

Håber nogle kan hjælpe, og forstå hvad jeg mener, ellers sig til..



Indlæg senest redigeret d. 18.11.2007 12:23 af Bruger #8422
t