主頁 > 軟體工程 > 如何將2個方法回圈在一起?

如何將2個方法回圈在一起?

2021-12-02 22:04:06 軟體工程

我對 Java 非常陌生,我正在盡我所能地學習。我試圖解決的問題的實際問題如上圖所示。如果我在問題描述中不夠詳細,請參考圖片。我目前正在撰寫一個與購買咖啡有關的 Java 程式。我有一種計算咖啡購買成本的方法(BuyCoffee) 和使用的資源量。還有不同型別的咖啡,每種咖啡使用不同數量的資源。我還有另一種計算咖啡售出后剩余資源的方法**(getRemainingResources)**。我在回圈 getRemainingResources 方法時確實遇到了問題。所以當我買一次咖啡時,我擁有的資源量就減少了。我有一種方法來填充這些資源。但每次我嘗試再次購買同樣的咖啡時,我所剩的資源量并沒有減少。我的代碼在下面

import java.util.Scanner;

public class MethodsTest {
    //global variable--starting quantity of resources in machine
    static final int water = 400;
    static final int milk = 540;
    static final int coffeeBean = 120; // in g
    static int disposableCups = 9;
    static final int cost = 550; //in $

//global variable --refill quantity of resources in machine
static int fillWater, fillMilk, fillCoffeeBeans, fillDisposableCups;

//global variable -- remaining quantity of resources in machine
static int newRemCost, remCost, remWater, remMilk, remCoffeeBean, remDisposableCups;

static int espressoWater, espressoMilk, espressoCoffeeBeans, espressoCost; // Resources for espresso
static int latteWater, latteMilk, latteCoffeeBeans, latteCost;
static int cappuccinoWater, cappuccinoMilk, cappuccinoCoffeeBeans, cappuccinoCost;
static int regWater, regMilk, regCoffeeBeans, regCost;                         //Resources for regular coffees

static void FillCoffeeMachine() {
    Scanner input = new Scanner(System.in);
    System.out.println("Write how many ml of water you want to add: ");
    fillWater = input.nextInt();
    System.out.println("Write how many ml of milk you want to add: ");
    fillMilk = input.nextInt();
    System.out.println("Write how many grams of coffee beans you want to add: ");
    fillCoffeeBeans = input.nextInt();
    System.out.println("Write how many disposable cups of coffee you want to add: ");
    fillDisposableCups = input.nextInt();

    MainMenu();
}

static void BuyCoffee() {                                  //method for buying coffee
    disposableCups--;// always decreasing when coffee is sold
    class TypesOfCoffee {
        void Espresso() {                             //nested class, since there are different kind of coffee
            espressoWater = 250;
            espressoMilk = 0;
            espressoCoffeeBeans = 16;
            espressoCost = 4;


            if (remWater > espressoWater && remMilk > espressoMilk && remCoffeeBean > espressoCoffeeBeans) {
                System.out.println("I have enough resources, making you a coffee!");
            } else if (remWater < espressoWater) {
                System.out.println("Sorry, not enough water!");
                disposableCups  ;
            } else if (remCoffeeBean < espressoCoffeeBeans) {
                System.out.println("Sorry, not enough coffee beans!");
                disposableCups  ;
            } else
                disposableCups  ;
        }

        void Latte() {
            latteWater = 350;
            latteMilk = 75;
            latteCoffeeBeans = 20;
            latteCost = 7;

            if (remWater > latteWater && remMilk > latteMilk && remCoffeeBean > latteCoffeeBeans) {
                System.out.println("I have enough resources, making you a coffee!");
            } else if (remWater < latteWater) {
                System.out.println("Sorry, not enough water!");
                disposableCups  ;
            } else if (remMilk < latteMilk) {
                System.out.println("Sorry, not enough milk!");
                disposableCups  ;
            } else if (remCoffeeBean < latteCoffeeBeans) {
                System.out.println("Sorry, not enough coffee beans!");
                disposableCups  ;
            } else
                disposableCups  ;
        }

        void Cappuccino() {
            cappuccinoWater = 200;
            cappuccinoMilk = 100;
            cappuccinoCoffeeBeans = 12;
            cappuccinoCost = 6;

            if (remWater > cappuccinoWater && remMilk > cappuccinoMilk && remCoffeeBean > cappuccinoCoffeeBeans) {
                System.out.println("I have enough resources, making you a coffee!");
            } else if (remWater < cappuccinoWater) {
                System.out.println("Sorry, not enough water!");
                disposableCups  ;
            } else if (remMilk < cappuccinoMilk) {
                System.out.println("Sorry, not enough milk!");
                disposableCups  ;
            } else if (remCoffeeBean < cappuccinoCoffeeBeans) {
                System.out.println("Sorry, not enough coffee beans!");
                disposableCups  ;
            } else
                disposableCups  ;
        }

        void regularCoffee() {
            regWater = 200;
            regMilk = 50;
            regCoffeeBeans = 15;
            regCost = 0;

            if (remWater > regWater && remMilk > regMilk && remCoffeeBean > regCoffeeBeans) {
                System.out.println("I have enough resources, making you a coffee!");
            } else if (remWater < regWater) {
                System.out.println("Sorry, not enough water!");
                disposableCups  ;
            } else if (remMilk < regMilk) {
                System.out.println("Sorry, not enough milk!");
                disposableCups  ;
            } else if (remCoffeeBean < regCoffeeBeans) {
                System.out.println("Sorry, not enough coffee beans!");
                disposableCups  ;
            } else
                disposableCups  ;
        }
    }

    Scanner input = new Scanner(System.in);
    System.out.println("What kind of coffee would you like to buy today?");
    System.out.println("""
            Please enter:
            1 for espresso
            2 for latte
            3 for cappuccino
            4 for a regular coffee
            back - to go back to main menu""");
    String choice = input.next();

    switch (choice) { //lets user choose what type of coffee to buy
        case "1":
            new TypesOfCoffee().Espresso();
            break;
        case "2":
            new TypesOfCoffee().Latte();
            break;
        case "3":
            new TypesOfCoffee().Cappuccino();
            break;
        case "4":
            new TypesOfCoffee().regularCoffee();
            break;
        case "back":
            MainMenu();
            break;
        default:
            System.out.println("Please enter an option from the above");
    }
    MainMenu();
}


static void takeMoney() { //method to take the money
    System.out.println("I gave you"   " "   "$"   remCost);
    newRemCost = remCost;
    MainMenu();
}

static void getRemainingResources() {
    //TODO --has to loop..but it works only once
    remDisposableCups = fillDisposableCups   disposableCups;
    boolean found = remDisposableCups > 0; // true for coffee to be sold
    while (found) {
        remWater = water   fillWater - espressoWater - cappuccinoWater - latteWater;//
        remMilk = milk   fillMilk - espressoMilk - cappuccinoMilk - latteMilk;
        remCoffeeBean = coffeeBean   fillCoffeeBeans - espressoCoffeeBeans - cappuccinoCoffeeBeans - latteCoffeeBeans;
        remCost = cost   espressoCost   cappuccinoCost   latteCost - newRemCost;
        //found = remDisposableCups > 0 && remWater>=water && remMilk>=milk&&remCoffeeBean>=coffeeBean;

        System.out.println("The coffee machine has: ");
        System.out.println(remWater   " "   "ml of water");
        System.out.println(remMilk   " "   "ml of milk ");
        System.out.println(remCoffeeBean   " "   "g of coffee beans ");
        System.out.println(remDisposableCups   " "   "disposable cups ");
        System.out.println("$"   remCost   " "   "of money");
        found = remDisposableCups < 0;
    }

    MainMenu();
}

static void MainMenu() { // Gives user option to decide what they want to do
    Scanner input = new Scanner(System.in);
    System.out.println("Main Menu: "   "\n");
    System.out.println("Please choose from the following options below");
    System.out.println("""
            To buy coffee - Enter buy
            To fill the machine - Enter fill
            To get cash from machine - Enter take
            To see remaining resources - Enter remaining
            To exit program - Enter exit""");
    String choice = input.next();

    switch (choice) {
        case "buy":
            BuyCoffee();
            break;
        case "fill":
            FillCoffeeMachine();
            break;
        case "take":
            takeMoney();
            break;
        case "remaining":
            getRemainingResources();
            break;
        case "exit":
            System.exit(0);
            break;
        default:
            MainMenu();//goes back to main menu if user types in an unknown value
     }
}

public static void main(String[] args) {
    MainMenu();
}

}

