04.05.2013 Views

00080.2 rekenaarstudie hg computer studies hg (vraestel 2)

00080.2 rekenaarstudie hg computer studies hg (vraestel 2)

00080.2 rekenaarstudie hg computer studies hg (vraestel 2)

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

TYD/TIME: 3 UUR/HOURS<br />

PUNTE/MARKS: 100<br />

<strong>00080.2</strong><br />

REKENAARSTUDIE HG<br />

COMPUTER STUDIES HG<br />

(VRAESTEL 2)<br />

(PAPER 2)<br />

NOVEMBER 2005<br />

SENIOR SERTIFIKAAT-EKSAMEN<br />

SENIOR CERTIFICATE EXAMINATION<br />

2005<br />

REKENAARSTUDIE HG (VRAESTEL 2)<br />

COMPUTER STUDIES HG (PAPER 2)<br />

Hierdie <strong>vraestel</strong> bestaan uit 19 bladsye.<br />

This question paper consists of 19 pages.


2<br />

INSTRUKSIES<br />

1.<br />

2.<br />

3.<br />

4.<br />

5.<br />

6.<br />

7.<br />

8.<br />

9.<br />

REKENAARSTUDIE HG (<strong>00080.2</strong>)<br />

HIERDIE IS ‘N DRIE-UUR-EKSAMEN. WEENS DIE AARD VAN HIERDIE<br />

EKSAMEN IS DIT BELANGRIK OM DAAROP TE LET DAT JY NIE TOEGELAAT<br />

SAL WORD OM DIE EKSAMENLOKAAL VOOR DIE EINDE VAN DIE<br />

EKSAMENSESSIE TE VERLAAT NIE.<br />

Beantwoord AL die vrae.<br />

Vrae 1 en 2 moet beantwoord word deur gebruik te maak van MS Access.<br />

Jy mag enige Java IDE gebruik om die Java-vrae, d.i. vrae 3 en 4, te beantwoord.<br />

Die opsiener sal vir jou ‘n disket gee wat al die lêers bevat wat vir die eksamen<br />

benodig word of jy sal instruksies kry oor waar om die lêers op die netwerk te vind.<br />

Indien jy ‘n disket ontvang het, moet jy jou naam en eksamennommer op die etiket<br />

skryf.<br />

10. Geen drukwerk word vereis nie.<br />

11.<br />

12.<br />

Stoor jou werk gereeld as ‘n voorsorgmaatreël teen kragonderbrekings.<br />

Lees asseblief die vrae noukeurig. Moenie meer doen as wat die vraag vereis nie.<br />

‘n Kopie van die meesterlêers is by die opsiener beskikbaar. As jy per ongeluk die<br />

lêers wat aan jou gegee is beskadig, kan jy die opsiener om nog kopieë vra.<br />

Aan die einde van die eksamen moet jy net die disket inlewer wat deur die opsiener<br />

aan jou gegee is of seker maak dat jou werk op die netwerk gestoor is soos deur<br />

die opsiener/onderwyser aan jou verduidelik is. Maak asseblief seker dat al die<br />

lêers gelees kan word.<br />

Gedurende die eksamen mag jy gebruik maak van die handleidings wat<br />

oorspronklik saam met die apparatuur en programmatuur voorsien is. Jy mag ook<br />

van die HELP-funksies van die programmatuur gebruik maak. Jy mag nie na enige<br />

ander bronmateriaal verwys nie.<br />

Indien jy enigsins twyfel oor die betekenis van ‘n bepaalde Afrikaanse term,<br />

raadpleeg gerus die Engelse weergawe van die <strong>vraestel</strong>.


INSTRUCTIONS<br />

1.<br />

2.<br />

3.<br />

4.<br />

5.<br />

6.<br />

7.<br />

8.<br />

9.<br />

10.<br />

11.<br />

COMPUTER STUDIES HG (<strong>00080.2</strong>) 3<br />

THIS IS A THREE-HOUR EXAMINATION. BECAUSE OF THE NATURE OF THIS<br />

EXAMINATION IT IS IMPORTANT TO NOTE THAT YOU WILL NOT BE<br />

PERMITTED TO LEAVE THE EXAMINATION ROOM BEFORE THE END OF THE<br />

EXAMINATION SESSION.<br />

Answer ALL the questions.<br />

Questions 1 and 2 must be answered using MS Access.<br />

You may use any Java IDE to answer the Java questions, i.e. Questions 3 and 4.<br />

The invigilator will give you a disk containing all the files needed for the examination<br />

or you will be given instructions as to where to find the files on the network. If a<br />

disk has been issued, please write your name and examination number on the<br />

label.<br />

Save your work at regular intervals as a precaution against power failures.<br />

