Hogyan kellene ennél a feladatnál elindulni? A következő feladatot kaptuk c++ programozásból:
Készítsen programot, mely bekér Keresztneveket, Autómárkát és azok Árait. Az adatfelvitel akkor fejeződik be, ha névnek * karaktert viszünk be. Az adatfelvitelt követően írassuk ki a felvitt adatokat soronként: pl.: Imre Opel 2100000, Kata Suzuki 125000 A kiírást követően jelenjen meg a gépkocsik árának összege, átlaga, legkisebb és legnagyobb eleme. Majd pedig kérdezze meg a felhasználót, hogy növekvő vagy csökkenő ársorrendben szeretné kiíratni a felvitt adatokat. Ha „c” betűt választ a felhasználó írassa ki a felvitt adatokat ár szerint csökkenően ha pedig ”n” betűt nyom, akkor ár szerint növekvően.
Ha csak az egyes részek megoldásában tudnak/tudtok segíteni, azt is megköszönném.
Lehet hogy meg fogsz most lepődni, de úgy indulsz el hogy beolvasod őket. std::cin ismerős? Ciklus? Valami tároló pl. vektor vagy tömb? Esetleg struktúrák?
Gondolom olyan feladatot adnak ki amit már tanultál, úgyhogy nem lehetnek ezek a fogalmak idegenek. Ha már az első lépés sem megy (a beolvasás) akkor lapozz vissza az órai jegyzetedben és kezd a tanulást az elejéről.
Hat eloszor is csinalhatsz egy strukturat, amiben az adatokat tarolod:
struct allat
{
std::string keresztnev;
std::string marka;
unsigned long penz;
};
Aztan csinalsz pl egy vektort, ami ilyen elemeket tartalmaz:
std::vector<allat> adatok;
Aztan beolvasod az adatokat ciklusban:
for(;;)
{
// csinal egy strukturat
allat macska;
// olvass
std::cin << macska.keresztnev;
if (macska.keresztnev== "*") break; // ha * akkor kiesik a ciklusbol
std::cin << macska.marka;
std::cin << macska.penz;
// persze ajanlott ellenorizni, hogy az adatok helyesek,
// pl arnak nem visz be negativ szamot
// belokod a strukturaba
adatok.push_back(macska);
}
kesz, megvannak az adatok
+ Hogy kell sorba rendezni a strukturat?
Vagy csinalsz egy operator overload-ot a strukturan belul, vagy pedig megmondod, hogy hogyan rendezze:
auto mennyibekerul = [](allat& a1, allat& a2)
{ return (a1.penz <= a2.penz) ? 1 : 0; }
es aztan:
std::sort(adatok.begin(), adatok.end(), mennyibekerul);
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!