uj5u.com熱心網友回復:

它現在應該去但是還有其他錯誤(除了掃描儀,他們已經告訴過您)例如,您不能在沒有“剩余”的情況下購買咖啡(還有:靜態變數太多,未使用OO .. .) 這只是一個例子。我更正了您要求的錯誤的代碼,但會有很多變化。

import java.util.Scanner;

public class MethodsTest {
    //global variable--starting quantity of resources in machine
    static final int water = 40000;
    static final int milk = 54000;
    static final int coffeeBean = 12000; // in g
    static int disposableCups = 900;
    static final int cost = 550; //in $
    static int remCost = 550; //in $

//global variable --refill quantity of resources in machine
static int fillWater, fillMilk, fillCoffeeBeans, fillDisposableCups;

//global variable -- remaining quantity of resources in machine
static int newRemCost, remWater, remMilk, remCoffeeBean, remDisposableCups;

static int espressoWater, espressoMilk, espressoCoffeeBeans, espressoCost; // Resources for espresso
static int latteWater, latteMilk, latteCoffeeBeans, latteCost;
static int cappuccinoWater, cappuccinoMilk, cappuccinoCoffeeBeans, cappuccinoCost;
static int regWater, regMilk, regCoffeeBeans, regCost;                         //Resources for regular coffees

static void FillCoffeeMachine() {
    Scanner input = new Scanner(System.in);
    System.out.println("Write how many ml of water you want to add: ");
    fillWater = input.nextInt();
    System.out.println("Write how many ml of milk you want to add: ");
    fillMilk = input.nextInt();
    System.out.println("Write how many grams of coffee beans you want to add: ");
    fillCoffeeBeans = input.nextInt();
    System.out.println("Write how many disposable cups of coffee you want to add: ");
    fillDisposableCups = input.nextInt();

    MainMenu();
}

static void BuyCoffee() {                                  //method for buying coffee
    disposableCups--;// always decreasing when coffee is sold
    class TypesOfCoffee {
        void Espresso() {                             //nested class, since there are different kind of coffee
            espressoWater = 250;
            espressoMilk = 0;
            espressoCoffeeBeans = 16;
            espressoCost = 4;


            if (remWater > espressoWater && remMilk > espressoMilk && remCoffeeBean > espressoCoffeeBeans) {
                System.out.println("I have enough resources, making you a coffee!");
            } else if (remWater < espressoWater) {
                System.out.println("Sorry, not enough water!");
                disposableCups  ;
            } else if (remCoffeeBean < espressoCoffeeBeans) {
                System.out.println("Sorry, not enough coffee beans!");
                disposableCups  ;
            } else
                disposableCups  ;
        }

        void Latte() {
            latteWater = 350;
            latteMilk = 75;
            latteCoffeeBeans = 20;
            latteCost = 7;

            if (remWater > latteWater && remMilk > latteMilk && remCoffeeBean > latteCoffeeBeans) {
                System.out.println("I have enough resources, making you a coffee!");
            } else if (remWater < latteWater) {
                System.out.println("Sorry, not enough water!");
                disposableCups  ;
            } else if (remMilk < latteMilk) {
                System.out.println("Sorry, not enough milk!");
                disposableCups  ;
            } else if (remCoffeeBean < latteCoffeeBeans) {
                System.out.println("Sorry, not enough coffee beans!");
                disposableCups  ;
            } else
                disposableCups  ;
        }

        void Cappuccino() {
            cappuccinoWater = 200;
            cappuccinoMilk = 100;
            cappuccinoCoffeeBeans = 12;
            cappuccinoCost = 6;

            if (remWater > cappuccinoWater && remMilk > cappuccinoMilk && remCoffeeBean > cappuccinoCoffeeBeans) {
                System.out.println("I have enough resources, making you a coffee!");
            } else if (remWater < cappuccinoWater) {
                System.out.println("Sorry, not enough water!");
                disposableCups  ;
            } else if (remMilk < cappuccinoMilk) {
                System.out.println("Sorry, not enough milk!");
                disposableCups  ;
            } else if (remCoffeeBean < cappuccinoCoffeeBeans) {
                System.out.println("Sorry, not enough coffee beans!");
                disposableCups  ;
            } else
                disposableCups  ;
        }

        void regularCoffee() {
            regWater = 200;
            regMilk = 50;
            regCoffeeBeans = 15;
            regCost = 0;

            if (remWater > regWater && remMilk > regMilk && remCoffeeBean > regCoffeeBeans) {
                System.out.println("I have enough resources, making you a coffee!");
            } else if (remWater < regWater) {
                System.out.println("Sorry, not enough water!");
                disposableCups  ;
            } else if (remMilk < regMilk) {
                System.out.println("Sorry, not enough milk!");
                disposableCups  ;
            } else if (remCoffeeBean < regCoffeeBeans) {
                System.out.println("Sorry, not enough coffee beans!");
                disposableCups  ;
            } else
                disposableCups  ;
        }
    }

    Scanner input = new Scanner(System.in);
    System.out.println("What kind of coffee would you like to buy today?");
    System.out.println("""
            Please enter:
            1 for espresso
            2 for latte
            3 for cappuccino
            4 for a regular coffee
            back - to go back to main menu""");
    String choice = input.next();

    switch (choice) { //lets user choose what type of coffee to buy
        case "1":
            new TypesOfCoffee().Espresso();
            break;
        case "2":
            new TypesOfCoffee().Latte();
            break;
        case "3":
            new TypesOfCoffee().Cappuccino();
            break;
        case "4":
            new TypesOfCoffee().regularCoffee();
            break;
        case "back":
            MainMenu();
            break;
        default:
            System.out.println("Please enter an option from the above");
    }
    MainMenu();
}


static void takeMoney() { //method to take the money
    System.out.println("I gave you"   " "   "$"   remCost);
    newRemCost = remCost;
    MainMenu();
}

static void getRemainingResources() {
    //TODO --has to loop..but it works only once
    remDisposableCups = fillDisposableCups   disposableCups;
    boolean found = remDisposableCups > 0; // true for coffee to be sold
    while (found) {
        remWater = water   fillWater - espressoWater - cappuccinoWater - latteWater;//
        remMilk = milk   fillMilk - espressoMilk - cappuccinoMilk - latteMilk;
        remCoffeeBean = coffeeBean   fillCoffeeBeans - espressoCoffeeBeans - cappuccinoCoffeeBeans - latteCoffeeBeans;

        remCost = remCost   espressoCost   cappuccinoCost   latteCost - newRemCost;
        espressoCost = 0;
        cappuccinoCost = 0;
        latteCost = 0;
        //found = remDisposableCups > 0 && remWater>=water && remMilk>=milk&&remCoffeeBean>=coffeeBean;

        System.out.println("The coffee machine has: ");
        System.out.println(remWater   " "   "ml of water");
        System.out.println(remMilk   " "   "ml of milk ");
        System.out.println(remCoffeeBean   " "   "g of coffee beans ");
        System.out.println(remDisposableCups   " "   "disposable cups ");
        System.out.println("$"   remCost   " "   "of money");
        found = remDisposableCups < 0;
    }

    MainMenu();
}

static void MainMenu() { // Gives user option to decide what they want to do
    Scanner input = new Scanner(System.in);
    System.out.println("Main Menu: "   "\n");
    System.out.println("Please choose from the following options below");
    System.out.println("""
            To buy coffee - Enter buy
            To fill the machine - Enter fill
            To get cash from machine - Enter take
            To see remaining resources - Enter remaining
            To exit program - Enter exit""");
    String choice = input.next();

    switch (choice) {
        case "buy":
            BuyCoffee();
            break;
        case "fill":
            FillCoffeeMachine();
            break;
        case "take":
            takeMoney();
            break;
        case "remaining":
            getRemainingResources();
            break;
        case "exit":
            System.exit(0);
            break;
        default:
            MainMenu();//goes back to main menu if user types in an unknown value
     }
}

public static void main(String[] args) {
    MainMenu();
}
}

