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