Portál AbcLinuxu, 17. leden 2018 06:33

Dotaz: OOP C++ CLion kruznica

27.9.2017 18:17 kloko | skóre: 1
OOP C++ CLion kruznica
Přečteno: 1005×
Odpovědět | Admin
Dobrý deň, Máme zadanie: Navrhnite objekt, jeho vlastnosti a metódy Vytvorte objekt Kruznica, ktorý bude mať nasledovné vlastnosti:

názov: typ znak polomer: typ reálne číslo a nasledovné metódy:

konštruktor s dvoma parametrami: polomer a názov (implicitná hodnota je "K" konštruktor bez parametra(vypýta si polomer aj názov) getery a setery pre polomer aj názov vypočíta obvod kružnice a vráti ho vypočíta obsah kružnice a vráti ho vypíše parametre kružnice (názov, polomer, obsah, obvod) zväčší polomer kružnice o reálnu hodnotu, ktorú dostane ako parameter Odovzdajte zozipovaný súbor, v ktorom bude hlavičkový súbor a zdrojový súbor s implementáciami metód. Rozdelenie metód a vlastností na privátne a súkromné navrhnite sami. // // // neviem si stym moc rady, pretoze som chybal na posldnej hodine a nemam ziadne materialy z ktorych by som si to mohol pripomenut... dufam, ze by sa tu nasiel niekto sikovny a pomohol mi toto napisat.. nieco uz aj napisane mam to davam sem: https://pastebin.com/raw/pxyiTmHG ... v tomto odkaze najdete cca postup ako to riesit ale nie je to uplne syntakticky spravne a neviem si uz moc rady tak pisem sem.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 2× (Tommy Angelo, kloko (tazatel))
27.9.2017 18:45 NN
Rozbalit Rozbalit vše Re: OOP C++ CLion kruznica
Odpovědět | | Sbalit | Link | Blokovat | Admin
Máme zadanie
Poradna neslouzi k vypracovavani domacich ukolu.
27.9.2017 19:31 kloko | skóre: 1
Rozbalit Rozbalit vše Re: OOP C++ CLion kruznica
Ospravedlnujem sa.
28.9.2017 07:41 MadCatX
Rozbalit Rozbalit vše Re: OOP C++ CLion kruznica
To není pravda. Pravidla poradny pomoc se školními úlohami samozřejmě dovolují, pokud tazatel předvede rozumnou vlastní snahu problém vyřešit sám. V tom linku na pastebinu to má skoro hotové. Kdyby dal implementaci těch funkcí z kruznice.h do kruznice.cpp, má v podstatě splněno.
27.9.2017 21:56 Homoděj
Rozbalit Rozbalit vše Re: OOP C++ CLion kruznica
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nějak jsem nepochopil zadání. Zde je kód. Žádných referencí, pointerů a tím pádem i constů není vůbec třeba. V jednoduchosti a čitelnosti je síla. Tvůj učitel je idiot a ty taky.
#include <iostream>
#include <string>
#define _USE_MATH_DEFINES
#include <math.h>

class Kruh
{
private:
    std::string m_nazev;
    float m_polomer;
    float m_obsah;
    float m_obvod;

    void vypoctiObsah(){m_obsah = M_PI * (m_polomer * m_polomer);}
    void vypoctiObvod(){m_obvod = 2 * M_PI * m_polomer;}

public:
    Kruh(std::string nazev, float polomer) : m_nazev(nazev), m_polomer(polomer)
    {
        vypoctiObsah();
        vypoctiObvod();
    }

    void setPolomer(float polomer)
    {
        m_polomer = polomer;
        vypoctiObsah();
        vypoctiObvod();
    }

    std::string getNazev() {return m_nazev;}
    float getPolomer() {return m_polomer;}
    float getObsah() {return m_obsah;}
    float getObvod() {return m_obvod;}

    void vypisInfo()
    {
        std::cout << "Nazev kruhu: " << getNazev() << std::endl;
        std::cout << "Polomer kruhu: " << getPolomer() << std::endl;
        std::cout << "Obsah kruhu: " << getObsah() << std::endl;
        std::cout << "Obvod kruhu: " << getObvod() << std::endl << std::endl;
    }

    void vypisDotaz()
    {
        float polomer;
        std::cout << "Zadej novy polomer: ";
        std::cin >> polomer;
        setPolomer(polomer);
    }
};

int main()
{
    Kruh kolo("Kolo Kokot", 15.5552);
    kolo.vypisInfo();
    kolo.vypisDotaz();
    kolo.vypisInfo();

    return 0;
}
28.9.2017 19:16 2017
Rozbalit Rozbalit vše Re: OOP C++ CLion kruznica
u te tridy muzete vynechat "private:", class je by default private
28.9.2017 19:56 Kit | skóre: 40 | Brno
Rozbalit Rozbalit vše Re: OOP C++ CLion kruznica
"private:" vynechat nemůže, protože je to školní příklad, ve kterém trocha explicity neuškodí.

Byl jsem dosud přesvědčen že class je by default public, resp. friendly. Kromě toho se viditelnost třídy píše jinam.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
1.10.2017 19:31 Jardik
Rozbalit Rozbalit vše Re: OOP C++ CLion kruznica
Ano, priklad. Takze by mel byt poucny tim, ze se private neuvede, protoze je implicitni. Jinak math.h neincludovat, includovat cmath.
2.10.2017 00:10 Kit | skóre: 40 | Brno
Rozbalit Rozbalit vše Re: OOP C++ CLion kruznica
Ano, smyslem programování v C++ je dosáhnout maximální hutnosti kódu i za cenu horší srozumitelnosti. Nejasnosti se pak vysvětlí dvojnásobkem povinných komentářů, které stejně překladač ignoruje.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
2.10.2017 20:52 huehuehue
Rozbalit Rozbalit vše Re: OOP C++ CLion kruznica
Nebylo by lepší z hlediska DRY počítat obsah a obvod až v dané funkci, případně použít memoizaci?

Uznávám, že na takhle jednoduchém příkladu je to úplně jedno. Vlastně mi to připomnělo jeden zajímavý obrázek...
9.10.2017 08:53 sad
Rozbalit Rozbalit vše Re: OOP C++ CLion kruznica
Měl bych takovou hloupou otázku. To psaní std:: před každou metodou je nějaká konvence, doporučený způsob? Protože kdyby se před private napsalo using namespace std;, tak by ten kód byl nejen o něco přehlednější, ale i hezčí.
9.10.2017 11:07 Homoděj
Rozbalit Rozbalit vše Re: OOP C++ CLion kruznica
Záleží na preferencích a konvencích, půlka firem je pro using namespace a drůhá proti. Osobně používám using jen místo typedef a normálně píšu namespacy, protože jsem se kolikrát spálil a rozhodně nejsem jediný. Ani ty se tomu asi nevyhneš, protože občas ke kolizím prostě dojde. Co se týká přehlednosti, tak je to dvousečná zbraň. Záleží na velikosti a strukturování kódu.
9.10.2017 11:35 sad
Rozbalit Rozbalit vše Re: OOP C++ CLion kruznica
Umím trochu C, takže mě C++ docela láká, ale jak si prohlížím knihu The C++ Programming Language, tak se do něj asi pouštět nebudu. To už je genialita hraničící s šílenstvím.
12.10.2017 23:07 kolemjdouci
Rozbalit Rozbalit vše Re: OOP C++ CLion kruznica
Nejsi sam. Cecko mam "rad", ale nez C++ radeji Java nebo C#. A ted do me ;) za ty dva nenavidene/milovane jazyky
12.10.2017 23:57 sad
Rozbalit Rozbalit vše Re: OOP C++ CLion kruznica
Jestli ti vyhovuje C a Java, tak zkus Golang. Mně docela sedl.
9.10.2017 17:10 kloko | skóre: 1
Rozbalit Rozbalit vše Re: OOP C++ CLion kruznica
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ospravedlnujem sa, ze som sa uz dalej nevyjadroval, ale nejak ma zarazil ten komentar, ze nemam pravo sem pisat o pomoc so skolskou ulohou.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.