uj5u.com熱心網友回復:

您撰寫的代碼極其復雜,這就是為什么您看不到錯誤所在的原因。幾點意見:

  • Java 是一種面向物件 (OO) 語言。OO 范式圍繞著創建類和它們的物件、繼承和多型性(從父類繼承行為,但在每個子類中的行為不同)。
  • 您的代碼看起來就像您正在嘗試重新創建結構化編程,就像舊版本的 Basic 或 Macro Assembler 一樣,只需遵守 Java 的語法。您需要真正了解 OO 編程的作業原理,因此首先嘗試查找有關此的教程。
  • 不要在一個大類中實作所有內容。嘗試識別應用程式中的不同物體。例如:CoffeMachine、Coffee、Espresso、Latte、RegularCoffee、...為每個識別的物體創建一個類。彼此相似的類可能應該是繼承的一部分,例如 Espresso、Lattte 等應該繼承更通用的類 Coffee(當您可以說“A 是 B 的一種”時,A 繼承了 B)。
  • 不要使用靜態變數(除非有很好的理由,但這種情況很少見)。當您創建它們的物件時,讓每個類都有自己的實體屬性:remainingWater、remainingMilk 等是物件 CoffeeMachine 的屬性。它們不是全球性的東西。
  • 不要使用靜態方法,如 C 或 Basic 中的子程式。相反,創建類的物件并呼叫它們的實體方法。
  • 不要像 Basic 或 Assembler 那樣使用跳轉和標簽。相反,在回圈中呼叫物件的方法并在必要時中斷回圈。
  • 如果您在應用程式中檢測到錯誤,請利用 Java 的例外機制 - 拋出例外并讓呼叫者處理錯誤。
  • 方法名稱在 Java 中以小寫字母開頭(這是普遍接受的約定,而不是句法規則)。

我遵循上述原則為您的應用程式創建了不同的設計,因此首先從教程中學習面向物件編程的基礎知識,然后將以下代碼與您的代碼進行比較,看看有什么不同。

主類(主選單回圈的入口點):

public class Main
{
    public static void main(String[] args)
    {
        new Main().run();
    }
    
    void run()
    {
        CoffeeMachine coffeeMachine = new CoffeeMachine(400, 540, 120, 9, 550);
        while (coffeeMachine.mainMenu()); // loops until mainMenu returns false
    }

}

咖啡機:

import java.util.Scanner;

public class CoffeeMachine
{
    private Scanner input = new Scanner(System.in);
    
    private int water;
    private int milk;
    private int coffeeBeans;
    private int disposableCups;
    private int money;
    
    public CoffeeMachine(int water, int milk, int coffeeBeans, int disposableCups, int money)
    {
        this.water = water;
        this.milk = milk;
        this.coffeeBeans = coffeeBeans;
        this.disposableCups = disposableCups;
        this.money = money;
    }

    void fill() {
        System.out.println("Write how many ml of water you want to add: ");
        water  = input.nextInt();
        System.out.println("Write how many ml of milk you want to add: ");
        milk  = input.nextInt();
        System.out.println("Write how many grams of coffee beans you want to add: ");
        coffeeBeans  = input.nextInt();
        System.out.println("Write how many disposable cups for coffee you want to add: ");
        disposableCups  = input.nextInt();
        
    }

    public void selectCoffee()
    {
        while (true)
        {
            System.out.println("What kind of coffee would you like to buy today?");
            System.out.println(
        "            Please enter:\n"  
        "            1 for espresso\n"  
        "            2 for latte\n"  
        "            3 for cappuccino\n"  
        "            4 for a regular coffee\n"  
        "            back - to go back to main menu");
            String choice = input.next();
    
            try {
                switch (choice) { //lets user choose what type of coffee to buy
                    case "1":
                        buy(new Espresso());
                        return;
                    case "2":
                        buy(new Latte());
                        return;
                    case "3":
                        buy(new Cappuccino());
                        return;
                    case "4":
                        buy(new RegularCoffee());
                        return;
                    case "back":
                        return;
                    default:
                        System.err.println("Please enter an option from the above");
                }
            }
            catch (InsufficientResourcesException exception) {
                System.err.println("Error buying coffee: "    exception.getLocalizedMessage());
            }
        }
    }
    
    public void buy(Coffee coffee) throws InsufficientResourcesException
    {
        if (coffee.getWaterCost() > water)
            throw new InsufficientResourcesException("water", "ml", coffee.getWaterCost(), water);

        if (coffee.getMilkCost() > milk)
            throw new InsufficientResourcesException("milk", "ml", coffee.getMilkCost(), milk);

        if (coffee.getCoffeeBeansCost() > coffeeBeans)
            throw new InsufficientResourcesException("coffee beans", "g", coffee.getCoffeeBeansCost(), coffeeBeans);

        if (disposableCups < 1)
            throw new InsufficientResourcesException("disposable cups", "units", 1, disposableCups);
        

        System.out.println("Buying 1 cup of "   coffee.getClass().getSimpleName());
        water -= coffee.getWaterCost();
        milk -= coffee.getMilkCost();
        coffeeBeans -= coffee.getCoffeeBeansCost();
        disposableCups--;
        
        money  = coffee.getMoneyCost();
    }
    
