Frika Bazinga Skrevet 16. februar 2008 Skrevet 16. februar 2008 (endret) Hei, Er ny i C++, Bruker Dev-C++... har laget: #include <cstdlib> #include <iostream> #include <windows.h> using namespace std; char cNumber; int main() { cout << "Skriv inn passord [xxxxxx]:" << endl; cin >> cNumber; cout << endl; if (cNumber == 'bad') { system("CLS"); cin.clear(); cout << "Checking..."; Sleep(3000); system("CLS"); cin.clear(); cout << endl; cout << " - Passord: " << cNumber; cout << ", suceeded! - " << endl; cout << endl; cout << endl; system("PAUSE"); return EXIT_SUCCESS; } else { system("CLS"); cin.clear(); cout << "Checking..."; Sleep(3000); system("CLS"); cin.clear(); cout << endl; cout << " - WRONG - " << endl; cout << endl; cout << endl; system("PAUSE"); return EXIT_SUCCESS; } } men "bad" funker ikkje som et "passord", hvordan skal eg dedikere "cNumber" slik at eg kan skrive et lengre ord.. takk for hjelp Endret 16. februar 2008 av FR!K
Giddion Skrevet 16. februar 2008 Skrevet 16. februar 2008 Hei, Er ny i C++, Bruker Dev-C++... har laget: snip men "bad" funker ikkje som et "passord", hvordan skal eg dedikere "cNumber" slik at eg kan skrive et lengre ord.. takk for hjelp cNumber er en bokstav (char) så den kan ikke romme flere bokstaver, så derfor bruker man i c++ std::string (trenger <string>). Man kan eventuelt bruke array av char, men ikke bruk det med mindre du vet hvordan det fungerer. Når det gjelder den ifen så må du bytte ut ' med " så burde alt fungere fin fint. lykke til videre.
Frika Bazinga Skrevet 16. februar 2008 Forfatter Skrevet 16. februar 2008 Brukte bare cNumber pga systemtisering brukte Char, ja derfor C'en... men cNumber er vel bare et navn? #include <sting> string sNumber noe sånn?
Kagee Skrevet 16. februar 2008 Skrevet 16. februar 2008 Ja, cNumber er bare et navn, men det betyr også at du må endre det alle steder det oppgis i koden. Nybegynner selv, så det var interesant å lese koden din. Men g++ klikker for meg om jeg bruker if (cNumber == 'bad') så jeg må bruke if (cNumber == "bad")
Frika Bazinga Skrevet 16. februar 2008 Forfatter Skrevet 16. februar 2008 Ja, cNumber er bare et navn, men det betyr også at du må endre det alle steder det oppgis i koden. Nybegynner selv, så det var interesant å lese koden din. Men g++ klikker for meg om jeg bruker if (cNumber == 'bad') så jeg må bruke if (cNumber == "bad") Har klart det #include <cstdlib> #include <iostream> #include <windows.h> #include <string> #include <string.h> using namespace std; string str; int main() { cout << "Skriv inn passord:" << endl; cin >> str; cout << endl; if (str == "pannekaker") { system("CLS"); cin.clear(); cout << "Checking..."; Sleep(3000); system("CLS"); cin.clear(); cout << endl; cout << " - Passord: " << str; cout << ", suceeded! - " << endl; cout << endl; cout << endl; system("PAUSE"); return EXIT_SUCCESS; } else { system("CLS"); cin.clear(); cout << "Checking..."; Sleep(3000); system("CLS"); cin.clear(); cout << endl; cout << " - WRONG - " << endl; cout << endl; cout << endl; system("PAUSE"); return EXIT_SUCCESS; } } noen som har noen spennenede nye ideer? trenger å lære litt FR!K
Giddion Skrevet 16. februar 2008 Skrevet 16. februar 2008 Hva med et program som du kan skriver inn når du er født for så sier hvor gammel du er.
Frika Bazinga Skrevet 16. februar 2008 Forfatter Skrevet 16. februar 2008 Hva med et program som du kan skriver inn når du er født for så sier hvor gammel du er. her... men eg vet ikkej hvordan eg skal få den skikkelig til å funke, pga er du eldre enn slik og slik skriver den "-1 moths" Feks. #include <cstdlib> #include <iostream> #include <windows.h> #include <time.h> using namespace std; int main(int argc, char *argv[]) { system("TITLE HOW OLD?"); time_t t = time(0); tm time = *localtime(&t); double dYear; double dDay; double dMonth; cout << endl; cout << "Oki, i am going to tell how old you are. Write in your day of your birth:"<<endl <<endl; cout << "Day (dd): "; cin >> dDay; cout << endl; cout << "Month (mm): "; cin >> dMonth; cout << endl; cout << "Year (yyyy): "; cin >> dYear; cout << endl << endl; Sleep(1000); cout << "You are: " << time.tm_mday - dDay << " days, "; cout << time.tm_mon +1 - dMonth << " months, " <<time.tm_year + 1900 - dYear << " years old"; cout << endl; system("PAUSE"); return EXIT_SUCCESS; } kom med forslag FR!K
LuggagE Skrevet 17. februar 2008 Skrevet 17. februar 2008 Du kan legge inn en feilsjekk på den siste koden du la ut (i.e: Sette maks og minimumsgrense på innverdier så det ikke blir feil i utregningen). Siden du nå er på stadiet å ta imot input fra en bruker så kan du jo lage mini-spill som f.eks: Hangman (gjette et ord, bokstav for bokstav), gjett tallet (programmet lager et random tall og bruker skal prøve å gjette det, og får tilbakemelding: for høyt; for lavt). Hvis du vil prøve deg på noe litt mer avansert kan du jo titte på klasser? Lykke til videre med programmeringen.
Giddion Skrevet 17. februar 2008 Skrevet 17. februar 2008 kom med forslag Du kan jo legge inn et par skjekker f. eks. hvis dager er negativ ta en mnd. og hvis mnd. er negativ ta et år. eks. (etter din utregning) if (day < 0) { mnd--; day += 30; //30 eller 31 } Hvorfor bruker du double?
Frika Bazinga Skrevet 17. februar 2008 Forfatter Skrevet 17. februar 2008 kom med forslag Du kan jo legge inn et par skjekker f. eks. hvis dager er negativ ta en mnd. og hvis mnd. er negativ ta et år. eks. (etter din utregning) if (day < 0) { mnd--; day += 30; //30 eller 31 } Hvorfor bruker du double? fordi double er det eneste eg vet eg kan bruke til tall xD eg vet ingen andre xD kunne tatt int vel... men liksom double funker vel? eller?
Giddion Skrevet 17. februar 2008 Skrevet 17. februar 2008 Hvorfor bruker du double? fordi double er det eneste eg vet eg kan bruke til tall xD eg vet ingen andre xD kunne tatt int vel... men liksom double funker vel? eller? Ja double funker fint det, men int hadde vært et bedre valg ettersom du bare taper (cpu tid++) på å bruke bruke double. Det blir litt pirk fra min side, men du burde ikke bruke double til alt.
Frika Bazinga Skrevet 17. februar 2008 Forfatter Skrevet 17. februar 2008 @Giddion: Kunne du komt med et oppsett på et program der man bruker klasser? vil lære
Giddion Skrevet 18. februar 2008 Skrevet 18. februar 2008 @Giddion: Kunne du komt med et oppsett på et program der man bruker klasser? vil lære supert at du vil lære c++. Hva med å lage en klasse som heter katt og en som heter hund Hver av klassene skal ha en variabel som definerer hvor godt humør de er i, variablen skal være en enum. Klassene skal ha en funksjon som heter lag lyd (voff mjau) når etter dyrelyden skal de skrives ut åssen humør dyret er i. dette skal gjøres ved bruk av switch. En funksjon som brukes til å sette humøret må også lages ettersom humør variabel er private.
Frika Bazinga Skrevet 18. februar 2008 Forfatter Skrevet 18. februar 2008 @Giddion: Kunne du komt med et oppsett på et program der man bruker klasser? vil lære supert at du vil lære c++. Hva med å lage en klasse som heter katt og en som heter hund Hver av klassene skal ha en variabel som definerer hvor godt humør de er i, variablen skal være en enum. Klassene skal ha en funksjon som heter lag lyd (voff mjau) når etter dyrelyden skal de skrives ut åssen humør dyret er i. dette skal gjøres ved bruk av switch. En funksjon som brukes til å sette humøret må også lages ettersom humør variabel er private. jaha... kunne du laget en slik at eg kan få se, fordi eg skjønner ikkje helt, pluss at eg har ikkje "arbeidet" med klasser eller switch... takk
Frika Bazinga Skrevet 18. februar 2008 Forfatter Skrevet 18. februar 2008 (endret) har laget ferdig, eller så mye eg vet, i forhold til den alders saken #include <cstdlib> #include <iostream> #include <time.h> using namespace std; int dDay; int dMonth; int dYear; int ar; int dag; int mnd; int main(int argc, char *argv[]) { system("TITLE HOW OLD?"); time_t t = time(0); tm time = *localtime(&t); cout << "Oki, i am going to tell how old you are. Write in your day of your birth:"<<endl <<endl; cout << "Day (dd) : "; cin >> dDay; cout << "Month (mm) : "; cin >> dMonth; cout << "Year (yyyy) : "; cin >> dYear; cout << endl; ar = (time.tm_year + 1900 - dYear); dag = (time.tm_mday - dDay); mnd = (time.tm_mon +1 - dMonth); if (dag < 0) { mnd--; dag += 30; //30 eller 31 } if (mnd < 0) { ar--; mnd += 12; } cout << "You are: " << dag << " days, "; cout << mnd << " months, " << ar << " years old"; cout << endl; system("PAUSE"); return EXIT_SUCCESS; } bare til å si noe dere ville gjort anderleder! ;D Endret 18. februar 2008 av FR!K
Frika Bazinga Skrevet 18. februar 2008 Forfatter Skrevet 18. februar 2008 @Giddion: dette er jo Console programering, kan du windows app.? i så fall hvordan kan eg få den "alder.exe" inn i windows? Kåt på læring
Dead_Rabbit Skrevet 18. februar 2008 Skrevet 18. februar 2008 Lær deg et GUI-bibliotek som f.eks. Qt eller GTKmm. Les noen tutorials på de respektive sidene, så bør du være i gang om ikke så lenge. Menneh, lønner seg å ha styring på klasser og slikt før du hiver deg ut i GUI programmering. Og når det er sagt, GUI er ikke noe å stresse med. Er ikke spesielt kult eller gøy å drive med (etter at man har skrevet sitt første GUI program og lekt litt med det ihvertfall). Bruk det når du trenger det.
GeirGrusom Skrevet 18. februar 2008 Skrevet 18. februar 2008 GUI er i tillegg noe jeg vil si C++ er ganske uegnet til, ihvertfall hvis det er store programmer det er snakk om. Jeg bruker C++ kun til å skrive biblioteker og console verktøy.
Giddion Skrevet 19. februar 2008 Skrevet 19. februar 2008 jaha... kunne du laget en slik at eg kan få se, fordi eg skjønner ikkje helt, pluss at eg har ikkje "arbeidet" med klasser eller switch... takk jupp, men ikke før i morgen
Giddion Skrevet 21. februar 2008 Skrevet 21. februar 2008 (endret) Her er koden, jeg pakket inn lit avanserte greier også (burde være merket med adv), men det kan du bare se bort fra i starten #include <iostream> #include <windows.h> using namespace std; enum eMood// definerer de ulike humørene til dyrene { Angry, // første enum har verdien 0 Playfull, // andre har verdien 1 ... osv Happy // 2 }; class CAnimal { protected://er tilgjengelig for "barna" til klassen eMood Mood; public://tilgjengelig for alle !! virtual ~CAnimal(void) {};////adv: hvis man bruker virituel dekonstruktor kjøres dekonstruktorene til de arvene klassen hvis man sletter en CAnimal instanse virtual void MakeSound() = 0;//litt adv:funksjonen må defineres i "barna" void SetMood(eMood mood)//funksjonen kan brukes av alle barna { this->Mood = mood;//this er alltid en peker til klassen du "er" i } }; class CCat : public CAnimal//arver fra dyr { public: CCat(void)//kjøres når klassen lages (før den blir laget helt ferdig) { Mood = Angry;//har tilgang til Mood fra CAnimal cout << "En katt kom til din PC" << endl; } ~CCat(void)// kjøres før klassen slettes helt { cout << "En katt forlater din PC" << endl; } void MakeSound() { cout << "Mjau "; switch (Mood)//switch er kjekk, den bruker variablen Mood og kikker gjennom { case Angry://har Mood verdien til Angry? cout << "(Angry)" << endl; break;//hopper ned til slutten på switch case Playfull://har Mood verdien til Playfull? cout << "(Playfull)" << endl; break; case Happy: cout << "(Happy)" << endl; break; default: //ingen av casene stemte ... break; } }//havner her etter break; }; class CDog : public CAnimal//arver også fra CAnimal { public: CDog(void) { Mood = Happy;// hunder er glade fra starten av cout << "En hund kom til din PC" << endl; } ~CDog(void) { cout << "En hund forlater din PC" << endl; } void MakeSound() { cout << "voff "; switch (Mood) { case Angry: cout << "(Angry)" << endl; break; case Playfull: cout << "(Playfull)" << endl; break; case Happy: cout << "(Happy)" << endl; break; } } }; int main(int argc, char *argv[])//tok med en liten peker intro samt dynamisk allokert minne :D { CDog hund; hund.SetMood(Angry);//CDog har tilgang til SetMood som er en public funksjon som CDog har arvet fra CAnimal hund.MakeSound();// CCat katt; katt.MakeSound(); ///////////adv: Denne blokken har med pekere og dynamisk allokering av minne .. ta det som det kommer. CAnimal* EtDyr = new CDog(); //Siden CDog arver fra CAnimal kan man gjøre dette. Allokerer en ny hund i minnet EtDyr->MakeSound();//Kaller på den virituelle funksjonen i CAnimal .. Som igjen kaller på funksjonen i den arvende klassen delete EtDyr;//Sletter minnet som Hund brukte EtDyr = new CCat();//CCat arver også fra CAnimal EtDyr->SetMood(Happy);//Kaller på den public funksjonen SetMood. EtDyr->MakeSound();//Kaller på funksjonen i CCat via CAnimal delete EtDyr;//Fjerner minnet som CCat brukte. Hvis man bruker delete her har man en memmory leak... MessageBox(NULL,"Litt c++ gui på slutten :D,","GUI! ",MB_OK | MB_ICONINFORMATION);//fjern den hvis du får linker problemer return 0; }//ca her deallokeres hund og katt.. det er ganske vanskelig og se hvis du ikke kjører det fra en konsole;) Endret 21. februar 2008 av Giddion
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå