zoukankan      html  css  js  c++  java
  • 团队项目任务

    在团队项目的任务分配中,我的工作是和张斌斌写底层的代码,我主要负责编写咖啡类,使得能够实现按照咖啡的名字决定咖啡的单价,并且可以按照自己的意愿添加牛奶和糖,并且让机器运动到相应的位置

    咖啡类中定义了成员变量price和caffeeName,构造函数根据咖啡的名字决定咖啡的价格

    咖啡类中还添加了AddMaterial类作为成员变量,AddMaterial类没有成员变量只有几个

    可执行的函数,表示添加的咖啡的种类,是否在咖啡中添加牛奶和糖,在调用成员函数的时候

    咖啡的价格也会随着改变。

    在咖啡类中添加AddMaterial成员变量的好处是在咖啡的原料的添加料改变是只需要修改AddMaterial

    类中的底层函数二不需要修改Caffee类中的函数,能保持上层的稳定性。

    该功能还能根据后续的要求变化继续扩展。

    以下是实现代码

      1 #ifndef ADDMATERIAL
      2 #define ADDMATERIAL
      3 
      4 class AddMaterial
      5 {
      6 public:
      7     AddMaterial(){};
      8     void  AddCappuccino(double &);        //卡布奇诺
      9     void  AddLatte(double &);        //拿铁咖啡
     10     void  AddMocha(double &);        //摩卡咖啡
     11     void  AddSugar(double &);        //咖啡加糖,返回价格
     12     void  AddMilk(double &);        //咖啡加牛奶,返回价格
     13     double  GetExchange(double &,double &);    //找零钱
     14 };
     15 
     16 
     17 #endif ADDMATERIAL
     18 
     19 
     20 
     21 #include"AddMaterial.h"
     22 
     23 //卡布奇诺咖啡的价格,并运动到相应的位置
     24 void AddMaterial::AddCappuccino(double & p)
     25 {
     26     //添加运动到相应工位的代码
     27 
     28     p = p + 5;
     29 }
     30 
     31 //拿铁的价钱,并运动到相应的位置
     32 void AddMaterial::AddLatte(double & p)
     33 {
     34     //添加运动到相应工位的代码
     35 
     36     p = p + 4;
     37 
     38 }
     39 
     40 //摩卡的价钱,并运动到相应的位置
     41 void AddMaterial::AddMocha(double & p)
     42 {
     43     //添加运动到相应工位的代码
     44 
     45     p = p + 6;
     46 
     47 }
     48 
     49 //加糖要多加0.5元,并运动到相应的位置
     50 void AddMaterial::AddSugar(double & p)    //p为咖啡的初始价格
     51 {
     52     //添加运动到相应工位的代码
     53 
     54     p = p + 0.5;
     55 
     56 }
     57 
     58 //加牛奶要多加0.8元,并运动到相应的位置
     59 void AddMaterial::AddMilk(double & p)    //p为咖啡的初始价格
     60 {
     61     //添加运动到相应工位的代码
     62 
     63     p = p + 0.8;
     64     
     65 }
     66 
     67 //找零钱,第一个参数是投入的金额,第二个参数是咖啡总价格
     68 double  AddMaterial::GetExchange(double & inMoney, double & p)
     69 {
     70     return (inMoney - p);
     71 }
     72 
     73 
     74 
     75 #ifndef CAFFEE
     76 #define CAFFEE
     77 
     78 #include<string>
     79 #include"AddMaterial.h"
     80 
     81 using namespace std;
     82 
     83 class Caffee
     84 {
     85 private:
     86     string caffeeName;
     87     double price;
     88     AddMaterial add;
     89 
     90 public:
     91     Caffee(){};
     92     Caffee(string name = "");    //初始化咖啡只需要名字,首字母大写
     93     void addSugar();
     94     void addMilk();
     95     double getPrice();
     96     double getExchane(double);
     97 };
     98 
     99 
    100 #endif CAFFEE
    101 
    102 
    103 #include"Caffee.h"
    104 #include<iostream>
    105 using namespace std;
    106 
    107 Caffee::Caffee(string name)
    108 {
    109     caffeeName = name;
    110     price = 0.0;
    111 
    112     if (caffeeName == "Cappuccino")        //卡布奇诺
    113          add.AddCappuccino(price);
    114 
    115     if (caffeeName == "Latte")        //拿铁
    116          add.AddCappuccino(price);
    117 
    118     if (caffeeName == "Mocha")        //摩卡
    119          add.AddCappuccino(price);
    120 
    121 }
    122 
    123 //咖啡加糖,返回价钱
    124 void Caffee::addSugar()
    125 {
    126     return add.AddSugar(price);
    127 }
    128 
    129 //咖啡加牛奶,返回价格
    130 void Caffee::addMilk()
    131 {
    132     return add.AddMilk(price);
    133 }
    134 
    135 //获取咖啡的价格
    136 double Caffee::getPrice()
    137 {
    138     return price;
    139 }
    140 
    141 //找零钱
    142 double Caffee::getExchane(double inMoney)
    143 {
    144     if (inMoney < price)
    145     {
    146         cout << "请投入足够的钱!";
    147         return 0;
    148     }
    149     else
    150 
    151         return add.GetExchange(inMoney, price);
    152 
    153 }
    154 
    155 
    156 
    157 #include<iostream>
    158 #include"Caffee.h"
    159 
    160 using namespace std;
    161 
    162 int main()
    163 {
    164     Caffee Cappuccino("Cappuccino");
    165     double ini = Cappuccino.getPrice();
    166     cout << "只加咖啡时的价格" << ini <<endl;
    167     Cappuccino.addMilk();
    168     ini = Cappuccino.getPrice();
    169     cout << "加牛奶之后的价格" << ini << endl;
    170     Cappuccino.addSugar();
    171     ini = Cappuccino.getPrice();
    172     cout << "加牛奶和糖之后的价格" << ini << endl;
    173 
    174     system("pause");
    175     return 0;
    176 
    177 }

    测试运行效果图

  • 相关阅读:
    【caffe】create_mnist.sh在windows下的解决方案
    【caffe】loss function、cost function和error
    【caffe】未定义函数或变量caffe_
    【caffe】无法找到gpu/mxGPUArray.h: No such file or directory
    maven常见问题处理(3-1)修改maven 默认使用的 jdk 版本
    SpringCloud是什么?
    SpringCloud的服务网关zuul
    SpringCloud的EurekaClient : 客户端应用访问注册的微服务(有断路器场景)
    SpringBoot 概念和起步
    YML(1)什么是 YML
  • 原文地址:https://www.cnblogs.com/RXWein/p/5102562.html
Copyright © 2011-2022 走看看