团队项目2

今天主要是对先前进行的咖啡类根据项目需求做了一下修改和完善,主要是添加了蓝山咖啡种类、添加了咖啡的大小型号及其成员变量,以及添加跟多的可添加配料,最终的实现代码如下

  1 #ifndef ADDMATERIAL
  2 #define ADDMATERIAL
  3 
  4 #include<string>
  5 using namespace std;
  6 
  7 class AddMaterial
  8 {
  9 public:
 10     AddMaterial(){};
 11     void  AddCappuccino(double & p,string CupSize);        //卡布奇诺
 12     void  AddLatte(double & p, string CupSize);        //拿铁咖啡
 13     void  AddMocha(double & p, string CupSize);        //摩卡咖啡
 14     void  AddBlueMountain(double & p, string CupSize);    //蓝山咖啡
 15     void  AddCastorSugar(double & p);        //咖啡加白沙糖
 16     void  AddCubicSugar(double & p);        //咖啡加方糖糖
 17     void  AddMilk(double & p);        //咖啡加牛奶
 18     void  AddCheese(double & P);    //咖啡加奶酪
 19     double  GetExchange(double &,double &);    //找零钱
 20 };
 21 
 22 
 23 #endif ADDMATERIAL
 24 
 25 
 26 #include"AddMaterial.h"
 27 
 28 //卡布奇诺咖啡的价格,并运动到相应的位置
 29 void AddMaterial::AddCappuccino(double & p, string CupSize)
 30 {
 31     //添加运动到相应工位的代码
 32 
 33     if ( CupSize == "large")    //大杯
 34       p = p + 30;
 35     if (CupSize == "small")    //小杯
 36         p = p + 20;
 37 }
 38 
 39 //拿铁的价钱,并运动到相应的位置
 40 void AddMaterial::AddLatte(double & p, string CupSize)
 41 {
 42     //添加运动到相应工位的代码
 43 
 44     if (CupSize == "large")    //大杯
 45         p = p + 30;
 46     if (CupSize == "small")    //小杯
 47         p = p + 20;
 48 
 49 }
 50 
 51 //摩卡的价钱,并运动到相应的位置
 52 void AddMaterial::AddMocha(double & p,string CupSize)
 53 {
 54     //添加运动到相应工位的代码
 55 
 56     if (CupSize == "large")    //大杯
 57         p = p + 30;
 58     if (CupSize == "small")    //小杯
 59         p = p + 20;
 60 }
 61 
 62 //蓝山咖啡的价钱,并运动到相应位置
 63 void AddMaterial::AddBlueMountain(double & p,string CupSize)
 64 {
 65     //添加运动到相应工位的代码
 66 
 67     if (CupSize == "large")    //大杯
 68         p = p + 25;
 69     if (CupSize == "small")    //小杯
 70         p = p + 15;
 71 }
 72 
 73 //加糖要多加0.5元,并运动到相应的位置
 74 void AddMaterial::AddCastorSugar(double & p)    //p为咖啡的初始价格,获得添加白砂糖后的价格
 75 {
 76     //添加运动到相应工位的代码
 77 
 78     p = p + 1;
 79 
 80 }
 81 
 82 void AddMaterial::AddCubicSugar(double & p)    //p为咖啡的初始价格,获得添加白砂糖后的价格
 83 {
 84     //添加运动到相应工位的代码
 85 
 86     p = p + 1;
 87 
 88 }
 89 
 90 //加牛奶要多加1.5元,并运动到相应的位置
 91 void AddMaterial::AddMilk(double & p)    //p为咖啡的初始价格
 92 {
 93     //添加运动到相应工位的代码
 94 
 95     p = p + 1.5;
 96     
 97 }
 98 
 99 //添加奶酪多加1.5元,并运动到相应位置
