KAUNO TECHNOLOGIJOS UNIVERSITETAS INFORMATIKOS FAKULTETAS Laboratorinis darbas Nr.2 Irasai ir dinaminiai sarasai Atliko: grupes studentas, Vardenis pavardenis Kaunas, 2007 1. Uzduotis L2-53. Turime gyventoju sarasa: pavarde, vardas, adresas, gimimo metai. Reikia sudaryti nurodyto amziaus intervalo gyventoju sarasa. Sarasa sutvarkyti alfabeto tvarka. Isvesti lenteles: duomenu ir skaiciavimu rezultatu. 2. Pavyzdys Duomenu failas Duomenys.dat Lalala Lailius Sodu-4 1987 Kazaitis Kazys Vasaros-5 1970 Simaityte Simona Vilniaus-32 1990 Antanavicius Antanas Donelaicio-12 1968 Vytautaitis Vytautas Medelyno-1 1987 Kotrynaite Kotryna Tuju-9 1998 Tomaitis Tomas Tuju-11 1964 Arnoldaitis Arnoldas Gelezgaliu-12 1957 Vladaitis Vladas Kestucio-18 1969 Rezultatu failas Rezultatai.dat Pradiniai duomenys --------------------------------------- Pavarde Vardas Adresas Gim. metai --------------------------------------- Vladaitis Vladas Kestucio-18 1969 Arnoldaitis Arnoldas Gelezgaliu-12 1957 Tomaitis Tomas Tuju-11 1964 Kotrynaite Kotryna Tuju-9 1998 Vytautaitis Vytautas Medelyno-1 1987 Antanavicius Antanas Donelaicio-12 1968 Simaityte Simona Vilniaus-32 1990 Kazaitis Kazys Vasaros-5 1970 Minelga Jonas Sodu-4 1987 --------------------------------------- Galutiniai duomenys --------------------------------------- Pavarde Vardas Adresas Gim. metai --------------------------------------- Antanavicius Antanas Donelaicio-12 1968 Arnoldaitis Arnoldas Gelezgaliu-12 1957 Kazaitis Kazys Vasaros-5 1970 Minelga Jonas Sodu-4 1987 Tomaitis Tomas Tuju-11 1964 Vladaitis Vladas Kestucio-18 1969 Vytautaitis Vytautas Medelyno-1 1987 --------------------------------------- Vaizdas ekrane: Iveskite amziaus intervalo pradzia 20 Iveskite amziaus intervalo pabaiga d Ivedete ne skaiciu. Kartokite Iveskite amziaus intervalo pradzia 20 Iveskite amziaus intervalo pabaiga 60 Pradiniai duomenys --------------------------------------- Pavarde Vardas Adresas Gim. metai --------------------------------------- Vladaitis Vladas Kestucio-18 1969 Arnoldaitis Arnoldas Gelezgaliu-12 1957 Tomaitis Tomas Tuju-11 1964 Kotrynaite Kotryna Tuju-9 1998 Vytautaitis Vytautas Medelyno-1 1987 Antanavicius Antanas Donelaicio-12 1968 Simaityte Simona Vilniaus-32 1990 Kazaitis Kazys Vasaros-5 1970 Minelga Jonas Sodu-4 1987 --------------------------------------- Galutiniai duomenys --------------------------------------- Pavarde Vardas Adresas Gim. metai --------------------------------------- Antanavicius Antanas Donelaicio-12 1968 Arnoldaitis Arnoldas Gelezgaliu-12 1957 Kazaitis Kazys Vasaros-5 1970 Minelga Jonas Sodu-4 1987 Tomaitis Tomas Tuju-11 1964 Vladaitis Vladas Kestucio-18 1969 Vytautaitis Vytautas Medelyno-1 1987 --------------------------------------- 3. Nurodymai kaip paleisti Atsidarius terminala rasome: cd ir pilna adresa iki tos direktorijos kurioje yra programos failai. Tada rasome java Antras. 4. Programos tekstas import java.io.*; import java.util.*; //--------------------------------------------------------------------- //--------------------------------------------------------------------- public class Antras { //----------------------------------------------------------------- //Pagrindinis programos metodas. public static void main(String args[]) throws IOException{ Metodai M = new Metodai(); M.vykdymas(); } } //--------------------------------------------------------------------- //--------------------------------------------------------------------- class Irasas { private String vardas; //Asmens vardas private String pavarde; //Asmens pavarde private String adresas; //Asmens adresas private int gmetai; //Asmens gimimo metai private Irasas kitas; //Rodykle i kita irasa //----------------------------------------------------------------- //Metodo metu klases kintamajam vardas priskiriama per parametrus //gauta reiksme. public void keistiVarda(String v){ this.vardas = v; } //----------------------------------------------------------------- //Metodo metu klases kintamajam pavarde priskiriama per parametrus //gauta reiksme. public void keistiPavarde(String p){ this.pavarde = p; } //----------------------------------------------------------------- //Metodo metu klases kintamajam adresas priskiriama per parametrus //gauta reiksme. public void keistiAdresa(String a){ this.adresas = a; } //----------------------------------------------------------------- //Metodo metu klases kintamajam gmetai priskiriama per parametrus //gauta reiksme. public void keistiMetus(int m){ this.gmetai = m; } //----------------------------------------------------------------- //Metodo metu klases kintamajam kitas priskiriama per parametrus //gauta rodykle. public void keistiRodykle(Irasas rod){ this.kitas = rod; } //----------------------------------------------------------------- //Metodo metu grazinama kintamojo vardas reiksme. public String gautiVarda(){ return vardas; } //----------------------------------------------------------------- //Metodo metu grazinama kintamojo pavarde reiksme. public String gautiPavarde(){ return pavarde; } //----------------------------------------------------------------- //Metodo metu grazinama kintamojo adresas reiksme. public String gautiAdresa(){ return adresas; } //----------------------------------------------------------------- //Metodo metu grazinama kintamojo gmetai reiksme. public int gautiMetus(){ return gmetai; } //----------------------------------------------------------------- //Metodo metu grazinama kintamojo kitas rodykle. public Irasas gautiRodykle(){ return kitas; } } //--------------------------------------------------------------------- //--------------------------------------------------------------------- class Metodai { private Irasas p, n; private String eilute; Metodai() { p = null; //Priskiariama pradine reiksme n = null; //Priskiariama pradine reiksme } //----------------------------------------------------------------- //Metodo metu kreipiamasi i reikiamus metodus, kad butu atlikti //reikalingi veiksmai, salygai ivykdyti. public void vykdymas() throws IOException { skaitymas(); atrinkimas(); rikiavimas(); spausdinimasFaile(); System.out.println(""); System.out.println("Pradiniai duomenys"); System.out.println("---------------------------------------"); System.out.println("Pavarde Vardas Adresas Gim. metai"); System.out.println("---------------------------------------"); spausdinimas(p); System.out.println("---------------------------------------"); System.out.println(""); System.out.println("Galutiniai duomenys"); System.out.println("---------------------------------------"); System.out.println("Pavarde Vardas Adresas Gim. metai"); System.out.println("---------------------------------------"); spausdinimas(n); System.out.println("---------------------------------------"); System.out.println(""); } //----------------------------------------------------------------- //Metodo metu isduomenu failo skaitomi duomenys. private void skaitymas() throws IOException { String vard, pav, adr; int gm; BufferedReader skaito = new BufferedReader(new FileReader("Duomenys.dat")); while (true) { try { if ((eilute = skaito.readLine()) == null){ break; } StringTokenizer st = new StringTokenizer (eilute); if (st.hasMoreTokens()){ pav = st.nextToken(); if (st.hasMoreTokens()){ vard = st.nextToken(); if (st.hasMoreTokens()){ adr = st.nextToken(); if (st.hasMoreTokens()){ gm = Integer.parseInt(st.nextToken()); itraukimas(vard, pav, adr, gm); } else{ System.out.println("Nera gimimo metu"); break; } } else { System.out.println("Nera adreso"); break; } } else { System.out.println("Nera vardo"); break; } } else { System.out.println("Nera pavardes"); break; } } catch (IOException e){ System.out.println("Skaitymo klaida"); break; } } } //----------------------------------------------------------------- //Metodo metu papildomas dinaminis sarasas. private void itraukimas(String v, String pav, String a, int m) { Irasas r = new Irasas(); r.keistiVarda(v); r.keistiPavarde(pav); r.keistiAdresa(a); r.keistiMetus(m); r.keistiRodykle(p); p = r; } //----------------------------------------------------------------- //Metodo metu ekrane parodomi saraso duomenys. private void spausdinimas(Irasas x) { while (x != null) { System.out.println(x.gautiPavarde() + " " + x.gautiVarda() + " " + x.gautiAdresa() + " " + x.gautiMetus()); x = x.gautiRodykle(); } } //----------------------------------------------------------------- //Metodo metu i nauja dinamini sarasa atrenkami salyga tenkinantys //duomenys. private void atrinkimas() throws IOException { Irasas laikinas; int pradzia, pabaiga, temp, pra, pab; String va, pa, ad; boolean w = true; BufferedReader ivedimas = new BufferedReader(new InputStreamReader(System.in)); while (w == true){ try { System.out.println(""); System.out.println("Iveskite amziaus intervalo pradzia"); pra = Integer.parseInt(ivedimas.readLine()); System.out.println(""); System.out.println("Iveskite amziaus intervalo pabaiga"); pab = Integer.parseInt(ivedimas.readLine()); pradzia = 2007 - pab; pabaiga = 2007 - pra; laikinas = p; while (laikinas != null){ temp = laikinas.gautiMetus(); if (temp >= pradzia){ if (temp 0){ tempv = x.gautiVarda(); tempa = x.gautiAdresa(); tempm = x.gautiMetus(); x.keistiAdresa(y.gautiAdresa()); x.keistiVarda(y.gautiVarda()); x.keistiPavarde(temppy); x.keistiMetus(y.gautiMetus()); y.keistiPavarde(temppx); y.keistiAdresa(tempa); y.keistiVarda(tempv); y.keistiMetus(tempm); } x = x.gautiRodykle(); y = y.gautiRodykle(); } z = z.gautiRodykle(); x = y = n; } } //----------------------------------------------------------------- //Metodo metu i rezultatu faila irasomi abu sarasai: pradinis ir //surikiuotas galutinis. private void spausdinimasFaile() { Irasas l1, l2; l1 = p; l2 = n; PrintWriter sp = null; try { File F = new File ("Rezultatai.dat"); sp = new PrintWriter(new FileWriter(F)); } catch (IOException e) { System.out.println("Klaida atidarant rezultatu faila"); System.exit(0); } sp.println("Pradiniai duomenys"); sp.println("---------------------------------------"); sp.println("Pavarde Vardas Adresas Gim. metai"); sp.println("---------------------------------------"); while (l1 != null){ sp.println(l1.gautiPavarde() + " " + l1.gautiVarda() + " " + l1.gautiAdresa() + " " + l1.gautiMetus()); l1 = l1.gautiRodykle(); } sp.println("---------------------------------------"); sp.println(""); sp.println("Galutiniai duomenys"); sp.println("---------------------------------------"); sp.println("Pavarde Vardas Adresas Gim. metai"); sp.println("---------------------------------------"); while (l2 != null){ sp.println(l2.gautiPavarde() + " " + l2.gautiVarda() + " " + l2.gautiAdresa() + " " + l2.gautiMetus()); l2 = l2.gautiRodykle(); } sp.println("---------------------------------------"); sp.close(); } }
Šį darbą sudaro 1135 žodžiai, tikrai rasi tai, ko ieškai!
★ Klientai rekomenduoja
Šį rašto darbą rekomenduoja mūsų klientai. Ką tai reiškia?
Mūsų svetainėje pateikiama dešimtys tūkstančių skirtingų rašto darbų, kuriuos įkėlė daugybė moksleivių ir studentų su skirtingais gabumais. Būtent šis rašto darbas yra patikrintas specialistų ir rekomenduojamas kitų klientų, kurie po atsisiuntimo įvertino šį mokslo darbą teigiamai. Todėl galite būti tikri, kad šis pasirinkimas geriausias!
Norint atsisiųsti šį darbą spausk ☞ Peržiūrėti darbą mygtuką!
Mūsų mokslo darbų bazėje yra daugybė įvairių mokslo darbų, todėl tikrai atrasi sau tinkamą!
Panašūs darbai
Kiti darbai
Atsisiuntei rašto darbą ir neradai jame reikalingos informacijos? Pakeisime jį kitu nemokamai.
Pirkdamas daugiau nei vieną darbą, nuo sekančių darbų gausi 25% nuolaidą.
Išsirink norimus rašto darbus ir gauk juos akimirksniu po sėkmingo apmokėjimo!