    public void takeMoney()
    {
        System.out.println("I gave you $"   money   ". The money tray is now empty.");
        money = 0;
    }
    
    public void showResources()
    {
        System.out.println("The coffee machine has: ");
        System.out.println(water   " ml of water");
        System.out.println(milk   " ml of milk ");
        System.out.println(coffeeBeans   " g of coffee beans ");
        System.out.println(disposableCups   " disposable cups ");
        System.out.println("$"   money   " of money");
    }

    public boolean mainMenu() { // Gives user option to decide what they want to do
        System.out.println("Main Menu: "   "\n");
        System.out.println("Please choose from the following options below");
        System.out.println(
    "            To buy coffee - Enter buy\n"  
    "            To fill the machine - Enter fill\n"  
    "            To get cash from machine - Enter take\n"  
    "            To see remaining resources - Enter remaining\n"  
    "            To exit program - Enter exit");
        String choice = input.next();
        
        switch (choice) {
            case "buy":
                selectCoffee();
                break;
            case "fill":
                fill();
                break;
            case "take":
                takeMoney();
                break;
            case "remaining":
                showResources();
                break;
            case "exit":
                return false;
        }
        
        return true;
    }

}

和咖啡課:

public abstract class Coffee
{
    private int waterCost;
    private int milkCost;
    private int coffeeBeansCost;
    private int moneyCost;
    
    protected Coffee(int waterCost, int milkCost, int coffeeBeansCost, int moneyCost)
    {
        this.waterCost = waterCost;
        this.milkCost = milkCost;
        this.coffeeBeansCost = coffeeBeansCost;
        this.moneyCost = moneyCost;
    }

    public int getWaterCost()
    {
        return this.waterCost;
    }

    public int getMilkCost()
    {
        return this.milkCost;
    }

    public int getCoffeeBeansCost()
    {
        return this.coffeeBeansCost;
    }

    public int getMoneyCost()
    {
        return this.moneyCost;
    }
    
}

public class Espresso extends Coffee
{

    public Espresso()
    {
        super(250, 0, 16, 4);
    }

}

public class Cappuccino extends Coffee
{

    public Cappuccino()
    {
        super(200, 100, 12, 6);
    }

}

public class Latte extends Coffee
{

    public Latte()
    {
        super(350, 75, 20, 7);
    }

}

public class RegularCoffee extends Coffee
{

    public RegularCoffee()
    {
        super(200, 50, 15, 0);
    }

}

最后但并非最不重要的是,例外類:

public class InsufficientResourcesException extends Exception
{
    private static final long serialVersionUID = 1L;

    public InsufficientResourcesException(String whatResource, String unit, int required, int available)
    {
        super("Insufficient resources: required "   required   " "   unit   " of "   whatResource   " but available "   available   " "   unit);
    }
}

擁有一個好的架構對于軟體來說是最重要的。如果您的架構被正確應用,錯誤將是不可能的,如果它們發生,它們將很容易修復。此外,更改具有良好架構的應用程式既簡單又安全。

另一方面,糟糕的架構使錯誤幾乎是肯定的,很難找到和修復,并且應用程式不能輕易更改。

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/371654.html

標籤:爪哇 递归 方法 while 循环 嵌套循环

上一篇:最長遞增子序列錯誤答案

下一篇:數字串列上的遞回演算法,以確定我是否有足夠的步驟到最后

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • Git本地庫既關聯GitHub又關聯Gitee

    創建代碼倉庫 使用gitee舉例(github和gitee差不多) 1.在gitee右上角點擊+,選擇新建倉庫 ? 2.選擇填寫倉庫資訊,然后進行創建 ? 3.服務端已經準備好了,本地開始作準備 (1)Git 全域設定 git config --global user.name "成鈺" git c ......

    uj5u.com 2020-09-10 05:04:14 more
  • CODING DevOps 代碼質量實戰系列第二課,相約周三

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。**《DevOps 代碼質量實戰(PHP 版)》**為 CODING DevOps 代碼質量實戰系列的第二課,同時也是本系列的 PHP ......

    uj5u.com 2020-09-10 05:07:43 more
  • 推薦Scrum書籍

    推薦Scrum書籍 直接上干貨,推薦書籍清單如下(推薦有順序的哦) Scrum指南 Scrum精髓 Scrum敏捷軟體開發 Scrum捷徑 硝煙中的Scrum和XP : 我們如何實施Scrum 敏捷軟體開發:Scrum實戰指南 Scrum要素 大規模Scrum:大規模敏捷組織的設計 用戶故事地圖 用 ......

    uj5u.com 2020-09-10 05:07:45 more
  • CODING DevOps 代碼質量實戰系列最后一課,周四發車

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。 **《DevOps 代碼質量實戰(Java 版)》**為 CODING DevOps 代碼質量實戰系列的最后一課,同時也是本系列的 ......

    uj5u.com 2020-09-10 05:07:52 more
  • 敏捷軟體工程實踐書籍

    Scrum轉型想要做好,第一步先了解并真正落實Scrum,那么我推薦的Scrum書籍是要看懂并實踐的。第二步是團隊的工程實踐要做扎實。 下面推薦工程實踐書單: 重構:改善既有代碼的設計 決議極限編程 : 擁抱變化 代碼整潔代碼 程式員的職業素養 修改代碼的藝術 撰寫可讀代碼的藝術 測驗驅動開發 : ......

    uj5u.com 2020-09-10 05:07:55 more
  • Jenkins+svn+nginx實作windows環境自動部署vue前端專案

    前面文章介紹了Jenkins+svn+tomcat實作自動化部署,現在終于有空抽時間出來寫下Jenkins+svn+nginx實作自動部署vue前端專案。 jenkins的安裝和配置已經在前面文章進行介紹,下面介紹實作vue前端專案需要進行的哪些額外的步驟。 注意:在安裝jenkins和nginx的 ......

    uj5u.com 2020-09-10 05:08:49 more
  • CODING DevOps 微服務專案實戰系列第一課,明天等你

    CODING DevOps 微服務專案實戰系列第一課**《DevOps 微服務專案實戰:DevOps 初體驗》**將由 CODING DevOps 開發工程師 王寬老師 向大家介紹 DevOps 的基本理念,并探討為什么現代開發活動需要 DevOps,同時將以 eShopOnContainers 項 ......

    uj5u.com 2020-09-10 05:09:14 more
  • CODING DevOps 微服務專案實戰系列第二課來啦!

    近年來,工程專案的結構越來越復雜,需要接入合適的持續集成流水線形式,才能滿足更多變的需求,那么如何優雅地使用 CI 能力提升生產效率呢?CODING DevOps 微服務專案實戰系列第二課 《DevOps 微服務專案實戰:CI 進階用法》 將由 CODING DevOps 全堆疊工程師 何晨哲老師 向 ......

    uj5u.com 2020-09-10 05:09:33 more
  • CODING DevOps 微服務專案實戰系列最后一課,周四開講!

    隨著軟體工程越來越復雜化,如何在 Kubernetes 集群進行灰度發布成為了生產部署的”必修課“,而如何實作安全可控、自動化的灰度發布也成為了持續部署重點關注的問題。CODING DevOps 微服務專案實戰系列最后一課:**《DevOps 微服務專案實戰:基于 Nginx-ingress 的自動 ......

    uj5u.com 2020-09-10 05:10:00 more
  • CODING 儀表盤功能正式推出,實作作業資料可視化!

    CODING 儀表盤功能現已正式推出!該功能旨在用一張張統計卡片的形式,統計并展示使用 CODING 中所產生的資料。這意味著無需額外的設定,就可以收集歸納寶貴的作業資料并予之量化分析。這些海量的資料皆會以圖表或串列的方式躍然紙上,方便團隊成員隨時查看各專案的進度、狀態和指標,云端協作迎來真正意義上 ......

    uj5u.com 2020-09-10 05:11:01 more
最新发布
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:41:12 more
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:35:34 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:05:44 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:00:18 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:20:31 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:55 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:18:51 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:00 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:17:55 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:12:06 more