De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Hoofdstuk 10.2 Rekenmachine-casus.

Verwante presentaties


Presentatie over: "Hoofdstuk 10.2 Rekenmachine-casus."— Transcript van de presentatie:

1 Hoofdstuk 10.2 Rekenmachine-casus

2 Voorbeeld: Rekenmachine

3 Voorbeeld: Rekenmachine
Twee aspecten: User-interface Werking class Calculator : Form class Processor

4 Rekenmachine: User-interface
Label TableLayoutPanel Button Calculator ( ) { paneel = new TableLayoutPanel( ); for (int t=0; t<16; t++) { } Button knop = new Button(); paneel.Controls.Add( knop ); Buttons zijn ondergeschikt aan het paneel this.Controls.Add( paneel ); }

5 ondergeschikt aan het paneel
User-interface Calculator ( ) { paneel = new TableLayoutPanel( ); paneel.Columncount = 4; for (int t=0; t<4; t++) paneel.ColumnStyles.Add( %... ); for (int t=0; t<16; t++) { Button knop = new Button(); knop.Text = "789/456*123+0C=-"[t].ToString(); knop.Dock = DockStyle.Fill; knop.Click = this.klik; knop.KeyPress += this.toets; knop.Resize += this.groei; paneel.Controls.Add( knop ); Buttons zijn ondergeschikt aan het paneel } this.Controls.Add( paneel ); }

6 Opbouw klasse Calculator
class Calculator : Form { Label result; TableLayoutPanel paneel; Proc proc; membervariabelen ook nodig in EventHandlers Calculator ( ) { result = new Label( ); result.TextAlign = ContentAlignment.MiddleRight; // en de rest van de Userinterface-opbouw proc = new Processor ( ); }

7 Calculator Event-handlers
class Calculator : Form { Label result; Proc proc; void klik (object obj, EA ea) { } verwerk( ((Button) object) . Text[0] ); void toets(object obj, KPEA kpea ) { } verwerk( kpea.KeyChar ); void groei(object obj, EA ea ) { } Control c = (Control) obj; int h = c.Height / 2; if (c==result) h = c.Height/3; c.Font = new Font("Tahoma", h);

8 Calculator Event-handlers
class Calculator : Form { Label result; Proc proc; void verwerk (char c) { if (c==‘C’) proc.Schoon(); else if (c==‘=’) proc.Reken(); else if (c>=‘0’&&c<=‘9’) proc.Cijfer(c- ‘0’); else proc.Operatie(c); result . Text ( ); proc . Scherm }

9 Opbouw klasse Proc class Proc { long Scherm; wat is een Proc?
Proc ( ) { this . Schoon(); } void Schoon ( ) { ... } void Reken ( ) { ... } void Cijfer (int n) { ... } void Operatie (char c) { ... } wat kan een Proc?

10 Wat is een Proc? waarde op het scherm huidige waarde vorige waarde
9 3348 372 37 vorige waarde laatst gebruikte operator er lijkt niets te gebeuren... schermwaarde wordt tienmaal zo groot plus cijfer

11 Opbouw klasse Proc class Proc { long Scherm; wat is een Proc?
long waarde, vorige; char op; Proc ( ) { this . Schoon(); } void Schoon ( ) { ... } void Reken ( ) { ... } void Cijfer (int n) { ... } void Operatie (char c) { ... } wat kan een Proc?

12 Proc’s methode cijfer class Proc { long scherm, waarde, vorige;
char op; void Cijfer (int n) { } waarde = 10*waarde + n; scherm = waarde;

13 Proc’s methode reken class Proc { long scherm, waarde, vorige;
char op; void Reken ( ) { } if (op==‘+’) if (op==‘-’) if (op==‘*’) if (op==‘/’) vorige += waarde; vorige -= waarde; vorige *= waarde; vorige /= waarde; scherm = vorige; waarde = 0;

14 Proc’s methode operatie
class Proc { long scherm, waarde, vorige; char op; void Operatie (char c) { } this . reken ( ); op = c; void Schoon ( ) { waarde = 0; vorige = 0; scherm = 0; op = } ‘+’;

15 Testen van een reeks mogelijke waarden
switch (x) { } case 1: case 2: case 3: case 4: case 5: case 6: case 7: default: if (x==1) else if (x==2) else if (x==3) else if (x==4) else if (x==5) else if (x==6) else if (x==7) else this.een(); this.twee(); this.drie(); this.vier(); this.vijf(); this.zes(); this.zeven(); this.meer(); break;


Download ppt "Hoofdstuk 10.2 Rekenmachine-casus."

Verwante presentaties


Ads door Google