Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Kalkulator wielofunkcyjny


ArcheR.

Rekomendowane odpowiedzi

Opublikowano

Od jakiegoś czasu uczę się C++ i postanowiłem zrobić coś pożytecznego :D. Jak można się domyśleć, "kalkulator" został napisany w C++ xD.
Jakie funkcje posiada?
Oprócz podstawowych funkcji (dodawanie, dzielenie, mnożenie, odejmowanie, potęgowanie, pierwiastkowanie), posiada też możliwość obliczania pól, objętości, kwadratów: sumy i różnicy oraz inne, różne wzory matematyczne. Dodatkowo pokusiłem się o dodanie funkcji losowania ;).
Program korzysta z konsoli (cmd) :D.
1397672835-U914647.png
 
Download:

http://speedy.sh/KmQJW/KalkulatorWielofunkcyjny.exe

Skan:


https://www.virustotal.com/pl/file/e5529f9424867a1667698f6f375bbd96b4b6a88d7f86f2025bcc64b3a8494a24/analysis/1397662942/

Proszę o zgłaszanie ewentualnych błędów :P.
Jestem otwarty na Wasze propozycje dot. nowych funkcji programu :).

Opublikowano

Użyteczność jest... zerowa. Nigdy jeszcze nie zdarzyło mi się z własnej woli korzystać z konsolowego kalkulatora. Taka jest ocena funkcjonalności.

Po to nam kod :)

Pobrałeś i przetestowałeś? :p

 

 

Dodałem zrzut ekranu :p.

Opublikowano

Fajne :D Ale mało użyteczne

------------------------------------------------------------


 