Please read the questions carefully. Do not do more than what is required by the<br />

question.<br />

A copy of the master files will be available from the invigilator. Should you<br />

accidentally corrupt the files given to you, you may request further copies from the<br />

invigilator.<br />

At the end of the examination you must hand in only the disk given to you by the<br />

invigilator or you must make sure that all the files have been saved on the network<br />

as explained to you by the invigilator/teacher. Please ensure that all files can be<br />

read.<br />

No printing is required.<br />

During the examination you may make use of the manuals originally supplied with<br />

the hardware and software. You may also use the HELP functions of the software.<br />

You may not refer to any other resource material.


4<br />

REKENAARSTUDIE HG (<strong>00080.2</strong>)<br />

AFDELING A – DATABASISONTWIKKELING<br />

VRAAG 1<br />

‘n Databasis met die naam “Nobelpryswenners.mdb” is aan jou verskaf. Dit bevat een<br />

tabel genaamd “Hoof”. Elke veld in die tabel is gedefineer as tipe “Text” en het ‘n<br />

grootte van 50 .<br />

Die databasis sal gebruik word om op hoogte te bly van ‘n nuwe boek wat oor<br />

Nobelpryswenners geskryf gaan word. Die databasis benodig omvattende herontwerp.<br />

Jy gaan dit doen deur ‘n nuwe databasis te skep en die data van die oorspronklike<br />

databasis “Nobelpryswenners.mdb” in te voer.<br />

1.1 Skep ‘n nuwe leë databasis genaamd “NPP2006.mdb”. Voer die tabel<br />

genaamd “Hoof” van die databasis genaamd “Nobelpryswenners.mdb” in. [2]<br />

Bring nou die volgende veranderings aan die tabel genaamd “Hoof” in die databasis<br />

genaamd “NPP2006.mdb” aan.<br />

1.2 Die veld genaamd “Naam” word nie meer verlang nie en moet verwyder word.<br />

Wis die veld genaamd “Naam” en die inhoud daarvan uit. [1]<br />

1.3 Verander die veld genaamd “Bladsye” na ‘n numeriese tipe. [1]<br />

1.4 Verander die ander “Text”-velde na geskikte groottes. [2]<br />

1.5 Voeg ‘n “Autonumber”-veld by en stel dit as die Primêre Sleutel. Noem hierdie<br />

veld “MainID”. [2]<br />

1.6 Die huidige data in die veld genaamd “Aanvaar” is leeg om “Ja” aan te dui en<br />

bevat die woord “NEE” om “Nee” aan te dui. Die nuwe veldtipe moet ‘n<br />

regmerkie () vertoon om “Ja” aan te dui en moet leeg wees om “Nee” aan te<br />

dui.<br />

Doen wat ookal nodig is om die veld genaamd “Aanvaar” na ‘n Ja/Nee-tipe te<br />

verander. Maak seker dat die huidige inskrywings behoue bly. [3]<br />

Verskeie nuwe tabelle sal oor ‘n uitgebreide ontwikkelings periode bygevoeg word. Die<br />

eerste van hierdie tabelle is ‘n tabel genaamd “Skrywers” wat gebruik sal word om op<br />

hoogte te bly van die onderskeie skrywers wat betrek gaan word om ‘n aantal bladsye<br />

oor Nobelpryswenners te skryf. Een skrywer kan gevra word om oor ‘n aantal<br />

pryswenners te skryf, maar slegs een skrywer sal aan elke pryswenner se inskrywing<br />

toegewys word.


COMPUTER STUDIES HG (<strong>00080.2</strong>)<br />

SECTION A – DATABASE DEVELOPMENT<br />

QUESTION 1<br />

The database called “Nobel Prize Winners.mdb” has been provided for you. It<br />

contains one table called “Main”. Each field in the table has been declared of type Text,<br />

with a size of 50.<br />

The database is to be used to keep track of a new book to be written about Nobel Prize<br />

winners. The database requires extensive re-design. You are going to do this by<br />

creating a new database and importing data from the original “Nobel Prize<br />

Winners.mdb” database.<br />

1.1 Create a new blank database called “NPP2006.mdb”. Import the table called<br />

“Main” from the database called “Nobel Prize Winners.mdb”. [2]<br />

Now make the following changes to the table called “Main” in the database called<br />

“NPP2006.mdb”:<br />

1.2 The field called “Name” is no longer required and must be discarded. Delete<br />

the field called “Name” and its contents. [1]<br />

1.3 Change the field called “Pages” to a numerical type. [1]<br />

1.4 Change the other “Text” fields to suitable sizes. [2]<br />

1.5 Add an “Autonumber” field and set it as the Primary Key. Call this field<br />

