De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Hoofdstuk 10.2 Rekenmachine- casus. Voorbeeld: Rekenmachine.

Verwante presentaties


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

1 Hoofdstuk 10.2 Rekenmachine- casus

2 Voorbeeld: Rekenmachine

3 Twee aspecten: nUser-interface nWerking class Calculator : Form class Processor

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

5 User-interface Calculator ( ) { } paneel = new TableLayoutPanel( ); this.Controls.Add( paneel ); for (int t=0; t<16; t++) { Button knop = new Button(); paneel.Controls.Add( knop ); Buttons zijn ondergeschikt aan het paneel } 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.Columncount = 4; for (int t=0; t<4; t++) paneel.ColumnStyles.Add(...25%... );

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

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

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

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

10 Wat is een Proc? nwaarde op het scherm schermwaarde wordt tienmaal zo groot plus cijfer er lijkt niets te gebeuren... nhuidige waarde nvorige waarde nlaatst gebruikte operator

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

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

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

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

15 Testen van een reeks mogelijke waarden 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(); case 1: case 2: case 3: case 4: case 5: case 6: case 7: default: switch (x) { } break;


Download ppt "Hoofdstuk 10.2 Rekenmachine- casus. Voorbeeld: Rekenmachine."

Verwante presentaties


Ads door Google