IS-110 Fagstoff > Moduler > Modul 14

Modul 14: Eget prosjekt

INTRO

Læringsmål:

Du har fullført modulen når du kan:

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