“MainID”. [2]<br />

1.6 The current data in the field called “Accepted” is blank to indicate “Yes” and<br />

contains the word “NO” to indicate “No”. The new field type should display a<br />

tick () to indicate “Yes” and must be blank to indicate “No”.<br />

Do whatever is necessary to change the field called “Accepted” to a Yes/No<br />

type. Ensure that the current entries are retained. [3]<br />

Several new tables will be added over an extended period of development. The first of<br />

these is a table called “Writers”, which will be used to keep track of the various authors<br />

who will be enlisted to write a number of pages on Nobel Prize winners. One author<br />

may be asked to write on a number of prize winners but only one author will be assigned<br />

to each prize winner’s entry.<br />

5


6<br />

REKENAARSTUDIE HG (<strong>00080.2</strong>)<br />

1.7 Skep die volgende tabel genaamd “Skrywers” met toepaslik gedefinieerde<br />

velde om die volgende data te stoor. In sommige gevalle sal hierdie meer as<br />

een veld benodig.<br />

(a) Die naam van die skrywer, bestaande uit voorname en van<br />

(b) Die titel, wat slegs Mnr, Me, Dr of Prof moet wees. Die databasisveld<br />

moet tot slegs hierdie inskrywings beperk word.<br />

(c) Die adres van die skrywer (straat/kantoor; stad; land; poskode)<br />

(d) ‘n Kontak telefoonnommer vir die skrywer (bv. Hamburg 3452 333)<br />

Voorbeeld van data van ‘n skrywer: Prof Jens van Dyk,<br />

Oberneuland Str 20<br />

Hamburg<br />

Duitsland<br />

78332<br />

Foon: Hamburg 3452 333<br />

(e) ‘n “Autonumber”-veld wat as ‘n Primêre Sleutel dien. [4]<br />

1.8 Skep ‘n vreemde sleutel (“foreign key”) in die tabel genaamd “Hoof” (noem dit<br />

“SkrywerID”) en skep dan ‘n verwantskap tussen die “Hoof”- en “Skrywers”tabelle.<br />

[2]<br />

1.9 ‘n Skrywer genaamd Professor Jens van Dyk het baie skrywersondervinding in<br />

Nederland en het onderneem om alle materiaal oor wenners uit Nederland te<br />

skryf. Skep ‘n gepaste inskrywing in die “Skrywers”-tabel om die volgende<br />

inligting te stoor wat gebruik sal maak van die verwantskap wat as 1.8 geskep<br />

is. Verander die toepaslike data in die “Hoof”-tabel vir die wenners uit<br />

Nederland.<br />

Prof Jens van Dyk,<br />

Oberneuland Str 20<br />

Hamburg<br />

Duitsland<br />

78332<br />

Foon: Hamburg 3452 333 [2]<br />

1.10 Jacques Depardieu sal oor al die wenners uit Frankryk skryf. Hein Rinkoffel<br />

sal oor al die wenners uit Duitsland skryf. Skep ‘n gepaste inskrywing in die<br />

“Skrywers”-tabel om die volgende inligting te stoor wat gebruik sal maak van<br />

die verwantskap wat as 1.8 geskep is. Verander die toepaslike data in die<br />

“Hoof”-tabel vir die wenners uit Frankryk en Duitsland.<br />

Dr Jacques Depardieu<br />

p.a. Nobelpryskantoor Parys<br />

Foon: Parys 123213<br />

Dr Hein Rinkoffel<br />

p.a. Nobelpryskantoor Berlyn<br />

Foon: Berlyn 123213 [2]<br />

21


COMPUTER STUDIES HG (<strong>00080.2</strong>) 7<br />

1.7 Create the following table called “Writers” with suitably defined fields to store<br />

the following data. In some cases this will require more than one field.<br />

(a) The name of the writer comprising of the first and last names<br />

(b) The title, which must only be Mr, Ms, Dr or Prof. The database field<br />

should be restricted to allow only these entries.<br />

(c) The address of the writer (street/office; city; country; postal code)<br />

(d) A contact telephone number for the writer (e.g. Hamburg 3452 333)<br />

Example of data for a writer: Prof Jens van Dyk,<br />

20 Oberneuland Str<br />

Hamburg<br />

Germany<br />

78332<br />

Phone: Hamburg 3452 333<br />

(e) An Autonumber field which acts as a Primary Key. [4]<br />

1.8 Create a foreign key in the table called “Main” (call it “WriterID”) and then<br />

create a relationship between the “Main” and “Writers” tables. [2]<br />

1.9 A writer called Professor Jens van Dyk has a lot of experience in writing in the<br />

Netherlands and has undertaken to write all material relating to winners from<br />