100 void AddMaterial::AddCheese(double & p)    //p为咖啡的初始价格
101 {
102     //添加运动到相应工位的代码
103 
104     p = p + 1.5;
105 
106 }
107 
108 //找零钱,第一个参数是投入的金额,第二个参数是咖啡总价格
109 double  AddMaterial::GetExchange(double & inMoney, double & p)
110 {
111     return (inMoney - p);
112 }
113 
114 
115 
116 
117 #ifndef CAFFEE
118 #define CAFFEE
119 
120 #include<string>
121 #include"AddMaterial.h"
122 
123 using namespace std;
124 
125 class Caffee
126 {
127 private:
128     string caffeeName;
129     double price;
130     string Size;
131     AddMaterial add;
132 
133 public:
134     Caffee(){};
135     Caffee(string name = "",string CupSize = "");    //初始化咖啡只需要名字,首字母大写
136     void addCastorSugar();
137     void  addCubicSugar();
138     void addMilk();
139     void addCheese();
140     double getPrice();
141     double getExchane(double);
142 };
143 
144 
145 #endif CAFFEE
146 
147 
148 
149 
150 #include"Caffee.h"
151 #include<iostream>
152 using namespace std;
153 
154 Caffee::Caffee(string name, string CupSize)
155 {
156     caffeeName = name;
157     Size = CupSize;
158     price = 0.0;
159 
160     if (caffeeName == "Cappuccino")        //卡布奇诺
161          add.AddCappuccino(price,Size);
162 
163     if (caffeeName == "Latte")        //拿铁
164          add.AddCappuccino(price,Size);
165 
166     if (caffeeName == "Mocha")        //摩卡
167          add.AddCappuccino(price,Size);
168 
169     if (caffeeName == "BlueMountain")        //蓝山
170         add.AddCappuccino(price, Size);
171 
172 }
173 
174 //咖啡白沙加糖,返回价钱
175 void Caffee::addCastorSugar()
176 {
177     return add.AddCastorSugar(price);
178 }
179 
180 //咖啡加方糖,返回价钱
181 void Caffee::addCubicSugar()
182 {
183     return add.AddCubicSugar(price);
184 }
185 
186 //咖啡加牛奶,返回价格
187 void Caffee::addMilk()
188 {
189     return add.AddMilk(price);
190 }
191 
192 //咖啡加奶酪,返回价格
193 void Caffee::addCheese()
194 {
195     return add.AddCheese(price);
196 }
197 
198 //获取咖啡的价格
199 double Caffee::getPrice()
200 {
201     return price;
202 }
203 
204 //找零钱
205 double Caffee::getExchane(double inMoney)
206 {
207     if (inMoney < price)
208     {
209         cout << "请投入足够的钱!";
210         return 0;
211     }
212     else
213 
214         return add.GetExchange(inMoney, price);
215 
216 }
217 
218 
219 
220 #include<iostream>
221 #include"Caffee.h"
222 
223 using namespace std;
224 
225 int main()
226 {
227     Caffee CappuccinoL("Cappuccino","large");
228     double ini = CappuccinoL.getPrice();
229     cout << "只加咖啡时的价格" << ini <<endl;
230     CappuccinoL.addMilk();
231     ini = CappuccinoL.getPrice();
232     cout << "加牛奶之后的价格" << ini << endl;
233     CappuccinoL.addCastorSugar();
234     ini = CappuccinoL.getPrice();
235     cout << "加牛奶和白沙糖之后的价格" << ini << endl;
236 
237     Caffee CappuccinoS("Cappuccino", "small");
238     double ini2 = CappuccinoS.getPrice();
239     cout << "只加咖啡时的价格" << ini2 << endl;
240     CappuccinoS.addCheese();
241     ini2 = CappuccinoS.getPrice();
242     cout << "加奶酪之后的价格" << ini2 << endl;
243     CappuccinoS.addCubicSugar();
244     ini2 = CappuccinoS.getPrice();
245     cout << "加牛奶和白沙糖之后的价格" << ini2 << endl;
246 
247     system("pause");
248     return 0;
249 
250 }

测试结果:

原文地址:https://www.cnblogs.com/RXWein/p/5115099.html