Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[C++] Object 'table' in do-lus skipt ongevraagd door

Pagina: 1
Acties:
  • 38 views sinds 30-01-2008

  • mapiho
  • Registratie: September 2007
  • Laatst online: 08-10 22:38
Ok mensen.. Dit wordt een slapeloze nacht. Ik probeer hier mbv een randomgetallen generator een telraampje te realiseren in de vorm van een int array. Eerst wil ik de compiler zover krijgen dat hij me laat zien hoe vaak een bepaald getal is geworpen in cijfers.

Ik krijg geen foutmeldingen, maar wel onjuiste waarden en zelfs een skip naar de reset functie. Zou iemand me alsjeblieft kunnen zeggen wat ik niet goed doe?

Ik heb in de lidfuncties references geprobeerd en returns, maar die willen niet werken ;( ...help


// M.P. Holtrop

#include <iostream.h>
#include <conio.h> // _getch()
#include <stdlib.h> // srand()
#include <time.h> // time()

class Frequentietabel {
private:
int i;

public:
void dice( int & number ) { // reference argument voor rn
srand ( time(NULL) ); // initialiseer random seed mbv de tijd
number = rand() % 11; // genereer random nummer mbv de seed
}

void reset( int p[], int max ) { // resetten van de array
for ( i = 0; i < max; i++ ) {
p[ i ] = 0;
}
}

void add_mark( int p[], int num ) { // element array "aanturven"
p[ num ] = p[ num ] +1;
}

void print( int p[], int max ) { // toon huidige lijst
for ( i = 0; i < max; i++ ) {
cout << p[ i ] << endl;
}
}

}; // einde specificatie

int main() {
Frequentietabel table;

char choice;
const int MAX = 10; // vast aantal elementen
int a[MAX], value;

cout << "Dit programma genereert, op jouw aangeven, een willekeurig getal" << endl;
cout << "van de cijfers 0 t/m 10 en turft deze aan in een frequentietabel." << endl << endl;
cout << "Druk op" << endl << endl;
cout << "---------------------------------------" << endl;
cout << "W voor een worp" << endl;
cout << "R voor het resetten van de tabel" << endl;
cout << "S voor het stoppen van het programma" << endl;
cout << "---------------------------------------" << endl << endl;

do {
choice = getch();

if ( choice == 'W' || choice == 'w' )
table.dice( value );
table.add_mark( a, value );
table.print( a, MAX );

if ( choice == 'R' || choice == 'r' )
table.reset( a, MAX );
cout << "De tabel is gereset" << endl << endl;

if ( choice == 'S' || choice == 's' )
cout << "Je hebt op S gedrukt: het programma stopt" << endl;

} while ( choice != 'S' && choice != 's' );

cout << endl << "Druk op Enter";
cin.get();
return 0;
}

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Programming Beleid Quickstart

Zo werkt het hier niet. We zijn geen afhaalbalie voor kant-en-klare oplossingen; al helemaal niet als je hier een lap code dumpt en dan van ons verwacht dat wij het voor je gaan zitten debuggen. Zoals je in bovengenoemde quickstart zult lezen verwachten we echt vele malen meer eigen inzet dan dat je nu toont in je topic.

Daarbij; als je code post, gebruik dan code tags.

edit: Ah, ik zie dat je nieuw bent hier. In dat geval een van harte welkom (ook al lijkt dat misschien niet zo) en veel plezier gewenst op GoT :w Als het goed is heb je dit ook gelezen toen je registreerde. Heb je dat niet gedaan dan is dat wellicht toch niet onverstandig ;) Ander handig leesvoer vind je in ons Algemeen beleid ;)

[ Voor 95% gewijzigd door RobIII op 11-01-2008 00:40 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Dit topic is gesloten.