Arbeidskrav 1 Se fremdriftsplanen for innleveringsfrist Emneansvarlig: Olav Dæhli 1
Skjemaer Løsningen skal inneholde minst 3 skjemaer (Forms) Ett av skjemaene skal være en meny som kan åpne de andre skjemaene Eksempel: Emneansvarlig: Olav Dæhli 2
Lag et dataprogram der du selv velger temaet Kravet er individuelt, så alle må lage hvert sitt program Det skal være din egenutviklede løsning, ikke bare noe du kopierer fra nettet eller får andre til å lage Emneansvarlig: Olav Dæhli 3
Dokumentér koden: Navnekonvensjon Bruk navnekonvensjonen beskrevet i kompendiet Navn (variabelnavn, metodenavn m.m.) bør være beskrivende og i størst mulig grad selvdokumenterende) Bruk prefix på komponentnavn: btn, txt osv. (example: btnshowtext) Bruk Camel Case på variabler (example: int countthreeequal) Bruk Pascal Case på metoder og klasser (example: void SetDiceValue() ) Emneansvarlig: Olav Dæhli 4
Dokumentér koden: Mer om navnsetting Både komponentnavn, variabelnavn, metodenavn og annet bør i størst mulig grad være selvforklarende/selvdokumenterende. Emneansvarlig: Olav Dæhli 5
Dokumentér koden: Mer om navnsetting I koden som lages skal det utelukkende benyttes engelsk språk. Unntaket er kommentarer, der dere selv velger engelsk eller norsk. Valgfritt om norske eller engelske kommentarer I brukergrensesnittet (GUI) er det valgfritt om det skal brukes norsk eller engelsk tekst (på tekstbokser, «labels» etc.), men vær konsekvent Emneansvarlig: Olav Dæhli 6
Dokumentér koden: Kommentarer Bruk kommentarer der det kan være uklart hva koden utfører Det kan være nyttig å ha en generell kommentar til hva metoden gjør Eksempel på dokumentasjon: Emneansvarlig: Olav Dæhli 7
Brukergrensesnitt (GUI: Graphical User Interface) Brukergrensesnittet lages av komponenter som Button, TextBox, PictureBox, Label m.m., noe dere velger selv Det skal være et «interaktivt» brukergrensesnitt, sånn at brukeren gis mulighet til å kommunisere med programmet via inputs som genererer events (knapper, tekstbokser etc.). Eksempel på et interaktivt brukergrensesnitt Emneansvarlig: Olav Dæhli 8
Brukergrensesnitt (GUI: Graphical User Interface) Programmet skal inneholde minst ett grafikkelement. Dette kan f.eks. være i form av et bilde som vises i en PictureBox, der grafikkfila eller grafikkfilene må følge innleveringen Finner du ikke et naturlig innpass av et bilde i programmet du lager, kan du eksempelvis lage et tilleggsskjema (Form) som kan åpnes via menyen. Der kan det lages f.eks. en knapp som gjør at brukeren kan switche mellom to bilder ved å trykke på en knapp. Finner dere på andre varianter selv, er det naturligvis enda bedre Emneansvarlig: Olav Dæhli 9
Rettigheter Tenk også alltid over rettigheter når dere gjelder bruk av bilder i ulike sammenheng. Hvordan er ting lisensiert? Hvordan skal det dere lager brukes? USN har eksempelvis et abonnement på ColourBox. http://bibliotek.usn.no/databaser/#letter-c Emneansvarlig: Olav Dæhli 10
GUI-operasjoner bør skilles fra øvrig kode (GUI: Graphical User Interface) Dårlig løsning: Negativt: Kombinerer lesing fra tekstbokser og beregning double sum; sum = Convert.ToDouble(txtNum1.Text) + Convert.ToDouble(txtNum2.Text) God løsning: double sum, num1, num2; num1 = Convert.ToDouble(txtNum1.Text); num2 = Convert.ToDouble(txtNum2.Text); sum = num1 + num2; Postivt: Leser tekstboksverdier inn i variabler før beregning utføres. Emneansvarlig: Olav Dæhli 11
Metoder og parametere Der det er naturlig, bør spesifikke oppgaver løses i egne metoder, sånn det er gjort i oppgaveeksemplene i timen Det stilles krav til at det er inkludert minimum 4 egenkonstruerte metoder, utover event-handler-metoder, men det må selvfølgelig gjerne være flere Metodene skal samlet sett demonstrere bruk av parametere og returverdier (men bruk av out- og ref-parametere kreves ikke) Finner dere ikke plass for dette i hovedløsningen deres, inkluderes dette som eksempler i et tilleggsskjema (Form) Emneansvarlig: Olav Dæhli 12
Kontrollstruktur av typen if / switch Det skal inngå minimum én kontrollstruktur av typen if/switch med minimum tre valgverdier, i form av enten en if- eller switch-struktur i programmet. Igjen, finner dere ikke plass for dette i hovedløsningen deres, inkluderes dette som eksempler i et tilleggsskjema (Form) Emneansvarlig: Olav Dæhli 13
Velg fornuftige datatyper Tenk igjennom om tall f.eks. har krav til spesiell presisjon, om det behøves mange desimaler eller om det er tilstrekkelig å velge heltall. Følgende datatyper dekker trolig det meste som behøves i oppgaven: int for heltall (32 bits heltall) double for desimaltall/flyttall (altså tall med komma og desimaler) bool for verdier som skal være true/false string for tekst Andre datatyper velges ved behov Emneansvarlig: Olav Dæhli 14
«Timer» («klokke») og løkke Det skal inkluderes minst én «timer» i prosjektet Det skal inkluderes minst én løkke i prosjektet Passer disse ikke inn i selve oppgaven din, kan du f.eks. lage et eget skjema med en «timer» og en løkke, der telleren teller og viser noen verdier, figurer, bakgrunnsfarger eller annet Emneansvarlig: Olav Dæhli 15
out- og ref-parametere out- og ref-parametere benytter dere bare i den grad dere synes dette passer bra inn i løsningen deres. Dette er altså ikke et krav. Emneansvarlig: Olav Dæhli 16
Arrays Arrays benytter dere bare i den grad dere synes dette passer bra inn i løsningen deres. Dette er altså ikke et krav. Emneansvarlig: Olav Dæhli 17
Lagring av data Programmet trenger ikke lagre noen data permanent. I den grad noen ønsker det, så lagre i så fall data i en fil, ikke i en database. Fil må da være vedlagt (men bruk av fil og databaser er i utgangspunktet ikke tema for dette arbeidskravet). Unntak fra ovennevnte kan skje etter avtale, dersom dere f.eks. konstruerer en løsning der det er viktig med en databaseløsning. Da må det i så fall være enkel tilgang til databasen. Hvordan selve databasen i så fall er laget, er ikke noe som blir sjekket nå, da databaser inngår i neste arbeidskrav. Emneansvarlig: Olav Dæhli 18
Så sett i gang! Bare kreativiteten er her begrensende faktor! (samt at litt grunnleggende programmeringsferdigheter må være på plass) NB! Husk at arbeidskravet er ikke til for vår skyld, men for deres skyld, for at dere skal få trening i planlegging og utvikling av et program Emneansvarlig: Olav Dæhli 19