Toto je moje source a mam tam zmenit niektore veci(vid. nizsie)
Mohol by mi niekto poradit, ako to spravit inac, pripadne napisat source na to ? Fakt si neviem rady, ako to spravit podla poziadavok profaka...(vid.nizsie)
Source programu:
Poziadavky profaka na upravu:import java.io.* ;
import java.util.Scanner;
public class Menu
{
/**
* Constructor for objects of class Menu
*/
private DatabazaProduktov pridajProdukty;
private Menu M;
public static boolean finalStatus;
public static String vstup;
public static char inp;
private int P=0; // pocet poloziek
char[] z; // pole znakov, urcujuce pristup k polozkam
String[] polozka; // pole retazcov
private static final int pl=30; //max.pocet poloziek
public Menu(int M)
{
pridajProdukty = new DatabazaProduktov() ;
pridajProdukty.vytvorNotebooky();
pridajProdukty.vytvorPC();
}
public void VlozProdukt(int pos,String Z,char s)
{
this.z[pos-1]=s;
this.polozka[pos-1]=Z;
}
public void UvodnaObrazovka() // formalita
{
System.out.println("Vitajte v menu");
}
public static void main(String [] args)
{
Scanner sc=new Scanner(System.in);
do{
String ponuka = ("\f\n1) Zoznam notebookov ..........stlac N \n2) Zoznam PC ..........stlac P \n3) Koniec ..........stlac K");
System.out.println(ponuka);
vstup=sc.nextLine();
inp=vstup.charAt(0);
if (inp=='P') {
System.out.println(DatabazaProduktov.produkty1[0]); System.out.println(DatabazaProduktov.produkty1[1]); // vypis zoznam produktov notebooky
System.out.println(DatabazaProduktov.produkty1[2]);System.out.println(DatabazaProduktov.produkty1[3]); // vypise zoznam produktov PC
}
if (inp=='K')
System.out.print("\f");
if (inp=='N') {
System.out.println(DatabazaProduktov.produkty1[4]); System.out.println(DatabazaProduktov.produkty1[5]);
System.out.println(DatabazaProduktov.produkty1[6]);System.out.println(DatabazaProduktov.produkty1[7]);// vypis zoznam produktov notebook
}
menuAnoNie();
if (finalStatus==true){
int cisloProduktu=sc.nextInt();
VypisProdukty(cisloProduktu);
}
} while ((finalStatus==false)||(inp=='K'));
}
private static void menuAnoNie()
{
String tString;
char inp;
boolean finalStatus=true;
Scanner vstup = new Scanner (System.in); // nacitava vstup z klavesnice
System.out.println("Zelate si nieco objednat ?::");
System.out.println ("1 Áno: …..stlac A");
System.out.println ("2 Nie: …..stlac N");
do{
tString = vstup.nextLine();
inp = tString.charAt(0); // bude citat 1. znak
if (inp=='A') {
finalStatus = true; // Ak bude stlacene "A" tak hodnota je true, tj. Pravda
}
if (inp=='B') finalStatus = false; // Ak bude stlacene "N" tak hodnota je false, tj. nepravda
}while(finalStatus);
}
private static void VypisProdukty(int index) // v pripade, ze hodnota finalStatus je true, tj. pravda, tak sa vypisu produkty podla volby, tj. bud notebooky alebo PC
{
System.out.println("Nazov produktu: " + DatabazaProduktov.produkty1[index].GetMeno()); // vypise vybrane produkty
System.out.println("Cena produktu: " + DatabazaProduktov.produkty1[index].GetCena()); // vypise cenu vybranych produktov
System.out.println("Dakujeme za objednavku."); // dalsia formalitka![]()
}
}
1) Zoznam notebookov ..........stlac N
2) Zoznam PC ..........stlac P
3) Koniec ..........stlac K
N
Exception in thread "main" java.lang.NullPointerException
at Menu.main(Menu.java:63)
tieto objektove premenne su zle alokovane/priradene ! Dalej, preco nepouzivate cyklus na vypis ?
63 System.out.println(DatabazaProduktov.produkty1[4]); System.out.println(DatabazaProduktov.produkty1[5]);
64 System.out.println(DatabazaProduktov.produkty1[6]);System.out.println(DatabazaProduktov.produkty1[7]);// vypis zoznam produktov notebo
Znova, pre ich spravne priradenie do POLA OBJEKTOV nepouzivate lokalnu premennu:
produkty1 = new Produkty("Notebooky"); // nový produkt - notebooky
produkty1 = new Produkty("Stolove PC"); // nový produkt - PC
Za pomoc vopred dik