Ich mache gerade mein allererstes Coding-Projekt in Java. Es ist ein Bestellsystem, das dem Kunden die folgenden Dinge ermöglichen soll. Zunächst sollte der Kunde in der Lage sein, durch die Anwendung zu navigieren, sein Lieblingsrestaurant in Kopenhagen auszuwählen und Mahlzeiten aus seinen individuellen Menülisten auszuwählen. Zweitens sollte jede Bestellung in Bezug auf die Bestellmenge und den Lieferort angepasst werden können. Schließlich sollte das System den nächsten verfügbaren Biker zuweisen, um die Bestellung vom Restaurant abzuholen und die Mahlzeit zum festgelegten Zeitpunkt an das angegebene Ziel zu liefern.Sammlungsfehler für Mahlzeit Bestellsystem in Java
Nach viel Hilfe von @Theresa habe ich das Programm erneut getestet, aber ich kann nicht die letzte Meile laufen. Der Teil, wo das System den nächsten verfügbaren Biker zuweisen sollte, um die Bestellung aus dem Restaurant abzuholen, funktioniert nicht. Ich fühle mich immer noch irgendwie hoffnungslos, weil ich versucht habe, alles gewesen zu sein, was ich konnte
Alle anderen Kommentare, Hinweise oder Hilfe würde sehr geschätzt werden. Vielen Dank im Voraus.
Dies wird der aktualisierte Code: [https://www.dropbox.com/s/awvohw7vholsdrd/Cleaner_DeliveryBike.zip?dl=0][1]
private static void setDelivery() throws Exception {
double totalTime = 0;
String delivery = "Now that you have chosen what you want to order, we would like to introduce to you our MadCyklers."
+ "All day we have 5 biker that are touring arround the city to deliver your order right to you. We only need"
+ "to know one thing from you: where in Copenhagen are you right now?";
try {
printString(navigationFrameTop);
printString(delivery);
printString(navigationFrameBottom);
printString(categoryFrame);
System.out.println(" *COPENHAGEN* ");
System.out.println("");
System.out.println(" LONG> 12.52 12.54 12.56 12.58 12.60 12.62");
System.out.println(" . . . . . . ");
System.out.println(" 55.70 + . . . + . . . + . . . + . . . + . . . + ");
System.out.println(" . . . . . . ");
System.out.println(" 55.69 + . . . + . . . + . . . + . . . + . . . + ");
System.out.println(" . . . . . . ");
System.out.println(" 55.68 + . . . + . . . + . . . + . . . + . . . + ");
System.out.println(" . . . . . . ");
System.out.println(" 55.67 + . . . + . . . + . . . + . . . + . . . + ");
System.out.println(" . . . . . . ");
System.out.println(" 55.66 + . . . + . . . + . . . + . . . + . . . + ");
System.out.println(" ^ . . . . . . ");
System.out.println(" LAT");
printString(categoryFrame);
printString(inputFrame);
customer.setLongitude(0);
printString(inputFrame);
customer.setLatitude(0);
printString(inputFrame);
double min = 9999999;
double distance;
// checking if Indications are correct.
for(Biker biker : BIKERS) {
biker.setLatitude(0);
biker.setLongitude(0);
distance = biker.distanceTo(customer) + (restaurants.get(restaurantPick)).distanceTo(customer);
if(distance < min) {
min = min + distance;
activeBiker = biker.iD;
}
}
totalTime = (min/KILOMETRES_PER_HOUR) * 3600000
+ restaurants.get(restaurantPick).getPreparationTime() * 60000;
deliveryTime = (long) (currentTime + totalTime);
String deliveryConfirmation = " Your order will be delivered to your location at: " + deliveryTime
+ " from our MadCykler " + BIKERS.get(activeBiker).getTipFactor() + ".";
printString(deliveryConfirmation);
payment();
} catch (Exception e) {
printString(errorFrame);
System.out.println("Error! Reloading Main Menu...");
printString(errorFrame);
main(null);
}
}
private static void payment() throws Exception {
BigDecimal tip = BigDecimal.ZERO;
BigDecimal tipPrice = BigDecimal.ZERO;
int payingOption = 0;
String payment = "There is only one more thing left to do for you. Just initialize the payment and we will send"
+ "you the order confirmation. Then you just have to wait for" + BIKERS.get(activeBiker).getTipFactor()
+ "to arrive with your order.";
String totalCost = "The total costs are " + getTotal() + "DKK. What % tip would you like to give to the Cykler? ";
try {
printString(navigationFrameTop);
printString(payment);
printString(navigationFrameBottom);
printString(categoryFrame);
printString(totalCost);
printString(categoryFrame);
printString(inputFrame);
tip = BIKERS.get(activeBiker).getTipFactor();
printString(inputFrame);
tipPrice = tip.divide(tip, 100).multiply(getTotal());
deliveryCost = deliveryCost.add(getTotal()).add(tipPrice);
String totalDelivery = "The overall delivery cost are " + deliveryCost + "DKK. Press [1] if you would like to pay,"
+ "[2] to pick a new restaurant, or [3] to return to the Main Menu.";
String totalDeliveryError = "Error! Press [1] if you would like to pay,[2] to pick a new restaurant, or [3] to "
+ "return to the Main Menu.";
printString(categoryFrame);
printString(totalDelivery);
printString(categoryFrame);
do {
Scanner input = new Scanner(System.in);
printString(inputFrame);
payingOption = input.nextInt();
printString(inputFrame);
switch (payingOption) {
case 1:
wrapOrder();
break;
case 2:
choiceMeal = null;
quantityMeal = null;
pickingRestaurant();
break;
case 3:
choiceMeal = null;
quantityMeal = null;
main(null);
break;
default:
printString(errorFrame);
printString(totalDeliveryError);
printString(errorFrame);
break;
}
} while (payingOption != 1 && payingOption != 2 && payingOption != 3);
} catch (Exception e) {
printString(errorFrame);
System.out.println("Error! Reloading Main Menu...");
printString(errorFrame);
main(null);
}
}
private static void wrapOrder() {
String s = "";
UUID customerId;
BigDecimal currentBalance = BigDecimal.ZERO;
String customerDetails = customer.toString();
long arrival = deliveryTime;
BigDecimal bill = deliveryCost;
currentBalance = creditAccounts.get(customerAccountLoggedIn).getBalance();
if (currentBalance.compareTo(deliveryCost) > 0) {
printString(categoryFrame);
System.out.println(" Your payment was successful.");
printString(categoryFrame);
creditAccounts.get(customerAccountLoggedIn).withdraw(deliveryCost);
for (int i = confirmations.size(); i < confirmations.size() + 1; i++) {
customerId = confirmations.get(i).getOrderId();
Confirmation confirmation = new Confirmation(customerId, customerDetails, arrival, bill);
confirmations.add(confirmation);
printString(navigationFrameTop);
confirmation.toString();
printString(navigationFrameBottom);
}
}
else {
printString(errorFrame);
creditAccounts.get(customerAccountLoggedIn).withdraw(deliveryCost);
printString(errorFrame);
reCharging();
}
// ending the program and clearing all content during the order
}
beenden Es würde, was zu tun Sie sagen, aber wir haben überhaupt nicht mit Datenbanken gearbeitet. Daher weiß ich, dass ich nur wissen kann, wie man hart codiert ...:/Das System selbst wäre effektiver und sollte einstellbar sein, aber die Sachen, die wir gelernt haben, erlauben es mir nicht, es anders zu machen. Hättest du noch andere Vorschläge, wie ich mit meinem harten Code umgehen könnte? @TheresaForster – maximal16
Dann schlage ich vor, Sie hart Code an einem Ort und den Rest um ihn herum zu bauen, ich schätze, Sie tun dies als ein College-Projekt dann –
Ja genau. Um ehrlich zu sein, bin ich infantil, wenn es um Codierung geht. Ich habe IT-Business-Hintergrund und wählte eine Programmier-Minor, um wirklich eine höhere Sprache zu lernen. Ich habe in den letzten 3 Wochen 90 Stunden investiert, um dieses Projekt zum Laufen zu bringen. Vielen Dank! Ich werde das jetzt implementieren und versuchen zu sehen, ob ich es aufbauen kann. Ich hoffe, es wird aufhören, Probleme zu machen. – maximal16