Hallo ik ben nog al een C++ n00b maar moet voor school dus een programma schrijven dat een structure wegschrijft met plaats,prijs van een bestemming (Voor de NS). En dan moet hij deze uitlezen en degene die het meest zijn benadert zet hij zeg maar in een top 10 die dan meteen op beeld staan en de rest kan hij uitlezen...
Nu is mijn probleem ik weet niet precies hoe ik nou die lus maak met dat uitlezen en dan bepalen welke het meest bekeken is.. mijn idee was dus om in die struct ook een getal te maken dat ie elke keer ophoogt die vergelijkt enzow.. maaja hoe precies dat uitlezen gaat weet ik dus niet.. hier mijn code hoop dat iemand me kan helpen..
code:
#include <iostream>;
#include <iomanip>;
#include <conio>;
#include <string>;
#include <fstream>;
using namespace std;
struct best
{
char naam[25];
char prijs[6];
char benader[4];
};
int main()
{
clrscr();
int loopmenu=0,invoer=0,aantal,i;
char menu;
char zoekwoord[25];
bool found=false;
best x;//x is de variabele van type best
fstream bestand("dat.txt",ios::in|ios::out);
while (loopmenu == 0)
{
cout << "Het menu\n" << "1. Zoek bestemmingen en prijzen\n" << "2. Maak bestemmingen aan.\n" << "3. Stop het programma\n\n" << "U invoer: ";
cin >> menu;
switch(menu)
{
case '1':
cout << "Hier worden de bestemmingen ge-opent, en kunt u zoeken naar prijzen van bestemmingen";
// VANAF HIER WEET IK ET DUS NIET PRECIES..
//bestand.read();
//for (tel=0;tel<aantal;tel++)
//{
//vergelijk x[1]<x[2] grootste wordt opgeslagen deze vergelijken met x[3] enz... grootste opslaan als sorteer[1] en zo verder elke keer loopje door lopen
//}
//cout << sorteer[1 tot 10]
//cout << "Als u keuze hier niet bij staat. Kunt u hem nu opzoeken";
//cout << "Geef de naam van bestemming: ";
//zoek in het bestand naar de bestemming
//
cout << "Als De gewenste plaats niet in het lijstje voorkomt kunt u deze hier alsnog zoeken" << endl;
bestand.seekg(0,ios::beg);
cin >> zoekwoord;
do
bestand.read((char*)&x, sizeof(x));
if
{
strcmp(x.naam,zoekwoord)==0
found=true;
} while(!found);
cout << x.naam;
break;
case '2':
invoer=0;
cout << "Hier kunt Bestemmingen invoeren" << endl;
while (invoer == 0)
{
cin.ignore(1);
cout << "Geef een bestemming: " << endl;
cin.getline(x.naam,24);
cout << "Geef de prijs van de bestemming: " << endl;
cin.getline(x.prijs,5);
x.benader==0;
bestand.write((char *D(&x),sizeof(x));
cout << "Tijdelijk.. 0 invoeren voor nog een struct" << endl;
cin >> invoer;
}
break;
case '3': cout << "Het Programma wordt afgesloten\n"; loopmenu = 1; break;
default: cout << "Foutieve keuze. Opnieuw invoeren\n"; break;
}
}
return 0;
}
----------------
Ik weet niet waarom die ander net werd dicht gegooit alleen omdat ik fout topic naampje hadt ofzo? kan je het er mischien ff bij vertellen. En mjah kben noob maar moet et toch ergens vragen.. Vindt et best wel geen leuke actie meteen dicht gooien
Nu is mijn probleem ik weet niet precies hoe ik nou die lus maak met dat uitlezen en dan bepalen welke het meest bekeken is.. mijn idee was dus om in die struct ook een getal te maken dat ie elke keer ophoogt die vergelijkt enzow.. maaja hoe precies dat uitlezen gaat weet ik dus niet.. hier mijn code hoop dat iemand me kan helpen..
code:
#include <iostream>;
#include <iomanip>;
#include <conio>;
#include <string>;
#include <fstream>;
using namespace std;
struct best
{
char naam[25];
char prijs[6];
char benader[4];
};
int main()
{
clrscr();
int loopmenu=0,invoer=0,aantal,i;
char menu;
char zoekwoord[25];
bool found=false;
best x;//x is de variabele van type best
fstream bestand("dat.txt",ios::in|ios::out);
while (loopmenu == 0)
{
cout << "Het menu\n" << "1. Zoek bestemmingen en prijzen\n" << "2. Maak bestemmingen aan.\n" << "3. Stop het programma\n\n" << "U invoer: ";
cin >> menu;
switch(menu)
{
case '1':
cout << "Hier worden de bestemmingen ge-opent, en kunt u zoeken naar prijzen van bestemmingen";
// VANAF HIER WEET IK ET DUS NIET PRECIES..
//bestand.read();
//for (tel=0;tel<aantal;tel++)
//{
//vergelijk x[1]<x[2] grootste wordt opgeslagen deze vergelijken met x[3] enz... grootste opslaan als sorteer[1] en zo verder elke keer loopje door lopen
//}
//cout << sorteer[1 tot 10]
//cout << "Als u keuze hier niet bij staat. Kunt u hem nu opzoeken";
//cout << "Geef de naam van bestemming: ";
//zoek in het bestand naar de bestemming
//
cout << "Als De gewenste plaats niet in het lijstje voorkomt kunt u deze hier alsnog zoeken" << endl;
bestand.seekg(0,ios::beg);
cin >> zoekwoord;
do
bestand.read((char*)&x, sizeof(x));
if
{
strcmp(x.naam,zoekwoord)==0
found=true;
} while(!found);
cout << x.naam;
break;
case '2':
invoer=0;
cout << "Hier kunt Bestemmingen invoeren" << endl;
while (invoer == 0)
{
cin.ignore(1);
cout << "Geef een bestemming: " << endl;
cin.getline(x.naam,24);
cout << "Geef de prijs van de bestemming: " << endl;
cin.getline(x.prijs,5);
x.benader==0;
bestand.write((char *D(&x),sizeof(x));
cout << "Tijdelijk.. 0 invoeren voor nog een struct" << endl;
cin >> invoer;
}
break;
case '3': cout << "Het Programma wordt afgesloten\n"; loopmenu = 1; break;
default: cout << "Foutieve keuze. Opnieuw invoeren\n"; break;
}
}
return 0;
}
----------------
Ik weet niet waarom die ander net werd dicht gegooit alleen omdat ik fout topic naampje hadt ofzo? kan je het er mischien ff bij vertellen. En mjah kben noob maar moet et toch ergens vragen.. Vindt et best wel geen leuke actie meteen dicht gooien