Sudėtinga Java aplikacija su tekstinio failo nuskaitymu, meniu punktais ir 6 skirtingomis veikimo funkcijomis.
Duomenų failo turinys
DARE Gorrilaz Electronic 324
White_Days Gorrilaz Electronic 329
White_flag Dido Pop 322
Paris Dido Pop 204
Angels_fly Reamonn Pop_Rock 276
Jeanny Reamonn Pop_Rock 266
Seven_Nation_Army White_Stripes Rock 232
Blue_Orchid White_Stripes Rock 168
Hypnotize White_Stripes Rock 108
Užduotis
- Duomenų įvedimas: pradiniai duomenys įvedami iš tekstinio failo (ne mažiau 8 įrašų).
- Veiksmai:
- įterpti naują įrašą į nurodytą vietą;
- pašalinti įrašą pagal nurodytą eilės numerį.
- Pradiniai duomenys ir rezultatai parodomi ekrane ir išsaugomi tekstiniame faile lentelės forma.
- Duomenys ir rezultatai saugomi masyvuose (kolekcijų nenaudoti).
- Programos rašomos Java programavimo kalba.
- Sąrašą sudaro dainos aprašo elementai: pavadinimas, autorius, stilius, trukmė. Surasti visų nurodyto autoriaus dainų bendrą trukmę.
Pirma dalis
Programoje sukuriamas meniu, kuris bus paleidžiamas po kiekvieno atlikto veiksmo su programa.
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
import java.util.StringTokenizer;
private String pavadinimas, autorius, stilius;
Grotuvas(String pav, String aut, String stil, int truk) {
public String gautiPavadinima() {
public String gautiAutorius() {
public String gautiStilius() {
public int gautiTrukme() {
public class GrotuvasMenu {
* @param args the command line arguments
public static void main(String[] args) {
int nr = 0; //meniu veiksmo numeris
BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); //skaitymo iš komandinės eilutės konstruktorius
nr = Integer.parseInt(in.readLine());
catch(IOException e){System.out.println("Ivedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedete ne sveika skaiciu!");}
case 1://skaitymas is failo
System.out.println("Pasirinkote pirma meniu punkta!");
case 2://rezultatu isvedimas i faila
case 3://naujo iraso iterpimas
case 5://paieskos veiksmai
System.out.println("Programa baigė darbą.");
default://veiksmai kitais atvejais
System.out.println("Nėra tokio menu punkto. Pakartokite!");
public static void meniu () {
System.out.println("_____________________________");
System.out.println("Programos Grotuvas veiksmų meniu");
System.out.println("1. Skaityti duomenis.");
System.out.println("2. Spausdinti i faila.");
System.out.println("3. Įterpti.");
System.out.println("4. Ištrinti.");
System.out.println("5. Surasti.");
System.out.println("6. Baigti darbą.");
System.out.println("Iveskite meniu nr.:");
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package grotuvasmenu;
import java.io.*;
import java.util.StringTokenizer;
class Grotuvas {
private String pavadinimas, autorius, stilius;
private int trukme;
Grotuvas() { }
Grotuvas(String pav, String aut, String stil, int truk) {
pavadinimas = pav;
autorius = aut;
stilius = stil;
trukme = truk;
}
public String gautiPavadinima() {
return pavadinimas;
}
public String gautiAutorius() {
return autorius;
}
public String gautiStilius() {
return stilius;
}
public int gautiTrukme() {
return trukme;
}
}
public class GrotuvasMenu {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int nr = 0; //meniu veiksmo numeris
BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); //skaitymo iš komandinės eilutės konstruktorius
while (true){
meniu();
try {
nr = Integer.parseInt(in.readLine());
}
catch(IOException e){System.out.println("Ivedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedete ne sveika skaiciu!");}
switch (nr) {
case 1://skaitymas is failo
System.out.println("Pasirinkote pirma meniu punkta!");
System.out.println();
break;
case 2://rezultatu isvedimas i faila
break;
case 3://naujo iraso iterpimas
break;
case 4://iraso salinimas
break;
case 5://paieskos veiksmai
break;
case 6://pabaiga
System.out.println("Programa baigė darbą.");
System.exit(0);
break;
default://veiksmai kitais atvejais
System.out.println("Nėra tokio menu punkto. Pakartokite!");
break;
}
}
}
public static void meniu () {
System.out.println();
System.out.println("_____________________________");
System.out.println("Programos Grotuvas veiksmų meniu");
System.out.println();
System.out.println("1. Skaityti duomenis.");
System.out.println("2. Spausdinti i faila.");
System.out.println("3. Įterpti.");
System.out.println("4. Ištrinti.");
System.out.println("5. Surasti.");
System.out.println("6. Baigti darbą.");
System.out.println();
System.out.println("Iveskite meniu nr.:");
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package grotuvasmenu;
import java.io.*;
import java.util.StringTokenizer;
class Grotuvas {
private String pavadinimas, autorius, stilius;
private int trukme;
Grotuvas() { }
Grotuvas(String pav, String aut, String stil, int truk) {
pavadinimas = pav;
autorius = aut;
stilius = stil;
trukme = truk;
}
public String gautiPavadinima() {
return pavadinimas;
}
public String gautiAutorius() {
return autorius;
}
public String gautiStilius() {
return stilius;
}
public int gautiTrukme() {
return trukme;
}
}
public class GrotuvasMenu {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int nr = 0; //meniu veiksmo numeris
BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); //skaitymo iš komandinės eilutės konstruktorius
while (true){
meniu();
try {
nr = Integer.parseInt(in.readLine());
}
catch(IOException e){System.out.println("Ivedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedete ne sveika skaiciu!");}
switch (nr) {
case 1://skaitymas is failo
System.out.println("Pasirinkote pirma meniu punkta!");
System.out.println();
break;
case 2://rezultatu isvedimas i faila
break;
case 3://naujo iraso iterpimas
break;
case 4://iraso salinimas
break;
case 5://paieskos veiksmai
break;
case 6://pabaiga
System.out.println("Programa baigė darbą.");
System.exit(0);
break;
default://veiksmai kitais atvejais
System.out.println("Nėra tokio menu punkto. Pakartokite!");
break;
}
}
}
public static void meniu () {
System.out.println();
System.out.println("_____________________________");
System.out.println("Programos Grotuvas veiksmų meniu");
System.out.println();
System.out.println("1. Skaityti duomenis.");
System.out.println("2. Spausdinti i faila.");
System.out.println("3. Įterpti.");
System.out.println("4. Ištrinti.");
System.out.println("5. Surasti.");
System.out.println("6. Baigti darbą.");
System.out.println();
System.out.println("Iveskite meniu nr.:");
}
}
Antra dalis
Sukuriamas failo skaitymo mechanizmas ir tuo pačiu duomenų išvedimas į ekraną su jų gražiu formatavimu.
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
import java.util.StringTokenizer;
private String pavadinimas, autorius, stilius;
Grotuvas(String pav, String aut, String stil, int truk) {
public String gautiPavadinima() {
public String gautiAutorius() {
public String gautiStilius() {
public int gautiTrukme() {
private String pavadinimas;
Gyvunas (String pav, int amzius, double svoris, String salis) {
public String gautiPav () {
public int gautiAmziu () {
public double gautiSvori () {
public String gautiSali () {
public class GrotuvasMenu {
* @param args the command line arguments
public static void main(String[] args) {
int nr = 0; //meniu veiksmo numeris
int n = 0; //masyvo A elementu sk.
BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); //skaitymo iš komandinės eilutės konstruktorius
File fd = new File ("grotuvas_duom.txt"); //duomenu failas
nr = Integer.parseInt(in.readLine());
catch(IOException e){System.out.println("Ivedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedete ne sveika skaiciu!");}
case 1://skaitymas is failo
n = skaiciuotiEilutes(fd);
System.out.println("Skaitome duomenis iš failo...");
System.out.println("Nuskaitytos: " + n + " eilutės.");
System.out.println("Duomenys nuskaityti.");
spausdinti_sar_ekrane(A, n);
case 2://rezultatu isvedimas i faila
case 3://naujo iraso iterpimas
case 5://paieskos veiksmai
System.out.println("Programa baigė darbą.");
default://veiksmai kitais atvejais
System.out.println("Nėra tokio menu punkto. Pakartokite!");
//metodas suskaiciuoja kiek faile yra irasu eiluciu
public static int skaiciuotiEilutes (File file) {
BufferedReader file_in = new BufferedReader (new FileReader (file));
if ((file_in.readLine()) == null){
catch (IOException e) {System.out.println("Skaitymo is failo klaida");}
//metodas skaito duomenis is failo
public static Grotuvas[] skaityti_sar (File file, int n){
Grotuvas A[] = new Grotuvas [n]; //sukuriamas masyvo objektas
String eilute; // kintamasis 1 eilutei skaityti
int sk = 0; //rasymo i masyva skaitliukas
String pav, autorius, stilius;
BufferedReader file_in = new BufferedReader (new FileReader (file));
if ((eilute = file_in.readLine()) == null) break;
StringTokenizer st = new StringTokenizer(eilute);
autorius = st.nextToken();
stilius = st.nextToken();
trukme = Integer.parseInt(st.nextToken());
A[sk]= new Grotuvas (pav, autorius, stilius, trukme);
catch (IOException e) {System.out.println("Ivedimo klaida");}
catch (IndexOutOfBoundsException e) {System.out.println("Masyvo ribu klaida");}
public static void spausdinti_sar_ekrane ( Grotuvas [] A, int n) {
spausdinti_antraste_ekrane ();
System.out.println("*************************************************************");
for (int i=0; i<n; i++) {
System.out.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
System.out.println("*************************************************************");
else System.out.println("Masyvas tuscias!");
public static void spausdinti_antraste_ekrane (){
System.out.println("*************************************************************");
System.out.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
public static String prailginti (String reiksme, int ilgis){
for (int i=reiksme.length(); i<ilgis; i++)
public static void meniu () {
System.out.println("_____________________________");
System.out.println("Programos Grotuvas veiksmų meniu");
System.out.println("1. Skaityti duomenis.");
System.out.println("2. Spausdinti i faila.");
System.out.println("3. Įterpti.");
System.out.println("4. Ištrinti.");
System.out.println("5. Surasti.");
System.out.println("6. Baigti darbą.");
System.out.println("Iveskite meniu nr.:");
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package grotuvasmenu;
import java.io.*;
import java.util.StringTokenizer;
class Grotuvas {
private String pavadinimas, autorius, stilius;
private int trukme;
Grotuvas() { }
Grotuvas(String pav, String aut, String stil, int truk) {
pavadinimas = pav;
autorius = aut;
stilius = stil;
trukme = truk;
}
public String gautiPavadinima() {
return pavadinimas;
}
public String gautiAutorius() {
return autorius;
}
public String gautiStilius() {
return stilius;
}
public int gautiTrukme() {
return trukme;
}
}
class Gyvunas {
private String pavadinimas;
private int amzius;
private double svoris;
private String k_salis;
Gyvunas() {}
Gyvunas (String pav, int amzius, double svoris, String salis) {
pavadinimas = pav;
this.amzius = amzius;
this.svoris = svoris;
k_salis = salis;
}
public String gautiPav () {
return pavadinimas;
}
public int gautiAmziu () {
return amzius;
}
public double gautiSvori () {
return svoris;
}
public String gautiSali () {
return k_salis;
}
}
public class GrotuvasMenu {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int nr = 0; //meniu veiksmo numeris
int n = 0; //masyvo A elementu sk.
Grotuvas A[] = null;
BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); //skaitymo iš komandinės eilutės konstruktorius
File fd = new File ("grotuvas_duom.txt"); //duomenu failas
while (true){
meniu();
try {
nr = Integer.parseInt(in.readLine());
}
catch(IOException e){System.out.println("Ivedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedete ne sveika skaiciu!");}
switch (nr) {
case 1://skaitymas is failo
n = skaiciuotiEilutes(fd);
System.out.println();
System.out.println("Skaitome duomenis iš failo...");
System.out.println();
System.out.println("Nuskaitytos: " + n + " eilutės.");
System.out.println();
A = new Grotuvas[n];
A = skaityti_sar(fd, n);
System.out.println("Duomenys nuskaityti.");
System.out.println();
spausdinti_sar_ekrane(A, n);
break;
case 2://rezultatu isvedimas i faila
break;
case 3://naujo iraso iterpimas
break;
case 4://iraso salinimas
break;
case 5://paieskos veiksmai
break;
case 6://pabaiga
System.out.println("Programa baigė darbą.");
System.exit(0);
break;
default://veiksmai kitais atvejais
System.out.println("Nėra tokio menu punkto. Pakartokite!");
break;
}
}
}
//metodas suskaiciuoja kiek faile yra irasu eiluciu
public static int skaiciuotiEilutes (File file) {
int sk = 0;
try {
BufferedReader file_in = new BufferedReader (new FileReader (file));
while (true){
if ((file_in.readLine()) == null){
file_in.close();
return sk;}
sk++;
}
}
catch (IOException e) {System.out.println("Skaitymo is failo klaida");}
return sk;
}
//metodas skaito duomenis is failo
public static Grotuvas[] skaityti_sar (File file, int n){
Grotuvas A[] = new Grotuvas [n]; //sukuriamas masyvo objektas
String eilute; // kintamasis 1 eilutei skaityti
int sk = 0; //rasymo i masyva skaitliukas
String pav, autorius, stilius;
int trukme;
try {
BufferedReader file_in = new BufferedReader (new FileReader (file));
while (true){
if ((eilute = file_in.readLine()) == null) break;
StringTokenizer st = new StringTokenizer(eilute);
pav = st.nextToken();
autorius = st.nextToken();
stilius = st.nextToken();
trukme = Integer.parseInt(st.nextToken());
A[sk]= new Grotuvas (pav, autorius, stilius, trukme);
sk ++;
if (sk==n) break;
}
}
catch (IOException e) {System.out.println("Ivedimo klaida");}
catch (IndexOutOfBoundsException e) {System.out.println("Masyvo ribu klaida");}
return A;
}
public static void spausdinti_sar_ekrane ( Grotuvas [] A, int n) {
if (n > 0) {
spausdinti_antraste_ekrane ();
System.out.println("*************************************************************");
for (int i=0; i<n; i++) {
System.out.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
}
System.out.println("*************************************************************");
}
else System.out.println("Masyvas tuscias!");
}
public static void spausdinti_antraste_ekrane (){
System.out.println("*************************************************************");
System.out.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
}
public static String prailginti (String reiksme, int ilgis){
for (int i=reiksme.length(); i<ilgis; i++)
reiksme += " ";
return reiksme;
}
public static void meniu () {
System.out.println();
System.out.println("_____________________________");
System.out.println("Programos Grotuvas veiksmų meniu");
System.out.println();
System.out.println("1. Skaityti duomenis.");
System.out.println("2. Spausdinti i faila.");
System.out.println("3. Įterpti.");
System.out.println("4. Ištrinti.");
System.out.println("5. Surasti.");
System.out.println("6. Baigti darbą.");
System.out.println();
System.out.println("Iveskite meniu nr.:");
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package grotuvasmenu;
import java.io.*;
import java.util.StringTokenizer;
class Grotuvas {
private String pavadinimas, autorius, stilius;
private int trukme;
Grotuvas() { }
Grotuvas(String pav, String aut, String stil, int truk) {
pavadinimas = pav;
autorius = aut;
stilius = stil;
trukme = truk;
}
public String gautiPavadinima() {
return pavadinimas;
}
public String gautiAutorius() {
return autorius;
}
public String gautiStilius() {
return stilius;
}
public int gautiTrukme() {
return trukme;
}
}
class Gyvunas {
private String pavadinimas;
private int amzius;
private double svoris;
private String k_salis;
Gyvunas() {}
Gyvunas (String pav, int amzius, double svoris, String salis) {
pavadinimas = pav;
this.amzius = amzius;
this.svoris = svoris;
k_salis = salis;
}
public String gautiPav () {
return pavadinimas;
}
public int gautiAmziu () {
return amzius;
}
public double gautiSvori () {
return svoris;
}
public String gautiSali () {
return k_salis;
}
}
public class GrotuvasMenu {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int nr = 0; //meniu veiksmo numeris
int n = 0; //masyvo A elementu sk.
Grotuvas A[] = null;
BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); //skaitymo iš komandinės eilutės konstruktorius
File fd = new File ("grotuvas_duom.txt"); //duomenu failas
while (true){
meniu();
try {
nr = Integer.parseInt(in.readLine());
}
catch(IOException e){System.out.println("Ivedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedete ne sveika skaiciu!");}
switch (nr) {
case 1://skaitymas is failo
n = skaiciuotiEilutes(fd);
System.out.println();
System.out.println("Skaitome duomenis iš failo...");
System.out.println();
System.out.println("Nuskaitytos: " + n + " eilutės.");
System.out.println();
A = new Grotuvas[n];
A = skaityti_sar(fd, n);
System.out.println("Duomenys nuskaityti.");
System.out.println();
spausdinti_sar_ekrane(A, n);
break;
case 2://rezultatu isvedimas i faila
break;
case 3://naujo iraso iterpimas
break;
case 4://iraso salinimas
break;
case 5://paieskos veiksmai
break;
case 6://pabaiga
System.out.println("Programa baigė darbą.");
System.exit(0);
break;
default://veiksmai kitais atvejais
System.out.println("Nėra tokio menu punkto. Pakartokite!");
break;
}
}
}
//metodas suskaiciuoja kiek faile yra irasu eiluciu
public static int skaiciuotiEilutes (File file) {
int sk = 0;
try {
BufferedReader file_in = new BufferedReader (new FileReader (file));
while (true){
if ((file_in.readLine()) == null){
file_in.close();
return sk;}
sk++;
}
}
catch (IOException e) {System.out.println("Skaitymo is failo klaida");}
return sk;
}
//metodas skaito duomenis is failo
public static Grotuvas[] skaityti_sar (File file, int n){
Grotuvas A[] = new Grotuvas [n]; //sukuriamas masyvo objektas
String eilute; // kintamasis 1 eilutei skaityti
int sk = 0; //rasymo i masyva skaitliukas
String pav, autorius, stilius;
int trukme;
try {
BufferedReader file_in = new BufferedReader (new FileReader (file));
while (true){
if ((eilute = file_in.readLine()) == null) break;
StringTokenizer st = new StringTokenizer(eilute);
pav = st.nextToken();
autorius = st.nextToken();
stilius = st.nextToken();
trukme = Integer.parseInt(st.nextToken());
A[sk]= new Grotuvas (pav, autorius, stilius, trukme);
sk ++;
if (sk==n) break;
}
}
catch (IOException e) {System.out.println("Ivedimo klaida");}
catch (IndexOutOfBoundsException e) {System.out.println("Masyvo ribu klaida");}
return A;
}
public static void spausdinti_sar_ekrane ( Grotuvas [] A, int n) {
if (n > 0) {
spausdinti_antraste_ekrane ();
System.out.println("*************************************************************");
for (int i=0; i<n; i++) {
System.out.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
}
System.out.println("*************************************************************");
}
else System.out.println("Masyvas tuscias!");
}
public static void spausdinti_antraste_ekrane (){
System.out.println("*************************************************************");
System.out.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
}
public static String prailginti (String reiksme, int ilgis){
for (int i=reiksme.length(); i<ilgis; i++)
reiksme += " ";
return reiksme;
}
public static void meniu () {
System.out.println();
System.out.println("_____________________________");
System.out.println("Programos Grotuvas veiksmų meniu");
System.out.println();
System.out.println("1. Skaityti duomenis.");
System.out.println("2. Spausdinti i faila.");
System.out.println("3. Įterpti.");
System.out.println("4. Ištrinti.");
System.out.println("5. Surasti.");
System.out.println("6. Baigti darbą.");
System.out.println();
System.out.println("Iveskite meniu nr.:");
}
}
Trečia dalis
Pridedame dar vieną funkciją, kai jau įvykdome pirmą programos funkciją ir duomenys jau yra nuskaityti ir jie jau masyve, tuomet galime juos spausdinti į failą. Meniu punktas numeris 2.
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
import java.util.StringTokenizer;
private String pavadinimas, autorius, stilius;
Grotuvas(String pav, String aut, String stil, int truk) {
public String gautiPavadinima() {
public String gautiAutorius() {
public String gautiStilius() {
public int gautiTrukme() {
private String pavadinimas;
Gyvunas (String pav, int amzius, double svoris, String salis) {
public String gautiPav () {
public int gautiAmziu () {
public double gautiSvori () {
public String gautiSali () {
public class GrotuvasMenu {
* @param args the command line arguments
public static void main(String[] args) {
int nr = 0; //meniu veiksmo numeris
int n = 0; //masyvo A elementu sk.
BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); //skaitymo iš komandinės eilutės konstruktorius
File fd = new File ("grotuvas_duom.txt"); //duomenu failas
File fr = new File (".", "grotuvas_rez.txt"); //rezultatu failas
PrintWriter rasyti = null; //Duomenų išvedimo failo kintamasis
//Atidarome rezultatu faila
rasyti = new PrintWriter (new FileWriter (fr));
catch (IOException e) {System.out.println("Nepavyko sukurti failo.");}
nr = Integer.parseInt(in.readLine());
catch(IOException e){System.out.println("Ivedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedete ne sveika skaiciu!");}
case 1://skaitymas is failo
n = skaiciuotiEilutes(fd);
System.out.println("Skaitome duomenis iš failo...");
System.out.println("Nuskaitytos: " + n + " eilutės.");
System.out.println("Duomenys nuskaityti.");
spausdinti_sar_ekrane(A, n);
case 2://rezultatu isvedimas i faila
spausdinti_sar_faile(rasyti, A, n);
System.out.println("Įrašome duomenis į failą...");
System.out.println("Duomenys sėkmingai įrašyti į failą: " + fr + ".");
case 3://naujo iraso iterpimas
case 5://paieskos veiksmai
System.out.println("Programa baigė darbą.");
default://veiksmai kitais atvejais
System.out.println("Nėra tokio menu punkto. Pakartokite!");
//metodas suskaiciuoja kiek faile yra irasu eiluciu
public static int skaiciuotiEilutes (File file) {
BufferedReader file_in = new BufferedReader (new FileReader (file));
if ((file_in.readLine()) == null){
catch (IOException e) {System.out.println("Skaitymo is failo klaida");}
//metodas skaito duomenis is failo
public static Grotuvas[] skaityti_sar (File file, int n){
Grotuvas A[] = new Grotuvas [n]; //sukuriamas masyvo objektas
String eilute; // kintamasis 1 eilutei skaityti
int sk = 0; //rasymo i masyva skaitliukas
String pav, autorius, stilius;
BufferedReader file_in = new BufferedReader (new FileReader (file));
if ((eilute = file_in.readLine()) == null) break;
StringTokenizer st = new StringTokenizer(eilute);
autorius = st.nextToken();
stilius = st.nextToken();
trukme = Integer.parseInt(st.nextToken());
A[sk]= new Grotuvas (pav, autorius, stilius, trukme);
catch (IOException e) {System.out.println("Ivedimo klaida");}
catch (IndexOutOfBoundsException e) {System.out.println("Masyvo ribu klaida");}
public static void spausdinti_sar_ekrane ( Grotuvas [] A, int n) {
spausdinti_antraste_ekrane ();
System.out.println("******************************************************************");
for (int i=0; i<n; i++) {
System.out.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
System.out.println("******************************************************************");
else System.out.println("Masyvas tuscias!");
public static void spausdinti_antraste_ekrane (){
System.out.println("******************************************************************");
System.out.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
public static String prailginti (String reiksme, int ilgis){
for (int i=reiksme.length(); i<ilgis; i++)
public static void spausdinti_sar_faile (PrintWriter rasyti, Grotuvas [] A, int n) {
spausdinti_antraste_faile (rasyti);
rasyti.println("******************************************************************");
for (int i=0; i<n; i++) {
rasyti.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
rasyti.println("******************************************************************");
else rasyti.println("Masyvas tuscias!");
rasyti.close(); // klasei PrintWriter IOException nemeta
public static void spausdinti_antraste_faile (PrintWriter rasyti){
rasyti.println("******************************************************************");
rasyti.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
public static void meniu () {
System.out.println("_____________________________");
System.out.println("Programos Grotuvas veiksmų meniu");
System.out.println("1. Skaityti duomenis.");
System.out.println("2. Spausdinti i faila.");
System.out.println("3. Įterpti.");
System.out.println("4. Ištrinti.");
System.out.println("5. Surasti.");
System.out.println("6. Baigti darbą.");
System.out.println("Iveskite meniu nr.:");
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package grotuvasmenu;
import java.io.*;
import java.util.StringTokenizer;
class Grotuvas {
private String pavadinimas, autorius, stilius;
private int trukme;
Grotuvas() { }
Grotuvas(String pav, String aut, String stil, int truk) {
pavadinimas = pav;
autorius = aut;
stilius = stil;
trukme = truk;
}
public String gautiPavadinima() {
return pavadinimas;
}
public String gautiAutorius() {
return autorius;
}
public String gautiStilius() {
return stilius;
}
public int gautiTrukme() {
return trukme;
}
}
class Gyvunas {
private String pavadinimas;
private int amzius;
private double svoris;
private String k_salis;
Gyvunas() {}
Gyvunas (String pav, int amzius, double svoris, String salis) {
pavadinimas = pav;
this.amzius = amzius;
this.svoris = svoris;
k_salis = salis;
}
public String gautiPav () {
return pavadinimas;
}
public int gautiAmziu () {
return amzius;
}
public double gautiSvori () {
return svoris;
}
public String gautiSali () {
return k_salis;
}
}
public class GrotuvasMenu {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int nr = 0; //meniu veiksmo numeris
int n = 0; //masyvo A elementu sk.
Grotuvas A[] = null;
Grotuvas B[] = null;
BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); //skaitymo iš komandinės eilutės konstruktorius
File fd = new File ("grotuvas_duom.txt"); //duomenu failas
File fr = new File (".", "grotuvas_rez.txt"); //rezultatu failas
PrintWriter rasyti = null; //Duomenų išvedimo failo kintamasis
//Atidarome rezultatu faila
try {
rasyti = new PrintWriter (new FileWriter (fr));
}
catch (IOException e) {System.out.println("Nepavyko sukurti failo.");}
while (true){
meniu();
try {
nr = Integer.parseInt(in.readLine());
}
catch(IOException e){System.out.println("Ivedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedete ne sveika skaiciu!");}
switch (nr) {
case 1://skaitymas is failo
n = skaiciuotiEilutes(fd);
System.out.println();
System.out.println("Skaitome duomenis iš failo...");
System.out.println();
System.out.println("Nuskaitytos: " + n + " eilutės.");
System.out.println();
A = new Grotuvas[n];
A = skaityti_sar(fd, n);
System.out.println("Duomenys nuskaityti.");
System.out.println();
spausdinti_sar_ekrane(A, n);
break;
case 2://rezultatu isvedimas i faila
spausdinti_sar_faile(rasyti, A, n);
System.out.println();
System.out.println("Įrašome duomenis į failą...");
System.out.println();
System.out.println("Duomenys sėkmingai įrašyti į failą: " + fr + ".");
System.out.println();
break;
case 3://naujo iraso iterpimas
break;
case 4://iraso salinimas
break;
case 5://paieskos veiksmai
break;
case 6://pabaiga
System.out.println("Programa baigė darbą.");
System.exit(0);
break;
default://veiksmai kitais atvejais
System.out.println("Nėra tokio menu punkto. Pakartokite!");
break;
}
}
}
//metodas suskaiciuoja kiek faile yra irasu eiluciu
public static int skaiciuotiEilutes (File file) {
int sk = 0;
try {
BufferedReader file_in = new BufferedReader (new FileReader (file));
while (true){
if ((file_in.readLine()) == null){
file_in.close();
return sk;}
sk++;
}
}
catch (IOException e) {System.out.println("Skaitymo is failo klaida");}
return sk;
}
//metodas skaito duomenis is failo
public static Grotuvas[] skaityti_sar (File file, int n){
Grotuvas A[] = new Grotuvas [n]; //sukuriamas masyvo objektas
String eilute; // kintamasis 1 eilutei skaityti
int sk = 0; //rasymo i masyva skaitliukas
String pav, autorius, stilius;
int trukme;
try {
BufferedReader file_in = new BufferedReader (new FileReader (file));
while (true){
if ((eilute = file_in.readLine()) == null) break;
StringTokenizer st = new StringTokenizer(eilute);
pav = st.nextToken();
autorius = st.nextToken();
stilius = st.nextToken();
trukme = Integer.parseInt(st.nextToken());
A[sk]= new Grotuvas (pav, autorius, stilius, trukme);
sk ++;
if (sk==n) break;
}
}
catch (IOException e) {System.out.println("Ivedimo klaida");}
catch (IndexOutOfBoundsException e) {System.out.println("Masyvo ribu klaida");}
return A;
}
public static void spausdinti_sar_ekrane ( Grotuvas [] A, int n) {
if (n > 0) {
spausdinti_antraste_ekrane ();
System.out.println("******************************************************************");
for (int i=0; i<n; i++) {
System.out.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
}
System.out.println("******************************************************************");
}
else System.out.println("Masyvas tuscias!");
}
public static void spausdinti_antraste_ekrane (){
System.out.println("******************************************************************");
System.out.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
}
public static String prailginti (String reiksme, int ilgis){
for (int i=reiksme.length(); i<ilgis; i++)
reiksme += " ";
return reiksme;
}
public static void spausdinti_sar_faile (PrintWriter rasyti, Grotuvas [] A, int n) {
if (n > 0) {
spausdinti_antraste_faile (rasyti);
rasyti.println("******************************************************************");
for (int i=0; i<n; i++) {
rasyti.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
}
rasyti.println("******************************************************************");
}
else rasyti.println("Masyvas tuscias!");
rasyti.close(); // klasei PrintWriter IOException nemeta
}
public static void spausdinti_antraste_faile (PrintWriter rasyti){
rasyti.println("******************************************************************");
rasyti.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
}
public static void meniu () {
System.out.println();
System.out.println("_____________________________");
System.out.println("Programos Grotuvas veiksmų meniu");
System.out.println();
System.out.println("1. Skaityti duomenis.");
System.out.println("2. Spausdinti i faila.");
System.out.println("3. Įterpti.");
System.out.println("4. Ištrinti.");
System.out.println("5. Surasti.");
System.out.println("6. Baigti darbą.");
System.out.println();
System.out.println("Iveskite meniu nr.:");
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package grotuvasmenu;
import java.io.*;
import java.util.StringTokenizer;
class Grotuvas {
private String pavadinimas, autorius, stilius;
private int trukme;
Grotuvas() { }
Grotuvas(String pav, String aut, String stil, int truk) {
pavadinimas = pav;
autorius = aut;
stilius = stil;
trukme = truk;
}
public String gautiPavadinima() {
return pavadinimas;
}
public String gautiAutorius() {
return autorius;
}
public String gautiStilius() {
return stilius;
}
public int gautiTrukme() {
return trukme;
}
}
class Gyvunas {
private String pavadinimas;
private int amzius;
private double svoris;
private String k_salis;
Gyvunas() {}
Gyvunas (String pav, int amzius, double svoris, String salis) {
pavadinimas = pav;
this.amzius = amzius;
this.svoris = svoris;
k_salis = salis;
}
public String gautiPav () {
return pavadinimas;
}
public int gautiAmziu () {
return amzius;
}
public double gautiSvori () {
return svoris;
}
public String gautiSali () {
return k_salis;
}
}
public class GrotuvasMenu {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int nr = 0; //meniu veiksmo numeris
int n = 0; //masyvo A elementu sk.
Grotuvas A[] = null;
Grotuvas B[] = null;
BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); //skaitymo iš komandinės eilutės konstruktorius
File fd = new File ("grotuvas_duom.txt"); //duomenu failas
File fr = new File (".", "grotuvas_rez.txt"); //rezultatu failas
PrintWriter rasyti = null; //Duomenų išvedimo failo kintamasis
//Atidarome rezultatu faila
try {
rasyti = new PrintWriter (new FileWriter (fr));
}
catch (IOException e) {System.out.println("Nepavyko sukurti failo.");}
while (true){
meniu();
try {
nr = Integer.parseInt(in.readLine());
}
catch(IOException e){System.out.println("Ivedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedete ne sveika skaiciu!");}
switch (nr) {
case 1://skaitymas is failo
n = skaiciuotiEilutes(fd);
System.out.println();
System.out.println("Skaitome duomenis iš failo...");
System.out.println();
System.out.println("Nuskaitytos: " + n + " eilutės.");
System.out.println();
A = new Grotuvas[n];
A = skaityti_sar(fd, n);
System.out.println("Duomenys nuskaityti.");
System.out.println();
spausdinti_sar_ekrane(A, n);
break;
case 2://rezultatu isvedimas i faila
spausdinti_sar_faile(rasyti, A, n);
System.out.println();
System.out.println("Įrašome duomenis į failą...");
System.out.println();
System.out.println("Duomenys sėkmingai įrašyti į failą: " + fr + ".");
System.out.println();
break;
case 3://naujo iraso iterpimas
break;
case 4://iraso salinimas
break;
case 5://paieskos veiksmai
break;
case 6://pabaiga
System.out.println("Programa baigė darbą.");
System.exit(0);
break;
default://veiksmai kitais atvejais
System.out.println("Nėra tokio menu punkto. Pakartokite!");
break;
}
}
}
//metodas suskaiciuoja kiek faile yra irasu eiluciu
public static int skaiciuotiEilutes (File file) {
int sk = 0;
try {
BufferedReader file_in = new BufferedReader (new FileReader (file));
while (true){
if ((file_in.readLine()) == null){
file_in.close();
return sk;}
sk++;
}
}
catch (IOException e) {System.out.println("Skaitymo is failo klaida");}
return sk;
}
//metodas skaito duomenis is failo
public static Grotuvas[] skaityti_sar (File file, int n){
Grotuvas A[] = new Grotuvas [n]; //sukuriamas masyvo objektas
String eilute; // kintamasis 1 eilutei skaityti
int sk = 0; //rasymo i masyva skaitliukas
String pav, autorius, stilius;
int trukme;
try {
BufferedReader file_in = new BufferedReader (new FileReader (file));
while (true){
if ((eilute = file_in.readLine()) == null) break;
StringTokenizer st = new StringTokenizer(eilute);
pav = st.nextToken();
autorius = st.nextToken();
stilius = st.nextToken();
trukme = Integer.parseInt(st.nextToken());
A[sk]= new Grotuvas (pav, autorius, stilius, trukme);
sk ++;
if (sk==n) break;
}
}
catch (IOException e) {System.out.println("Ivedimo klaida");}
catch (IndexOutOfBoundsException e) {System.out.println("Masyvo ribu klaida");}
return A;
}
public static void spausdinti_sar_ekrane ( Grotuvas [] A, int n) {
if (n > 0) {
spausdinti_antraste_ekrane ();
System.out.println("******************************************************************");
for (int i=0; i<n; i++) {
System.out.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
}
System.out.println("******************************************************************");
}
else System.out.println("Masyvas tuscias!");
}
public static void spausdinti_antraste_ekrane (){
System.out.println("******************************************************************");
System.out.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
}
public static String prailginti (String reiksme, int ilgis){
for (int i=reiksme.length(); i<ilgis; i++)
reiksme += " ";
return reiksme;
}
public static void spausdinti_sar_faile (PrintWriter rasyti, Grotuvas [] A, int n) {
if (n > 0) {
spausdinti_antraste_faile (rasyti);
rasyti.println("******************************************************************");
for (int i=0; i<n; i++) {
rasyti.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
}
rasyti.println("******************************************************************");
}
else rasyti.println("Masyvas tuscias!");
rasyti.close(); // klasei PrintWriter IOException nemeta
}
public static void spausdinti_antraste_faile (PrintWriter rasyti){
rasyti.println("******************************************************************");
rasyti.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
}
public static void meniu () {
System.out.println();
System.out.println("_____________________________");
System.out.println("Programos Grotuvas veiksmų meniu");
System.out.println();
System.out.println("1. Skaityti duomenis.");
System.out.println("2. Spausdinti i faila.");
System.out.println("3. Įterpti.");
System.out.println("4. Ištrinti.");
System.out.println("5. Surasti.");
System.out.println("6. Baigti darbą.");
System.out.println();
System.out.println("Iveskite meniu nr.:");
}
}
Ketvirta dalis
Dabar pridėsime du metodus. Pirmas įterps naują elementą į masyvą, o antras pašalins vieną eilutę iš masyvo. Meniu punktas trys ir keturi.
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
import java.util.StringTokenizer;
private String pavadinimas, autorius, stilius;
Grotuvas(String pav, String aut, String stil, int truk) {
public String gautiPavadinima() {
public String gautiAutorius() {
public String gautiStilius() {
public int gautiTrukme() {
public class GrotuvasMenu {
* @param args the command line arguments
public static void main(String[] args) {
int nr = 0; //meniu veiksmo numeris
int n = 0; //masyvo A elementu sk.
int vieta = -1; //salinamo elemento numeris
BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); //skaitymo iš komandinės eilutės konstruktorius
File fd = new File ("grotuvas_duom.txt"); //duomenu failas
File fr = new File (".", "grotuvas_rez.txt"); //rezultatu failas
PrintWriter rasyti = null; //Duomenų išvedimo failo kintamasis
//Atidarome rezultatu faila
rasyti = new PrintWriter (new FileWriter (fr));
catch (IOException e) {System.out.println("Nepavyko sukurti failo.");}
nr = Integer.parseInt(in.readLine());
catch(IOException e){System.out.println("Ivedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedete ne sveika skaiciu!");}
case 1://skaitymas is failo
n = skaiciuotiEilutes(fd);
System.out.println("Skaitome duomenis iš failo...");
System.out.println("Nuskaitytos: " + n + " eilutės.");
System.out.println("Duomenys nuskaityti.");
spausdinti_sar_ekrane(A, n);
case 2://rezultatu isvedimas i faila
spausdinti_sar_faile(rasyti, A, n);
System.out.println("Įrašome duomenis į failą...");
System.out.println("Duomenys sėkmingai įrašyti į failą: " + fr + ".");
case 3://naujo iraso iterpimas
spausdinti_sar_ekrane(A, n);
if (n==0) {System.out.println("Masyvas tuščias. Nėra ką šalinti.");}
System.out.println("Iveskite šalinamo elemento eilutės nr.(1 - "+ n +" ):");
vieta = Integer.parseInt(in.readLine());
if (vieta <1 || vieta > n) System.out.println("Tokio elemento pašalinti negalima!");
A = salinti(A, n, vieta-1);
spausdinti_sar_ekrane(A, n);
catch(IOException e){System.out.println("!Duomenų įvedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedėte ne sveiką skaičių!");}
case 5://paieskos veiksmai
System.out.println("Programa baigė darbą.");
default://veiksmai kitais atvejais
System.out.println("Nėra tokio menu punkto. Pakartokite!");
//metodas suskaiciuoja kiek faile yra irasu eiluciu
public static int skaiciuotiEilutes (File file) {
BufferedReader file_in = new BufferedReader (new FileReader (file));
if ((file_in.readLine()) == null){
catch (IOException e) {System.out.println("Skaitymo is failo klaida");}
//metodas skaito duomenis is failo
public static Grotuvas[] skaityti_sar (File file, int n){
Grotuvas A[] = new Grotuvas [n]; //sukuriamas masyvo objektas
String eilute; // kintamasis 1 eilutei skaityti
int sk = 0; //rasymo i masyva skaitliukas
String pav, autorius, stilius;
BufferedReader file_in = new BufferedReader (new FileReader (file));
if ((eilute = file_in.readLine()) == null) break;
StringTokenizer st = new StringTokenizer(eilute);
autorius = st.nextToken();
stilius = st.nextToken();
trukme = Integer.parseInt(st.nextToken());
A[sk]= new Grotuvas (pav, autorius, stilius, trukme);
catch (IOException e) {System.out.println("Ivedimo klaida");}
catch (IndexOutOfBoundsException e) {System.out.println("Masyvo ribu klaida");}
public static void spausdinti_sar_ekrane ( Grotuvas [] A, int n) {
spausdinti_antraste_ekrane ();
System.out.println("******************************************************************");
for (int i=0; i<n; i++) {
System.out.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
System.out.println("******************************************************************");
else System.out.println("Masyvas tuscias!");
public static void spausdinti_antraste_ekrane (){
System.out.println("******************************************************************");
System.out.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
public static String prailginti (String reiksme, int ilgis){
for (int i=reiksme.length(); i<ilgis; i++)
public static void spausdinti_sar_faile (PrintWriter rasyti, Grotuvas [] A, int n) {
spausdinti_antraste_faile (rasyti);
rasyti.println("******************************************************************");
for (int i=0; i<n; i++) {
rasyti.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
rasyti.println("******************************************************************");
else rasyti.println("Masyvas tuscias!");
rasyti.close(); // klasei PrintWriter IOException nemeta
public static void spausdinti_antraste_faile (PrintWriter rasyti){
rasyti.println("******************************************************************");
rasyti.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
//metodas sukuria nauja, vienetu didesni masyva, nei buvo pries iterpima
//ir i ji perkopijuoja pradinio masyvo duomenis
public static Grotuvas[] kopijuotiMas(Grotuvas A[], int n){
Grotuvas A2[] = new Grotuvas[n];
for (int i=0; i<n-1; i++ )
// Įvedamas naujas masyvo elementas
public static Grotuvas[] iterpti(Grotuvas G[], int n){
BufferedReader in = new BufferedReader (new InputStreamReader (System.in));
String pav, autorius, stilius;
System.out.println("Įveskite dainos pavadinimą:");
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
System.out.println("Įveskite dainos autorių:");
autorius = in.readLine();
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
System.out.println("Iveskite dainos stilių. Pvz. Pop:");
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
System.out.println("Įveskite dainos trukmę sekundėmis:");
trukme = Integer.parseInt(in.readLine());
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
catch (NumberFormatException e) {System.out.println("Ivedėte ne sveiką skaičių!");}
Grotuvas naujas = new Grotuvas(pav, autorius, stilius, trukme);
System.out.println("Masyve yra " + (n-1) + " elementu. Įveskite į kurią eilutę įterpti naują įrašą(1 - "+ n +"):");
vieta = Integer.parseInt(in.readLine());
if (vieta > n) System.out.println("Įvedėte per didelį skaičių!");
else if (vieta < 1) System.out.println("Įvedėte per mažą skaičių!");
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
catch (NumberFormatException e) {System.out.println("Įvedėte ne sveiką skaičių!");}
for (int i=n-1; i>vieta-1; i--)
public static Grotuvas[] salinti(Grotuvas G[], int n, int vieta){
for (int i=vieta; i<n; i++)
public static void meniu () {
System.out.println("_____________________________");
System.out.println("Programos Grotuvas veiksmų meniu");
System.out.println("1. Skaityti duomenis.");
System.out.println("2. Spausdinti masyvą į rezultatų failą.");
System.out.println("3. Įterpti naują dainą.");
System.out.println("4. Ištrinti dainą iš sąrašo.");
System.out.println("5. Surasti.");
System.out.println("6. Baigti darbą.");
System.out.println("Iveskite meniu nr.:");
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package grotuvasmenu;
import java.io.*;
import java.util.StringTokenizer;
class Grotuvas {
private String pavadinimas, autorius, stilius;
private int trukme;
Grotuvas() { }
Grotuvas(String pav, String aut, String stil, int truk) {
pavadinimas = pav;
autorius = aut;
stilius = stil;
trukme = truk;
}
public String gautiPavadinima() {
return pavadinimas;
}
public String gautiAutorius() {
return autorius;
}
public String gautiStilius() {
return stilius;
}
public int gautiTrukme() {
return trukme;
}
}
public class GrotuvasMenu {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int nr = 0; //meniu veiksmo numeris
int n = 0; //masyvo A elementu sk.
int vieta = -1; //salinamo elemento numeris
Grotuvas A[] = null;
Grotuvas B[] = null;
BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); //skaitymo iš komandinės eilutės konstruktorius
File fd = new File ("grotuvas_duom.txt"); //duomenu failas
File fr = new File (".", "grotuvas_rez.txt"); //rezultatu failas
PrintWriter rasyti = null; //Duomenų išvedimo failo kintamasis
//Atidarome rezultatu faila
try {
rasyti = new PrintWriter (new FileWriter (fr));
}
catch (IOException e) {System.out.println("Nepavyko sukurti failo.");}
while (true){
meniu();
try {
nr = Integer.parseInt(in.readLine());
}
catch(IOException e){System.out.println("Ivedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedete ne sveika skaiciu!");}
switch (nr) {
case 1://skaitymas is failo
n = skaiciuotiEilutes(fd);
System.out.println();
System.out.println("Skaitome duomenis iš failo...");
System.out.println();
System.out.println("Nuskaitytos: " + n + " eilutės.");
System.out.println();
A = new Grotuvas[n];
A = skaityti_sar(fd, n);
System.out.println("Duomenys nuskaityti.");
System.out.println();
spausdinti_sar_ekrane(A, n);
break;
case 2://rezultatu isvedimas i faila
spausdinti_sar_faile(rasyti, A, n);
System.out.println();
System.out.println("Įrašome duomenis į failą...");
System.out.println();
System.out.println("Duomenys sėkmingai įrašyti į failą: " + fr + ".");
System.out.println();
break;
case 3://naujo iraso iterpimas
n++;
A = kopijuotiMas(A, n);
iterpti(A,n);
spausdinti_sar_ekrane(A, n);
break;
case 4://iraso salinimas
if (n==0) {System.out.println("Masyvas tuščias. Nėra ką šalinti.");}
else {
while (true){
System.out.println("Iveskite šalinamo elemento eilutės nr.(1 - "+ n +" ):");
try {
vieta = Integer.parseInt(in.readLine());
if (vieta <1 || vieta > n) System.out.println("Tokio elemento pašalinti negalima!");
else {
n--;
A = salinti(A, n, vieta-1);
spausdinti_sar_ekrane(A, n);
break;
}
}
catch(IOException e){System.out.println("!Duomenų įvedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedėte ne sveiką skaičių!");}
}
}
break;
case 5://paieskos veiksmai
break;
case 6://pabaiga
System.out.println("Programa baigė darbą.");
System.exit(0);
break;
default://veiksmai kitais atvejais
System.out.println("Nėra tokio menu punkto. Pakartokite!");
break;
}
}
}
//metodas suskaiciuoja kiek faile yra irasu eiluciu
public static int skaiciuotiEilutes (File file) {
int sk = 0;
try {
BufferedReader file_in = new BufferedReader (new FileReader (file));
while (true){
if ((file_in.readLine()) == null){
file_in.close();
return sk;}
sk++;
}
}
catch (IOException e) {System.out.println("Skaitymo is failo klaida");}
return sk;
}
//metodas skaito duomenis is failo
public static Grotuvas[] skaityti_sar (File file, int n){
Grotuvas A[] = new Grotuvas [n]; //sukuriamas masyvo objektas
String eilute; // kintamasis 1 eilutei skaityti
int sk = 0; //rasymo i masyva skaitliukas
String pav, autorius, stilius;
int trukme;
try {
BufferedReader file_in = new BufferedReader (new FileReader (file));
while (true){
if ((eilute = file_in.readLine()) == null) break;
StringTokenizer st = new StringTokenizer(eilute);
pav = st.nextToken();
autorius = st.nextToken();
stilius = st.nextToken();
trukme = Integer.parseInt(st.nextToken());
A[sk]= new Grotuvas (pav, autorius, stilius, trukme);
sk ++;
if (sk==n) break;
}
}
catch (IOException e) {System.out.println("Ivedimo klaida");}
catch (IndexOutOfBoundsException e) {System.out.println("Masyvo ribu klaida");}
return A;
}
public static void spausdinti_sar_ekrane ( Grotuvas [] A, int n) {
if (n > 0) {
spausdinti_antraste_ekrane ();
System.out.println("******************************************************************");
for (int i=0; i<n; i++) {
System.out.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
}
System.out.println("******************************************************************");
}
else System.out.println("Masyvas tuscias!");
}
public static void spausdinti_antraste_ekrane (){
System.out.println("******************************************************************");
System.out.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
}
public static String prailginti (String reiksme, int ilgis){
for (int i=reiksme.length(); i<ilgis; i++)
reiksme += " ";
return reiksme;
}
public static void spausdinti_sar_faile (PrintWriter rasyti, Grotuvas [] A, int n) {
if (n > 0) {
spausdinti_antraste_faile (rasyti);
rasyti.println("******************************************************************");
for (int i=0; i<n; i++) {
rasyti.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
}
rasyti.println("******************************************************************");
}
else rasyti.println("Masyvas tuscias!");
rasyti.close(); // klasei PrintWriter IOException nemeta
}
public static void spausdinti_antraste_faile (PrintWriter rasyti){
rasyti.println("******************************************************************");
rasyti.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
}
//metodas sukuria nauja, vienetu didesni masyva, nei buvo pries iterpima
//ir i ji perkopijuoja pradinio masyvo duomenis
public static Grotuvas[] kopijuotiMas(Grotuvas A[], int n){
Grotuvas A2[] = new Grotuvas[n];
for (int i=0; i<n-1; i++ )
A2[i]=A[i];
return A2;
}
// Įvedamas naujas masyvo elementas
public static Grotuvas[] iterpti(Grotuvas G[], int n){
BufferedReader in = new BufferedReader (new InputStreamReader (System.in));
String pav, autorius, stilius;
int trukme;
int vieta;
while (true){
System.out.println("Įveskite dainos pavadinimą:");
try {
pav = in.readLine();
break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
}
while (true){
System.out.println("Įveskite dainos autorių:");
try {
autorius = in.readLine();
break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
}
while (true){
System.out.println("Iveskite dainos stilių. Pvz. Pop:");
try {
stilius = in.readLine();
break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
}
while (true){
System.out.println("Įveskite dainos trukmę sekundėmis:");
try {
trukme = Integer.parseInt(in.readLine());
break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
catch (NumberFormatException e) {System.out.println("Ivedėte ne sveiką skaičių!");}
}
Grotuvas naujas = new Grotuvas(pav, autorius, stilius, trukme);
while (true){
System.out.println("Masyve yra " + (n-1) + " elementu. Įveskite į kurią eilutę įterpti naują įrašą(1 - "+ n +"):");
try {
vieta = Integer.parseInt(in.readLine());
if (vieta > n) System.out.println("Įvedėte per didelį skaičių!");
else if (vieta < 1) System.out.println("Įvedėte per mažą skaičių!");
else break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
catch (NumberFormatException e) {System.out.println("Įvedėte ne sveiką skaičių!");}
}
for (int i=n-1; i>vieta-1; i--)
G[i]=G[i-1];
G[vieta-1]=naujas;
return G;
}
public static Grotuvas[] salinti(Grotuvas G[], int n, int vieta){
for (int i=vieta; i<n; i++)
G[i]=G[i+1];
return G;
}
public static void meniu () {
System.out.println();
System.out.println("_____________________________");
System.out.println("Programos Grotuvas veiksmų meniu");
System.out.println();
System.out.println("1. Skaityti duomenis.");
System.out.println("2. Spausdinti masyvą į rezultatų failą.");
System.out.println("3. Įterpti naują dainą.");
System.out.println("4. Ištrinti dainą iš sąrašo.");
System.out.println("5. Surasti.");
System.out.println("6. Baigti darbą.");
System.out.println();
System.out.println("Iveskite meniu nr.:");
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package grotuvasmenu;
import java.io.*;
import java.util.StringTokenizer;
class Grotuvas {
private String pavadinimas, autorius, stilius;
private int trukme;
Grotuvas() { }
Grotuvas(String pav, String aut, String stil, int truk) {
pavadinimas = pav;
autorius = aut;
stilius = stil;
trukme = truk;
}
public String gautiPavadinima() {
return pavadinimas;
}
public String gautiAutorius() {
return autorius;
}
public String gautiStilius() {
return stilius;
}
public int gautiTrukme() {
return trukme;
}
}
public class GrotuvasMenu {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int nr = 0; //meniu veiksmo numeris
int n = 0; //masyvo A elementu sk.
int vieta = -1; //salinamo elemento numeris
Grotuvas A[] = null;
Grotuvas B[] = null;
BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); //skaitymo iš komandinės eilutės konstruktorius
File fd = new File ("grotuvas_duom.txt"); //duomenu failas
File fr = new File (".", "grotuvas_rez.txt"); //rezultatu failas
PrintWriter rasyti = null; //Duomenų išvedimo failo kintamasis
//Atidarome rezultatu faila
try {
rasyti = new PrintWriter (new FileWriter (fr));
}
catch (IOException e) {System.out.println("Nepavyko sukurti failo.");}
while (true){
meniu();
try {
nr = Integer.parseInt(in.readLine());
}
catch(IOException e){System.out.println("Ivedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedete ne sveika skaiciu!");}
switch (nr) {
case 1://skaitymas is failo
n = skaiciuotiEilutes(fd);
System.out.println();
System.out.println("Skaitome duomenis iš failo...");
System.out.println();
System.out.println("Nuskaitytos: " + n + " eilutės.");
System.out.println();
A = new Grotuvas[n];
A = skaityti_sar(fd, n);
System.out.println("Duomenys nuskaityti.");
System.out.println();
spausdinti_sar_ekrane(A, n);
break;
case 2://rezultatu isvedimas i faila
spausdinti_sar_faile(rasyti, A, n);
System.out.println();
System.out.println("Įrašome duomenis į failą...");
System.out.println();
System.out.println("Duomenys sėkmingai įrašyti į failą: " + fr + ".");
System.out.println();
break;
case 3://naujo iraso iterpimas
n++;
A = kopijuotiMas(A, n);
iterpti(A,n);
spausdinti_sar_ekrane(A, n);
break;
case 4://iraso salinimas
if (n==0) {System.out.println("Masyvas tuščias. Nėra ką šalinti.");}
else {
while (true){
System.out.println("Iveskite šalinamo elemento eilutės nr.(1 - "+ n +" ):");
try {
vieta = Integer.parseInt(in.readLine());
if (vieta <1 || vieta > n) System.out.println("Tokio elemento pašalinti negalima!");
else {
n--;
A = salinti(A, n, vieta-1);
spausdinti_sar_ekrane(A, n);
break;
}
}
catch(IOException e){System.out.println("!Duomenų įvedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedėte ne sveiką skaičių!");}
}
}
break;
case 5://paieskos veiksmai
break;
case 6://pabaiga
System.out.println("Programa baigė darbą.");
System.exit(0);
break;
default://veiksmai kitais atvejais
System.out.println("Nėra tokio menu punkto. Pakartokite!");
break;
}
}
}
//metodas suskaiciuoja kiek faile yra irasu eiluciu
public static int skaiciuotiEilutes (File file) {
int sk = 0;
try {
BufferedReader file_in = new BufferedReader (new FileReader (file));
while (true){
if ((file_in.readLine()) == null){
file_in.close();
return sk;}
sk++;
}
}
catch (IOException e) {System.out.println("Skaitymo is failo klaida");}
return sk;
}
//metodas skaito duomenis is failo
public static Grotuvas[] skaityti_sar (File file, int n){
Grotuvas A[] = new Grotuvas [n]; //sukuriamas masyvo objektas
String eilute; // kintamasis 1 eilutei skaityti
int sk = 0; //rasymo i masyva skaitliukas
String pav, autorius, stilius;
int trukme;
try {
BufferedReader file_in = new BufferedReader (new FileReader (file));
while (true){
if ((eilute = file_in.readLine()) == null) break;
StringTokenizer st = new StringTokenizer(eilute);
pav = st.nextToken();
autorius = st.nextToken();
stilius = st.nextToken();
trukme = Integer.parseInt(st.nextToken());
A[sk]= new Grotuvas (pav, autorius, stilius, trukme);
sk ++;
if (sk==n) break;
}
}
catch (IOException e) {System.out.println("Ivedimo klaida");}
catch (IndexOutOfBoundsException e) {System.out.println("Masyvo ribu klaida");}
return A;
}
public static void spausdinti_sar_ekrane ( Grotuvas [] A, int n) {
if (n > 0) {
spausdinti_antraste_ekrane ();
System.out.println("******************************************************************");
for (int i=0; i<n; i++) {
System.out.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
}
System.out.println("******************************************************************");
}
else System.out.println("Masyvas tuscias!");
}
public static void spausdinti_antraste_ekrane (){
System.out.println("******************************************************************");
System.out.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
}
public static String prailginti (String reiksme, int ilgis){
for (int i=reiksme.length(); i<ilgis; i++)
reiksme += " ";
return reiksme;
}
public static void spausdinti_sar_faile (PrintWriter rasyti, Grotuvas [] A, int n) {
if (n > 0) {
spausdinti_antraste_faile (rasyti);
rasyti.println("******************************************************************");
for (int i=0; i<n; i++) {
rasyti.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
}
rasyti.println("******************************************************************");
}
else rasyti.println("Masyvas tuscias!");
rasyti.close(); // klasei PrintWriter IOException nemeta
}
public static void spausdinti_antraste_faile (PrintWriter rasyti){
rasyti.println("******************************************************************");
rasyti.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
}
//metodas sukuria nauja, vienetu didesni masyva, nei buvo pries iterpima
//ir i ji perkopijuoja pradinio masyvo duomenis
public static Grotuvas[] kopijuotiMas(Grotuvas A[], int n){
Grotuvas A2[] = new Grotuvas[n];
for (int i=0; i<n-1; i++ )
A2[i]=A[i];
return A2;
}
// Įvedamas naujas masyvo elementas
public static Grotuvas[] iterpti(Grotuvas G[], int n){
BufferedReader in = new BufferedReader (new InputStreamReader (System.in));
String pav, autorius, stilius;
int trukme;
int vieta;
while (true){
System.out.println("Įveskite dainos pavadinimą:");
try {
pav = in.readLine();
break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
}
while (true){
System.out.println("Įveskite dainos autorių:");
try {
autorius = in.readLine();
break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
}
while (true){
System.out.println("Iveskite dainos stilių. Pvz. Pop:");
try {
stilius = in.readLine();
break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
}
while (true){
System.out.println("Įveskite dainos trukmę sekundėmis:");
try {
trukme = Integer.parseInt(in.readLine());
break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
catch (NumberFormatException e) {System.out.println("Ivedėte ne sveiką skaičių!");}
}
Grotuvas naujas = new Grotuvas(pav, autorius, stilius, trukme);
while (true){
System.out.println("Masyve yra " + (n-1) + " elementu. Įveskite į kurią eilutę įterpti naują įrašą(1 - "+ n +"):");
try {
vieta = Integer.parseInt(in.readLine());
if (vieta > n) System.out.println("Įvedėte per didelį skaičių!");
else if (vieta < 1) System.out.println("Įvedėte per mažą skaičių!");
else break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
catch (NumberFormatException e) {System.out.println("Įvedėte ne sveiką skaičių!");}
}
for (int i=n-1; i>vieta-1; i--)
G[i]=G[i-1];
G[vieta-1]=naujas;
return G;
}
public static Grotuvas[] salinti(Grotuvas G[], int n, int vieta){
for (int i=vieta; i<n; i++)
G[i]=G[i+1];
return G;
}
public static void meniu () {
System.out.println();
System.out.println("_____________________________");
System.out.println("Programos Grotuvas veiksmų meniu");
System.out.println();
System.out.println("1. Skaityti duomenis.");
System.out.println("2. Spausdinti masyvą į rezultatų failą.");
System.out.println("3. Įterpti naują dainą.");
System.out.println("4. Ištrinti dainą iš sąrašo.");
System.out.println("5. Surasti.");
System.out.println("6. Baigti darbą.");
System.out.println();
System.out.println("Iveskite meniu nr.:");
}
}
Penkta dalis
Čia pridėsime pagal užduotį reikalinga papildomą metodą, kuris suskaičiuos visų pasirinkto autoriaus dainų trukmę.
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
import java.util.StringTokenizer;
private String pavadinimas, autorius, stilius;
Grotuvas(String pav, String aut, String stil, int truk) {
public String gautiPavadinima() {
public String gautiAutorius() {
public String gautiStilius() {
public int gautiTrukme() {
public class GrotuvasMenu {
* @param args the command line arguments
public static void main(String[] args) {
int nr = 0; //meniu veiksmo numeris
int n = 0; //masyvo A elementu sk.
int vieta = -1; //salinamo elemento numeris
BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); //skaitymo iš komandinės eilutės konstruktorius
File fd = new File ("grotuvas_duom.txt"); //duomenu failas
File fr = new File (".", "grotuvas_rez.txt"); //rezultatu failas
PrintWriter rasyti = null; //Duomenų išvedimo failo kintamasis
//Atidarome rezultatu faila
rasyti = new PrintWriter (new FileWriter (fr));
catch (IOException e) {System.out.println("Nepavyko sukurti failo.");}
nr = Integer.parseInt(in.readLine());
catch(IOException e){System.out.println("Ivedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedete ne sveika skaiciu!");}
case 1://skaitymas is failo
n = skaiciuotiEilutes(fd);
System.out.println("Skaitome duomenis iš failo...");
System.out.println("Nuskaitytos: " + n + " eilutės.");
System.out.println("Duomenys nuskaityti.");
spausdinti_sar_ekrane(A, n);
case 2://rezultatu isvedimas i faila
spausdinti_sar_faile(rasyti, A, n);
System.out.println("Įrašome duomenis į failą...");
System.out.println("Duomenys sėkmingai įrašyti į failą: " + fr + ".");
case 3://naujo iraso iterpimas
spausdinti_sar_ekrane(A, n);
if (n==0) {System.out.println("Masyvas tuščias. Nėra ką šalinti.");}
System.out.println("Iveskite šalinamo elemento eilutės nr.(1 - "+ n +" ):");
vieta = Integer.parseInt(in.readLine());
if (vieta <1 || vieta > n) System.out.println("Tokio elemento pašalinti negalima!");
A = salinti(A, n, vieta-1);
spausdinti_sar_ekrane(A, n);
catch(IOException e){System.out.println("!Duomenų įvedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedėte ne sveiką skaičių!");}
case 5://paieskos veiksmai
if (n==0) {System.out.println("Masyvas tuščias. Nėra ko sumuoti.");}
System.out.println("Sumuosime pasirinkto autoriaus dainų trukmę. Iveskite autorių:");
sumuoti_trukme(A, n, autsum);
catch(IOException e){System.out.println("!Duomenų įvedimo klaida!");}
System.out.println("Programa baigė darbą.");
default://veiksmai kitais atvejais
System.out.println("Nėra tokio menu punkto. Pakartokite!");
//metodas suskaiciuoja kiek faile yra irasu eiluciu
public static int skaiciuotiEilutes (File file) {
BufferedReader file_in = new BufferedReader (new FileReader (file));
if ((file_in.readLine()) == null){
catch (IOException e) {System.out.println("Skaitymo is failo klaida");}
//metodas skaito duomenis is failo
public static Grotuvas[] skaityti_sar (File file, int n){
Grotuvas A[] = new Grotuvas [n]; //sukuriamas masyvo objektas
String eilute; // kintamasis 1 eilutei skaityti
int sk = 0; //rasymo i masyva skaitliukas
String pav, autorius, stilius;
BufferedReader file_in = new BufferedReader (new FileReader (file));
if ((eilute = file_in.readLine()) == null) break;
StringTokenizer st = new StringTokenizer(eilute);
autorius = st.nextToken();
stilius = st.nextToken();
trukme = Integer.parseInt(st.nextToken());
A[sk]= new Grotuvas (pav, autorius, stilius, trukme);
catch (IOException e) {System.out.println("Ivedimo klaida");}
catch (IndexOutOfBoundsException e) {System.out.println("Masyvo ribu klaida");}
public static void sumuoti_trukme ( Grotuvas [] A, int n, String autsum) {
for (int i=0; i<n; i++) {
if (autsum.trim().equals(A[i].gautiAutorius().trim())) {
suma += Integer.valueOf( A[i].gautiTrukme() );
System.out.println("Visų rasta autoriaus " + autsum + " dainų: " + eilute + ". " + "Dainų trukmė: " + suma);
public static void spausdinti_sar_ekrane ( Grotuvas [] A, int n) {
spausdinti_antraste_ekrane ();
System.out.println("******************************************************************");
for (int i=0; i<n; i++) {
System.out.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
System.out.println("******************************************************************");
else System.out.println("Masyvas tuscias!");
public static void spausdinti_antraste_ekrane (){
System.out.println("******************************************************************");
System.out.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
public static String prailginti (String reiksme, int ilgis){
for (int i=reiksme.length(); i<ilgis; i++)
public static void spausdinti_sar_faile (PrintWriter rasyti, Grotuvas [] A, int n) {
spausdinti_antraste_faile (rasyti);
rasyti.println("******************************************************************");
for (int i=0; i<n; i++) {
rasyti.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
rasyti.println("******************************************************************");
else rasyti.println("Masyvas tuscias!");
rasyti.close(); // klasei PrintWriter IOException nemeta
public static void spausdinti_antraste_faile (PrintWriter rasyti){
rasyti.println("******************************************************************");
rasyti.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
//metodas sukuria nauja, vienetu didesni masyva, nei buvo pries iterpima
//ir i ji perkopijuoja pradinio masyvo duomenis
public static Grotuvas[] kopijuotiMas(Grotuvas A[], int n){
Grotuvas A2[] = new Grotuvas[n];
for (int i=0; i<n-1; i++ )
// Įvedamas naujas masyvo elementas
public static Grotuvas[] iterpti(Grotuvas G[], int n){
BufferedReader in = new BufferedReader (new InputStreamReader (System.in));
String pav, autorius, stilius;
System.out.println("Įveskite dainos pavadinimą:");
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
System.out.println("Įveskite dainos autorių:");
autorius = in.readLine();
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
System.out.println("Iveskite dainos stilių. Pvz. Pop:");
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
System.out.println("Įveskite dainos trukmę sekundėmis:");
trukme = Integer.parseInt(in.readLine());
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
catch (NumberFormatException e) {System.out.println("Ivedėte ne sveiką skaičių!");}
Grotuvas naujas = new Grotuvas(pav, autorius, stilius, trukme);
System.out.println("Masyve yra " + (n-1) + " elementu. Įveskite į kurią eilutę įterpti naują įrašą(1 - "+ n +"):");
vieta = Integer.parseInt(in.readLine());
if (vieta > n) System.out.println("Įvedėte per didelį skaičių!");
else if (vieta < 1) System.out.println("Įvedėte per mažą skaičių!");
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
catch (NumberFormatException e) {System.out.println("Įvedėte ne sveiką skaičių!");}
for (int i=n-1; i>vieta-1; i--)
public static Grotuvas[] salinti(Grotuvas G[], int n, int vieta){
for (int i=vieta; i<n; i++)
public static void meniu () {
System.out.println("_____________________________");
System.out.println("Programos Grotuvas veiksmų meniu");
System.out.println("1. Skaityti duomenis.");
System.out.println("2. Spausdinti masyvą į rezultatų failą.");
System.out.println("3. Įterpti naują dainą.");
System.out.println("4. Ištrinti dainą iš sąrašo.");
System.out.println("5. Surasti.");
System.out.println("6. Baigti darbą.");
System.out.println("Iveskite meniu nr.:");
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package grotuvasmenu;
import java.io.*;
import java.util.StringTokenizer;
class Grotuvas {
private String pavadinimas, autorius, stilius;
private int trukme;
Grotuvas() { }
Grotuvas(String pav, String aut, String stil, int truk) {
pavadinimas = pav;
autorius = aut;
stilius = stil;
trukme = truk;
}
public String gautiPavadinima() {
return pavadinimas;
}
public String gautiAutorius() {
return autorius;
}
public String gautiStilius() {
return stilius;
}
public int gautiTrukme() {
return trukme;
}
}
public class GrotuvasMenu {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int nr = 0; //meniu veiksmo numeris
int n = 0; //masyvo A elementu sk.
int vieta = -1; //salinamo elemento numeris
String autsum;
Grotuvas A[] = null;
Grotuvas B[] = null;
BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); //skaitymo iš komandinės eilutės konstruktorius
File fd = new File ("grotuvas_duom.txt"); //duomenu failas
File fr = new File (".", "grotuvas_rez.txt"); //rezultatu failas
PrintWriter rasyti = null; //Duomenų išvedimo failo kintamasis
//Atidarome rezultatu faila
try {
rasyti = new PrintWriter (new FileWriter (fr));
}
catch (IOException e) {System.out.println("Nepavyko sukurti failo.");}
while (true){
meniu();
try {
nr = Integer.parseInt(in.readLine());
}
catch(IOException e){System.out.println("Ivedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedete ne sveika skaiciu!");}
switch (nr) {
case 1://skaitymas is failo
n = skaiciuotiEilutes(fd);
System.out.println();
System.out.println("Skaitome duomenis iš failo...");
System.out.println();
System.out.println("Nuskaitytos: " + n + " eilutės.");
System.out.println();
A = new Grotuvas[n];
A = skaityti_sar(fd, n);
System.out.println("Duomenys nuskaityti.");
System.out.println();
spausdinti_sar_ekrane(A, n);
break;
case 2://rezultatu isvedimas i faila
spausdinti_sar_faile(rasyti, A, n);
System.out.println();
System.out.println("Įrašome duomenis į failą...");
System.out.println();
System.out.println("Duomenys sėkmingai įrašyti į failą: " + fr + ".");
System.out.println();
break;
case 3://naujo iraso iterpimas
n++;
A = kopijuotiMas(A, n);
iterpti(A,n);
spausdinti_sar_ekrane(A, n);
break;
case 4://iraso salinimas
if (n==0) {System.out.println("Masyvas tuščias. Nėra ką šalinti.");}
else {
while (true){
System.out.println("Iveskite šalinamo elemento eilutės nr.(1 - "+ n +" ):");
try {
vieta = Integer.parseInt(in.readLine());
if (vieta <1 || vieta > n) System.out.println("Tokio elemento pašalinti negalima!");
else {
n--;
A = salinti(A, n, vieta-1);
spausdinti_sar_ekrane(A, n);
break;
}
}
catch(IOException e){System.out.println("!Duomenų įvedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedėte ne sveiką skaičių!");}
}
}
break;
case 5://paieskos veiksmai
if (n==0) {System.out.println("Masyvas tuščias. Nėra ko sumuoti.");}
else {
while (true){
System.out.println();
System.out.println("Sumuosime pasirinkto autoriaus dainų trukmę. Iveskite autorių:");
try {
autsum = in.readLine();
sumuoti_trukme(A, n, autsum);
break;
}
catch(IOException e){System.out.println("!Duomenų įvedimo klaida!");}
}
}
break;
case 6://pabaiga
System.out.println("Programa baigė darbą.");
System.exit(0);
break;
default://veiksmai kitais atvejais
System.out.println("Nėra tokio menu punkto. Pakartokite!");
break;
}
}
}
//metodas suskaiciuoja kiek faile yra irasu eiluciu
public static int skaiciuotiEilutes (File file) {
int sk = 0;
try {
BufferedReader file_in = new BufferedReader (new FileReader (file));
while (true){
if ((file_in.readLine()) == null){
file_in.close();
return sk;}
sk++;
}
}
catch (IOException e) {System.out.println("Skaitymo is failo klaida");}
return sk;
}
//metodas skaito duomenis is failo
public static Grotuvas[] skaityti_sar (File file, int n){
Grotuvas A[] = new Grotuvas [n]; //sukuriamas masyvo objektas
String eilute; // kintamasis 1 eilutei skaityti
int sk = 0; //rasymo i masyva skaitliukas
String pav, autorius, stilius;
int trukme;
try {
BufferedReader file_in = new BufferedReader (new FileReader (file));
while (true){
if ((eilute = file_in.readLine()) == null) break;
StringTokenizer st = new StringTokenizer(eilute);
pav = st.nextToken();
autorius = st.nextToken();
stilius = st.nextToken();
trukme = Integer.parseInt(st.nextToken());
A[sk]= new Grotuvas (pav, autorius, stilius, trukme);
sk ++;
if (sk==n) break;
}
}
catch (IOException e) {System.out.println("Ivedimo klaida");}
catch (IndexOutOfBoundsException e) {System.out.println("Masyvo ribu klaida");}
return A;
}
public static void sumuoti_trukme ( Grotuvas [] A, int n, String autsum) {
int suma = 0;
int eilute = 0;
if (n > 0) {
for (int i=0; i<n; i++) {
if (autsum.trim().equals(A[i].gautiAutorius().trim())) {
suma += Integer.valueOf( A[i].gautiTrukme() );
eilute = eilute + 1;
}
}
System.out.println();
System.out.println("Visų rasta autoriaus " + autsum + " dainų: " + eilute + ". " + "Dainų trukmė: " + suma);
}
}
public static void spausdinti_sar_ekrane ( Grotuvas [] A, int n) {
if (n > 0) {
spausdinti_antraste_ekrane ();
System.out.println("******************************************************************");
for (int i=0; i<n; i++) {
System.out.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
}
System.out.println("******************************************************************");
}
else System.out.println("Masyvas tuscias!");
}
public static void spausdinti_antraste_ekrane (){
System.out.println("******************************************************************");
System.out.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
}
public static String prailginti (String reiksme, int ilgis){
for (int i=reiksme.length(); i<ilgis; i++)
reiksme += " ";
return reiksme;
}
public static void spausdinti_sar_faile (PrintWriter rasyti, Grotuvas [] A, int n) {
if (n > 0) {
spausdinti_antraste_faile (rasyti);
rasyti.println("******************************************************************");
for (int i=0; i<n; i++) {
rasyti.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
}
rasyti.println("******************************************************************");
}
else rasyti.println("Masyvas tuscias!");
rasyti.close(); // klasei PrintWriter IOException nemeta
}
public static void spausdinti_antraste_faile (PrintWriter rasyti){
rasyti.println("******************************************************************");
rasyti.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
}
//metodas sukuria nauja, vienetu didesni masyva, nei buvo pries iterpima
//ir i ji perkopijuoja pradinio masyvo duomenis
public static Grotuvas[] kopijuotiMas(Grotuvas A[], int n){
Grotuvas A2[] = new Grotuvas[n];
for (int i=0; i<n-1; i++ )
A2[i]=A[i];
return A2;
}
// Įvedamas naujas masyvo elementas
public static Grotuvas[] iterpti(Grotuvas G[], int n){
BufferedReader in = new BufferedReader (new InputStreamReader (System.in));
String pav, autorius, stilius;
int trukme;
int vieta;
while (true){
System.out.println("Įveskite dainos pavadinimą:");
try {
pav = in.readLine();
break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
}
while (true){
System.out.println("Įveskite dainos autorių:");
try {
autorius = in.readLine();
break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
}
while (true){
System.out.println("Iveskite dainos stilių. Pvz. Pop:");
try {
stilius = in.readLine();
break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
}
while (true){
System.out.println("Įveskite dainos trukmę sekundėmis:");
try {
trukme = Integer.parseInt(in.readLine());
break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
catch (NumberFormatException e) {System.out.println("Ivedėte ne sveiką skaičių!");}
}
Grotuvas naujas = new Grotuvas(pav, autorius, stilius, trukme);
while (true){
System.out.println("Masyve yra " + (n-1) + " elementu. Įveskite į kurią eilutę įterpti naują įrašą(1 - "+ n +"):");
try {
vieta = Integer.parseInt(in.readLine());
if (vieta > n) System.out.println("Įvedėte per didelį skaičių!");
else if (vieta < 1) System.out.println("Įvedėte per mažą skaičių!");
else break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
catch (NumberFormatException e) {System.out.println("Įvedėte ne sveiką skaičių!");}
}
for (int i=n-1; i>vieta-1; i--)
G[i]=G[i-1];
G[vieta-1]=naujas;
return G;
}
public static Grotuvas[] salinti(Grotuvas G[], int n, int vieta){
for (int i=vieta; i<n; i++)
G[i]=G[i+1];
return G;
}
public static void meniu () {
System.out.println();
System.out.println("_____________________________");
System.out.println("Programos Grotuvas veiksmų meniu");
System.out.println();
System.out.println("1. Skaityti duomenis.");
System.out.println("2. Spausdinti masyvą į rezultatų failą.");
System.out.println("3. Įterpti naują dainą.");
System.out.println("4. Ištrinti dainą iš sąrašo.");
System.out.println("5. Surasti.");
System.out.println("6. Baigti darbą.");
System.out.println();
System.out.println("Iveskite meniu nr.:");
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package grotuvasmenu;
import java.io.*;
import java.util.StringTokenizer;
class Grotuvas {
private String pavadinimas, autorius, stilius;
private int trukme;
Grotuvas() { }
Grotuvas(String pav, String aut, String stil, int truk) {
pavadinimas = pav;
autorius = aut;
stilius = stil;
trukme = truk;
}
public String gautiPavadinima() {
return pavadinimas;
}
public String gautiAutorius() {
return autorius;
}
public String gautiStilius() {
return stilius;
}
public int gautiTrukme() {
return trukme;
}
}
public class GrotuvasMenu {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int nr = 0; //meniu veiksmo numeris
int n = 0; //masyvo A elementu sk.
int vieta = -1; //salinamo elemento numeris
String autsum;
Grotuvas A[] = null;
Grotuvas B[] = null;
BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); //skaitymo iš komandinės eilutės konstruktorius
File fd = new File ("grotuvas_duom.txt"); //duomenu failas
File fr = new File (".", "grotuvas_rez.txt"); //rezultatu failas
PrintWriter rasyti = null; //Duomenų išvedimo failo kintamasis
//Atidarome rezultatu faila
try {
rasyti = new PrintWriter (new FileWriter (fr));
}
catch (IOException e) {System.out.println("Nepavyko sukurti failo.");}
while (true){
meniu();
try {
nr = Integer.parseInt(in.readLine());
}
catch(IOException e){System.out.println("Ivedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedete ne sveika skaiciu!");}
switch (nr) {
case 1://skaitymas is failo
n = skaiciuotiEilutes(fd);
System.out.println();
System.out.println("Skaitome duomenis iš failo...");
System.out.println();
System.out.println("Nuskaitytos: " + n + " eilutės.");
System.out.println();
A = new Grotuvas[n];
A = skaityti_sar(fd, n);
System.out.println("Duomenys nuskaityti.");
System.out.println();
spausdinti_sar_ekrane(A, n);
break;
case 2://rezultatu isvedimas i faila
spausdinti_sar_faile(rasyti, A, n);
System.out.println();
System.out.println("Įrašome duomenis į failą...");
System.out.println();
System.out.println("Duomenys sėkmingai įrašyti į failą: " + fr + ".");
System.out.println();
break;
case 3://naujo iraso iterpimas
n++;
A = kopijuotiMas(A, n);
iterpti(A,n);
spausdinti_sar_ekrane(A, n);
break;
case 4://iraso salinimas
if (n==0) {System.out.println("Masyvas tuščias. Nėra ką šalinti.");}
else {
while (true){
System.out.println("Iveskite šalinamo elemento eilutės nr.(1 - "+ n +" ):");
try {
vieta = Integer.parseInt(in.readLine());
if (vieta <1 || vieta > n) System.out.println("Tokio elemento pašalinti negalima!");
else {
n--;
A = salinti(A, n, vieta-1);
spausdinti_sar_ekrane(A, n);
break;
}
}
catch(IOException e){System.out.println("!Duomenų įvedimo klaida!");}
catch(NumberFormatException e){System.out.println("Ivedėte ne sveiką skaičių!");}
}
}
break;
case 5://paieskos veiksmai
if (n==0) {System.out.println("Masyvas tuščias. Nėra ko sumuoti.");}
else {
while (true){
System.out.println();
System.out.println("Sumuosime pasirinkto autoriaus dainų trukmę. Iveskite autorių:");
try {
autsum = in.readLine();
sumuoti_trukme(A, n, autsum);
break;
}
catch(IOException e){System.out.println("!Duomenų įvedimo klaida!");}
}
}
break;
case 6://pabaiga
System.out.println("Programa baigė darbą.");
System.exit(0);
break;
default://veiksmai kitais atvejais
System.out.println("Nėra tokio menu punkto. Pakartokite!");
break;
}
}
}
//metodas suskaiciuoja kiek faile yra irasu eiluciu
public static int skaiciuotiEilutes (File file) {
int sk = 0;
try {
BufferedReader file_in = new BufferedReader (new FileReader (file));
while (true){
if ((file_in.readLine()) == null){
file_in.close();
return sk;}
sk++;
}
}
catch (IOException e) {System.out.println("Skaitymo is failo klaida");}
return sk;
}
//metodas skaito duomenis is failo
public static Grotuvas[] skaityti_sar (File file, int n){
Grotuvas A[] = new Grotuvas [n]; //sukuriamas masyvo objektas
String eilute; // kintamasis 1 eilutei skaityti
int sk = 0; //rasymo i masyva skaitliukas
String pav, autorius, stilius;
int trukme;
try {
BufferedReader file_in = new BufferedReader (new FileReader (file));
while (true){
if ((eilute = file_in.readLine()) == null) break;
StringTokenizer st = new StringTokenizer(eilute);
pav = st.nextToken();
autorius = st.nextToken();
stilius = st.nextToken();
trukme = Integer.parseInt(st.nextToken());
A[sk]= new Grotuvas (pav, autorius, stilius, trukme);
sk ++;
if (sk==n) break;
}
}
catch (IOException e) {System.out.println("Ivedimo klaida");}
catch (IndexOutOfBoundsException e) {System.out.println("Masyvo ribu klaida");}
return A;
}
public static void sumuoti_trukme ( Grotuvas [] A, int n, String autsum) {
int suma = 0;
int eilute = 0;
if (n > 0) {
for (int i=0; i<n; i++) {
if (autsum.trim().equals(A[i].gautiAutorius().trim())) {
suma += Integer.valueOf( A[i].gautiTrukme() );
eilute = eilute + 1;
}
}
System.out.println();
System.out.println("Visų rasta autoriaus " + autsum + " dainų: " + eilute + ". " + "Dainų trukmė: " + suma);
}
}
public static void spausdinti_sar_ekrane ( Grotuvas [] A, int n) {
if (n > 0) {
spausdinti_antraste_ekrane ();
System.out.println("******************************************************************");
for (int i=0; i<n; i++) {
System.out.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
}
System.out.println("******************************************************************");
}
else System.out.println("Masyvas tuscias!");
}
public static void spausdinti_antraste_ekrane (){
System.out.println("******************************************************************");
System.out.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
}
public static String prailginti (String reiksme, int ilgis){
for (int i=reiksme.length(); i<ilgis; i++)
reiksme += " ";
return reiksme;
}
public static void spausdinti_sar_faile (PrintWriter rasyti, Grotuvas [] A, int n) {
if (n > 0) {
spausdinti_antraste_faile (rasyti);
rasyti.println("******************************************************************");
for (int i=0; i<n; i++) {
rasyti.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPavadinima(),17)+ " * "+ prailginti(A[i].gautiAutorius(),14)+ " * " +
prailginti(A[i].gautiStilius()+"", 10) + " * " + prailginti(A[i].gautiTrukme()+"", 4) + " * ");
}
rasyti.println("******************************************************************");
}
else rasyti.println("Masyvas tuscias!");
rasyti.close(); // klasei PrintWriter IOException nemeta
}
public static void spausdinti_antraste_faile (PrintWriter rasyti){
rasyti.println("******************************************************************");
rasyti.println("* Nr. * Pavadinimas * Autorius * Stilius * Trukmė *");
}
//metodas sukuria nauja, vienetu didesni masyva, nei buvo pries iterpima
//ir i ji perkopijuoja pradinio masyvo duomenis
public static Grotuvas[] kopijuotiMas(Grotuvas A[], int n){
Grotuvas A2[] = new Grotuvas[n];
for (int i=0; i<n-1; i++ )
A2[i]=A[i];
return A2;
}
// Įvedamas naujas masyvo elementas
public static Grotuvas[] iterpti(Grotuvas G[], int n){
BufferedReader in = new BufferedReader (new InputStreamReader (System.in));
String pav, autorius, stilius;
int trukme;
int vieta;
while (true){
System.out.println("Įveskite dainos pavadinimą:");
try {
pav = in.readLine();
break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
}
while (true){
System.out.println("Įveskite dainos autorių:");
try {
autorius = in.readLine();
break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
}
while (true){
System.out.println("Iveskite dainos stilių. Pvz. Pop:");
try {
stilius = in.readLine();
break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
}
while (true){
System.out.println("Įveskite dainos trukmę sekundėmis:");
try {
trukme = Integer.parseInt(in.readLine());
break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
catch (NumberFormatException e) {System.out.println("Ivedėte ne sveiką skaičių!");}
}
Grotuvas naujas = new Grotuvas(pav, autorius, stilius, trukme);
while (true){
System.out.println("Masyve yra " + (n-1) + " elementu. Įveskite į kurią eilutę įterpti naują įrašą(1 - "+ n +"):");
try {
vieta = Integer.parseInt(in.readLine());
if (vieta > n) System.out.println("Įvedėte per didelį skaičių!");
else if (vieta < 1) System.out.println("Įvedėte per mažą skaičių!");
else break;
}
catch (IOException e) {System.out.println("!Duomenų įvedimo klaida.");}
catch (NumberFormatException e) {System.out.println("Įvedėte ne sveiką skaičių!");}
}
for (int i=n-1; i>vieta-1; i--)
G[i]=G[i-1];
G[vieta-1]=naujas;
return G;
}
public static Grotuvas[] salinti(Grotuvas G[], int n, int vieta){
for (int i=vieta; i<n; i++)
G[i]=G[i+1];
return G;
}
public static void meniu () {
System.out.println();
System.out.println("_____________________________");
System.out.println("Programos Grotuvas veiksmų meniu");
System.out.println();
System.out.println("1. Skaityti duomenis.");
System.out.println("2. Spausdinti masyvą į rezultatų failą.");
System.out.println("3. Įterpti naują dainą.");
System.out.println("4. Ištrinti dainą iš sąrašo.");
System.out.println("5. Surasti.");
System.out.println("6. Baigti darbą.");
System.out.println();
System.out.println("Iveskite meniu nr.:");
}
}