/*
Vi har ju sysslat en hel del med
strängar och listor (arrayer) och nu ska vi försöka
få ihop det till ett program.
Detta program skall till slut styras av
en meny, i vilken användaren kan välja vilka funktioner han/hon vill använda på listan:
Lägga till objekt – ändra namn eller år
på objekt , ta bort objekt m.m. m.m.
Innehållet i ditt program d.v.s.
informationen om ”CDarna” skall, till slut också
sparar på en textfil och läsas in i programmet när det startas.
Till att börja med får ni här lite kod
att kopiera och klistra in.
Gör det.
Prova sedan hur funktionen changeyear( ) förändras om du tar bort
'&'-tecknet vid funktionsdeklaration och funktionsdefinition.
Lägg sedan in menyritandet
i en funktion.
En funktion som changeTitle
skulle man sedan kunna ge sig på.
*/
#include
<cstdlib>
#include
<iostream>
#include
<string>
#include
<windows.h>
// na11 onsd9-april
//Kolla på funktion och &-funktion lägg utskrift av listan i funktion
using namespace std;
//En kul "windows" funktion som ger
färgad text genom anropet set //color(10);
void setcolor(unsigned short color) //färg på text ange setcolor(0-15)
{ HANDLE hcon = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hcon,color); }
//*******************************************************
// NA11 CD-lista med funktion
// vi testar referens och värde anrop
// programmet kör funktionen void changeYear(cd& yeah )
// med referensanrop. Prova att ta bort '&'-tecknet vid //funktionsdeklaration och funktionsdefinition.
// vi få då en funktion med värdeanrop.
// Hur förändrar det funktionen?
//*******************************************************
struct cd {
//****vår cd-struct deklarerad globalt
string band_name;
string cd_name;
string year;
};
int antal=0; //för att räkna CDar
// när listan skall
sparas på fil
void changeYear(cd& yeah
); //Deklaration
av en funktion, med '&' som ändrar på ett objekts "år"
//***********************************
int main()
{
setcolor(10); //ger GRÖN matrixfärg på text
cd cd_lista [50]; //skapar lista som
kan innehålla max 50 "cdar"
cd_lista[0].band_name="abba"; //1:a
objektet får värden
cd_lista[0].cd_name="voules vou";
cd_lista[0].year = "1982";
antal++; //antal cdar ökar med 1
cout<<"*************************************"<<endl<<endl; //STARTMENY
cout<<"**************CD-Listan**************"<<endl<<endl;
cout<<"*************************************"<<endl<<endl;
getchar();
// ge värden på ett annat sätt**************
for (int i=1;i<3; i++) //Loop
som fyller plats 1 och 2
{
system("cls"); // [0} har ju
redan värden
cout<<" Ange bandnamn : ";
getline(cin, cd_lista[i].band_name);
cout<<" Ange CD-namn : ";
getline(cin, cd_lista[i].cd_name);
cout<<" Ange Utgivningsar : ";
getline(cin, cd_lista[i].year);
antal++;
}
system("cls");
//***utskrift hela listan********************
for (int
i=0;i<antal; i++)
{
cout<<"CD nr: "<<i+1<<" "<<endl;
cout<<"
"<<cd_lista[i].band_name<<endl;
cout<<"
"<<cd_lista[i].cd_name<<endl;
cout<<"
"<<cd_lista[i].year<<endl;
cout<<endl<<endl;
}
changeYear(cd_lista[0]); //anrop
till funktionen changeYear med objekt //0 som sedan
skrivs ut
cout<<cd_lista[0].band_name<<endl;
cout<<cd_lista[0].cd_name<<endl;
cout<<cd_lista[0].year<<endl;
getchar();
return 0;
}//End
program cd-lista
//*****Funktionsdefinition******************
void changeYear(cd&
yeah)
{
yeah.year =
"2013";
cout<<"The
year of this record is now "<<yeah.year<<endl<<endl;
}
//***********************end change
year