the Netherlands. Create a suitable entry in the “Writers” table to store the<br />

following information, which will make use of the relationship created in 1.8.<br />

Alter the appropriate data in the “Main” table for the winners from the<br />

Netherlands.<br />

Prof Jens van Dyk,<br />

20 Oberneuland Str<br />

Hamburg<br />

Germany<br />

78332<br />

Phone: Hamburg 3452 333 [2]<br />

1.10 Jacques Depardieu will be writing about all the winners from France. Hein<br />

Rinkoffel will be writing about all the winners from Germany. Create a suitable<br />

entry in the “Writers” table to store the following information, which will make<br />

use of the relationship created in 1.8. Alter the appropriate data in the “Main”<br />

table for the winners from France and Germany.<br />

Dr Jacques Depardieu<br />

c/o Nobel Prize Paris Office<br />

Phone: Paris 123213<br />

Dr Hein Rinkoffel<br />

c/o Nobel Prize Berlin Office<br />

Phone: Berlin 123213 [2]<br />

21


8<br />

VRAAG 2<br />

REKENAARSTUDIE HG (<strong>00080.2</strong>)<br />

Gebruik die databasis “NPP2006.mdb” wat jy in vraag 1 geskep het om die volgende<br />

vrae te beantwoord:<br />

LW: As jy onsuksesvol was in die skepping van die databasis “NPP2006.mdb”<br />

maak gebruik van die databasis genaamd “Nobelpryswenners.mdb” in plaas<br />

daarvan. ‘n Gedeelte van die punte sal aan jou toegeken word.<br />

Gebruik kort beskrywende name vir elke navraag.<br />

2.1 Kry al die Nobelpryswenners wat uit Duitsland gekom het en wat die Nobelvredesprys<br />

ontvang het. Vertoon SLEGS hul van, land en jaar in stygende<br />

volgorde volgens vanne. [2]<br />

2.2 Skep ‘n navraag wat al die inskrywings wat “UK” of “U.K.” in die veld genaamd<br />

“Land” het na “United Kingdom” sal verander. [2]<br />

2.3 Skep ‘n navraag wat ‘n berekende veld sal bevat, genaamd “Fooi”, wat die<br />

bedrag in Rand wat aan die skrywer betaal sal word, sal aandui. Die<br />

standaardfooi is R125,00 per bladsy. Die aantal bladsye wat geskryf sal word,<br />

word in die “Bladsye”-veld vertoon. Vertoon die skrywer se naam, bladsye en<br />

die fooi vir die inskrywings in “Hoof” wat verband hou met die inskrywings in<br />

“Skrywers”. [2]<br />

2.4 Skep ‘n navraag wat die naam van die skrywer, die skrywer se ID-nommer, die<br />

som van die aantal bladsye wat hy/sy moet skryf en die totale fooi wat hy/sy sal<br />

ontvang sal vertoon. [3]<br />

9


QUESTION 2<br />

COMPUTER STUDIES HG (<strong>00080.2</strong>) 9<br />

Use the database “NPP2006.mdb” which you created in Question 1 to answer the<br />

following questions:<br />

NB: If you have been unsuccessful in creating the database “NPP2006.mdb”,<br />

use the database called “Nobel Prize Winners.mdb” instead and you will be<br />

awarded a portion of the marks.<br />

Use short descriptive names for each query.<br />

2.1 Locate all the Nobel Prize winners who came from Germany and who received<br />

the Nobel Peace Prize. Display ONLY their last names, country and year, in<br />

ascending order of last name. [2]<br />

2.2 Create a query which will change all the entries which have “UK” or “U.K.” in<br />

the field called “Country” to “United Kingdom”. [2]<br />

2.3 Create a query which will contain a calculated field called “Fee” which shows<br />

the amount in Rands which will be paid to the writer. The standard fee is<br />

R125,00 per page. The number of pages to be written is shown in the “Pages”<br />

field. Display the writer’s name, pages and the fee for the entries in “Main”<br />

which are related to the entries in “Writers”. [2]<br />

2.4 Create a query which will display the name of the writer, the writer’s ID number,<br />

the sum of the number of pages he/she has to write and the total fee he/she will<br />

receive. [3]<br />

9


10<br />

REKENAARSTUDIE HG (<strong>00080.2</strong>)<br />

AFDELING B – JAVAPROGRAMMERING<br />

VRAAG 3<br />

Die probleem in Vraag 4 behels die ontwikkeling van ‘n speletjie. Op ‘n latere tydstip sal<br />

dit nodig wees om inligting oor die spelers by te hou.<br />

3.1<br />

3.1.1<br />

Skep ‘n klas (“class”) genaamd “Speler” wat gepas vir hierdie doel sal wees.<br />

