Forum » Programiranje » Datoteke c++ pomoč pri nalogi ...
Datoteke c++ pomoč pri nalogi ...
vbknez ::
Torej... imam eno nalogo pa mi neki ne dela tak ko bi moglo, pa bi prosu če bi mal pomagali. Naloga se glasi takolele:
Definiraj razred z imenom komponenta, ki vsebuje spremenljivke ime zaloga in cena. Določi jim primeren tip. POl pa v glavni zanki programa morš nardit tri polja komponent in jim dodelit pripadajoče podatke. Razred mora še vsebovat privzeti konstruktor in destructor, meotdo za vnos podatko in metodo za vpis komponente v datoteko.(Pri vsakem vpisu se podatki dodajo na konc datoteke).
Zgledad mora nekak takole:
komponenta 1:
ime: monitor
zaloga: 100
cena: 300
komponeta 2:
in pol isto še kle odspodj
Mene sam zmatra ko vpisuje notr v datoteko da mi povoz vse prejšne, tak da mi samo ta zadno stvar vpiše notr. Torej ta zadno komponento.
KODA:
Definiraj razred z imenom komponenta, ki vsebuje spremenljivke ime zaloga in cena. Določi jim primeren tip. POl pa v glavni zanki programa morš nardit tri polja komponent in jim dodelit pripadajoče podatke. Razred mora še vsebovat privzeti konstruktor in destructor, meotdo za vnos podatko in metodo za vpis komponente v datoteko.(Pri vsakem vpisu se podatki dodajo na konc datoteke).
Zgledad mora nekak takole:
komponenta 1:
ime: monitor
zaloga: 100
cena: 300
komponeta 2:
in pol isto še kle odspodj
Mene sam zmatra ko vpisuje notr v datoteko da mi povoz vse prejšne, tak da mi samo ta zadno stvar vpiše notr. Torej ta zadno komponento.
KODA:
using namespace std;
class komponenta
{
string ime;
string zaloga;
string cena;
public:
komponenta::komponenta()
{
ime="a";
zaloga=11;
cena=10;
}
void vnos(string i, string z, string c)
{
ime=i;
zaloga=z;
cena=c;
}
void vpis(string i, string z, string c)
{
ofstream kom("dat.txt");
if(kom.is_open())
{
kom < < "ime "< < i < endl;
kom < < "zaloga "< < z < < endl;
kom < < "cena "< < c < < endl;;
kom < < endl;
}
kom.close();
}
~komponenta(){};
};
int main()
{
komponenta moja;
string polje1[]={"monitor","11","300€"};
string polje2[]={"miska","100","12€"};
string polje3[]={"tipkovnica","10","50€"};
moja.vnos(polje1[0],polje1[1],polje1[2]);
moja.vpis(polje1[0],polje1[1],polje1[2]);
moja.vnos(polje2[0],polje2[1],polje2[2]);
moja.vpis(polje2[0],polje2[1],polje2[2]);
moja.vnos(polje3[0],polje3[1],polje3[2]);
moja.vpis(polje3[0],polje3[1],polje3[2]);
system ("PAUSE");
return EXIT_SUCCESS;
};
- spremenil: Senitel ()
schtr4jh ::
Zaloga mora bit tipa int. Cena mora bit tipa float ali double. (samo informativno)
Pri zapisovanju v datoteko se najprej postavi na konec datoteke, nato pa zapiši kar hočeš.
Dovolj informacij?
Pri zapisovanju v datoteko se najprej postavi na konec datoteke, nato pa zapiši kar hočeš.
Dovolj informacij?
vbknez ::
Hmmm... In kak se postavim na konc datoteke ? Je kkšna metoda za to ? Ker mi jih nismo jemal glih. Edino kar smo spoznal sta metodi tellp,g pa seekp,g.
blaz_ ::
Sicer nisem ravn expert v c++, ampak sm prepričan da ti enostavno prepišeš že obstoječo datoteko. Datoteko odpri enkrat (ne vsakič v funkciji vpis), oz. če jo moraš vsakič v funkciji vpis, potem nastavi tako da bo pravilno odprta - eno od teh zastavic moraš nastaviti: ios::ate ali ios::app pri open klicu. Kako točno si poglej tu: http://www.cplusplus.com/doc/tutorial/f...
Lp, Blaž
Lp, Blaž
Ko tehnologija odpove, uporabi macolo.
ERGY ::
Hmmm... In kak se postavim na konc datoteke ? Je kkšna metoda za to ? Ker mi jih nismo jemal glih. Edino kar smo spoznal sta metodi tellp,g pa seekp,g.
Zato pa ste jih vzeli. Z njimi se lahko postaviš na konec in dopišeš kar potrebuješ.
vbknez ::
Jah nwm . Jst sm jih uporabljal, pa je naredu sam to da mi je ime komponente izpisal z zamiko vse ostalo pa ob robu tak kot bi mogu(sam mi je zapisal sam tazadno komponento . Nwm kva sm tm zamoču. Mislm da sm dal dat.seekp(a) pred vpisom v datoteko in pol na konc, da je a=dat.tellp(); Pa mi je sicer zmeri prav izpisal kolk znakov je blo v vsakem polju z lastnosti komponent, sam zapisal mi je pa sam ta zadno komponento z zamikom v izpisu imena komponent.
Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | Združevanje polj [C]Oddelek: Programiranje | 1159 (1023) | ragezor |
| » | križci krožci c # (strani: 1 2 )Oddelek: Programiranje | 13537 (12196) | Yacked2 |
| » | SQL programiranjeOddelek: Programiranje | 1316 (1006) | slitkx |
| » | [PHP] empty arrayOddelek: Programiranje | 2225 (2092) | BigWhale |
| » | if(empty($_POST["vsa-polja"]))?Oddelek: Izdelava spletišč | 2887 (2502) | Housy |