Hjälp med C++ övning
Hej, behöver lite hjälp med en övning jag håller på med i C++, använder mig av Microsoft Visuals 2010.
Övningen jag gör handlar om att jag ska skapa en klass "Person" med två attribut, string namn och int alder.
jag ska också använda mig av funktionen void Skrivut() för att få ut namn och ålder på skärmen.
Ska också skriva en funktion för en linjär sökning samt en bubblesort för att sortera person vektorn efter ålder, yngst först.
sen skapa en main funktion där Programmet ska sedan sortera vektorn familj och skriva ut familjemedlemmarna i åldersordning med den yngsta först. Till sist ska funktionen linsok anropas och söka efter om någon familjemedlem har en viss ålder.
Har kommit en bit på vägen men får vissa error:
1. error C2601: 'byt' : local function definitions are illegal
2. this line contains a '{' which has not yet been matched
3. 'linsok' : function does not take 2 arguments
Skulle verkligen uppskatta lite hjälp från någon mer erfaren programmerare då jag är väldigt färsk i ämnet.
(vet ej hur man gör code-taggar..)
#include <iostream>
#include <string>
using namespace std;
class Person // Klass: En persson
{
public:
string namn;
int alder;
void SetInfo(string _namn, int _alder) // Metod: sätter den info som behövs
{
namn = _namn;
alder = _alder;
}
void SkrivUt()
{
cout << namn << ", " << alder << "."; // Berättar vad som ska skrivas
}
};
int linsok(Person p[], int n, int a) // Linjär sökning av ålder på person
{
for (int i = 0; i < n; i++) // Gå igenom hela listan
{
if (p[i].alder == a) //Om p[i] är samma som det sökta värdet, returneras i.
return i;
}
return -1; // Personen kan ej finnas, -1 returneras.
};
void bubblesort(Person p[], int n)
{
int i = 0;
int nrleft;
for (int i = 0; i < n; i++) // En yttre loop går igenom hela listan
int nrLeft = n - i; // Kollar hur många som redan gått igenom
{
for ( int j = 0; j < nrleft; j++)
if (p[j].alder > p[j+1].alder) // Jämför elementen
void byt(Person &p, Person &q)
{
Person temp;
temp.namn = p.namn;
temp.alder = p.alder;
p.namn = q.namn;
p.alder = q.alder;
q.namn = temp.namn;
q.alder = temp.alder;
}
}
};
int main() // Funktion: Main, start på programmet
{
Person myFamily[4];
myFamily[0].SetInfo("Simon", 37);
myFamily[1].SetInfo("Lasse", 20);
myFamily[2].SetInfo("Sara", 7);
myFamily[3].SetInfo("Martin", 40);
bubblesort(myFamily, sizeof(myFamily)); // Anropar funktionen bubblesort för att sortera myFamily[3]
for (int i = 0; i < 3; i++)
cout << myFamily[i].namn << ", " << myFamily[i].alder << " \x8Fr." << endl; // Vad som kommer att skrivas ut
int index = linsok(myFamily, 37); // Söker efter en person i listan
if (index == -1)
cout << "Personen hittades ej!";
else
cout << "Personen du s\x94ker heter " << myFamily[index].namn << " och finns på index " << index;
system("pause");
return 0;
}