Programmering 1 c++, sorteringsalgoritm, bubblesort, linjärsökning
Hej!!
Har det lite panik just nu, har en uppgift där jag ska göra följande:
-Deklaration av klassens attribut, dess datatyp och medlemsfunktionen/metoden ToString()
-Implementation av linsok och bubblesortering funktioner/metoder
-Få indata från användaren städernas namn och temperatur
-Kontrollera att de inmatade temperaturvärden befinner sig inom intervallet
temperatur >= -60 && temperatur <= 60
-Sök i fältet vilken stad har en viss temperatur. För detta anropa linsök funktionen/metoden
-Anropa funktionen/metoden för sortering av element i fältet
-Anropa funktionen/metoden för ToString och gör en utskrift av objekt i fältet
Så ska skapa en klass, vilket jag gjort, Stad. Sen ska användare skriva in 4 städer och temperaturer i dessa städer. Sen ska jag lagra dessa intagen någonstans och göra en bubblesortering på det där temperatur går från lägst till högst.
Sen ska jag göra en linjärsökning där man ska söka efter en temperatur så ska staden som har den temperaturen dyka upp.
Koden är inte färdig som ni kanske ser, men om någon fin själ där ute kan ta sin tid att förklara hur jag ska göra med min bubblesortering och linjära sökning för just nu är det bara blankt asså.
Det går att skriva in städer samt temperatur sen att söka temperatur men inget mer.
Tack i förhand!.
#include <iostream>
#include <vector>
#include <list>
using namespace std;
class Stad
{
public:
string namn;
int temp;
string toString();
};
void InfoStad(vector <Stad>& myList, string namn, int temp)
{
Stad stad;
myList.push_back(stad);
cout << "V\204nligen ange namn p\206 4 st\204der samt temperaturen i st\204derna \n";
for (int i = 0; i < 4; i++)
{
cout << "Ange stad: " << endl;
cin >> namn;
myList.push_back(stad);
cout << "Ange temperatur: " << endl;
cin >> temp;
if (temp >= 60 || temp <= -60)
{
cout << "Ogiltlig temperatur" << endl;
}
else
{
myList.push_back(stad);
}
}
}
static void Bubblesort(vector<Stad> myList)
{
int n = myList.size();
int max = n - 1;
for (int i = 0; i < max; i++)
{
int nrLeft = max - i;
for (int j = 0; j < nrLeft; j++)
{
if (myList[j].temp > myList[j + 1].temp)
{
Stad SorteradStad = myList[j];
myList[j] = myList[j + 1];
myList[j + 1] = SorteradStad;
}
}
}
}
int linSok(vector<Stad> myList)
{
int soktemp;
cout << "S\224k temperatur: \n";
cin >> soktemp;
for (int i = 0; i < myList.size(); i++)
{
if (myList[i].temp == soktemp)
return i;
}
return -1;
}
int main()
{
string namn;
int temp{};
vector <Stad> myList = {};
InfoStad(myList, namn, temp);
Bubblesort(myList);
linSok(myList);
return 0;
}