17. oktober 2005 - 17:23Der er
11 kommentarer og 1 løsning
Ved tryk på knap fortsæt ekservering
Hej. Jeg er begyndt på at skrive et lille fitness program der skal bruges i et projekt i skolen under navnet "Sport og energi".
Jeg vil lave en lille reaktionstest. Og jeg har tænkt mig at det skal fungere på følgende måde: - Programmet finder en tilfældig værdi mellem 1-10 og ganger det med 1000 (For at få det i milisekunder). - Programmet skal sleepe i de antal milisekunder som den tilfældige funktion lavede. - Når det så er lavet skal den skrive - TRYK - og når man så trykker op enter eller en anden knap skal den tage tidspunktet og fortsætte.
Det eneste jeg har haft svært ved her er det at lave noget som gør at programmet stall'er indtil man trykker på enter. Jeg har lavet noget lignende i qbasic (som er det primære vi bruger på vores skole, men her fik jeg lov til selv at bestemme). Er der nogen der har en ide?
void sleep(unsigned int mseconds) // Sleep funktion, faar vores program til at vente, den ligger et par sekunder til den nuvaerende tid og venter til den tid blider // Advarsel: Vil ikke kompilere på et linux system da vi goer brug af en windows kommando // TODO: Finde noget der virker på alle platforme (Ihvertfald Linux og Mac), og finde noget mere smart da dette kun virker effektivt på programmer med kun en thread kørende { clock_t goal = mseconds + clock(); while (goal > clock()); } int random_number() // En funktion der returnerer en int datatype med et relativt tilfældigt nummer mellem 1-10 til brug i reaktionstesten { srand((unsigned)time(0)); int random_integer; random_integer = (rand()%10)+1;
return random_integer; }
using namespace std;
int main() {
...
// Hastighedsmaaler, her bliver vi noed til at lave et grumt hack else if(menuitem == 'c') { int tilfaeldigt_nummer;
cout << "Intro til hurtighedstest test: "; tilfaeldigt_nummer = random_number()*1000; // Tilfaeldigt nummer gange med 1000 så du faar det i milisekunder sleep(tilfaeldigt_nummer); }
getch() må så blive løsningen, bryder mig ikke om kun at lave det til windows men hvis det skal kunne afleveres til tiden er det vel bedst at det kan compilere på min lærers pc og at han kan se det.
men hvis du kører et console program på Windows så skal du huske at console vinduet kører code page 850 (formentligt) og at du derfor skal bruge code page 850 ÆØÅ og ikke ANSI ÆØÅ
Nu har du vel sørget for at brugeren ikke har trykket på tasten INDEN du viser beskeden?
Du kan evt. bruge CharToOem til at "oversætte" æøå: #include <windows.h> #include <iostream> int main() { char S[] = "Rød grød med fløde"; CharToOem(S, S); std::cout << S << std::endl; }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.