IS-110 Fagstoff > Moduler > Modul 14
Modul 14: Eget prosjekt
INTRO
Læringsmål:
Du har fullført modulen når du kan:
- gjennomføre et "stort" prosjekt (i IS-110 målestokk) på egenhånd.
Ressurser
Oppgave
Vi har noen forslag, som er inspirert av unix småprogrammer for
administrasjon av filsystemet. Du kan velge et av disse, eller fortsette
videre med et prosjekt du har. Hvis du velger det siste bør du ta vare på
forrige versjon av prosjektet, så vi kan se hva du har tilføyd i denne
modulen. Se på forslagene under uansett. De gir en pekepinn på hvor mye
arbeid vi forventer. Du finner noen tips under forslagene
- Diskforbruk (inspirert av du)
- Skriv et lite program som gitt navnet på en mappe regner ut hvor mye
diskplass som blir brukt av filene i mappen med undermapper. Programmet
skriver ut diskforbruk for hver undermappe først, og summen for det hele
til slutt. Eksempel:
cmd> du mittprosjekt
Disk usage for mittprosjekt
mittprosjekt/src/java 35kb
mittprosjekt/src 345kb
mittprosjekt/doc 29kb
mittprosjekt 421kb
- Du trenger ikke implementere alle switchene til unix-kommandoen du,
men du bør ta med "-a", som betyr at programmet skal skrive ut
størrelsen på hver eneste fil i tillegg til summen for hver mappe.
- Det finnes flere variasjoner over dette temaet. F.eks. skrive ut alle
filene i en mappe (og undermapper selvfølgelig) sortert på størrelse.
Det kan brukes til å finne "verstingene" på diskplass.
- Finn filer (inspirert av find.
- Gitt en mappe og søkekriterier skal programmet skrive ut alle filer i
mappa (eller undermapper) som oppfyller søkekriteriet. Søkekriteret kan
f.eks. være filnavn, med eller uten jokertegn (wildcards), ord eller
uttrykk som forekommer inni fila, filstørrelse (større eller mindre enn
angitt grense), endringsdata (før/på/etter), eller andre kriterier du
mener er nyttige.
- Kopiere filer/mapper/trær
- Skriv et program som kopierer filer eller mapper til en annen mappe.
Hvis det er en mappe som skal kopieres må programmet også kopiere
innholdet i mappen og eventuelle undermapper. Eksempel:
cmd> copy mittprosjekt prosjekter
Copied 239 files!
cmd> dir prosjekter
gammeltprosjekt <DIR>
minmappe <DIR>
mittprosjekt <DIR>
- Programmer/kommandoer lignende denne blir ofte brukt til å publisere
web-sider, i den sammenheng kan det være nyttig å spesifisere om
eksisterende filer i målmappen skal overskrives eller ikke, og hva som
skal skje med filer som finnes i målmappen, men ikke i orginalmappen
(den som det kopieres fra
- Lotto generator
- Lotto er et tallspill der det trekkes sju tall av totalt 34 tall. Lag
et program som først genererer VINNER lotto rekka. Denne rekka skal være
sortert. Så skal du generere lotto rekker for spill, disse skal også
være sortert. Generer rekker helt til du har generert en rekke med 7
rette, tell opp hvor mange rekker som måtte genereres for å få 7 rette.
Så skal det være et valg for å kjøre dette et villkårlig antall ganger,
og så beregne gjennomsnittlig antall rekker som må genereres i spillene
for å få 7 rette.
Tips og hint
Filbehandling i java
Det er to alternative representasjoner av filsystemet i Java. Den ene er java.io.File,
som egentlig representerer et filnavn. Den andre er pakken java.nio.file
som har mer avanserte funksjoner for å manipulere filer. Klassen
java.nio.Path tilsvarer java.io.File
Kjøre java-programmer uten BlueJ
Dette er forklart i appendix E i læreboka. Les E.1 nøye, og merk deg
signaturen til main() og hvordan du får tak i parametere på
kommandolinjen.
Lage exe-filer av java-programmer
Det ser kanskje litt bedre ut om vi kunne skrive
cmd> mittprogram
i stedet for
cmd> java -jar mittprogram.jar MinMainKlasse
Det finnes flere verktøyer som kan konvertere jar-filer til exe-filer.
F.eks. launch4j. Launch4j er godt dokumentert, og rimelig
enkelt å bruke.
Godkjennes av foreleser eller hjelpelærer