C++ problem

poruka: 5
|
čitano: 1.699
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
13 godina
neaktivan
offline
C++ problem

Pozdrav,

evo zapeo sam u jednom programu .. Program je kao mala "baza podataka" , i sve radi samo neznam kako da napravim "search" opciju..

gledo sam po internetu da mogu nesto tipa " While(myfile >> name >> age ....)" ali nece mi..

http://pastebin.com/WqMEAZnw

 

Hvala unaprijed!

Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: C++ problem

Sve podatke držati u radnoj memoriji (polje, vezana lista). I kod pretraživanja samo linearno prolaziš kroz to i tražiš podudarnost sa onime što tražiš. Možeš se izvući i sa prolaskom kroz datoteku svaki puta kada nešto tražiš, ali to je nepotrebno kompliciranje a i sporo je.

 

To je naravno veoma primitivan pristup, prave baze podataka nisu tako jednostavne i koriste razne komplicirane strukture podataka i algoritme za ubrzavanje rada (čitanje, pretraga, zapisivanje), ali ti je nekakav početak.

 

Btw. vidim da ti je trenutno format ovakav:

First name:pero
Last name:peric
Age:18
Address:
ID:
5584

 

Riješi se ovih opisa tipa First name, Last name, Age... nepotrebni su. Program ionako zna da je prvi zapis ime, drugi prezime, treći broj godina itd. Ovako samo imaš nepotreban tekst koji ćeš morati uklanjati svaki puta kada pročitaš neku liniju. Npr kada pročitaš liniju u kojoj se nalazi ime dobit ćeš "First name:pero" i onda ćeš morati izbaciti iz toga sve što nije ime, a to je nepotrebna komplikacija.

What Andy giveth, Bill taketh away.
Poruka je uređivana zadnji put uto 30.7.2013 14:11 (rustweaver).
14 godina
neaktivan
offline
Re: C++ problem
rustweaver kaže...

Sve podatke držati u radnoj memoriji (polje, vezana lista). I kod pretraživanja samo linearno prolaziš kroz to i tražiš podudarnost sa onime što tražiš.

To može proći kod manje datoteke no u praksi se tako ne radi jer je pogubno za performanse, a pogotovo kada bi u pitanju bila nekakva baza. Pravilan pristup je sortirati podatke pa onda nad njima izvršiti binarno pretraživanje.

 

 

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
15 godina
neaktivan
offline
Re: C++ problem
TracerCPP kaže...

To može proći kod manje datoteke no u praksi se tako ne radi jer je pogubno za performanse, a pogotovo kada bi u pitanju bila nekakva baza. Pravilan pristup je sortirati podatke pa onda nad njima izvršiti binarno pretraživanje.

"To je naravno veoma primitivan pristup, prave baze podataka nisu tako jednostavne i koriste razne komplicirane strukture podataka i algoritme za ubrzavanje rada (čitanje, pretraga, zapisivanje), ali ti je nekakav početak."

Neću nekome tko ima problema sa puno elementarnijim stvarima forsirati binarno pretraživanje...

What Andy giveth, Bill taketh away.
14 godina
neaktivan
offline
Re: C++ problem

Za njegov slučaj biti će dovoljna linearna pretraga, jer očito i s njom ima dovoljno problema da ju realizira. No, od nekud se mora i početi...

 

A glede mog komentara, samo detaljnije opisujem kako bi se to zapravo trebalo raditi u pravim sustavima da bi se postigle optimalne performanse tj. qsort + bin.search.

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice