Cela fait environ un mois et demi que j'ai trouvé un emploi dans une entreprise informatique en tant que nouveau diplômé et que je suis entré en contact avec Java pour la formation en programmation. Je devrais être capable de créer un programme simple dans une certaine mesure, alors j'ai essayé de créer un programme pour vendre des gâteaux en Java en me référant aux conférences et aux exercices de la formation, et je l'ai rassemblé dans un article en tant que mémorandum, sortie et pratique de l'écriture de phrases. pensée. C'est un mauvais résultat, mais je serais heureux si vous pouviez le voir. Je serai heureux de pleurer si vous me donnez des conseils dans les commentaires.
Avant de créer le programme, j'ai résumé les éléments nécessaires pour faire fonctionner une pâtisserie sur le programme. Les facteurs suivants ont été jugés nécessaires par la pâtisserie.
・ Informations sur le gâteau Il est nécessaire de créer un objet avec le nom, le prix et l'inventaire du gâteau comme éléments, et d'informer le client du nom et du prix du gâteau, de vérifier l'inventaire et de calculer le prix d'achat. ・ Écoutez les clients sur le nombre d'achats Vous devez pouvoir demander (saisir) le nombre d'achats et le reconnaître comme un nombre. S'il ne peut pas être reconnu comme un numéro, il est nécessaire de le demander à nouveau au client. ・ Mettez de nouveaux produits ou disposez de l'inventaire Nous ne vendons pas toujours le même gâteau, nous devons donc pouvoir ajouter et soustraire des types de gâteau.
Basé sur les trois ci-dessus Nous avons créé "Main method class", "Cake object class", "Number input class" et "Constant class such as fixed statement". J'ai utilisé openJDK ver12 pour le développement et eclipse pour l'éditeur. De plus, comme conditions supplémentaires, il existe des restrictions telles que «le nombre total de gâteaux est de 20 par personne» et «l'entreprise continuera jusqu'à ce que le stock soit épuisé».
MainSystem.java
package cake;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class MainSystem{
public static void main(String[] args) throws IOException{
System.out.println(Constant.MSG_ACT_BAR);
//Créer une liste de moules à gâteaux
List<Cake> cakes = new ArrayList<Cake>();
//Création d'objets
Cake cake1 = new Cake("Thiramis",20,400);
Cake cake2 = new Cake("cheesecake",40,300);
Cake cake3 = new Cake("tarte aux fraises",10,500);
//Stockés dans la liste, il existe actuellement 3 types de gâteaux
cakes.add(cake1);
cakes.add(cake2);
cakes.add(cake3);
//Nombre de boucles
int loopNum =0;
//Initialiser l'inventaire total des gâteaux(Utilisé pour les boucles)
int sumStockCake =0;
//Créer un emplacement de stockage pour le nombre d'achats de gâteaux
List<Integer> numBuyCake =new ArrayList<Integer>();
//Lieu de stockage de la quantité d'élimination
List<Integer> dustCake =new ArrayList<Integer>();
System.out.println(Constant.MSG_ACT_BAR);
System.out.println("\n\n");
//Rupture de stock (sumStockCake=Je vais faire jusqu'à 0)
do{
//b1 ・ ・ ・ Limite d'achat b2 ・ ・ ・ Enregistrer l'erreur d'entrée et le décompte des boucles de rupture
boolean b1 =true;
boolean b2 =true;
loopNum++;
//Bienvenue
System.out.println(Constant.MSG_OPENING_01+"\n");
System.out.println(Constant.MSG_MENU_BAR);
System.out.println(Constant.MSG_OPENING_02);
//Appelez Cake dans la liste des gâteaux pendant quelques minutes en stock
for(int i=0; i<cakes.size(); i++){
System.out.println(cakes.get(i).getName() +"\t\t"+cakes.get(i).getPrice()+"Cercle\t\t stock"+cakes.get(i).getStock()+"Pièces");
}
System.out.println(Constant.MSG_MENU_BAR);
System.out.println("\n\n");
//Réinitialiser le total des achats de gâteaux
int sumBuyCake;
//b1 ... Boucle d'erreur de limite d'achat
do{
sumBuyCake =0;
for(int i=0; i<cakes.size(); i++){
//Entrez le nombre de gâteaux, b2 ... Boucle d'erreur avec autre chose qu'un entier positif
do{
System.out.print(cakes.get(i).getName() + Constant.MSG_INPUT_ICON);
String str = InputMany.cakeNum();
try{
//Supprimer si la liste de quantité d'achat actuelle contient déjà une valeur
if(numBuyCake.size()== (i+1)){
numBuyCake.remove(i);
}
//Convertissez le nombre d'achats en type Int et ajoutez-le à List, s'il ne peut pas être converti, catch and loop
numBuyCake.add(Integer.parseInt(str));
//Boucle si le nombre d'achats est négatif
if(numBuyCake.get(i)<0){
System.out.println(Constant.MSG_ERROR_MINUS);
b2 = true;
//Nombre d'achats> Boucle si en stock
}else if(numBuyCake.get(i) > cakes.get(i).getStock() ){
System.out.println(Constant.MSG_ERROR_OVERSTOCK1);
System.out.println(cakes.get(i).getName()+Constant.MSG_ERROR_OVERSTOCK2);
System.out.println(cakes.get(i).getName()+"Est en stock"+cakes.get(i).getStock()+"C'est un individu.");
b2 = true;
}else{
b2 = false;
}
}
catch(NumberFormatException e){
System.out.println(Constant.MSG_ERROR_INPUT);
b2 = true;
}
}while(b2);
}
//Calculez le nombre total de gâteaux achetés
for(int i=0; i<cakes.size(); i++){
sumBuyCake +=numBuyCake.get(i);
}
//20 gâteaux ou moins au total
if(sumBuyCake >20){
System.out.println(Constant.MSG_ERROR_OVER20);
b1 =true;
//Réinitialiser la liste d'achat
numBuyCake.clear();
//Acheter quelque chose
}else if(sumBuyCake ==0){
System.out.println(Constant.MSG_ERROR_UNDER1);
b1 =true;
numBuyCake.clear();
//Réduisez vos stocks si vous pouvez acheter en toute sécurité
}else{
b1 =false;
for(int i=0; i<cakes.size(); i++){
cakes.get(i).decStock(numBuyCake.get(i));
}
}
System.out.println("\n\n");
}while(b1);
//Pour calculer le prix d'achat total
int priceSumCake =0;
for(int i=0; i<cakes.size(); i++){
//Quantité totale de traitement Quantité de gâteau*Numéro d'achat
priceSumCake += (cakes.get(i).getPrice() * numBuyCake.get(i));
//Relevé d'achat prêt
if(numBuyCake.get(i) != 0){
System.out.println(cakes.get(i).getName()+"À"+numBuyCake.get(i)+"Pièces,");
}
}
System.out.println("total"+sumBuyCake+"En termes de points");
System.out.println(priceSumCake + "C'est un yen.");
System.out.println(Constant.MSG_THANKYOU);
//Effacement du nombre d'achats de gâteaux pour chaque client
numBuyCake.clear();
//Ajout de chaussures
if(loopNum ==2){
System.out.println("\n\n"+Constant.MSG_ACT_BAR+"\n\n");
Cake cake4 = new Cake("chou à la crème",30,150);
cakes.add(cake4);
System.out.println("\n\n"+Constant.MSG_ACT_BAR+"\n\n");
//Élimination des stocks
}else if(loopNum %4 ==0){
System.out.println("\n\n"+Constant.MSG_ACT_BAR+"\n\n");
System.out.println(Constant.MSG_DUST_SHOOT);
int i =0;
int j =1;
//i th et i+Comparez jth inventaire, i+i si j est plus grand+Amenez le jth du côté i et terminez la boucle
while(i+j<cakes.size()){
System.out.print(cakes.get(i).getName()+"Quand"+cakes.get(i+j).getName()+"Est plus en stock");
if(cakes.get(i).getStock() < cakes.get(i+j).getStock()){
System.out.println(cakes.get(i+j).getName()+"est.");
i+=j;
j=1;
}else{
System.out.println(cakes.get(i).getName()+"est.");
j++;
}
}
System.out.println("De se défaire"+cakes.get(i).getName()+"est. En stock"+cakes.get(i).getStock()+"C'était un individu.");
System.out.println("Perte due à l'élimination:"+(cakes.get(i).getStock() * cakes.get(i).getPrice())+"Cercle");
System.out.println("\n\n"+Constant.MSG_ACT_BAR+"\n\n");
//Ajouter une suppression, réduire l'inventaire cible à 0
dustCake.add(cakes.get(i).getStock() * cakes.get(i).getPrice());
cakes.get(i).decStock(cakes.get(i).getStock());
}
//Si vous supprimez un produit avec 0 stock du menu, le nombre d'éléments diminuera, donc je vais également diminuer correctement
for(int i=0; i<cakes.size(); i++){
if(cakes.get(i).getStock() == 0){
cakes.remove(i);
i--;
}
}
//La boucle se termine lorsque le stock total de gâteau atteint 0
sumStockCake =0;
for(int i=0; i<cakes.size(); i++){
sumStockCake +=cakes.get(i).getStock();
}
//Fin de boucle en cas de rupture de stock
}while(sumStockCake > 0);
int sumDust =0;
for(int i=0; i<dustCake.size(); i++){
sumDust +=dustCake.get(i);
}
System.out.println(Constant.MSG_CLOSE_SHOP);
System.out.println(Constant.MSG_DUST_SUM+sumDust+"C'est un cercle.");
}
}
Cake.java
package cake;
public class Cake{
//Nom du gâteau, stock, prix
private String name;
private int stock;
private int price;
private Cake(){
System.out.println(Constant.MSG_MAKE_CAKE);
}
//Recevoir le nom, le stock, le prix et créer un objet
public Cake(String name, int stock, int price){
this();
this.name =name;
this.stock =stock;
this.price =price;
System.out.println(this.name +Constant.MSG_ADD_CAKE);
}
//Renvoie le nom du gâteau
public String getName(){
return name;
}
//Renvoie les informations d'inventaire
public int getStock(){
return stock;
}
//Rendre le prix du gâteau
public int getPrice(){
return price;
}
//Décision d'achat
public void decStock(int c){
this.stock -=c;
}
}
InputMany.java
package cake;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class InputMany{
public static String cakeNum() throws IOException{
BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
return str;
}
}
Constant.java
package cake;
public class Constant{
public static final String MSG_MAKE_CAKE ="Création d'un objet Cake.";
public static final String MSG_ADD_CAKE ="A été ajouté au produit.";
public static final String MSG_OPENING_01 ="Bienvenue!\n Bienvenue dans la pâtisserie "Pastel".";
public static final String MSG_OPENING_02 ="Menu du jour:";
public static final String MSG_MENU_BAR ="********************************";
public static final String MSG_INPUT_ICON ="Veuillez saisir la quantité à acheter.\n>";
public static final String MSG_ERROR_INPUT = "Veuillez saisir un nombre.";
public static final String MSG_ERROR_OVER20 = "L'achat total est de plus de 20 pièces.\n Le total est de 20.\n";
public static final String MSG_ERROR_UNDER1 ="Veuillez acheter un ou plusieurs articles.";
public static final String MSG_ERROR_OVERSTOCK1 = "Je suis désolé.";
public static final String MSG_THANKYOU ="Merci pour votre achat.\n\n\n";
public static final String MSG_ERROR_OVERSTOCK2 = "Est en rupture de stock.";
public static final String MSG_ERROR_MINUS = "N'entrez pas de valeur négative.";
public static final String MSG_CLOSE_SHOP = "L'entreprise d'aujourd'hui est fermée.\n Merci de nous rendre visite.";
public static final String MSG_ACT_BAR ="---------------------------------------------------";
public static final String MSG_DUST_SHOOT ="Nous disposerons du stock invendu.";
public static final String MSG_DUST_SUM ="La quantité totale d'élimination d'aujourd'hui est";
}
Mon meilleur pari personnel est d'utiliser une liste pour stocker les objets Cake.
MainSystem_v1_2.java
List<Cake> cakes = new ArrayList<Cake>();
Cake cake1 = new Cake("Thiramis",20,400);
cakes.add(cake1);
En utilisant une liste avec un nombre variable d'éléments à stocker, il est facile d'ajouter avec add et de supprimer avec remove. Si vous utilisez un tableau, lorsque vous utilisez la syntaxe for pour obtenir les éléments de Cake, même les éléments qui ne sont plus en stock seront lus.
Est-il possible de décrire le chou à la crème qui s'est soudainement interrompu dans la deuxième boucle un peu plus intelligemment ...? Je pense qu'il est possible d'ajouter un programme de réapprovisionnement et de le modifier pour que les gâteaux puissent être générés à partir de la base de données.
Recommended Posts