Die klas moet EEN “constructor” hê. (2)<br />

3.1.2 Die klas moet die volgende stoor:<br />

(a) Die naam van die speler<br />

(b) Die speler se hoogste telling (2)<br />

3.1.3 Die klas moet “GET”- en “SET”-metodes (“accessor” en “mutator”) hê wat<br />

toegang en verandering tot hierdie veranderlikes sal toelaat. (2)<br />

3.1.4 Die klas moet ‘n “toString()”-metode hê om die veranderlikes te vertoon. (2) [8]<br />

3.2 Skep ‘n klas genaamd “Kenner” wat “Speler” uitbrei en wat ‘n addisionele<br />

eienskap genaamd “sekuriteitKode” het, wat die speler toelaat om die speletjie<br />

gekoppeld (“on line”) te speel. Die klas moet ook “GET”- en “SET”–metodes vir<br />

hierdie eienskap hê. [2]<br />

10


COMPUTER STUDIES HG (<strong>00080.2</strong>)<br />

SECTION B – JAVA PROGRAMMING<br />

QUESTION 3<br />

The problem in Question 4 involves the development of a game. At some later stage it<br />

will be necessary to keep information on players.<br />

3.1<br />

3.1.1<br />

Create a class called “Player” which will be suitable for this purpose.<br />

The class must have one constructor. (2)<br />

3.1.2 The class must store the following:<br />

(a) The name of the player<br />

(b) The player’s highest score (2)<br />

3.1.3 The class must have GET and SET methods (accessor and mutator) which will<br />

allow these variables to be accessed and changed. (2)<br />

3.1.4 The class should have a toString() method to display the variables. (2) [8]<br />

3.2 Create a class called “Expert” which extends “Player” and which has an<br />

additional attribute called “securityCode”, which allows the player to play on<br />

line. The class should also have GET and SET methods for this attribute. [2]<br />

11<br />

10


12<br />

VRAAG 4<br />

REKENAARSTUDIE HG (<strong>00080.2</strong>)<br />

Lees die hele vraag deur voordat jy dit begin beantwoord.<br />

Die kaartspel “Pelmenism” behels ‘n stel prentkaarte wat met die regte kant ondertoe op ‘n tafel<br />

geplaas word. Elke speler draai dan twee kaarte om die beurt om om sodoende soortgelyke<br />

kaarte te vind. Wanneer ‘n speler twee soortgelyke kaarte vind, word hulle deur daardie speler<br />

behou. As die twee kaarte verskillend is, moet die speler hulle weer omdraai sodat die regte kant<br />

ondertoe wys. Die oogmerk is dat elke speler die posisie van die kaarte moet onthou en om<br />

soveel pare moontlik op te tel. Wanneer al die kaarte opgetel is (of een paar bly op die tafel oor)<br />

is die spel verby. Elke speler tel die aantal kaarte wat hy/sy opgetel het om die wenner te<br />

bepaal.<br />

Jy is gevra om ‘n bietjie eenvoudige voorlopige kode vir hierdie speletjie te skryf. GEEN<br />

GRAFIKA WORD BENODIG NIE. Die vereistes is soos volg:<br />

‘n Tweedimensionele skikking is ewekansig gevul met pare dierename soos hieronder<br />

aangetoon.<br />

Kat Kalkoen Olifant Haas<br />

Eend Kalkoen Leeu Eend<br />

Kat Hond Hoender Hond<br />

Olifant Haas Leeu Hoender<br />

Hierdie name word nie aan die gebruikers getoon nie. Een gebruiker word versoek om twee<br />

posisies op ‘n slag te kies en hierdie keuse word dan vertoon.<br />

VOORBEELD 1:<br />

Hieronder word die afvoer gegee wanneer ‘n gebruiker posisie 1,1 (dit is Ry 1 en Kolom 1) en 2,2<br />

(dit is Ry 2 en Kolom 2) as sy/haar keuse intik het.<br />

Speler 1 KIES<br />

Bordposisie 1 RY? : 1<br />

Bordposisie 1 KOLOM? : 1<br />

Bordposisie 2 RY? : 2<br />

Bordposisie 2 KOLOM? : 2<br />

XXX XXX XXX XXX<br />

XXX Kalkoen XXX XXX<br />

XXX XXX Hoender XXX<br />

XXX XXX XXX XXX<br />

Speler 2 KIES<br />

Bordposisie 1 RY? :<br />

Speler 1 het nie ‘n paar gekry nie.<br />

Speler 2 maak nou sy/haar keuse.


QUESTION 4<br />

COMPUTER STUDIES HG (<strong>00080.2</strong>)<br />

Read through the whole question before you begin to answer it.<br />

