dravisher Skrevet 9. september 2005 Del Skrevet 9. september 2005 Heisan. Jeg har akkurat begynt på INF1000 ved UiO hvor vi skal lære Java. I C++ brukte jeg clrscr() og gotoxy kommandoene for å lage et godt brukergrensesnitt. Det fungerte da slik at man fikk opp en meny med numererte valg, og når man slo inn et tall utførtes denne kommandoen og resulatet kom under menyen. Hvis man så utførte en til kommando, så gjorde jeg det slik at konsollvinduet ble klarert (clrscr()), og så tegnes menyen og det nye resultatet, slik at det for brukere ser ut som om det nye resultatet overskrev det forige. På denne måten slipper man å få en lang rekke med tegnede menyer og resultater i konsollvinduet. Problemet mitt er at jeg ikke finner noen måte å gjøre noe lignende i Java på. Jeg lurer på om dere har noen tips til hvordan jeg kan få dette til, eventuelt helt andre måter å håndtere problemet på (brukeren gjør et valg, programmet gjør sitt osv.). Her følger koden og en ferdig kompilert .class fil. Kildekode: Oblig1.java .class fil: Oblig1.class Husk at jeg er høvelig n00b på programmering. Har bare hatt noe C++ på VGS. Takker for all hjelp. Lenke til kommentar
mar Skrevet 9. september 2005 Del Skrevet 9. september 2005 Den beste måten er vell egentlig å lage sitt eget lille vindu, men dersom oppgaven er å lage et console basert program så er ikke det så lurt. Har ikke EasyIO pakken, så jeg får ikke testet programmet. Du kan prøve å kjøre "cls" kommandoen (Windows) (ved å bruke Runtime.exec()), husker ikke om "cls" heter "cls" i Linux også. Du burde også fikset litt på kildekoden. Var noen utrolig lange linjer der. Generelt sett bør du i det minste hive inn et linjeskift etter ";". Det er så utrolig frustrende å rette oppgaver med endeløse linjer og lignende. Er heller ikke uvanlig at det ryker en god del poeng dersom man skriver rotete kode. Hilsen en som har rettet over hundre obligatoriske innleveringer ved Institutt for informatikk(UiB). Lenke til kommentar
zeltex Skrevet 9. september 2005 Del Skrevet 9. september 2005 (endret) Gruppe 6 da eller... er jeg på også hva er sannsyligheten sier bare jeg. Men den der så litt mer avansert ut en det jeg hadde gjort. oblig1 filene: .class .java Så i dag tidlig, lenge etter at jeg leverte at jeg hadde double og ikke int på ett heltall, men tenkte at det får bare gå. edit: skulle den ikke vært levert 42 minutter før du skrev dette innlegget? men har desverre ikke noe rellevant forslag å komme med her. Endret 9. september 2005 av zeltex Lenke til kommentar
dravisher Skrevet 9. september 2005 Forfatter Del Skrevet 9. september 2005 (endret) Jo. Skulle være levert kl. 1600. Derfor jeg ventet til etter fristen (anti-leech ). Jeg leverte inn i tide. mar: Mener du jeg burde dele inn mer enn jeg har gjort altså? De gangene jeg har hatt flere ; på samme linje skjønner jeg, men jeg syns det var ganske naturlig f.eks. her: screen.out(" Gjennomsnittlig nedbor for dagene det regnet i mai og juni 2005 blir "); screen.out(svar, 2); screen.outln("mm."); Siden det var en utskrift. Jeg fikk bare ikke til å gjøre dette i en screen.out. Kan du copy-paste noen eksempler på hva du mener jeg kunne gjort for å gjøre det mer oversiktlig? Vil gjerne ha tips. Takk for hjelpen. Endret 9. september 2005 av dravisher Lenke til kommentar
mar Skrevet 9. september 2005 Del Skrevet 9. september 2005 (endret) Du kan ta en titt her. Er ganske mye info, men det er en del ting som er kjekt å ta med seg videre. På de/den første obligatoriske går det nok greit med litt rotete kode. Som feks unødvendig bruk av else/if. En switch ser så mye bedre ut, men dette kommer dere nok til etterhvert. Det som jeg husker var det største problemet var at alle studentene formaterte koden på sin egen måte. Noen hadde lange linjer, og aldri ekstra linjeskift, ofte med kommentarer blandet fint inn i koden. Andre brukte bare hver 5. linje osv. Var mye diskusjoner internt om hva vi skulle kreve av studentene. Noen mente at det var formye å forlange at de tok en titt på "Java code conventions" fra Sun, som jeg linket til lenger oppe. En ting er sikkert, følger du de mest grunnleggende tipsene fra Sun så blir den som retter glad når han/hun ser koden din, og det er jo alltid en fordel. Husker selv den gode følelsen når jeg åpnet en .java fil og fikk se ryddig kode, ble så mye lettere å rette da. int valg=0, nedbDagerMai = 22, regnMai = 99, maiProsent = 187, nedbDagerJuni = 11, regnJuni = 41; Slikt er det nok mange som vil mislike. Endret 9. september 2005 av mar Lenke til kommentar
mikaelandre Skrevet 9. september 2005 Del Skrevet 9. september 2005 (endret) du skal alltid ha masse mellomrom når du koder. bestandig etter ;, og etter if, else, while, for osv. fungerer selvfølgelig uten, men blir enklere for andre å lese det. vet ikke hvor høyt kravet er hos dere, men på ntnu er det ikke noe krav om fin kode, men alle som retter øvinger vil påpeke det om det ikke ser bra ut. Vil ikke få noe trekk. men på eksamen må det se bra ut, hvis ikke blir det trekk, så det er greit å lære seg det med en gang. hvis du i tillegg studerer data må du før eller senere lære det uansett, så det lureste er å begynne før du får for mange uvaner. når det gjelder spørsmålene om utskrift så er det vanskelig å svare på dette når du bruker en easyIo klasse som ikke er standard java, siden jeg ikke vet hva den gjør.... glemte å si det at mange av mine studenter trodde programmene gikk kjappere hvis de var kompakte, men det er ikke tilfelle. linjeskift og litt luft i koden gjør ikke at det går treigt Endret 9. september 2005 av mikaelandre Lenke til kommentar
dravisher Skrevet 9. september 2005 Forfatter Del Skrevet 9. september 2005 (endret) Tror ikke det er noen særlig store krav til ryddig kode (er jo bare godkjent / ikke godkjent, ingen invirkning på karakter), men jeg vil jo gjerne gjøre det ok for de som skal rette. Jeg syns jo selv at koden min er ganske oversiktlig (men nå har jo jeg skrevet slik jeg er vant til å skrive fra C++, så jeg ser jo lett hva det er jeg selv holder på med). Men er det ikke vanlig å skrive f.eks. en if setning slik: if (ettellerannet) -----{ -----kode -----} (hvor '-' er linjeskift, linjeskift kom ikke med her.) ? Jeg syns i allfall det er mye enklere å se når koden er litt spacet fra annen kode slik, og { og }kommer i samme horisontale posisjon, slik at man enklere ser hvilke klammer som hører sammen... Endret 9. september 2005 av dravisher Lenke til kommentar
mikaelandre Skrevet 9. september 2005 Del Skrevet 9. september 2005 les den linken han gav lenger oppe, der står java sin standard. når det gjelder if er det to måter: if( a == b ){ noe rart. } else { noe annet } og: if( a == b ) { noe rart. } else { noe annet. } standard java er vel den øverste. Det mange gjør er å bruke den nederste måten på klasser og metoder, og den øverste på if, while og for. er vel egentlig fritt frem, jeg bruker den øverste på alt siden det er standard Lenke til kommentar
boemane Skrevet 10. september 2005 Del Skrevet 10. september 2005 screen.out(" Gjennomsnittlig nedbor for dagene det regnet i mai og juni 2005 blir "); screen.out(svar, 2); screen.outln("mm."); Siden det var en utskrift. Jeg fikk bare ikke til å gjøre dette i en screen.out. Du kan gjøre følgende. Har ikke brukt EasyIO, men ved System.out.println(); kan man gjøre følgende (og jeg regner med at screen.out() bare sender videre til System.out.println()): System.out.println(" Gjennomsnittlig nedbor for dagene det regnet i mai og juni 2005 blir " + svar + " mm."); Dersom du ønsker å ha kun 2 desimaler (går utifra at det er det screen.out(String, int) gjør) DecimalFormat df = new DecimalFormat("0.00"); System.out.println(" Gjennomsnittlig nedbor for dagene det regnet i mai og juni 2005 blir " + df.format(svar) + " mm."); Går også utifra at du kan bruke screen.outln direkte og: DecimalFormat df = new DecimalFormat("0.00"); screen.outln(" Gjennomsnittlig nedbor for dagene det regnet i mai og juni 2005 blir " + df.format(svar) + " mm."); En fjerde mulighet er å bruker screen.out("tekst\n") eller System.out.println("tekst\n") og legge inn linjeskift med \n. Lenke til kommentar
boemane Skrevet 10. september 2005 Del Skrevet 10. september 2005 I C++ brukte jeg clrscr() og gotoxy kommandoene for å lage et godt brukergrensesnitt. Du kan renske skjermen ved hjelp av: System.out.println("\033c"); Lenke til kommentar
AssKicR Skrevet 19. september 2005 Del Skrevet 19. september 2005 I C++ brukte jeg clrscr() og gotoxy kommandoene for å lage et godt brukergrensesnitt. Du kan renske skjermen ved hjelp av: System.out.println("\033c"); Kommer bare opp ←c her da... Eneste måten jeg har som funker noelunde er å skrive ut så 10-12 tomme linjer 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å