Я сделал новую версию для моего старого проекта с именем Subway .
Я превратил несколько расширяющихся классов и скомпилировал их в один класс.Теперь моя программа работает нормально и тоже выполняется.Все расчеты верны и проверены мной.Просто обратитесь к проектам, после которых я расскажу о так называемых логических ошибках
Мой проект:
import java.util.*;
public class Final_Subway
{
String Order_Menu[]={"AP","CK","CCP","CS","CTA","CTI","CP","HBK","CCSW","CKSW","CSSW","VSSW","CHIPSS","CHIPSB","CSEC","CE","WCE","MIRINDA3","MIRINDA5"};
int Quantity[]=new int[20];
int Price[]={150,150,150,200,180,195,230,120,70,90,90,60,15,30,100,120,85,30,50};
String Order[]=new String[20];
int item_price[]=new int[20];
int item_net[]=new int[20];
int i=0,q=0,item=0;
double total=0,net=0,GST=0;
String order="",choice_yn="";
public static void main()
{
Final_Subway obj=new Final_Subway();
obj.Loading_Screen();
obj.menu();
obj.accept();
obj.search();
obj.calculate();
obj.choice();
obj.Bill();
}
public void Loading_Screen()
{
int a=1;
System.out.println("Loading...");
for(a=1;a<=999999999;a++)
{
}
for(a=1;a<=999999999;a++)
{
}
for(a=1;a<=999999999;a++)
{
}
System.out.println("\f");
}
public void menu()
{
System.out.println("\t\t\t\t\t\t\t\tWelcome to Subway....");
System.out.println("================================================================================================================================================");
System.out.println("Sandwiches\t\t\t\tMRP(Rs.)\tSnacks\t\t\t\t\tMRP(Rs.)\tBreakfast\t\tMRP(Rs.)");
System.out.println("Aloo Patty(AP)\t\t\t\tRs.150 \tChatpata Chana SubWrap(CCSW)\t\tRs.70\tChicken Slice,Eggs and Cheese(CSEC)\tRs.100");
System.out.println("Chicken Kofta(CK)\t\t\tRs.150 \tChicken Kofta SubWrap(CKSW)\t\tRs.90\tCheese and Egg(CE)\t\t\tRs.120");
System.out.println("Chatpata Chana Patty(CCP)\t\tRs.150 \tChicken Strips SubWrap(CSSW)\t\tRs.90\tWestern Cheese and Egg(WCE)\t\tRs.85");
System.out.println("Chicken Slices(CS)\t\t\tRs.200 \tVeg Shammi SubWrap(VSSW)\t\tRs.60\t================================================");
System.out.println("Chicken Tandoori(CTA)\t\t\tRs.180 \t================================================================================================");
System.out.println("Chicken Tikka(CTI)\t\t\tRs.195 \tSides\t\t\t\t\tMRP(Rs.)\tDrinks\t\t\t\tMRP(Rs.)");
System.out.println("Corn and Peas(CP)\t\t\tRs.230 \tChips[Small](CHIPSS)\t\t\tRs.15 \tMirinda[300ml](MIRINDA3)\t\tRs.30 ");
System.out.println("Hara Bhara Kebab(HBK)\t\t\tRs.120 \tChips[Big](CHIPSB)\t\t\tRs.30 \tMirinda[500ml](MIRINDA5)\t\tRs.50 ");
System.out.println("================================================================================================================================================");
}
public void accept()
{
Scanner sc=new Scanner(System.in);
System.out.println("Enter the Code in the brackets to order your item:");
order=sc.nextLine().toUpperCase();
System.out.println("Enter the Quantity");
q=sc.nextInt();
}
public void search()
{
Final_Subway obj=new Final_Subway();
boolean flag=false;
for(i=0;i<Order_Menu.length;i++)
{
if(Order_Menu[i].equals(order))
{
Order[item]=Order_Menu[i];
Quantity[item]=q;
item_price[item]=Price[i];
flag=true;
++item;
break;
}
}
if(flag==false)
{
System.out.println("Item not found, Enter code again:");
obj.accept();
obj.search();
}
}
public void calculate()
{
for(i=0;i<item_price.length;i++)
{
item_net[i]=Quantity[i]*item_price[i];
}
for(i=0;i<item_net.length;i++)
{
total+=item_net[i];
}
GST=total*28/100;
net=(double)GST+total;
Math.round(net);
}
public void choice()
{
Final_Subway obj=new Final_Subway();
Scanner sc=new Scanner(System.in);
System.out.println("Would you like to order something else(yes/no)?");
choice_yn=sc.nextLine().toLowerCase();
if(choice_yn.equals("yes"))
{
obj.accept();
obj.search();
obj.calculate();
obj.choice();
}
}
public void Bill()
{
System.out.println("Sr no.\tItem Code\tQuantity\tPrice\tNet");
for(i=0;i<Order.length;i++)
{
if(Quantity[i]!=0)
{
System.out.println((i+1)+"\t"+Order[i]+"\t\t"+Quantity[i]+"\t\t"+item_price[i]+"\t"+item_net[i]);
}
}
System.out.println("GST: "+GST);
System.out.println("Net Amount: "+net);
}
}
Сейчасдля ошибки:
Как только первый элемент введен, найден и проверен, соответствует ли код меню, назначенный с соответствующей ценой, он затем переходит к void choice()
, где пользователь может добавить больше элементов в переменную Single DimensionalМассив Order[]
.
Если пользователь вводит yes
, переменная экземпляра int item
, в которой хранится индекс для Order[]
и Quantity[]
, должна увеличиваться на one * 1025.* и вызываемые функции должны быть запущены таким образом, чтобы следующий элемент сохранялся в следующем элементе SDA Order[]
и Quantity[]
.
Но это не то, что происходит ..........
По какой-то причине переменная экземпляра int item
не увеличивается.
Затем вы должны подумать (логически), что она может перезаписать данных, хранящихся в индексе 0Но опять же, этого не происходит.
Так что, когда самое интересноеction void main()
достигает для вызова void Bill()
, печатает самый первый элемент, который пользователь ввел бы.
Я действительно не понимаю, что делать сейчас.Я был бы очень признателен, если бы кто-нибудь смог мне помочь с этой логической ошибкой.
С уважением, Аюш Манге