The card game “Pelmenism” involves placing a set of picture cards face down on a table. Each<br />

player then turns over two cards in turn, trying to find matching cards. When a player finds two<br />

matching cards they are kept by that player. If the two cards chosen differ, the player must turn<br />

them over again so that the right side faces downwards. The objective is for each player to<br />

remember the position of the cards and to pick up as many pairs as possible. When all cards<br />

have been picked up (or one pair remains on the table) then the game is over. Each player<br />

counts the number of cards he/she has picked up in order to determine the winner.<br />

You have been asked to write some simple preliminary code for this game. NO GRAPHICS<br />

ARE REQUIRED. The requirements are as follows:<br />

A two-dimensional array is filled randomly with pairs of names of animals as shown below.<br />

Cat Turkey Elephant Rabbit<br />

Duck Turkey Lion Duck<br />

Cat Dog Chicken Dog<br />

Elephant Rabbit Lion Chicken<br />

The users are not shown these names. One user is prompted to select two positions at a time<br />

and his selection is then displayed.<br />

EXAMPLE 1:<br />

Shown below is the output when a user types in position 1,1 (that is Row 1 and Column 1) and<br />

2,2 (that is Row 2 and Column 2) as his/her selection.<br />

Player 1 SELECT<br />

Board Position 1 ROW? : 1<br />

Board Position 1 COLUMN? : 1<br />

Board Position 2 ROW? : 2<br />

Board Position 2 COLUMN? : 2<br />

XXX XXX XXX XXX<br />

XXX Turkey XXX XXX<br />

XXX XXX Chicken XXX<br />

XXX XXX XXX XXX<br />

Player 2 SELECT<br />

Board Position 1 ROW? :<br />

Player 1 did not locate a pair.<br />

Player 2 now makes his/her<br />

selection.<br />

13


14<br />

VOORBEELD 2:<br />

REKENAARSTUDIE HG (<strong>00080.2</strong>)<br />

Wanneer ‘n speler ‘n paar kry, gaan hy/sy voort om te speel:<br />

Speler 2 KIES<br />

Bordposisie 1 RY? : 0<br />

Bordposisie 1 KOLOM? : 0<br />

Bordposisie 2 RY? : 2<br />

Bordposisie 2 KOLOM? : 0<br />

Kat XXX XXX XXX<br />

XXX XXX XXX XXX<br />

Kat XXX XXX XXX<br />

XXX XXX XXX XXX<br />

Speler 2 KIES<br />

Bordposisie 1 RY? :<br />

Die program moet telling hou van hoeveel pare elke speler gekies het.<br />

Jou program moet die volgende insluit:<br />

4.1 Skep ‘n klas (“class”) “MemoryCard” wat die volgende insluit:<br />

Speler 2 het ‘n paar gekry en<br />

word gevra om weer te speel.<br />

(a) Geskikte “Constructor(s)”<br />

(b) Geskikte eienskappe om inligting oor die volgende te hou:<br />

• die naam van die kaart (Haas, Kat, Olifant, ens.)<br />

• of die kaart met die regte kant boontoe (d.w.s. die speler kan die name<br />

van die kaarte sien) of met die regte kant ondertoe (d.w.s. die speler<br />

kan nie die name van die kaarte sien nie) is<br />

• wie die paar gekies het (Speler 1 of Speler 2)<br />

(c) Geskikte “GET”- en “SET”-metodes (“accessors” en “mutators”)<br />

(d) ‘n Geskikte “toString()”-metode om die naam van die kaart te vertoon<br />

wanneer dit met die regte kant boontoe is en om “XXX” te vertoon as dit<br />

met die regte kant ondertoe is. [11]<br />

4.2 Die hooftoepassing moet begin deur die gebruiker te vra om ‘n roostergrootte<br />

(die grootte van die bord) te kies en die gebruiker moet slegs 4, 6 of 8 kan kies<br />

(geen onewe getalle nie). Die toevoer moet geldig verklaar word om hierdie<br />

beperking af te dwing. (Die voorbeeld aan die begin van die vraag het ‘n<br />

roostergrootte van 4 gebruik.) [10]<br />

4.3 ‘n Tweedimensionele skikking van “MemoryCard”-objekte moet dan met pare<br />

ewekansiggekose diername gevul word. Die stel name, waaruit hierdie<br />

skikking ewekansig gekies is, word op die skyf in die lêer genaamd<br />

“Animals.txt” verskaf. Die inhoud word hieronder aangedui.<br />

Rabbit<br />

Lion<br />

Cat<br />

Dog<br />

Duck<br />

Chicken<br />

Turkey<br />

Elephant<br />

Snake<br />

Parrot<br />

Goose<br />

Giraffe<br />

Rat<br />

Mouse<br />

