ED209 Skrevet 27. september 2004 Del Skrevet 27. september 2004 Ok, hvis moderator syns at dette er feil, så er det greit at tråden stenges. Til problemet, har akkurat startet studiet på datafag ved HiTos (Tromsø) og vi har fått en innleverings oppgave i java. Nå har det seg slik at læreren et noen hakk over oss noobs når det gjelder masse oppi knotten (smart fyr). Han har forelest halve java boka (Programmering i java, 3. utgave, Else Lervik & Vegard B. Havdal) som ikke er det spøtt bedre når det gjelder å forstå for en stakkars noob (meg). Prøver meg derfor på et lite rop om hjelp her på forumet, hvis noen gidder da, hvis ikke så er det greit. Da kan jeg bare grave meg ned, for jeg skjønner ikke så veldig mye av oppgave teksten. "Paster" inn oppgaven her: Obligatorisk oppgave i programmering Den private Yrkesskolen A.S. ønsker å holder rede på elevene i en gruppe som lærer om drift av datamaskiner. Du skal lage programmer som hjelper til med dette. Oppgave 1 Lag en personklasse som har følgende objektvariable: • Personnummer • Fornavn • Mellomnavn • Etternavn • Gateadresse til eleven • Postnummer • Poststed • Alder på eleven • Kjønn på eleven Personklassen skal ha finn metoder for å få tak i verdien til alle objektvariable som klassen inneholder. Den skal ha metoder for å forandre alle verdier utenom personnummer. Videre skal den ha en konstruktør. Denne tar et personnummer som argument og tilordner det til objektvariabelen for personnummer. Metodene som setter verdier skal sjekke den verdien den får som argument og returnere verdien true om alt er greit og verdien false om den finner feil. Dersom alle mulige verdier er lovlige skal metoden alltid returnere true. Oppgave 2 Du skal lage metoden public String toString(). Denne metoden skal skrive ut alle data i personklassen på fornuftig vis. Merk spesielt at mellomnavn ikke trenger å ha noen verdi (ikke alle personer har mellomnavn). Oppgave 3 Du skal nå lage en klasse med en metode som leser alle persondata inn fra bruker ved hjelp av dialog bokser. Hvis det som leses inn ikke er rett skal en ny dialogboks komme opp slik at bruker får en ny sjanse til å lese inn dataene. Først skal personnummer leses inn. Personnummer må bestå av 11 siffer. Er personnummer rett skal ett personobjekt opprettes. Deretter skal de andre dataene leses inn. Hvis noe er feil skal bruker ha en sjanse til å lese inn feltet på nytt. For mellomnavn må bruker få opp en dialogboks der det er mulig å velge om mellomnavnet skal leses inn eller ikke. Når dataene for en elev er lest inn skal du bruke toString fra oppgave 2 for å skrive ut innholdet i konsollvinduet. Oppgave 4 Du skal nå utvide klassen fra oppgave 3 til å holde en tabell som har elementer for alle elever i gruppen. Gruppen kan ikke være større enn 20 elever. Elementene i tabellen skal være objekter av den typen du laget i oppgave 1. Den skal ha en public static void main(String[] args) metode. Første element i args skal være antall elever i gruppen. Metoden skal sjekke at elementet finnes og at det er et tall mellom 1 og 20. Den skal så bruke metoden du skrev i oppgave 3 til å lese inn data for alle elevene i klassen. Oppgave 5 Dersom gruppen av elever er på mindre enn 3 elever står gruppen i fare for å bli nedlagt. Du skal nå lage klasser som tegner et surt fjes om det er færre enn 3 elever i gruppen og ett smilende fjes ellers. Tegningen skal komme opp når dataene for alle elevene i gruppen er lest inn. Ps. Det er vel ikke fusk å be om hjelp??? Dette er ikke en karaktergivende oppgave, men bestått/ikke bestått. Takker for all hjelp jeg kan få. Lenke til kommentar
Manfred Skrevet 28. september 2004 Del Skrevet 28. september 2004 Gjør leksene dine selv! Hva har du planer om å gjøre i arbeidslivet senere? Be andre om å jobbe for deg? sliter du med basicen, så får du lese en bok eller fem, evt. finne stoff på internett Lenke til kommentar
saboi Skrevet 28. september 2004 Del Skrevet 28. september 2004 jeg blir glad i hjertet når jeg tenker på alle på hardware.no som kan bli mine potensielle sjefer fordi andre har gjort oppgavene for dem. Lenke til kommentar
ED209 Skrevet 28. september 2004 Forfatter Del Skrevet 28. september 2004 ' date='28/09/2004 : 00:48'] , for jeg skjønner ikke så veldig mye av oppgave teksten. Skrev jeg noe sted at jeg ba andre om å gjøre oppg. for meg?????????? Spurte pent og høflig om noen som kunne hjelpe meg med å tyde oppgaveteksten, da jeg ikke er helt med på hva læreren vil. Som sagt så er jeg noob når det gjelder programmering, og henvendte meg derfor til forumet for å få litt assistanse. Spør dere aldri om hjelp til noe når det er noe dere ikke helt skjønner???? Feks, hvis dere får feil på bilen, løse en matte oppg. el. liknende??? Eller er dere supermennesker dere da, som kan alt??? Jeg for eks. kan være flink på mange områder bla. biler. Fikser min egen bil og hjelper venner som får feil. Kan tegne, så når venner spør om jeg kan tegne et motiv til dem så gjør jeg det. Syns det er litt dårlig å komme med en slik kommentar om at jeg skal snylte på andre ansatte i arbeidslivet etter utdannelsen, det har aldri vært planen. Jeg begynte på denne linja fordi jeg syns det er morro å holde på med data, programmering var nytt for meg og tilfeldigvis kom jeg over dette forumet inne på HW om programmering og tenkte at det var noen som hadde noen trick på lager. Men men, hvis det kun er kun forbeholdt folk med kunnskaper her inne, så trekker jeg meg stilt og rolig ut herfra igjen. Mvh. n00ben Lenke til kommentar
TeddyErt Skrevet 28. september 2004 Del Skrevet 28. september 2004 Jeg tenkte jeg kunne gi deg noen tips finn metode: public String finnFornavn() { return fornavn ; } Endre fornavn(Her kan du jo evnt. sjekke om navnet har over 2 bokstaver o.l.): public boolean nyttFornavn(String navn) { fornavn = navn ; return true ; } Konstruktør: public personklasse(int pnr) { personnummer = pnr ; } Kansje ikke så mye hjelp men, jeg orker ikke gjøre hele oppgaven . Og det lærer du jo ikke noe av heller. Lenke til kommentar
ED209 Skrevet 28. september 2004 Forfatter Del Skrevet 28. september 2004 Tusen takk for tipset. Tenkte jeg skulle få dette ut i et bilde (ramme) med knapper, er dette metoden å gjøre det, slik du har beskrevet?? "Paster" inn litt til jeg, dit jeg har kommet til nå. Har kjørt javac på på fila, så dn er grei. Hva skal jeg skrive mer for å kjøre dette i et vindu. Har sittet å forsket litt i boka, men som sagt så skjønner jeg ikke bære av hva den forklarer, synes den virker rotete. Here is my work so far: class person { private long pnr; private String navn; private String mellomnavn; private String etternavn; private String gateadr; private int postnr; private String poststed; private int alder; private String kjønn; public void Person(long startPnr, String startNavn, String startMellomnavn, String startEtternavn, String startGateadr, int startPostnr, String startPoststed, int startAlder, String startKjønn) { pnr = startPnr; navn = startNavn; mellomnavn = startMellomnavn; etternavn = startEtternavn; gateadr = startGateadr; postnr = startPostnr; alder = startAlder; kjønn = startKjønn; } public long finnPnr() { return pnr; } public String finnNavn() { return navn; } public String finnMellomnavn() { return mellomnavn; } public String finnEtternavn() { return etternavn; } public String finnGateadr() { return gateadr; } public int finnPostnr() { return postnr; } public String finnPoststed() { return poststed; } public int finnAlder() { return alder; } public String finnKjønn() { return kjønn; } public String toString() { return "personnummer: " + pnr + ", navn: " + navn + ", mellomnavn: " + mellomnavn + ", etternavn: " + etternavn + ", gateadr: " + gateadr + ", postnr: " + postnr + ", poststed: " + poststed + ", alder: " + alder + ", kjønn: " + kjønn; } } Hva bør jeg skrive mer for å få dette til å kjøre i et vindu hvor man kan velge om jeg skriver inn navn, personnr. osv. at det er true eller false?? Lenke til kommentar
TeddyErt Skrevet 28. september 2004 Del Skrevet 28. september 2004 nå har ikke jeg lest igjennom hele oppgaven, men det vriker som om konstruktøren kun skal ta imot personnummer. Vil du ha en enkel gui kan du jo bare ta JOptionPane. Der kan du ha et tekst felt hvor brukeren kan taste inn, det blir kun et tekstfelt i hver så du må lage ny for alt som skal tastes inn. Dette er kanskje ikke den mest "proffe" måten å gjøre det på, men veldig enkel. Får å teste dette lager du bare en ny test klasse, med main metode hvor du også legger all gui´en. Lenke til kommentar
saboi Skrevet 28. september 2004 Del Skrevet 28. september 2004 hva er vitsen med å gjøre alle medlemmene private for så å ha public funksjoner for å hente de? det er altfor mange som gjør det i c++ også. man får ikke bedre encapsulation ved å ha private medlemmer for så å ha tilsvarende get/set_medlem metoder. du gjør implementasjonen like mye synlig som om du skulle hatt alle medlemmene public, du lager bare andre navn på de. noen ganger er det helt greit å ha public medlemmer, eller bruke struct hvis du driver med c++. det er nå bare min mening iaf Lenke til kommentar
ED209 Skrevet 28. september 2004 Forfatter Del Skrevet 28. september 2004 Dette er måten å gjøre det ifølge boka vi er "pålagt" å bruke på skolen. Persolig syns jeg boka er siiiiinnnsykt dårlig å forklare "how too". Har funnet noen bøker som jeg har lasta ned som jeg skal se gjennom. Kanskje de forklarer bedre hvordan jeg skal gå fram. Ser dere, er ikke så skadelig å hjelpe en stakkar, hehe. Lenke til kommentar
TeddyErt Skrevet 28. september 2004 Del Skrevet 28. september 2004 Jeg syns ikke det er noe problem å sette dem til private. Det har kanskje ikke så mye funksjon akkurat i denne klassen, men det er greit å venne seg til å bruke det. Lenke til kommentar
saboi Skrevet 28. september 2004 Del Skrevet 28. september 2004 teddyert, hele meningen med private er å gjemme implamentasjonen for brukerne av klassen. men hvis du setter alle til private og bare har get/set metoder forsvinner det som er meningen med private. da kan du like gjerne ha public medlemmer. og det gjør alt for mange feil etter min mening Lenke til kommentar
ED209 Skrevet 28. september 2004 Forfatter Del Skrevet 28. september 2004 Ok, får prøve å sette meg ned å tyde boka på nytt hvordan JOptionPane skal brukes. Kan forklare hvordan boka fungerer hvis det er noen som ikke har vært borti den før. Forklaring står på en side og eksempel på forklaringa står enten 10 sider foran forklaringen eller så er det 10 sider etter forklaringen. Er det rart jeg sliter?? Hvis det er noen som er inne på tanken å kjøpe den, styr unna, kan føre til galskap. Lenke til kommentar
flltho Skrevet 28. september 2004 Del Skrevet 28. september 2004 Hei Er ofte enklere å gå igjennom forelesningene som din lærer har hatt for å finne løsnignen på oppgavene. De baserer seg på boka, og er ofte enklere forklart. -- Thomas Lenke til kommentar
ED209 Skrevet 28. september 2004 Forfatter Del Skrevet 28. september 2004 Han vi har til lærer har celebral parece (usikker på skrivemåte) og han bruker Power Point når han foreleser. De notatene han viser der er hentet fra nettsiden til boka og de er like tungfordøyelig som boka selv, så da er jeg tibake til utgangspunkter. Selv om han har CP, så er det ikke noe i veien med topplokket, ekstremt smart fyr. Men du kan kanskje tenke deg hvordan et smart menneske som ikke har noen form for pedagogisk utdanning er . Hans nivå på forklaringer ligger laaaaaaaangt over hodet mitt, derfor har jeg prøvd å laste ned de forelesnings notatene, for så å lese gjennom dem. Men neida, like gresk. Her er linken til notatene. Bedøm selv. Lenke til kommentar
runeb Skrevet 29. september 2004 Del Skrevet 29. september 2004 ' date='28/09/2004 : 14:11'] Skrev jeg noe sted at jeg ba andre om å gjøre oppg. for meg??????????Spurte pent og høflig om noen som kunne hjelpe meg med å tyde oppgaveteksten, da jeg ikke er helt med på hva læreren vil. Du sa ikke noe veldig spesifikt om hva du ville ha hjelp til, så at noen tolket det slik at du ville at noen skulle gjøre hele oppgaven for deg er ikke så rart. Det er det nemlig en del som gjør her på forumet, men de pleier sjelden å innrømme at det er en skoleoppgave de vil ha hjelp til, slik du har gjort her. Jeg har ingen problemer med at folk spør om hjelp til skoleoppgaver. Men jeg hadde foretrukket at de fleste hadde gjort som deg, og ikke prøvd å skjule det... Lenke til kommentar
ED209 Skrevet 29. september 2004 Forfatter Del Skrevet 29. september 2004 Dårlig formulert fra min side, hadde sittet noen timer med oppg. da jeg skrev innlegget. Så hodet var ikke helt med i norsk grammatikken. Takk for hyggelig tilbakemelding. Lenke til kommentar
TeddyErt Skrevet 29. september 2004 Del Skrevet 29. september 2004 Du bruker ikke private bare for å gjemme attributtene, du gjør det for å hindre at man får tilgang til dem utenom de finn og set metodene. Å kalle dette en feil syns jeg er pirking, det er jo ikke noe feil. Lenke til kommentar
saboi Skrevet 29. september 2004 Del Skrevet 29. september 2004 (endret) men hvis du har tilsvarende set/get-metoder har man fortsatt like mye tilgang til attributtene, du må bare bruke andre navn Endret 29. september 2004 av saboi Lenke til kommentar
TeddyErt Skrevet 29. september 2004 Del Skrevet 29. september 2004 (endret) jeg skjønner det, men dette er jo en helt vanlig måte å gjøre det på. Det som er litt spesielt her er jo at det skal finnes set og finn metoder til alle attributtene. Da kan du jo også sette visse begrensninger i metoden som skal f.eks sette verdi til attributtene. Endret 29. september 2004 av TeddyErt Lenke til kommentar
saboi Skrevet 29. september 2004 Del Skrevet 29. september 2004 vel jeg bruker nesten aldri set/get metoder. hvis jeg trenger det vurderer jeg heller om jeg bare skal lage medlemmene public eller bruke struct i c++ Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå