自动售货机(java版)

2023-11-01

//SaleMachine.java

package tu;

public class SaleMachine {
  private int countofBeer,countofJuice,countofCola,countofFivecent,countofOnedollar;
  private String s6 = "Draw Back Money";
  private String result;
  private String Drinks[] = {"Beer","Juice","Cola","Two Beer","Two Juice","Beer and Juice"};
  private String Money[] = {"5C","1D"};
 
  public SaleMachine() {                                  //默认的初始化函数(假设不赋值时都是10)
  countofBeer = 10;
  countofJuice = 10;
  countofOnedollar = 10;
  countofFivecent = 10;
  countofCola = 10;
  
  }
 
  public SaleMachine(int Beer,int Juice,int Fivecent,int Onedallar,int Cola) {   //初始化函数
   countofBeer = Beer;
   countofJuice = Juice;
   countofCola = Cola;
   countofOnedollar = Onedallar;
   countofFivecent = Fivecent;
  }
 
  public String currentState() {                                  // 系统提示当前售货机的状态
   String s = "Current State:"+"\n"+"Beer: "+" "+countofBeer+"\n"+"Juice: "+countofJuice+"\n"+
              " "+"Cola:"+countofCola+"\n"+"Five Cents:"+" "+countofFivecent+"\n"+
              "One Dollar:"+" "+countofOnedollar;
   return s;
             
  }
 
  public String atuseroption(String operation,String money) {   //operation是用户选择的的产品,money是用户投入的钱
   if(money.equalsIgnoreCase(Money[0])) {                         //假如用户投入了5角
    if(operation.equals(Drinks[0])) {                              // 假如用户选择了啤酒
     if(countofBeer > 0) {      
      countofBeer--;
      countofFivecent++;
      result = "Succeed Information\n" +
                "Type: Beer;Money: 5 Cents;Change: 0\n\n"+
                currentState();
      return result;
     }
     else {                                              // 啤酒没有了
      result = "Failed Information\n" +
              "Beer Without!\n"+"Fifty cents coming soon!";
      return result;
     }
    }
    else if(operation.equals(Drinks[1])) {                   // 用户选择了橙汁
     if(countofJuice > 0) {                        // 用户选择了橙汁并且还有橙汁
      countofJuice--;
      countofFivecent++;
      result = "Succeed Information\n" +
                     "Type: Juice;Money: 5 Cents;Change: 0\n\n"+
                     currentState();
            return result;
     }
     else {                                        //橙汁没有了
      result = "Failed Information\n" +
                     "Juice Without!\n"+"Fifty cents coming soon!";
      return result;
     }
    }
   
    if(operation.equals(s6)) {          //用户选择退钱
     
     result = "Money coming soon!";
     return result;
    }
    else {                                                 // 用那个户选择有错误
     result = "Failed Information\n" +
                    "Operation Error! \n"+"Fifty cents coming soon!";
     return result;
    }
   }
   else if (money.equalsIgnoreCase(Money[1])){                    //假如用户投入1Dollar
    if(countofFivecent > 0) {
     if(operation.equals(Drinks[0]) && countofBeer > 0) {      //假如用户选择了啤酒并且还有啤酒
      countofBeer--;
      countofFivecent--;
      countofOnedollar++;
      result = "Succeed Information\n" +
                            "Type: Beer;Money: 1 Dollar;Change: 5 Cents\n\n"+
                            currentState();
                  return result;
     
     }
    
     if(operation.equals(Drinks[1]) && countofJuice > 0) {       //假如用户选择了橙汁并且还有橙汁
      countofJuice--;
      countofFivecent--;
      countofOnedollar++;
      result = "Succeed Information\n" +
                              "Type: Juice;Money:1 Dollar;Change: 5 Cents\n\n"+
                               currentState();
                     return result;
     
     }
    
     if(operation.equals(Drinks[3]) && countofBeer > 1) {     // 假如用户选择了两瓶啤酒
      countofBeer -= 2;
      countofOnedollar++;
      result = "Succeed Information\n" +
                              "Type: Two Beer;Money:1 Dollar;Change: 0 Cents\n\n"+
                              currentState();
      return result;
     
     }
    
     if(operation.equals(Drinks[4]) && countofJuice > 1) {     //假如用户选择了两瓶橙汁
      countofJuice -= 2;
      countofOnedollar++;
      result = "Succeed Information\n" +
                              "Type: Two Juice;Money:1 Dollar;Change: 0 Cents\n\n"+
                              currentState();
      return result;
     }
    
     if(operation.equals(Drinks[5]) && countofJuice > 0 && countofBeer > 0) {    //假如用户选择了一瓶啤酒一瓶橙汁
      countofBeer--;
      countofJuice--;
      countofOnedollar++;
      result = "Succeed Information\n" +
                              "Type: Beer and Juice;Money:1 Dollar;Change: 0 Cents\n\n"+
                             currentState();
      return result;
     
     }
    
     if(operation.equals(s6)) {         //用户选择退钱
     
      result = "Money coming soon!";
      return result;
     }
    
     else if(operation.equals(Drinks[5]) && (countofJuice == 0 || countofBeer == 0)){                           //用户选的一瓶啤酒喝一瓶橙汁但是其中啤酒或者橙汁没有了
      result = "Failed Information\n" +
                     "Beer or Juice Without!\n"+"One Dollar coming soon!";
      return result;
     }
    
     else if(operation.equals(Drinks[4]) && countofJuice <= 1) {  //用户选择了两瓶橙汁但橙汁数量不够了
      result = "Failed Information\n" +
                     "Juice is not enough!\n"+"One Dollar coming soon!";
      return result;
     }
    
     else if(operation.equals(Drinks[3]) && countofBeer <= 1) { //用户选择了两瓶啤酒但啤酒数量不够了
      result = "Failed Information\n" +
                     "Beer is not enough!\n"+"One Dollar coming soon!";
      return result;
     
     }
    
     else {
      if(operation.equals(Drinks[0]) && countofBeer == 0) {        //假如用户选择了一瓶啤酒但啤酒没有了
       result = "Failed Information\n" +
                      "Beer Without!\n"+"One Dollar coming soon!";
       return result;
      
      }
      else if(operation.equals(Drinks[1]) && countofJuice == 0) {   //假如用户选择了一瓶橙汁但橙汁没有了
       result = "Failed Information\n" +
                      "Juice Without!\n"+"One Dollar coming soon!";
       return result;
      }
      else {                                                // 用户选择的既不是橙汁也不是啤酒
       result = "Failed Information\n" +
                      "Operation Error!\n"+"One Dollar coming soon!";
       return result;
      }
     }
    }
    else {                                                         // 没有零钱了
     result = "Failed Information\n" +
                    "Change Without!\n"+"One Dollar coming soon!";
     return result;
    }
   }
   else {                                                            // 用户投的钱的既不是5Cents也不是1Dollar
    result = "Failed Information\n" +
                   "Money Error!\n"+"Money coming soon!";
    return result;
   }
  }
 
  public String atuseroption(String operation,String money1,String money2) {
   if(money1.equalsIgnoreCase(Money[0]) && money2.equalsIgnoreCase(Money[0])) {  //用户投入两个五角的
    if(operation.equals(Drinks[3])) {                          // 用户选择了两瓶啤酒
     if(countofBeer > 1) {      //啤酒还有两瓶或两瓶多
      countofBeer -= 2;
      countofFivecent += 2;
      result = "Succeed Information\n" +
                "Type: Two Beer;Money: 1 Dollar;Change: 0\n\n"+
                currentState();
      return result;
     }
     else {                        //啤酒不够了
      result = "Failed Information\n" +
                     "Beer is not enough!\n"+"Money coming soon!";
      return result;
     }
    }
   
    else if(operation.equals(Drinks[4])) {  //用户选择了两瓶橙汁
     if(countofJuice > 1) {            //橙汁还有两瓶或两瓶多
      countofJuice -= 2;
      countofFivecent += 2;
      result = "Succeed Information\n" +
                "Type: Juice;Money: 1 Dollar;Change: 0\n\n"+
                currentState();
      return result;
     }
     else {                              //橙汁不够了
      result = "Failed Information\n" +
                     "Juice is not enough!\n"+"Money coming soon!";
      return result;
     }
    
    }
   
    else if(operation.equals(Drinks[5])) {         //用户选择了啤酒和橙汁
     if(countofBeer > 0 && countofJuice > 0) {
      countofBeer--;
      countofJuice--;
      countofFivecent +=2;
      result = "Succeed Information\n" +
                "Type: Beer and Juice;Money: 1 Dollar;Change: 0\n\n"+
                currentState();
      return result;
     }
     else {                                     //啤酒或者橙汁不够了
      result = "Failed Information\n" +
                     "Beer or Juice Without!\n"+"Money coming soon!";
      return result;
     }
    }
    else {                                     //用户选择了错误
     result = "Failed Information\n" +
                    "Operation Error!\n"+"Money coming soon!";
     return result;
    }
   }
    else if(money1.equalsIgnoreCase(Money[0]) && money2.equalsIgnoreCase(Money[1])
      || money1.equalsIgnoreCase(Money[1]) && money2.equalsIgnoreCase(Money[0])) {   //用户投入了一个五角的和一个一元的
     if(operation.equals(Drinks[2])) {   //用户选择了可乐           
      if(countofCola > 0) {        //可乐还有
       countofCola--;
       countofFivecent++;
       countofOnedollar++;
       result = "Succeed Information\n" +
                 "Type: Cola;Money: 1 Dollar and 5 Cents;Change: 0\n\n"+
                 currentState();
       return result;
      }
      else {                       //可乐不够了
       result = "Failed Information\n" +
                      "Cola Without!\n"+"Money coming soon!";
       return result;
      }
     
      }
     else {                      //选择错误
      result = "Failed Information\n" +
                     "Operation Error!\n"+"Money coming soon!";
      return result;
     
     }
    }
   
    else if(money1.equalsIgnoreCase(Money[1]) && money2.equalsIgnoreCase(Money[1])) {  //用户投入两个一元的
     if(operation.equals(Drinks[2])) {     //用户选择了可乐
      if(countofFivecent > 0) {         //是否还有零钱
       if(countofCola > 0) {         //是否还有可乐
        countofCola--;
        countofOnedollar +=2;
        countofFivecent--;
        result = "Succeed Information\n" +
                  "Type: Cola;Money: 1 Dollar and 1 Dollar;Change: 5 Cents\n\n"+
                  currentState();
        return result;
       }
       else {                     //可乐没有了
        result = "Failed Information\n" +
                       "Cola Without!\n"+"Money coming soon!";
        return result;
       }
      
      }
      else {                  //零钱没有了
       result = "Failed Information\n" +
                      "Change Without!\n"+"One Dollar coming soon!";
       return result;
      }
     }
     else {                     //选择错误
      result = "Failed Information\n" +
                     "Operation Error!\n"+"Money coming soon!";
      return result;
     }
    }
   
   else {                           //投入的钱有错
    result = "Failed Information\n" +
                   "Money Error!\n"+"Money coming soon!";
    return result;
   }
  }
}

 

 

//TestSaleMachine.java

package tu;

import javax.swing.JOptionPane;

public class TestSaleMachine {
  private static String Drinks[] = {"Beer","Juice","Cola","Two Beer","Two Juice","Beer and Juice","Draw Back Money"};
  private static String Money[] = {"5C","1D"};
  private static int money1,money2;
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
   //对系统进行初始化(五角的个数,一元的个数,橙汁的个数,啤酒的个数)
        String s1 = JOptionPane.showInputDialog("请输入啤酒的个数:");
        int Beer = Integer.parseInt(s1);
        String s2 = JOptionPane.showInputDialog("请输入橙汁的个数:");
        int Juice = Integer.parseInt(s1);
        String s3 = JOptionPane.showInputDialog("请输入五角的个数:");
        int FiveCent = Integer.parseInt(s1);
        String s4 = JOptionPane.showInputDialog("请输入一元的个数:");
        int OneDollar = Integer.parseInt(s1);
        String s5 = JOptionPane.showInputDialog("请输入可乐的个数:");
        int Cola = Integer.parseInt(s5);
        SaleMachine sale1 = new SaleMachine(Beer,Juice,FiveCent,OneDollar,Cola);
       
       
        while(Beer != 0 && Juice != 0 && Cola != 0) {
         //显示系统的当前状态
         JOptionPane.showMessageDialog(null,"Welcome to use the vending machine\n"+ sale1.currentState());
         //提示用户选择投币
         JOptionPane.showMessageDialog(null, "You can choose to put into two COINS(“5C”,“1D”)."+
                 "You Have a Choice:\n"+"1:  5C\n"+"2:   1D"  );
       
         String money  = JOptionPane.showInputDialog("Please input your to put COINS(Such as:If you want to choose:“5C”," +
                     "You can input 1.):");
         money1 = Integer.parseInt(money);
         //系统提示是否再一次投币
         JOptionPane.showMessageDialog(null, "Whether you choose to input anther coin(0: NO   1: YES)");
         String choice = JOptionPane.showInputDialog("Please input your choice(0 or 1):");  //输入0表示不在投币输入1表示再一次投币
         int choice1 = Integer.parseInt(choice);
        
         if(choice1 == 1) {
          money  = JOptionPane.showInputDialog("Please input your again to put COINS(Such as:If you want to choose:“5C”," +
       "You can input 1.):");
          money2 = Integer.parseInt(money);
         }
         //提示用户选择饮料
         JOptionPane.showMessageDialog(null, "The vending machine has two kinds of drinks: Beer and Juice.\n"+
        "You Have a Choice:\n1:  Beer \n"+"2:  Juice\n"+"3:  Cola\n"+"4:   Two Beer\n"+
           "5:  Two Juice\n" +"6:  Beer and Juice\n"+"7:  Draw Back Money"  );
        
         String option  = JOptionPane.showInputDialog("Please input you want to choose drinks" +
                     "(Such as:If you want to choose:“Two Beer“,You can input 4.):");
         int option1 = Integer.parseInt(option);
      
         if(choice1 == 0)
          JOptionPane.showMessageDialog(null,sale1.atuseroption(Drinks[option1 - 1], Money[money1 - 1]));
          else if(choice1 == 1) {
         
                   JOptionPane.showMessageDialog(null,sale1.atuseroption(Drinks[option1 - 1], Money[money1 - 1],Money[money2 - 1]));
         }
        }
 }

}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自动售货机(java版) 的相关文章

  • android-透明RelativeLayout

    我想要制作一个具有可绘制渐变作为背景的活动 并将在其背景顶部显示 4 个面板 相对布局 现在我想让 4 个面板透明 例如 50 以便也可以看到渐变背景 我搜索了谷歌 但我发现只能通过活动而不是布局来做到这一点 如何做我想做的事 您可以创建一
  • spring boot框架下如何过滤tomcat产生的访问日志

    我们使用spring boot框架 通过嵌入式tomcat生成访问日志 访问日志的格式如下 server tomcat access log enabled true server tomcat access log pattern h l
  • 如何解析比 Java 中 NumberFormat 更严格的数字?

    我正在验证表单中的用户输入 我解析输入NumberFormat http docs oracle com javase 7 docs api java text NumberFormat html 但它是邪恶的 几乎允许任何事情 有没有办法
  • 将json URL导入到java并使用jackson库解析它

    我正在尝试读取 java 中的 json 链接并解析它 以便我可以将它用于其他事务 但问题是我收到错误 我真的不知道该如何处理它们 这是代码 package weather data import weather data import c
  • 如何在 Spring Boot 1.4 中自定义 Jackson

    我一直无法找到如何使用的示例Jackson2ObjectMapperBuilderCustomizer java在spring boot 1 4中自定义Jackson的功能 boot 1 4 中自定义 Jackson 的 doco http
  • Spring 可以理解 @Inject 替换 Weld 作为 JSR-299 实现吗?

    我从几个网页中注意到 Spring 3 0 显然支持来自 JSR 330 的 Inject 由于我们确实希望在 Web 应用程序和独立应用程序的库中使用 JSR 299 语法进行依赖项注入 并且有 Weld 的替代方案 因此如果 Sprin
  • 将图像缩略图上传到服务器,而不上传整个图像

    据我所知 我在这里问的是不可能的 但我想无论如何我都会问 以防我遗漏了什么 假设您想让用户上传 JPG 图像 并且这些图像被缩放为较小的图标 并且原始图像始终被丢弃并且不再需要 有没有什么方法可以在大多数现代浏览器中普遍使用 让用户选择硬盘
  • 使用Optional作为类中的属性是一个好习惯吗? [复制]

    这个问题在这里已经有答案了 我读过一些关于目的的内容Optional 不幸的是我不记得在哪里 在Java 8中 我很惊讶作者没有提到使用Optional作为类中的属性 由于我在课堂上经常使用选项 我想知道这是否是一个好的做法 或者我可以更好
  • 将 SQL Server varBinary 数据转换为字符串 C#

    我需要帮助弄清楚如何转换来自SQL服务器表列设置为varBinary 最大 转换为字符串以便将其显示在标签中 这是在C 我正在使用数据读取器 我可以使用以下方式提取数据 var BinaryString reader 1 我知道该列包含之前
  • 全屏独占模式下的 AWT 框架在窗口弹出对话框中最小化

    我正在开发一个在全屏独占模式下使用 awt 框架的应用程序 一切正常 直到弹出窗口可见 这会抢走焦点 我的应用程序将被最小化 这是我的框架的初始化代码 if ApplicationConfig getInstance useFullscre
  • Selenium Webdriver 中显式等待 findElements

    登录后 页面重定向到一个页面 我想等待页面加载 我在其中按 tagName 查找元素 By inputArea By tagName input List
  • 找不到模块:javafx.controls

    我已经下载了JavaFX SDK 解压它并设置PATH TO FX系统变量 如下本说明 https openjfx io openjfx docs install javafx 我使用了以下代码示例 import javafx applic
  • 内容安全策略:页面设置阻止自行加载资源?

    我有基于 Java 的 Web 应用程序运行在Tomcat http en wikipedia org wiki Apache Tomcat6 我的应用程序在本地主机和端口 9001 上运行 为了使我的应用程序更加安全并降低风险XSS ht
  • 用dagger 2查看依赖注入

    我有一个自定义视图扩展TextView 我应该在哪里调用我的组件来注入视图 component inject customTextView 因此 我发现我需要在自定义视图的构造函数中添加注入 在所有视图中 或者使一个调用另一个 Exampl
  • 如何更改tomcat jmx密码的文件权限

    我正在尝试保护 Windows 平台上托管的本地 tomcat 实例上的 JMX 访问 我已经创建了访问权限和密码文件 并使用以下 VM 参数插入这些文件 Dcom sun management jmxremote password fil
  • 为什么 Libgdx 的 Table 不接受缩放操作?

    我在 libgdx 库中使用 scene2d 在游戏中创建一些 UI 我使用了一个表格 我想在用户触摸时采取一些缩放操作以使按钮触摸有意义 当我使用任何其他 Actor 类型 例如 Group 并为其提供缩放操作时 它可以工作 但不能工作表
  • 将 Class 对象转换为字节

    如果我有一个Class http java sun com j2se 1 5 0 docs api java lang Class html在运行时实例 我可以获得它的 byte 表示形式吗 我感兴趣的字节将在类文件格式 http java
  • Spring @Configuration如何缓存对bean的引用

    使用基于 Java 的配置时 Spring 如何防止再次调用 bar 我想知道编译时注释处理或通过代理方法 Configuration public class AppConfig Bean public Foo foo return ne
  • 如何根据服务器/环境动态加载服务器配置?

    目前 我设置了 Maven 配置文件 以便能够为不同的环境 开发 演示 暂存 生产等 部署我的项目 并且它工作得很好 但问题是 对于我拥有的每个模块 Web 应用程序 我需要复制 粘贴此配置文件 它们都是属性文件 当我需要更改环境 服务器配
  • 如何避免连续“重置偏移量”和“寻找最新偏移量”?

    我正在尝试遵循本指南 https spark apache org docs latest structed streaming kafka integration html https spark apache org docs late

随机推荐

  • 文件服务器fuse,分布式文件系统glusterfs安装步骤

    我的系统是 RHEL5 可能环境不一样 需要安装的第三方依赖不一样啊 反正大家在安装的过程中缺少什么就去安装什么 一般都会有提示的 下载 glusterfs 3 2 0 tar gz 源码包 随便解压到一个目录 glusterfs 需要 f
  • Dynamics CRM 2011/2013 通过Javascript给lookup字段赋值

    仅仅做下记录 因为老是用到但老是忘记 var value new Array value 0 new Object value 0 id idValue value 0 name textValue value 0 entityType t
  • hadoop:编写jpsall脚本错误bash: 行 1: jps: 未找到命令

    jpsall脚本 集群使用jps命令查看集群运行情况 bin bash for host in hadoop102 hadoop103 hadoop104 do echo host ssh host jps done 运行jpsall报错
  • caffe中forward过程总结 2

    前面http blog csdn net buyi shizi article details 51504276 总结的是caffe有和卷积有关的forward过程 下面我们总结一下卷积之后和全连接网络Inner Product Layer
  • Linux音视频编程学习(1)

    1 linux音视频概念 声音作为一种模拟信号 需要被A D转换器转换成数字信号 才能被存储在计算机中 因此A D转换视为3步 采样 量化和编码 采样 采样器每个一段时间来读取一次模拟信号 用这些离散的值来代表整个模拟信号的过程 单位时间内
  • MES系统产品规划

    某互联网科技有限公司 MES系统规划初稿 说明书V1 0 审核 批准清单 姓名 职位 签名 日期 撰写 张先生 产品总监 批准 版本修订历史 版本 版本日期 作者 公司 版本描述 A 2021 08 14 张先生 文档初稿 提交供内部修改
  • 点云梯度下采样

    点云下采样又称点云精简 均匀网格下采样 均匀网格下采样法是建立在空间包围盒精简算法之上对散乱点云快速简化的一种算法 其基本思想为 根据点云数据的密度确定最小三维网格 体素 的边长为 a b c a b c a b c 计
  • 2022春招前端最新面试题分享(途牛旅游网)

    途牛旅游网 公司及岗位信息 公司 途牛旅游网 岗位 前端校招 地点 南京 薪资 16k 14薪 面试结果 通过 一面 2022 04 26 自我介绍 介绍一下实习做过的项目 难点 收获 体会 TCP和UDP的区别 TCP如何保持可靠 TCP
  • Java多线程中join()方法和sleep()方法的区别

    这里写目录标题 Java多线程中join 方法和sleep 方法的区别 结论 Java多线程中join 方法和sleep 方法的区别 1 先声明MyThread子类继承Thread类 public class MyThread extend
  • K近邻算法&计算距离&scikit-learn数据集获取——机器学习

    一 K近邻算法 1 什么是K近邻算法 k Nearest Neighbours KNN 简介 最近邻算法是一种分类算法 1968年由Cover和Hart提出 应用场景有字符识别 文本分类 图像识别等领域 该算法的思想 一个样本与数据集中的k
  • java读取文件内容

    直接上代码 两个类 一个工具类 一个测试类 工具类代码 package org example study util import lombok extern slf4j Slf4j import org apache commons la
  • oVirt engine安装手册

    oVirt Engine安装需求 硬件需求 Resource Minimum Recommended CPU 双核CPU 四核或者多个双核CPU 内存 4G内存 不安装warehouse并且内存不被其他程序使用 16G 硬盘 25G可用空间
  • selenium 下载webdriver浏览器驱动

    自动化测试要自动调用浏览器时需要用到selenium模块 官网上的定义为 Selenium 通过使用 WebDriver 支持市场上所有主流浏览器的自动化 Webdriver 是一个 API 和协议 它定义了一个语言中立的接口 用于控制 w
  • Redis实战篇(二)查询缓存

    一 什么是缓存 缓存就是数据交换的缓冲区 是存贮数据的临时地方 一般读写性能较高 1 缓存的作用 降低后端负载 提高读写效率 降低响应时间 2 缓存的成本 数据一致性成本 代码维护成本 运维成本 二 添加Redis缓存 Resource p
  • 定时任务——@Scheduled注解做定时任务

    一 这是springboot中配置静态定时任务的注解 1 在启动类上面加上 EnableScheduling 注解开启定时任务 import org springframework boot SpringApplication import
  • 淘宝准点秒杀脚本

    阿里云服务器 云小站 专享特惠 云产品推荐 阿里云 推荐一个薅羊毛教程地址 程序工厂 脚本技术交流群 212796668 开始教程 准备软件 下载地址 python脚本运行环境 zip python脚本执行未安装库 Python工具类资源
  • 一种多级缓存的系统架构

    一种多级缓存的系统架构 下面这个也是比较常用的多级缓存的系统架构图 整体流程如上图所示 1 首先接入Nginx将请求负载均衡到应用Nginx 此处常用的负载均衡算法是轮询或者一致性哈希 轮询可以使服务器的请求更加均衡 而一致性哈希可以提升应
  • torch.autograd.detect_anomaly() 工具的使用(记录)

    先放上使用方法 import torch 正向传播时 开启自动求导的异常侦测 torch autograd set detect anomaly True 反向传播时 在求导时开启侦测 with torch autograd detect
  • 蓝牙BLE信道频率

    蓝牙信道规定在物理层 有以下几个特点 调制方式 GFSK 工作在2 4GHz ISM频段 频率范围 2 400 2 4835GHz ISM频段 Industrial Scientific Medical Band 主要开放给工业 科学和医用
  • 自动售货机(java版)

    SaleMachine java package tu public class SaleMachine private int countofBeer countofJuice countofCola countofFivecent co