[C++] Problem z kalkulatorem
Ostatnio zmodyfikowano 2016-03-13 19:35
ZielonyCplusplus Temat założony przez niniejszego użytkownika |
[C++] Problem z kalkulatorem » 2016-03-13 16:11:20 Witam, jestem początkujący i mam jak dla mnie wielki problem i nie wiem jak mu zaradzic, siedzę nad tym cały dzień. Otóż piszę program który ma liczby z dziesietnego zamienic na inne systemy i problem jest taki że za każdym kolejnym razem poprzednie wyniki nie znikają przy obecnym. I nie wiem jak w tym programie dodać funkcje, aby wypisywała wyniki do notatnki, z góry dziękuję :)
#include <iostream> #include <fstream> #include <cstdlib> #include <conio.h>
using namespace std;
int liczba[100],i=0,j; char a; int n; int main() { while(true) { cout<<endl<<endl; cout<<"Na jakim system liczbowy chcesz zamienic swoja liczbe?"<<endl; cout<<"MENU GLOWNE"<<endl; cout<<"-----------------"<<endl; cout<<"1. koniec programu"<<endl; cout<<"2. dwojkowy"<<endl; cout<<"3. trojkowy"<<endl; cout<<"4. czworkowy"<<endl; cout<<"5. piatkowy"<<endl; cout<<"6. szostkowy"<<endl; cout<<"7. siodemkowy"<<endl; cout<<"8. osemkowy"<<endl; cout<<"9. dziewiatkowy"<<endl<<endl;
a=getch(); cout<<"Podaj liczbe: "; cin>>n; switch(a) { case '1': exit(0); break;
case '2': {
while(n>0) { liczba=n%2; i++; n=n/2; } cout<<"Liczba w systemie dwojkowym to: "; for(j=i-1; j>=0; j--) { cout<<liczba[j]; }
} break; case '3': { while(n>0) { liczba=n%3; i++; n=n/3; } cout<<"Liczba w systemie trojkowym to: "<<endl; for(j=i-1; j>=0; j--) { cout<<liczba[j]; } } break; case '4': { while(n>0) { liczba=n%4; i++; n=n/4; } cout<<"Liczba w systemie czworkowym to: "<<endl; for(j=i-1; j>=0; j--) { cout<<liczba[j]; } } break; case '5': { while(n>0) { liczba=n%5; i++; n=n/5; } cout<<"Liczba w systemie piatkowy to: "<<endl; for(j=i-1; j>=0; j--) { cout<<liczba[j]; } } break; case '6': { while(n>0) { liczba=n%6; i++; n=n/6; } cout<<"Liczba w systemie szostkowym to: "<<endl; for(j=i-1; j>=0; j--) { cout<<liczba[j]; } } break; case '7': { while(n>0) { liczba=n%7; i++; n=n/7; } cout<<"Liczba w systemie siodemkowym to: "<<endl; for(j=i-1; j>=0; j--) { cout<<liczba[j]; } } break; case '8': { while(n>0) { liczba=n%8; i++; n=n/8; } cout<<"Liczba w systemie osemkowym to: "<<endl; for(j=i-1; j>=0; j--) { cout<<liczba[j]; } } break; case '9': { while(n>0) { liczba=n%9; i++; n=n/9; } cout<<"Liczba w systemie dziewiatkowym to: "<<endl; for(j=i-1; j>=0; j--) { cout<<liczba[j]; } } default: cout<<"Nie ma takiej opcji!"<<endl; break;
} getchar();getchar(); system("cls"); } return 0; } |
|
mateczek |
» 2016-03-13 16:53:08 1. wstawiaj kod w znaczniki [cpp][/cpp] 2 . aby wypisywała wyniki do notatnki, |
co autor miał na myśli ?? czyszczenie ekranu można system("cls") 3 . nie powtarzaj 10 razy tego samego zrób funkcję!!! #include <iostream> #include<string> using namespace std; string toStr( int liczba, int base ) { string wynik = ""; while( liczba ) { int cyfra = liczba % base; if( cyfra < 10 ) wynik.insert( wynik.begin(), cyfra + '0' ); else wynik.insert( wynik.begin(), cyfra - 10 + 'A' ); liczba /= base; } return wynik; }
int main()
{ int base; int liczba; while( cin >> liczba >> base ) { system( "cls" ); cout << toStr( liczba, base ) << endl; } }
|
|
ZielonyCplusplus Temat założony przez niniejszego użytkownika |
» 2016-03-13 17:05:38 Napisałem tak:
#include <iostream> #include <fstream> #include <cstdlib> #include <conio.h>
using namespace std;
int liczba[100],i=0,j; char a; int n,b; int main() { while(true) { cout<<endl<<endl; cout<<"Na jakim system liczbowy chcesz zamienic swoja liczbe?"<<endl; cout<<"MENU GLOWNE"<<endl; cout<<"-----------------"<<endl; cout<<"1. koniec programu"<<endl; cout<<"2. dwojkowy"<<endl; cout<<"3. trojkowy"<<endl; cout<<"4. czworkowy"<<endl; cout<<"5. piatkowy"<<endl; cout<<"6. szostkowy"<<endl; cout<<"7. siodemkowy"<<endl; cout<<"8. osemkowy"<<endl; cout<<"9. dziewiatkowy"<<endl<<endl; cout<<"Wybierz:"<<endl; cin>>b; if(b==1) { cout<<"KONIEC PROGRAMU!"; exit(0); } else cout<<"Podaj liczbe:"<<endl; cin>>n; if(b==1) { cout<<"KONIEC PROGRAMU!"; exit(0); } else { while(n>0) { liczba=n%b; i++; n=n/b; } cout<<"Liczba w systemie "<<b<<"-kowym to: "; for(j=i-1; j>=0; j--) { cout<<liczba[j]; } } getchar();getchar(); system("cls");
}
return 0; } |
|
mateczek |
» 2016-03-13 17:23:43 chcesz wyniki do pliku proszę. 1. odpalasz program i wpisujesz dwie liczby po spacji np: 15 2 Będzie to liczba 15 w kodzie dwójkowym. da wynik 1111 analogicznie: 15 16 liczba 15 w kodzie szesnastkowym da wynk F 2. podanie literki zakończy program 3. sprawdzasz plik mojewyniki.txt #include <iostream> #include<fstream> #include<string> using namespace std; string toStr( int liczba, int base ) { string wynik = ""; while( liczba ) { int cyfra = liczba % base; if( cyfra < 10 ) wynik.insert( wynik.begin(), cyfra + '0' ); else wynik.insert( wynik.begin(), cyfra - 10 + 'A' ); liczba /= base; } return wynik; }
int main()
{ int base, liczba; fstream plik; plik.open( "mojewyniki.txt", std::ios::out ); while( cin >> liczba >> base ) { plik << "liczba " << liczba << " w systemie " << base << " = " << toStr( liczba, base ) << endl; } plik.close(); }
|
|
ZielonyCplusplus Temat założony przez niniejszego użytkownika |
» 2016-03-13 17:32:05 Dziękuję, lecz chciałbym się dowiedzieć jak do tego mojego konkretnego programu zastosować wpisywanie do pliku :) I jeszcze mam taki program, że wyniki się kumulują po kilku obliczeniach... Dziekuje za pomoc!
#include <iostream> #include <fstream> #include <cstdlib> #include <conio.h>
using namespace std;
int liczba[100],i=0,j; char a; int n,b; int main() {
while(true) { cout<<endl<<endl; cout<<"Na jakim system liczbowy chcesz zamienic swoja liczbe?"<<endl<<endl; cout<<"MENU GLOWNE"<<endl; cout<<"-----------------"<<endl; cout<<"1. koniec programu"<<endl; cout<<"2. dwojkowy"<<endl; cout<<"3. trojkowy"<<endl; cout<<"4. czworkowy"<<endl; cout<<"5. piatkowy"<<endl; cout<<"6. szostkowy"<<endl; cout<<"7. siodemkowy"<<endl; cout<<"8. osemkowy"<<endl; cout<<"9. dziewiatkowy"<<endl<<endl; cout<<"Wybierz:"<<endl; cin>>b; if(b==1) { cout<<"KONIEC PROGRAMU!"; exit(0); } else cout<<"Podaj liczbe:"<<endl; cin>>n;
{ while(n>0) { liczba=n%b; i++; n=n/b; } cout<<"Liczba w systemie "<<b<<"-kowym to: "; for(j=i-1; j>=0; j--) { cout<<liczba[j]; } } getchar();getchar(); system("cls");
} return 0; } |
|
carlosmay |
» 2016-03-13 19:35:13 1. wstawiaj kod w znaczniki |
Jak grochem o ścianę. |
|
« 1 » |