Tjenare , har haft vectorer nu ett tag i programmeringen och pga sjukdomn har jag missat en del , nu ska arbetet vara inlämnat om några dagar och min hjärna säger bara stopp.
Det jag vill åstakomma är en funktion som söker efter ID.
basgrejjer
Läsa in id,förnamn och efternamn:
Sök-Funktionen:
Mvh // Piraten
Det jag vill åstakomma är en funktion som söker efter ID.
basgrejjer
Kod:
struct hoppla
{
int id;
string fnamn;
string enamn;
};
vector<hoppla> klass; // En vektor av typen hoppla med namnet klass
int elevAntal = 0; // Antal elver ska börja på noll
hoppla elev; // en variabel av typen elev
char filnamn[16] = "";
Läsa in id,förnamn och efternamn:
Kod:
void oppna()
{
char tecken[256];
cout << "Skriv filnamn p\x86 txt-fil som ska \x94ppnas: ";
cin >> filnamn;
ifstream infil(filnamn);
if(!infil.is_open())
{
cout << endl << "Det gick inte att l\x84sa filen, kontrollera filnamn f\x94rs\x94k igen!";
cout << endl;
system("PAUSE");
}
else
{
cout << endl << "Filen \x94ppnades" << endl;
system("PAUSE");
while (!infil.eof())
{
infil.getline(tecken, 256, '\n'); // hämta f\x94rsta raden (förnamn) från filen
elev.fnamn = tecken; // spara fornamn
infil.getline(tecken, 256, '\n');
elev.enamn = tecken;
klass.push_back(elev);
elevAntal++;
}
}
}
Sök-Funktionen:
Kod:
void sok()
{
int min = 0;
int max = elevAntal-1;
int antalSokningar = 0;
int pos = -1;
int tal = 0;
hoppla venster;
hoppla hoger;
cout << "S\x94k efter: ";
cin >> tal;
while (min <= max && pos == -1)
{
int mitt = (min+max)/2;
if (tal > (mitt))
{
min = mitt+1;
}
else if (tal < (mitt))
{
max = mitt-1;
}
else
{
pos = mitt;
}
antalSokningar++;
}
cout << "Antal sökningar: " << antalSokningar << endl;
if (position != -1)
{
cout << "Talet finns på position:";
cout << position+1 << endl;
}
else
{
cout << "Talet går inte att hitta";
}
}
Mvh // Piraten
)
)