Tortoise<br />

Horse<br />

Buffalo<br />

Hedgehog<br />

Hippo<br />

Tiger<br />

Chimp<br />

Gorilla<br />

Seal<br />

Whale<br />

Dolphin<br />

Donkey<br />

Eagle<br />

Parakeet<br />

Baboon<br />

Bear<br />

Cow<br />

Sheep<br />

Pigeon<br />

Kangaroo<br />

Badger<br />

Beaver<br />

Bat<br />

Tarantula<br />

Koala<br />

Panda<br />

Platypus<br />

Skunk<br />

Crocodile<br />

Springbok<br />

Tahr<br />

Eel<br />

Puffin<br />

Fulmar<br />

Zebra<br />

Aardvark [8]


EXAMPLE 2:<br />

COMPUTER STUDIES HG (<strong>00080.2</strong>)<br />

When a player locates a pair, he/she continues playing:<br />

Player 2 SELECT<br />

Board Position 1 ROW? : 0<br />

Board Position 1 COLUMN? : 0<br />

Board Position 2 ROW? : 2<br />

Board Position 2 COLUMN? : 0<br />

Cat XXX XXX XXX<br />

XXX XXX XXX XXX<br />

Cat XXX XXX XXX<br />

XXX XXX XXX XXX<br />

Player 2 SELECT<br />

Board Position 1 ROW? :<br />

Player 2 located a pair and is<br />

asked to play again.<br />

The program should keep a count of how many pairs have been selected by each player.<br />

Your program should include the following:<br />

4.1 Create a class called “MemoryCard” which includes the following:<br />

(a) Suitable Constructor(s)<br />

(b) Suitable attributes to keep information on the following:<br />

• the name of the card (Rabbit, Cat, Elephant, etc.)<br />

• whether the card is face up (i.e. the player can see the names of the<br />

cards) or face down (i.e. the player cannot see the names of the cards)<br />

• who has chosen the pair (Player 1 or Player 2)<br />

(c) Suitable GET and SET methods (accessors and mutators)<br />

(d) A suitable toString method to display the name of the card if it is face up,<br />

and to display “XXX” if it is face down. [11]<br />

4.2 The main application should begin by asking the user to select a grid size (the<br />

size of the board) and the user should be allowed to only select a size of 4, 6 or<br />

8 (no odd numbers). The input must be validated to enforce this restriction.<br />

(The example at the start of this question used a grid size of 4.) [10]<br />

4.3 A two-Dimensional array of MemoryCard objects should then be filled with pairs<br />

of randomly chosen animal names. The set of names, from which this array is<br />

randomly chosen, is provided on disk in the file called “Animals.txt”. The<br />

contents are shown below.<br />

Rabbit<br />

Lion<br />

Cat<br />

Dog<br />

Duck<br />

Chicken<br />

Turkey<br />

Elephant<br />

Snake<br />

Parrot<br />

Goose<br />

Giraffe<br />

Rat<br />

Mouse<br />

Tortoise<br />

Horse<br />

Buffalo<br />

Hedgehog<br />

Hippo<br />

Tiger<br />

Chimp<br />

Gorilla<br />

Seal<br />

Whale<br />

Dolphin<br />

Donkey<br />

Eagle<br />

Parakeet<br />

Baboon<br />

Bear<br />

Cow<br />

Sheep<br />

Pigeon<br />

Kangaroo<br />

Badger<br />

Beaver<br />

Bat<br />

Tarantula<br />

Koala<br />

Panda<br />

15<br />

Platypus<br />

Skunk<br />

Crocodile<br />

Springbok<br />

Tahr<br />

Eel<br />

Puffin<br />

Fulmar<br />

Zebra<br />

Aardvark [8]


16<br />

REKENAARSTUDIE HG (<strong>00080.2</strong>)<br />

4.4 Die spel begin dan vir twee spelers. Speler 1 kies ‘n ry en ‘n kolom vir sy/haar<br />

eerste kaart en dan vir sy/haar tweede kaart. As hy/sy suksesvol is, sal die<br />

twee kaarte sigbaar bly vir die res van die spel. Hy/Sy word toegelaat om nog<br />

keuses uit te oefen totdat hy/sy onsuksesvol is. As sy/haar keuse onsuksesvol<br />

is, is sy/haar beurt verby en Speler 2 maak dan sy/haar keuse.<br />

Die huidige stand van die spel moet na elke rondte op die skerm vertoon word<br />

(soos hieronder aangedui). Die pare suksesvol gekose dierename moet<br />

sigbaar wees, anders moet “XXX” vertoon word.<br />

Bordposisie 1 RY? : 0<br />

Bordposisie 1 KOLOM? : 2<br />

