Permalänk
Medlem

C++ Hjälp

Jag håller på med en uppgift här och jag behöver lite hjälp, klicka på länken för att se vad som ska göras.

http://www.bozter.se/uppgift.jpg

Här är koden jag jobbat med:

#include <iostream> #include<fstream> using namespace std; int main() { int tal; cout<<"0. Avsluta\n1. Se registret\n2. Sok/Sortera\n3. Sälj\nAnge ditt val:"; cin>>tal; if (tal == 1) { char vekt[50][99]; ifstream lasa("bilreg.txt"); int antal=0; while( lasa.getline(vekt[antal], 99)) { antal++; } for( int i=0;i<antal;i++) cout<<vekt[i]<<" "<<endl; } else if(tal == 2) { int tal; cout<<"\n21. Söka\n22. Sortera\n23. Se registret\n24. Till huvudmenyn\nAnge ditt val:"; cin>>tal; } return EXIT_SUCCESS; }

Fråga 1:
Vad innebär denna del av koden , kan jag göra den enklare? Vad gör "antar++;" ?

if (tal == 1) { char vekt[50][99]; ifstream lasa("bilreg.txt"); int antal=0; while( lasa.getline(vekt[antal], 99)) { antal++; } for( int i=0;i<antal;i++) cout<<vekt[i]<<" "<<endl; }

Fråga 2:
När jag matar in 21,22,23,24 vad ska jag använda mig av för satser då, några förslag?

Fråga 3:
Om man skriver in en 3a i första 'listan' så ska den sortera mm, vad kan man använda sig av där?

Permalänk
Medlem

Du kan börja med att göra lite saker klara för oss:
Vad är det för kurs/uppgift?
Får du använda standardbiblioteket eller ska du bygga eget?
Du undrar vad en stor del av koden gör, har du ens skrivit den själv?
Vad har du för ambitioner inom c++ och varför klarar du inte av uppgiften nu?
Vad kan vi göra för antaganden om programmet?

Snabbt i huvudet skulle jag bygga en struct bilar; som håller namn, årsmodell, toalvikt, osv. samt en print-funktion.
Sedan göra olika sökfunktioner till structen (bool sortByModell(const bilar&, const bilar&);) tror jag funkar bra att mata in i std::sort.

Den sista frågan är dock viktig när man läser från filen. Är det en kommaseparerad lista, eller vad följer filen för struktur?

Sedan skulle jag påstå att menyn skulle kunna göras mer smidig. Genom att klicka 2 så får du bara två nya alternativ, "Sök" eller "Sortera". Kunde lika gärna gjorts om till "1,2,3,4,5" i början.

Lycka till!

Visa signatur

Cat funeral! Cat funeral!
>>> 112383 <<<

Permalänk

1. For-satser har jag inte mycket koll på, tyvärr.
2. Du kan använda en if-sats inuti en annan if-sats, om du vill. För en nybörjare så är kanske det det enklaste valet. Annars kan man använda en slags switch, men en sådan lämpar sig mer för ett program med många olika val.
I din situation lämpar sig dock en funktion bättre. Jag vet inte hur mycket koll du har på sådana, men eftersom man ska återvända till huvudmenyn är en sådan att föredra.
T.ex.

#include <iostream> #include<fstream> using namespace std; int search; // det här deklarationen av en funktion. int search() // här börjar funktionen. { int tal; cout<<"\n21. Söka\n22. Sortera\n23. Se registret\n24. Till huvudmenyn\nAnge ditt val:"; cin>>tal; //hoppar över lite så du får tänka själv. else //för att avsluta till huvudmenyn. return 0; // för att avsluta till huvudmenyn. } int main() { int tal; cout<<"0. Avsluta\n1. Se registret\n2. Sok/Sortera\n3. Sälj\nAnge ditt val:"; switch(tal) { case '1': char vekt[50][99]; ifstream lasa("bilreg.txt"); int antal=0; while( lasa.getline(vekt[antal], 99)) { antal++; } for( int i=0;i<antal;i++) cout<<vekt[i]<<" "<<endl; break; case '2': search(); break; case '3': //Här skriver du det som har med sälj att göra. break; default: cout << "Felinmatning.\n"; } while(val != '0'); return 0; //lättare att returnera ett tal en en mening. }

Detta är inte komplett kod så du kan inte bara klistra in den och kompilera. Jag har valt att inte hjälpa dig alltför mycket eftersom det ser ut att handla om en skoluppgift.
Edit: Dessutom tror jag det finns andra sätt att läsa från en fil än med en for-sats.
//Calle

Permalänk
Medlem
Skrivet av t0t4l str3:

1. For-satser har jag inte mycket koll på, tyvärr.
2. Du kan använda en if-sats inuti en annan if-sats, om du vill. För en nybörjare så är kanske det det enklaste valet. Annars kan man använda en slags switch, men en sådan lämpar sig mer för ett program med många olika val.
I din situation lämpar sig dock en funktion bättre. Jag vet inte hur mycket koll du har på sådana, men eftersom man ska återvända till huvudmenyn är en sådan att föredra.
T.ex.

#include <iostream> #include<fstream> using namespace std; int search; // det här deklarationen av en funktion. int search() // här börjar funktionen. { int tal; cout<<"\n21. Söka\n22. Sortera\n23. Se registret\n24. Till huvudmenyn\nAnge ditt val:"; cin>>tal; //hoppar över lite så du får tänka själv. else //för att avsluta till huvudmenyn. return 0; // för att avsluta till huvudmenyn. } int main() { int tal; cout<<"0. Avsluta\n1. Se registret\n2. Sok/Sortera\n3. Sälj\nAnge ditt val:"; switch(tal) { case '1': char vekt[50][99]; ifstream lasa("bilreg.txt"); int antal=0; while( lasa.getline(vekt[antal], 99)) { antal++; } for( int i=0;i<antal;i++) cout<<vekt[i]<<" "<<endl; break; case '2': search(); break; case '3': //Här skriver du det som har med sälj att göra. break; default: cout << "Felinmatning.\n"; } while(val != '0'); return 0; //lättare att returnera ett tal en en mening. }

Detta är inte komplett kod så du kan inte bara klistra in den och kompilera. Jag har valt att inte hjälpa dig alltför mycket eftersom det ser ut att handla om en skoluppgift.
Edit: Dessutom tror jag det finns andra sätt att läsa från en fil än med en for-sats.
//Calle

Jo precis jag pluggar komvux just nu, vill lära mig lite om kodning och jag tycker det är lättare att fråga efter hjälp av sweclockers.

Får tacka så mycket för hjälpen , ska se vad jag kan göra utav detta ;D