1、创建一个名为Pizza的类,用它来存储单个比萨饼的信息。这个类应包含以下内容:
几个私有变量,分别用来存储比萨的尺寸(小,中,大)、奶酪配料数量、意大利腊香肠配料数量和火腿配料数量。
一个(或多个)构造函数,用于设置所有变量的数值。
几个公有函数,用于获取和设置变量的数值。
一个名为calcCost () 的公有函数,用于返回一个表示比萨饼价格的double值。
比萨饼价格由以下内容决定:
小:10美元+每份配料2美元
中:12美元+每份配料2美元
大:14美元+每份配料2美元
编写测试代码来生成几个比萨饼信息并输出对这些披萨的价格。例如,一个大比萨饼外加一份奶酪配料、一份意大利腊香肠配料及两份火腿配料的总价格应为22美元
要求写程序注释。
2、对程序1进行扩充,需要你创建一个PizzaOrder类,这个类允许一个订单里最多存储三个披萨饼的信息。每个存储进来的披萨饼信息都应该是一个披萨饼对象。除了合适的变量和构造函数外,还要有以下的函数:
public int getNumPizzas()—返回订单中的披萨的个数。
public Pizza* getPizza1()—返回订单中的第一个披萨,如果pizza1未设置就返回null。
public Pizza* getPizza2()— 返回订单中第二个披萨,如果pizza2未设置就返回null。
public Pizza* getPizza3()— 返回订单中第三个披萨,如果pizza3未设置就返回null。
对于带有另一个PizzaOrder对象并为其比萨创建一个独立的复制构造函数。
使用旧订单作为新订单的起始点可能很有用。
编写一个main函数来测试这个类。如果订单中有两个或者三个披萨饼,则会用到setPizza2和setPizza3函数。下面的代码示例对函数进行了说明。注意代码不完整。作为程序的一部分,你必须补充完整。例如:
Pizza pizza1 = // 这一行代码创建一个大披萨饼,一份奶酪,一份火腿
Pizza pizza2 = // 这一行代码创建一个中披萨饼,两份奶酪,两份意大利腊香肠。
PizzaOrder order1 = // 这一行代码创建一个订单
order1.setNumPizzas(2); // 订单中有两个披萨
order1.setPizza1(pizza1); // 设置第一个披萨
order1.setPizza2(pizza2); // 设置第二个披萨
double total = order1.calcTotal(); // 计算订单的总价格:18+20 = 38
要求写程序注释。
回答:代码如下
第一问,set和get函数都一样,就没写全,可以自己补充一下:
#include<iostream>
using namespace std;
class Pizza {
private:
string size;
int milknumber;
int italynumber;
int hotnumber;
Pizza(string n1, int n2, int n3, int n4) {
size = n1;
milknumber = n2;
italynumber = n3;
hotnumber = n4;
}
public:
void setsize(string n) {
size = n;
}
string getsize() {
return size;
}
int calCost() {
double price;
int sum;
sum = milknumber + italynumber + hotnumber;
if (size == "小") {
price = 10.0 + 2 * sum;
}
else if (size == "中") {
price = 12.0 + 2 * sum;
}
else if (size == "大") {
price = 14.0 + 2 * sum;
}
else
{
cout << "没有该尺寸";
}
return price;
}
};
写一半哈,第二问加一个类,创建几个对象,再写一下测试主函数,你先试试看
自己先试试能写多少