~`Chcesz zamówić u mnie stronę? Chcesz zapoznać się z moimi pracami? A może kojarzysz mnie z jakichś innych projektów i jesteś zainteresowany moimi usługami? Jeżeli tak to zapraszam Cię do mojego portfolio: www.theneuronsky.pl, a jeżeli nie to też Cię tam zapraszam  :)


 

------------------------------------------------------------

Opublikowano

Lololololo...

Nawet nie pobieralem ale domyslam sie ze nie da sie wpisywac skomplikowanych wyrazen(mnozenie,dzielenie,potegi,nawiasy na raz).

Jaki sens wstawianie tego "wielofunkcyjnego kalkulatora" na forum to nie wiem. Jak chcesz potrenowac to ok, ale po co tu wstawiasz i ejszcze sam program bez kodu to juz powazna zagadka.

Opublikowano

Lololololo...

Nawet nie pobieralem ale domyslam sie ze nie da sie wpisywac skomplikowanych wyrazen(mnozenie,dzielenie,potegi,nawiasy na raz).

Jaki sens wstawianie tego "wielofunkcyjnego kalkulatora" na forum to nie wiem. Jak chcesz potrenowac to ok, ale po co tu wstawiasz i ejszcze sam program bez kodu to juz powazna zagadka.

Jak już wspominałem, uczę się od niedawna.

Łapcie ten kod :c

#include <iostream>
#include <conio.h>
#include <math.h>
#include <ctime>
#include <cstdlib>
int main()
{
    srand(time(0));
    float a;
    float b;
    float c;
    float pi=3.14;
    float pottrzecia = 3;
    int wybor;


    std::cout << "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n \t Kalkulator by DxDxDxD dla mpcforum.pl \t \t Wersja: 1.0 \n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n" << std::endl;
    std::cout << "Wybierz klawisz: \n [1] Dodawanie \t [2] Odejmowanie \t [3] Mnozenie \n [4] Dzielenie \t [5]Objetosc szescianu \t [6]Potegowanie \n [7]Objetosc prostopadloscianu \t [8]Objetosc walca \n [9]Objetosc stozka \t [10]Pole trojkata \n [11]Wysokosc trojkata rownobocznego \t [12]Pole trojkata rownobocznego \n [13]Pierwiastkowanie \t [14]Pole kola \t [15]Dlugosc kola \n [16]Pole kuli \t [17]Objetosc kuli \t [18]Kwadrat sumy \n [19]Kwadrat roznicy \t [20]WYLOSUJ LICZBE \t [99] Wyjdz ";
    std::cout << "\n Wybor: ";
    std::cin >> wybor;
        switch (wybor)
        {
        case 1:


        std::cout << "Wybrales dodawanie." << std::endl;
        std::cout << "Podaj liczbe pierwsza: ";
        std::cin >> a;
        std::cout << "Podaj liczbe druga: ";
        std::cin >> b;
        std::cout <<std::endl;
        std::cout << "Dodawanie: " << a << " + " << b << " = " << a+b << std::endl;
        break;
        case 2:
        std::cout << "Wybrales odejmowanie." << std::endl;
        std::cout << "Podaj liczbe pierwsza: ";
        std::cin >> a;
        std::cout << "Podaj liczbe druga: ";
        std::cin >> b;
        std::cout << "Odejmowanie: " << a << " - " << b << " = " << a-b << std::endl;
        break;
        case 3:
        std::cout << "Wybrales mnozenie." << std::endl;
         std::cout << "Podaj liczbe pierwsza: ";
        std::cin >> a;
        std::cout << "Podaj liczbe druga: ";
        std::cin >> b;
        std::cout << "Mnozenie: " << a << " * " << b << " = " << a*b << std::endl;
        break;
        case 4:
         std::cout << "Wybrales dzielenie." << std::endl;
         std::cout << "Podaj liczbe pierwsza: ";
        std::cin >> a;
        std::cout << "Podaj liczbe druga: ";
        std::cin >> b;
        std::cout << "Dzielenie: " << a << " / " << b << " = " << a/b << std::endl;
        break;
        case 5:
        std::cout << "Wybrales objetosc szescianu." << std::endl;
         std::cout << "Podaj dlugosc a: ";
        std::cin >> a;
        std::cout << "Objetosc szescianu: " << a << " do potegi trzeciej = " << pow(a,pottrzecia) << std::endl;
        break;
        case 6:
        std::cout << "Wybrales potegowanie." << std::endl;
         std::cout << "Podaj liczbe pierwsza: ";
        std::cin >> a;
        std::cout << "Podnies liczbe pierwsza do potegi: ";
        std::cin >> b;
        std::cout << "Potegowanie: " << a << " do potegi "<< b << " = " << pow(a, << std::endl;
        break;
        case 7:
        std::cout << "Wybrales objetosc prostopadloscianu." << std::endl;
        std::cout << "Podaj dlugosc a: ";
        std::cin >> a;
        std::cout << "Podaj dlugosc b: ";
        std::cin >> b;
        std::cout << "Podaj dlugosc c: ";
        std::cin >> c;
        std::cout << "Objetosc prostopadloscianu: " << a << " * "<< b << " * " << c << " = " << a*b*c << std::endl;
        break;
        case 8:
        std::cout << "Wybrales objetosc walca." << std::endl;
        std::cout << "Podaj promien: ";
        std::cin >> a;
        std::cout << "Podaj wysokosc: ";
        std::cin >> b;
        std::cout << "Objetosc walca: " << a << " do potegi drugiej * "<< b << " = " << pow(a,2)*b << " pi" << std::endl;
        std::cout << " \t \t \t Mnozac pi (3,14) = " << pow(a,2)*b*pi<< std::endl;
        break;
        case 9:
        std::cout << "Wybrales objetosc stozka." << std::endl;
        std::cout << "Podaj promien: ";
        std::cin >> a;
        std::cout << "Podaj wysokosc: ";
        std::cin >> b;
        std::cout << "Objetosc stozka: " << "1/3 * " << a << " do potegi drugiej * "<< b << " = " << pow(a,2)*b*1/3 << " pi" << std::endl;
        std::cout << " \t \t \t Mnozac pi (3,14) = " << pow(a,2)*b*pi<< std::endl;
        break;
        case 10:
        std::cout << "Wybrales pole trojkata." << std::endl;
        std::cout << "Podaj dlugosc a: ";
        std::cin >> a;
        std::cout << "Podaj wysokosc: ";
        std::cin >> b;
        std::cout << "Pole trojkata: " << "("<< a << " * "<< b << ")" << "/2"<< " = " << (a*b)/2 << std::endl;
        break;
        case 11:
        std::cout << "Wybrales wysokosc trojkata rownobocznego." << std::endl;
        std::cout << "Podaj dlugosc a: ";
        std::cin >> a;
        std::cout << "Wysokosc trojkata rownobocznego: " << a << " /2 = " << a/2 << " pierwiastek 3ciego stopnia" << std::endl;
        break;
        case 12:
        std::cout << "Wybrales pole trojkata rownobocznego." << std::endl;
        std::cout << "Podaj dlugosc a: ";
        std::cin >> a;
        std::cout << "Pole trojkata rownobocznego: " << "("<< a << " do potegi drugiej)/4 = " << (pow(a,2))/4 << " pierwiastek 3ciego stopnia" << std::endl;
        break;
        case 13:
        std::cout << "Wybrales pierwiastkowanie." << std::endl;
        std::cout << "Podaj liczbe, ktora chcesz pierwiastkowac: ";
        std::cin >> a;
        std::cout << "Podaj wartosc pierwiastka: ";
        std::cin >> b;
        std::cout << "Pierwiastek " << b << " stopnia z " << a << " jest rowny = " << pow( a,( 1 / b ) ) << std::endl;
        break;
        case 14:
        std::cout << "Wybrales pole kola." << std::endl;
        std::cout << "Podaj promien: ";
        std::cin >> a;
        std::cout << a << " do potegi drugiej * pi = " << pow(a,2) << "pi" << std::endl;
        std::cout << " \t \t \t Mnozac pi (3,14) = " << pow(a,2)*pi<< std::endl;
        break;
        case 15:
        std::cout << "Wybrales dlugosc kola." << std::endl;
        std::cout << "Podaj promien: ";
        std::cin >> a;
        std::cout << a << " * 2 * pi = " << 2*a << "pi" << std::endl;
        std::cout << " \t \t Mnozac pi (3,14) = " << 2*a*pi<< std::endl;
        break;
        case 16:
        std::cout << "Wybrales pole kuli." << std::endl;
        std::cout << "Podaj promien: ";
        std::cin >> a;
        std::cout << a << " do potegi drugiej * 4 * 4/3 * pi = " << pow(a,2)*4 << "pi" << std::endl;
        std::cout << " \t \t Mnozac pi (3,14) = " << pow(a,2)*4*pi<< std::endl;
        break;
        case 17:
        std::cout << "Wybrales objetosc kuli." << std::endl;
        std::cout << "Podaj promien: ";
        std::cin >> a;
        std::cout << a << " do potegi drugiej * 4 * 4/3 * pi = " << pow(a,2)*4/3 << "pi" << std::endl;
        std::cout << " \t \t Mnozac pi (3,14) = " << pow(a,2)*4/3*pi<< std::endl;
        break;
        case 18:
        std::cout << "Wybrales kwadrat sumy." << std::endl;
        std::cout << "Podaj pierwsza liczbe: ";
        std::cin >> a;
        std::cout << "Podaj druga liczbe: ";
        std::cin >> b;
        std::cout << a << " do potegi drugiej + 2 * " << a << " * " << b << " + " << b << " do potegi drugiej = " << pow(a,2)+2*a*b+pow(b,2) << std::endl;
        break;
        case 19:
        std::cout << "Wybrales kwadrat roznicy." << std::endl;
        std::cout << "Podaj pierwsza liczbe: ";
        std::cin >> a;
        std::cout << "Podaj druga liczbe: ";
        std::cin >> b;
        std::cout << a << " do potegi drugiej - 2 * " << a << " * " << b << " + " << b << " do potegi drugiej = " << pow(a,2)-2*a*b+pow(b,2) << std::endl;
        break;
        case 20:
        {
        int x;
        int xx;
        int xxx;
        int licznik = 0;
        std::cout << "Wybrales losowanie liczb." << std::endl;
        std::cout << "Podaj liczbe poczatkowa: ";
        std::cin >> x;
        std::cout << "Podaj liczbe koncowa: ";
        std::cin >> xx;
        std::cout << "Podaj ilosc liczb, ktore maja zostac wylosowane: ";
        std::cin >> xxx;
        int sprawdzacz = xx-x;
        if (sprawdzacz < xxx)
        {
            std::cout << "Nie mozesz wylosowac tylu liczb z tego zakresu!" << std::endl;
        }
        else
        {


        std::cout << "Wylosowane liczby to: ";
            do
            {
            std::cout << (rand() %( xx- x + 1 ) + x)<< ", ";
            licznik++;
            }while (licznik !=xxx);
        }
        std::cout << std::endl;
        }
        break;
        case 99:
        std::cout << "Wybrales wyjscie. Nadus dowolny przycisk aby zakonczyc." << std::endl;
        break;
        default:
        std::cout << "Brak funkcji o tym numerze." << std::endl;
        }
    getch();
    return 0;
} 
Opublikowano
float pi=3.14;

Dlaczego nie lepsza dokładność?

 

float pottrzecia = 3;

totalny wtf

 

 

zamiast pow(a,2) imo lepiej pisać po prostu a*a, lepiej czytelne

Opublikowano

nie nazywaj zmiennych jednocześnie

x, xx, xxx

 

naucz się formatować kod

 

rozbij program na funkcje

 

zamiast std::endl używaj '\n' chyba, że koniecznie potrzebujesz tamtego

 

zmień precyzję na double/long double bo czemu nie

 

nie używaj conio.h

 

nie przytrzymuj konsoli na końcu

 

Nie wypisuj działań, tylko wynik. Inaczej się zamęczysz przy bardziej skomplikowanych (użytkownika też zamęczysz).

 

'podaj liczbe pierwsza' --> 'podaj pierwsza liczbe'

'podaj dlugosc a' --> 'podaj dlugosc pierwszego boku'

i pewnie kilka innych takich się znajdzie

 

zamiast 18 i 19 zaimplementuj ONP

 

reszta albo ujdzie albo coś przeoczyłem

Opublikowano

nie nazywaj zmiennych jednocześnie

x, xx, xxx

 

naucz się formatować kod

 

rozbij program na funkcje

 

zamiast std::endl używaj '\n' chyba, że koniecznie potrzebujesz tamtego

 

zmień precyzję na double/long double bo czemu nie

 

nie używaj conio.h

 

nie przytrzymuj konsoli na końcu

 

Nie wypisuj działań, tylko wynik. Inaczej się zamęczysz przy bardziej skomplikowanych (użytkownika też zamęczysz).

 

'podaj liczbe pierwsza' --> 'podaj pierwsza liczbe'

'podaj dlugosc a' --> 'podaj dlugosc pierwszego boku'

i pewnie kilka innych takich się znajdzie

 

zamiast 18 i 19 zaimplementuj ONP

 

reszta albo ujdzie albo coś przeoczyłem

conio.h nie znam, użyty tylko dla 'getch()'

ONP??

Formatować kod? :D

Nie przetrzymywać konsoli na końcu? :O

Napiszesz mi przykładową funkcję, którą mógłbym podmienić? :p

Opublikowano
conio.h nie znam, użyty tylko dla 'getch()'

 

nie mówię, że go znasz, tylko żebyś go nie używał

 

ONP??

Formatować kod? :D

 

--> google

 

Nie przetrzymywać konsoli na końcu? :O

 

Nie, jak uruchomisz kod z poziomu konsoli to windows ją podtrzyma.

 

Napiszesz mi przykładową funkcję, którą mógłbym podmienić? :P

osobna funkcja dla każdej opcji jaką masz w programie

Opublikowano

nie mówię, że go znasz, tylko żebyś go nie używał

 

--> google

 

Nie, jak uruchomisz kod z poziomu konsoli to windows ją podtrzyma.

 

osobna funkcja dla każdej opcji jaką masz w programie

Przykład 1 funkcji, bo u mnie funkcje leżą xD.

Opublikowano

Interface i wygląd lipny.. Wiem że to jest w Ddosie ( konsoli  ) ale nie za bardzo miłe dla oka. Dodatkowo owe obliczenia można szybciej obliczyć w googlach :)

Opublikowano

Interface i wygląd lipny.. Wiem że to jest w Ddosie ( konsoli  ) ale nie za bardzo miłe dla oka. Dodatkowo owe obliczenia można szybciej obliczyć w googlach :)

 

Jak już wspominałem, uczę się od niedawna.

 

Takie rzeczy szybciej i wygodniej można policzyć nawet w google

;)

Opublikowano
int dodawanie(int a, int 
{
     blablabla
}  

Konkretnie, a nie 'blablabla', bo tyle też wiem xD.

 

A np.

int dodawanie(int a, int  
{
     int wynik;
int a;
int b;
std::cout << "Podaj pierwsza liczbe";
std::cin >> a;
std::cout << "Podaj druga liczbe";
std::cin >>b;
wynik = a+b;
return wynik;
} 

?

Opublikowano

Oj tam, co w tych funkcjach takiego fajnego (np. w tym programie), długość kodu jest porównywalna :D.

Funkcje mogą przyjmować nieskończenie wiele argumentów(chodź pewnie jakieś ograniczenie jest, ale mniejsza o to). Możesz, więc z użyciem tablic i funkcji stworzyć kalkulator, który nie doda, odejmie i pomnoży przez siebie tylko dwóch liczb, ale tyle ile użytkownik będzie miał do policzenia. Chyba zrozumiale przedstawiłem tobie jeden z plusów zastosowania tutaj funkcji? :)

 

Aby ci pomóc odsyłam do dokumentacji biblioteki odpowiadającej za tworzenie list argumentów:

 http://www.cplusplus.com/reference/cstdarg/ 

.

 

Co do kodu źródłowego kalkulatora... Zamiast pisać wszędzie std:: możesz przed main'em wklepać: using namespace std;. Wtedy przykładowa procedura wyjścia wyglądałaby: cout << "Nie musze juz pisac wszedzie std::\n";

 

Po case 1:, case2: itd. Powinieneś definiować blok, czyli stawiać nawias klamrowy. Np.:

switch(zmienna)
{
case 1:
{
kod
kod
kod
}
break;
}

Mógłbyś też poczytać o wcięciach, bo tutaj wszystko się na siebie zlewa :P

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...