Hej, jag håller på med en sista uppgift för Programmering 1 och vill gärna få A på den. Så lämnat in en (vad jag tror är en) B-uppgift och håller på med A-uppgiften som handlar om något jag inte fått lära mig än. Alltså 1: Att en klass hämtar något från en annan klass. Och 2: Vad heter den arrayen (inte vector) sen efter det? Alltså vanligtvis så skulle jag kalla den (i bubblesort t.ex) hs[1].getName eller hs[1].getPoints. Är det samma här? Här kommer den exakta uppgiften och sen min kod.
"Du ska dela upp projektet i en .cpp-fil och en h-fil. (Tänkte ta och lära mig det här sist efter jag skrivit all kod, om det inte behövs innan.)
Egentligen behöver du konstruera två klasser:
1: En (mycket liten) klass som innehåller egenskaperna namn och poäng. Klassen ska också innehålla en konstruktor. Klassen ska heta HSItem (som i High Score item).
2: Själva klassen HighScore och kommer innehålla många metoder.
Klassen HighScore ska innehålla följande synliga (public) metoder):
HighScore() -
Beskrivning: Konstruktor för klassen. Tar emot ett heltalsvärde för hur många som får finnas i highscore-listan åt gången.
Indata: int maxIntList
Add() - ska överlagras (dunno what that means)
Beskrivning: Lägger till element i listan.
Indata: string name, int points
Print() -
Beskrivning: Denna skriver ut hela listan (ska vara sorterad när den skrivs ut, så antar att den också kallar Sort() först)
Klassen ska också innehålla följande osynliga (private) metod:
Sort() -
Beskrivning: Sorterar listan. Användaren ska aldrig behöva kalla sorteringsmetoden.
Koden i main som ska funka med klasserna och deras metoder.
HighScore hs(5);
hs.Add("JamesTKirk", 132);
hs.Add("AgentMulder", 120);
hs.Add("CaptainPicard", 40);
hs.Add("BobbaFett", 180);
hs.Add("RichDeckard", 110);
hs.Print();
hs.Add("Hal9000", 403);
hs.Add("DavidBowman", 445)
hs.Print(); "
Min kod som har kommenterat bort sort för jag tänkte att jag kanske kan lösa den biten själv när jag fattar allt annat. Har kommenterat lite också. Själva problemet jag har är hur HighScore(), Print() och Add() ska interagera med HighScore hs(5) i main och klassen HSItem. Och har absolut ingen aning vad jag ska mata in i HighScore och vartifrån. Hade det varit en vektor så skulle väll hs.size() funka. Försökte få HighScore att ärva HSItem, men det sket sig också såklart lol.
KOD:
"Du ska dela upp projektet i en .cpp-fil och en h-fil. (Tänkte ta och lära mig det här sist efter jag skrivit all kod, om det inte behövs innan.)
Egentligen behöver du konstruera två klasser:
1: En (mycket liten) klass som innehåller egenskaperna namn och poäng. Klassen ska också innehålla en konstruktor. Klassen ska heta HSItem (som i High Score item).
2: Själva klassen HighScore och kommer innehålla många metoder.
Klassen HighScore ska innehålla följande synliga (public) metoder):
HighScore() -
Beskrivning: Konstruktor för klassen. Tar emot ett heltalsvärde för hur många som får finnas i highscore-listan åt gången.
Indata: int maxIntList
Add() - ska överlagras (dunno what that means)
Beskrivning: Lägger till element i listan.
Indata: string name, int points
Print() -
Beskrivning: Denna skriver ut hela listan (ska vara sorterad när den skrivs ut, så antar att den också kallar Sort() först)
Klassen ska också innehålla följande osynliga (private) metod:
Sort() -
Beskrivning: Sorterar listan. Användaren ska aldrig behöva kalla sorteringsmetoden.
Koden i main som ska funka med klasserna och deras metoder.
HighScore hs(5);
hs.Add("JamesTKirk", 132);
hs.Add("AgentMulder", 120);
hs.Add("CaptainPicard", 40);
hs.Add("BobbaFett", 180);
hs.Add("RichDeckard", 110);
hs.Print();
hs.Add("Hal9000", 403);
hs.Add("DavidBowman", 445)
hs.Print(); "
Min kod som har kommenterat bort sort för jag tänkte att jag kanske kan lösa den biten själv när jag fattar allt annat. Har kommenterat lite också. Själva problemet jag har är hur HighScore(), Print() och Add() ska interagera med HighScore hs(5) i main och klassen HSItem. Och har absolut ingen aning vad jag ska mata in i HighScore och vartifrån. Hade det varit en vektor så skulle väll hs.size() funka. Försökte få HighScore att ärva HSItem, men det sket sig också såklart lol.
KOD:
Kod:
#include <iostream>
#include <string>
using namespace std;
class HSItem
{
public:
string name;
int points;
HSItem(string _name, int _points)
{
name = _name;
points = _points;
}
string& getName()
{
return name;
}
int getPoints()
{
return points;
}
};
class HighScore: public HSItem //Skapar problem i main (HighScore hs[5], ska ärva HSItems saker tänkte jag.
{
public:
HighScore(int maxInList) //Ingen aning
{
}
Add() //?
{
//string getName; ?
//int getPoints; ?
//maxInList ++ ?
}
Print() //?
{
// Sort();
// if (int i = 0; i < maxInList; i++)
// {
// cout << hs[i] << endl;
// }
}
private:
// void Sort(HighScore hs[])
// {
// HighScore.Add() temp ("",0); //deklarera den pemporära objektet temp endast en gång före loopen
// for (int i = 0; i < 4; i++)
// {
// int nrLeft = 4 - i;
//
// for (int j = 0; j < nrLeft; j++)
// {
// if (hs[j].getPoints() > hs[j+1].getPoints())
// {
// temp = hs[j];
// hs[j] = hs[j+1];
// hs[j+1] = temp;
// }
// }
// }
// }
};
int main()
{
HighScore hs(5);
hs.Add("JamesTKirk", 132);
hs.Add("AgentMulder", 120);
hs.Add("CaptainPicard", 40);
hs.Add("BobbaFett", 180);
hs.Add("RichDeckard", 110);
hs.Print();
hs.Add("Hal9000", 403);
hs.Add("DavidBowman", 445)
hs.Print();
return 0;
}
__________________
Senast redigerad av gholiat 2017-08-13 kl. 17:31.
Senast redigerad av gholiat 2017-08-13 kl. 17:31.