- Keretmentesít a Galaxy S25 FE
- Nem lett arányos a fogyókúra
- iPhone topik
- One mobilszolgáltatások
- Mobil flották
- Samsung Galaxy A55 - új év, régi stratégia
- Karaktere biztos lesz az első Nothing fejhallgatónak
- Honor 200 - kétszázért pont jó lenne
- Honor 200 Pro - mobilportré
- Csíkszélességben verné az Exynos 2600 a Snapdragon 8 Elite 2-t
Új hozzászólás Aktív témák
-
choco01
addikt
Köszi mindnekinek!! Sikerült!!
-
choco01
addikt
válasz
dabadab #4061 üzenetére
Zsír akkor értem a class és struct közötti különbségeket, köszönöm!
Ugye az nem világos hogy minek csináljak private tagokat ha akkor lényegében azzal nem tudok semmit sem tenni..
az csak van mindentől elszigetelve és kész, a példa kódomban ugye ez van:
private:
kolcsonzes *k;
int db;Na most itt akkor nem sok értelmét látom mert ezzel nem tudok mit kezdeni? Bár ha végig nézem a konstruktorba még is csak hivatkozik a k-ra, akkor a konstruktor még is látja a private dolgokat?
Általában emeltszintű érettségi példák vannak kidolgozva és azokat csináljuk meg..
all:Az miért van hogy mindig dinamikus tömböket használunk amikor tudjuk előre is hogy hány elemű lesz?Azt hiszem néztünk olyan példát előadáson hogy volt benne dinamikustömb de konkrétan megadva az elemszámmal.. vagy ennél a classon témánál mindig ez kell?
Meg ugye a dinamikus tömbkezelésre ezt tanultuk:
<típus>* név = new <típus>[érték];
Most az előző példakódomban ez volt:k = new kolcsonzes[db];
itt se típus se * nincs az elején a másik végén meg típus nincs.. akkor honnan tudja hogy ez dinamikus?jattila48:
Neked is köszönöm, így már kezd összeáállni, valahogy gyakarolnom kéne, próbálok keresni rá még példát a suliban majd..
Így ennél a példámnál értem hogy ezért kell dinamikus meg hogy a beolvasáskor tudjuk meg hogy hány elemű lesz!
-
choco01
addikt
De most akkor azt is lehetne írni a feltöltéskor hogy
kolcsonzes[i].datum;
és a többi? minek akkor ez a k-s dolog..meg hogyan tehetem a private tagokat elérhetővé más számára? valamilyen értékátadásról beszélt a Tanár Úr az egyik órán, de nem értettem teljesen..volt valami friend függvény is..
ezeket csak így elmondják aztán nem használtuk, de azért van..
cattus:
Köszönöm, most belenéztem, de ebbe hogyhogy strukturákon csinálja a private meg public dolgokat..
-
choco01
addikt
válasz
choco01 #4056 üzenetére
Továbbá ezt sem értem hogy miért nevezzük ezt a konstruktornak:
kolcsonzo(char fnev[]);
mert hát más is néz ki ehhez hasonlan.. pl.:int GetMagellan();
és akkor ehhez is lehetne egy~GetMagellan();
-t destruktornak írni..? mivan ha nem csinálok konstruktort hanem csakint kolcsonzo(char fnev[]);
-et írok?bocs a dupláért..
-
choco01
addikt
Igen van továbbra is az ami az elején..
ez a *k dolog azaz hogy
kolcsonzes *k;
sor miért kell a privátba?
a kolcsonzes struktúrára mutat a k? vagy hogy értelmezzem?mert utána visszatér ugye az előbb írt kódban a
k = new kolcsonzes[db];
meg utána a feltöltés is a k-ra megy.. -
choco01
addikt
Most ilyen speedrun megy mert holnap írunk ZH-t és leragadtam a struktúráknál, de elvileg kötelező lesz osztályokat használni..
úgy hogy amennyit csak tudok olvasok..
A gyakorló feladat ilyesmi volt, végülis értem, csak pár apró része nem világos hogy miért oda miért nem, eddig úgy gondoltam hogy a private/protected rész arra kell hogy mások elől védjem az ott lévő dolgokat és akkor valahogy publicba tudok infót adni a védett részbe is..de aztán lehet nem..
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
/*Készítsen programot, melyben a Kétkerék nevű kerékpár kölcsönző adatait tudja kezelni.A kölcsönzőben kétféle
típusú kerékpár van, melyek kölcsönzési óradíja különböző.A magellan 1200 Ft / óra, a median 1000 Ft / óra.
A kolcsonzo.txt szöveges állomány első sorában a kölcsönzések számát, a kölcsönzések adatait a következő struktúra szerint tartalmazza:
struct kolcsonzes
{
string; //a kölcsönzés napja
string tipus; //a kerékpár típusa
int sorszam; //a kerékpár sorszáma
int ido; //a kölcsönzés ideje
};
Készítse el az alábbi függvényeket, mindegyik függvény vegye át az állomány nevét :
Getdb() Adja vissza az adatok számát.
GetMagellan() Adja vissza a magellan kerékpárok számát.
GetMedian() Adja vissza a median kerékpárok számát.
MedianBevetel() Adja vissza a median kerékpárokkal szerzett bevétel összértékét.
OsszBevetel() Adja vissza a bevétel összértékét.
LeghosszabbKolcsonzes() Adja vissza a leghosszabb kölcsönzés adatait tartalmazó struktúrát.
Kiir() A függvény minden adatot sorszámozva, az kiíratja a képernyőre táblázatos formában, minden struktúra egy
sorba kerüljön(a sorszám 1 - ről indul).
*/
struct kolcsonzes
{
string datum;
string tipus;
int sorszam;
int ido;
};
class kolcsonzo
{
private:
kolcsonzes *k;
int db;
public:
kolcsonzo(char fnev[]);
~kolcsonzo();
int Getdb();
int GetMagellan();
int GetMedian();
int MedianBevetel();
int Osszbevetel();
int LeghosszabbKolcsonzes();
void Kiir();
};
//kolcsonzo.txt beolvasasa
kolcsonzo::kolcsonzo(char fnev[])
{
ifstream be(fnev);
if (be.fail()) { cerr<<"hiba fajlnyitas"; system("pause"); exit(-1);}
be >> db;
k = new kolcsonzes[db];
if (k == 0) { cerr << "hiba2";system("pause");exit(-2);}
for (int i = 0; i < db; i++)
{
be >> k[i].datum;
be >> k[i].tipus;
be >> k[i].sorszam;
be >> k[i].ido;
}
be.close();
}
kolcsonzo::~kolcsonzo()
{
if (k != 0)
delete[]k;
}
int kolcsonzo::Getdb()
{
return db;
}
int kolcsonzo::GetMagellan()
{
int m = 0;
for (int i = 0; i < db; i++)
{
if (k[i].tipus=="magellan")
{
m++;
}
}
return m;
}
int kolcsonzo::GetMedian()
{
int m = 0;
for (int i = 0; i < db; i++)
{
if (k[i].tipus=="median")
{
m++;
}
}
return m;
}
int kolcsonzo::MedianBevetel()
{
int mbev = 0;
for (int i = 0; i < db; i++)
{
if (k[i].tipus=="median")
{
mbev += k[i].ido * 1000;
}
}
return mbev;
}
int kolcsonzo::Osszbevetel()
{
int bev = 0;
for (int i = 0; i < db; i++)
{
if (k[i].tipus=="median")
{
bev += k[i].ido * 1000;
}
else
{
bev += k[i].ido * 1200;
}
}
return bev;
}
int kolcsonzo::LeghosszabbKolcsonzes()
{
int l = k[0].ido;
for (int i = 0; i < db; i++)
{
if (k[i].ido > l)
{
l = k[i].ido;
}
}
return l;
}
void kolcsonzo::Kiir()
{
cout << setw(14) << "datum" << setw(20) << "tipus" << setw(10) << "sorszam" << setw(10) << "kolcsido" << endl;
for (int i = 0; i < db; i++)
{
cout << i + 1 << "." << setw(12) << k[i].datum << setw(20) << k[i].tipus << setw(10) << k[i].sorszam << setw(10) << k[i].ido << endl;
}
}
int main()
{
kolcsonzo ketkerek("kolcsonzo.txt");
cout << "Az allomanyban levo adatok:\n";
ketkerek.Kiir();
cout << endl;
cout << "A kolcsonzesek szama: " << ketkerek.Getdb() << endl;
cout << "A magellan kolcsonzesek szama: " << ketkerek.GetMagellan() << endl;
cout << "A median kolcsonzesek szama: " << ketkerek.GetMedian() << endl;
cout << "A median kerekparokkal szerzett bevetel: " << ketkerek.MedianBevetel() << endl;
cout << "A kerekparokkal szerzett osszbevetel: " << ketkerek.Osszbevetel() << endl;
cout << "A leghosszabb kolcsonzes ideje: " << ketkerek.LeghosszabbKolcsonzes() << endl;
cout << endl << endl;
cout << "***************** dinamikus objektum *****************\n\n";
kolcsonzo *kektura = new kolcsonzo("kolcsonzo.txt");
if (kektura == 0)
{
cerr << "keves a memoria 2";
return 2;
}
cout << "Az allomanyban levo adatok:\n";
(*kektura).Kiir();
cout << endl;
cout << "A kolcsonzesek szama: " << kektura->Getdb() << endl;
cout << "A magellan kolcsonzesek szama: " << kektura->GetMagellan() << endl;
cout << "A median kolcsonzesek szama: " << kektura->GetMedian() << endl;
cout << "A median kerekparokkal szerzett bevetel: " << kektura->MedianBevetel() << endl;
cout << "A kerekparokkal szerzett osszbevetel: " << kektura->Osszbevetel() << endl;
cout << "A leghosszabb kolcsonzes ideje: " << kektura->LeghosszabbKolcsonzes() << endl;
cout << "Az 5 oranal hosszabb kolcsonzesek:\n";
delete kektura;
system("pause");
return 0;
} -
choco01
addikt
válasz
PandaMonium #4049 üzenetére
Köszönöm, nagyon minimálisan kapizsgálom, próbáltam keresni ilyenekt, pl. ezt, de továbbra is úgy érzem hogy a kicsit bonyolultabb helyezetknél nem értem mi értelme..
ezen az oldalon ugye írja ezt:
Nézzünk mindjárt egy kis kódot:
class Student {
string name;
}
Ez egy osztály. Ha ezt az osztályt szeretnénk használni, azt példányosítással tehetjük meg. Nagyjából így:Student student = new Student();
student.name = "János";
Vagyis az osztályt úgy képzelhetjük el, mint egy tervrajz. A tervrajz alapján csinálunk egy konkrét példányt.Vagyis a tervrajzot, az osztályt használva, létrehozhatunk több példányt is:
Student mintaJozsef = new Student();
mintaJozsef.name = "Minta József";Student mintaBela = new Student();
mintaBela.name = "Minta Béla";Na most nekem ezt még sem fogadja el:
#include<iostream>
#include<string>
using namespace std;
class iskola
{
public:
string nev;
};
int main()
{
iskola *tanulo=new iskola();
tanulo.nev = "Tamas";
system("pause");
return 0;
}se csillaggal, se anélkül..
-
choco01
addikt
Ehhez a osztályos, kontruktoros, destruktoros témához van valakinak valami részletes példákkal tarkított jegyzete? Már vagy 5-6 könyvet átnéztem de így sem értem hogy ezt miért így kellet..
a struktúrát értem, azt hogy miért kell ez a kolcsonzes *k a privátba azt már nem..
struct kolcsonzes
{
string datum;
string tipus;
int sorszam;
int ido;
};
class kolcsonzo
{
private:
kolcsonzes *k;
int db;
public:
kolcsonzo(char fnev[]);
~kolcsonzo();
int Getdb();
int GetMagellan();
int GetMedian();
int MedianBevetel();
int Osszbevetel();
int LeghosszabbKolcsonzes();
void Kiir();
}; -
choco01
addikt
Hali.
TFeri alapok mellett tudtok még ajánlani valami hasonlóan szájbarágós jól bevált irodalmat C++-ra?
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Olcsó Laptop! Dell Latitude 7280. I5 7300U / 8GB DDR4 / 256GB SSD
- MSI Thin GF63 12VF 15.6" FHD IPS 5-12450H RTX 4060 16GB 512GB NVMe magyar vbill gar
- Apple iPhone 16 Pro Max - Desert Titanium - 256GB 1 ciklus 100% akku! 1 év garancia! Új készülék!
- iPhone 12 Kék 128GB
- SAMSUNG (LS34C500GAUXEN) 34 " GAMER WIDE MONITOR ! AKCIÓ
- BESZÁMÍTÁS! MSI MAG321QR 32 165Hz WQHD 1ms monitor garanciával hibátlan működéssel - használt
- BESZÁMÍTÁS! 860W Fractal Design ION + 2 Platinum tápegység garanciával hibátlan működéssel
- 121 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070 (48 hónap garancia!)
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
- AKCIÓ! ASUS PRIME Z390-P i5 8600K 16GB DDR4 512GB SSD RX 6600 8GB GDDR6 DEEPCOOL Matrexx55 630W
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest