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
Kravspesifikasjon og noen eksempler Oppgaven må være godkjent for å stille til sluttprøven Etter gjennomgang av kravspesifikasjonen, vises det noen eksempler fra tidligere prosjekter Emneansvarlig: Olav Dæhli 3
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 Det er ikke ulovlig å bruke deler av en eller annen smart kode som er lagt åpent ut på nettet, som del av løsningen, men da er det god skikk at det i koden refereres til hvor/hvem dette er hentet fra. Emneansvarlig: Olav Dæhli 4
Dokumenter koden: Navnekonvensjon Bruk navnekonvensjonen beskrevet i kompendiet Navn (variabelnavn, metodenavn m.m.) bør være beskrivende og i størst mulig grad selvdokumenterende) Komponenter med prefix: btn, txt osv. (example: btnshowtext) Variabler med Camel Case (example: int countthreeequal) Metoder og klasser med Pascal Case (example: void SetDiceValue() ) Emneansvarlig: Olav Dæhli 5
Dokumenter 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 6
Dokumenter 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 7
Dokumenter 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 8
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. Eksempel på et interaktivt brukergrensesnitt Emneansvarlig: Olav Dæhli 9
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 10
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? HSN har eksempelvis et abonnement på ColourBox. http://bibliotek.usn.no/databaser/#letter-c Emneansvarlig: Olav Dæhli 11
GUI-operasjoner skal skilles fra øvrig kode Dårlig løsning: 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; Emneansvarlig: Olav Dæhli 12
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 13
Kontrollstruktur av typen if / switch Det skal inngå minimum en kontrollstruktur av typen if/switch med minimum tre valgverdier, i form av 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 14
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 15
«Timer» («klokke») og løkke Det skal inkluderes minst en timer i prosjektet Det skal inkluderes minst en 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 (som kan åpnes via menyen) Alternativt eksempel: Finner du ikke på noe eget eksempel med ovennevnte, så lag en «timer» som kan startes og stoppes med knapper, og som teller fra f.eks. 0 til 200 med 10 ms intervall og med step-verdi som kan endres av bruker. Er step-verdi 5, skal den f.eks. telle 0, 5, 10,... 200). Resultatet for hver telling skal vises i en tekstboks. Emneansvarlig: Olav Dæhli 16
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 17
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 18
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, og fil må da være vedlagt. (Men bruk av fil og databaser er i utgangspunktet ikke tema for dette arbeidskravet). Emneansvarlig: Olav Dæhli 19
Eksempler på noen tidligere prosjekter Se egen film med eksempler Emneansvarlig: Olav Dæhli 20
Så sett i gang! Bare kreativiteten som er begrensende faktor! samt at litt grunnleggende programmeringsferdigheter må på plass Emneansvarlig: Olav Dæhli 21