Bordposisie 2 RY? : 3<br />

Bordposisie 2 KOLOM? : 0<br />

XXX XXX Olifant Leeu<br />

XXX XXX XXX XXX<br />

Leeu XXX Kalkoen XXX<br />

Olifant XXX XXX Kalkoen<br />

Speler 2 KIES<br />

Bordposisie 1 RY? :<br />

Huidige stand in spel<br />

toon suksesvolle<br />

keuses en name wat<br />

nog opgespoor moet<br />

word<br />

Die huidige status van die bord moet bygewerk word om aan te dui watter<br />

speler suksesvol ‘n paar gekies het. [13]<br />

4.5 Wanneer ‘n speler versoek word vir die posisie in die eerste Ry kan hy/sy die<br />

woord “HELP” in plaas van ‘n getal intik. ‘n Lys van die beskikbare dierename<br />

word dan in alfabetiese volgorde vertoon en die gebruiker word dan weer gevra<br />

om die Rygetal in te tik. (Let wel: Dit is net beskikbaar vir die speler se eerste<br />

RY-inskrywing, maar dit is beskikbaar elke keer as enige van die twee spelers<br />

‘n nuwe kaartkeuse maak.)<br />

Speler 1 KIES<br />

Bordposisie 1 RY? : HELP<br />

Die beskikbare dierename is:<br />

1 - Cat<br />

2 - Chicken<br />

3 - Dog<br />

4 - Duck<br />

5 - Elephant<br />

6 - Lion<br />

7 - Rabbit<br />

8 - Turkey<br />

Let daarop dat hierdie name<br />

vir ‘n 4x4-skikking ewekansig<br />

uit die lys name op die skyf<br />

gekies is.<br />

Bordposisie 1 RY? : [10]


COMPUTER STUDIES HG (<strong>00080.2</strong>)<br />

4.4 The game then commences for two players. Player 1 selects a row and a<br />

column for his/her first card and then for his/her second card. If he/she is<br />

successful the two cards will remain visible for the remainder of the game.<br />

He/She is allowed to keep making selections until he/she is unsuccessful. If<br />

his/her choice is unsuccessful then his/her turn is finished and Player 2 makes<br />

his/her selection.<br />

The current stage of the game should be displayed on the screen after each<br />

turn (as shown below). The pairs of successfully chosen animal names should<br />

be visible, otherwise “XXX” should be displayed.<br />

Board Position 1 ROW? : 0<br />

Board Position 1 COLUMN? : 2<br />

Board Position 2 ROW? : 3<br />

Board Position 2 COLUMN? : 0<br />

XXX XXX Elephant Lion<br />

XXX XXX XXX XXX<br />

Lion XXX Turkey XXX<br />

Elephant XXX XXX Turkey<br />

Player 2 SELECT<br />

Board Position 1 ROW? :<br />

17<br />

Current stage of game<br />

showing successful<br />

choices and names<br />

still to be located<br />

The current state of the board should be updated to reflect which player has<br />

successfully chosen a pair. [13]<br />

4.5 When a player is prompted for the first Row position he/she can type the word<br />

“HELP” instead of a number. A list of the available animal names is then<br />

displayed in alphabetical order and the user is again requested to enter the<br />

Row number. (Note: This is only available for the player’s first ROW entry, but<br />

it is available each time either player makes a new card selection.)<br />

Player 1 SELECT<br />

Board Position 1 ROW? :HELP<br />

The available animal names are:<br />

1 - Cat<br />

2 - Chicken<br />

3 - Dog<br />

4 - Duck<br />

5 - Elephant<br />

6 - Lion<br />

7 - Rabbit<br />

8 - Turkey<br />

Note that these 8 names for a<br />

4 X 4 array were randomly<br />

selected from the list of<br />

names on disk.<br />

Board Position 1 ROW? : [10]


18<br />

REKENAARSTUDIE HG (<strong>00080.2</strong>)<br />

4.6 Wanneer al die kaarte gekies is (of wanneer slegs een paar op die tafel oorbly)<br />

moet die boodskap “Spel Klaar” vertoon word en moet die aantal kaarte (of<br />

pare kaarte) wat suksesvol deur Speler 1 en Speler 2 gekies is op die skerm<br />

vertoon word. [8]<br />

60<br />

TOTAAL: 100 PUNTE


COMPUTER STUDIES HG (<strong>00080.2</strong>)<br />

4.6 When all cards have been selected (or when only one pair remains on the<br />

table) the message “Game Over” should be displayed and the number of cards<br />

(or pairs of cards) successfully selected by Player 1 and Player 2 should be<br />

displayed on the screen. [8]<br />

19<br />

60<br />

TOTAL: 100 MARKS

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!