第四章
5.结构CandyBar包含3个成员。第一个成员储存了糖块的品牌;第二个成员储存糖块的重量(可以有小数);第三个成员储存了糖块的卡路里含量(整数)。请编写一个程序,声明这个结构,创建一个名为snack的CandyBar变量,并将其成员分别初始化
为“Mocha Munch”、2.3和350.初始化应用在声明snack时进行。最后,程序显示snack变量的内容。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const int Asize=20;
struct CandyBar
{
char brand[Asize];
double weight;
int calory;
};
int main()
{
using namespace std;
CandyBar snack={"Mocha Munch",2.3,350};
cout<<"Here's the information of snack:\n";
cout<<"brand:"<<snack.brand<<endl;
cout<<"weight:"<<snack.weight<<endl;
cout<<"calory:"<<snack.calory<<endl;
return 0;
}
6.结构CandyBar包含3个成员,如编程练习5所示。请编写一个程序,创建一个包含3个元素的CandyBar数组
,并将它们初始化为所选择的值,然后显示每个结构的内容。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
const int Asize=20;
struct CandyBar
{
char brand[Asize];
double weight;
int calory;
};
int main()
{
using namespace std;
CandyBar snack[3]={
{"Moucha Munch",2.3,350},
{"XuFuji",1.1,300},
{"Alps",0.4,100}
};
for(int i=0;i<3;i++)
{
cout<<snack[i].brand<<endl
<<snack[i].weight<<endl
<<snack[i].calory<<endl<<endl;
}
return 0;
}
7.William Wingate从事披萨饼分析服务。对于每个披萨饼,他都需要记录下列信息:
- 披萨饼公司的名称,可以有多个单词组成。
- 披萨饼的直径。
- 披萨饼的重量。
请设计一个能够存储这些信息的结构,并编写一个使用这种结构的程序。程序将请求用户输入上述信息,然后显示这些信息。请使用cin(或它的方法)和cout。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const int Size=20;
struct pizza//声明结构
{
char company[Size];
double diameter;
double weight;
};
int main()
{
using namespace std;
pizza pie;//创建一个名为pie的结构变量
cout<<"What's the name of pizza company:";
cin.getline(pie.company,Size);
cout<<"What's the diameter of pizza:";
cin>>pie.diameter;
cout<<"What's the weight of pizza:";
cin>>pie.weight;
cout<<"company:"<<pie.company<<endl;
cout<<"diameter:"<<pie.diameter<<"inches"<<endl;
cout<<"weight:"<<pie.weight<<"ounches"<<endl;
return 0;
}
第六章
3.编写一个菜单驱动程序的雏形。该程序显示提供4个选项的菜单————每个选项用一个字母标记。如果用户使用有效选项之外的字母进行响应,程序将提示用户输入一个有效的字母,直到用户这样做为止。然后,该程序使用一条swich语句,根据用户的执行一个简单的操作。该程序的运行情况如下:
Please enter one of the following choices:
c) carnivore p) pianist
t) tree g) game
f
Please enter a c,p,t, or g:q
Please enter a c,p,t, or g:t
A maple is a tree
源代码如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
int main()
{
using namespace std;
cout << "Please enter one of the following choices:\n"
<< "c)carnivore p)pianist\n"
<< "t)tree g)game\n";
cout << "Please enter a c,p,t, or g:";
char ch;
cin>>ch;
while(ch!='c'&&ch!='p'&&ch!='t'&&ch!='g')
{
cout<<"Please enter a c,p,t, or g:";
cin>>ch;
}
switch(ch)
{
case 'c':
cout<<"A maple is a carnivore.\n";
break;
case 'p':
cout<<"A maple is a painist.\n";
break;
case't':
cout<<"A maple is a tree.\n";
break;
case 'g':
cout<<"A maple is a game.\n";
}
return 0;
}
在Ncutronia王国,货币单位是tvarp,收入所得税的计算方式如下:
5000 tvarps: 不收税
5001~15000 tvarps: 10%
15001~35000 tvarps: 15%
35000 tvarps以上:20%
例如,收入在38000tvarps时,所得税为5000 x 0.00 + 10000 x 0.10 + 20000 x 0.15 + 3000 x 0.20,即4600 tvarps。请编写一个程序,使用循环
来要求用户输入收入,并报告所得税。当用户输入负数或非数字时,循环将结束。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int main()
{
using namespace std;
double income,revenue;
cout<<"请输入你的收入:";
while(cin>>income&&income>=0)
{
if(income<=5000)
revenue=0.0;
else if(income<=15000)
revenue=0.1*(income-5000);
else if(income<=35000)
revenue=0.1*(15000-5000)+0.15*(income-15000);
else
revenue=0.1*(15000-5000)+0.15*(35000-15000)+0.2*(income-35000);
cout<<"你的所得税为:"<<revenue<<endl;
cout<<"请输入你的收入:";
}
return 0;
}