您的位置:首页 > 编程语言 > C语言/C++

【第四章】C++ Primer plus 的编程练习题(选取部分)

2018-02-02 10:19 573 查看
/***********************************
2017年9月30日15:06:09
Athor:xiyuan255
Course:C++
Contain:review4.cpp
Reference: C++ Primer plus
说明:C++ Primer plus第四章的练习题(选取部分)
【 P124 】
*************************************/
// review4.cpp -- C++ Primer plus 第四章练习题

#include <iostream>

#include <string>  // exsampleNo2 field
#include <array>   // exsampleNo10 field

using namespace std;

void exampleNo1(void);
void exampleNo2(void);
void exampleNo3(void);
void exampleNo4(void);
void exampleNo6(void);
void exampleNo7(void);
void exampleNo8(void);
void exampleNo10(void);

int main(void)
{
//exampleNo1();   // example 1 test
//exampleNo2();   // example 2 test
//exampleNo3();   // example 3 test
//exampleNo4();   // example 4 test
//exampleNo6();   // example 6 test
//exampleNo7();   // example 7 test
//exampleNo8();   // example 8 test
exampleNo10();   // example 10 test

return 0;
}

void exampleNo1(void)
{
cout << "What is your first name? ";
char first_name[20];
cin.getline(first_name, 20);
cout << "What is your last name? ";
char last_name[10];
cin >> last_name;
cout << "What letter grade do your deserve? ";
char letter;
cin >> letter;
cout << "What is your age? ";
int age;
cin >> age;
cout << "Name: " << first_name << ", " << last_name << endl;
cout << "Grade: " << (char)(letter + 1) << endl;
cout << "Age: " << age << endl;
}
/**
输出结果:
What is your first name? Betty Sue
What is your last name? Yewe
What letter grade do your deserve? B
What is your age? 22
Name: Betty Sue, Yewe
Grade: C
Age: 22
*/

void exampleNo2(void)
{
string name;
string dessert;

cout << "Enter your name: \n";
getline(cin, name);  // reads through newline
cout << "Enter your favorite dessert: \n";
getline(cin, dessert);
cout << "I have some delicious " << dessert;
cout << " for you, " << name << ".\n";
}
/**
输出结果:
Enter your name:
Dirk Hammernose
Enter your favorite dessert:
Radish Torte
I have some delicious Radish Torte for you, Dirk Hammernose.
*/

void exampleNo3(void)
{
cout << "Enter your first name: ";
char first_name[20];
cin.getline(first_name, 20);
cout << "Enter your last name: ";
char last_name[20];
cin.getline(last_name, 20);
cout << "Here's the infomation in a single string: "
<< last_name << ", " << first_name << endl;
}
/**
输出结果:
Enter your first name: Flip
Enter your last name: Fleming
Here's the infomation in a single string: Fleming, Flip
*/

void exampleNo4(void)
{
cout << "Enter your first name: ";
string first_name;
getline(cin, first_name);
cout << "Enter your last name: ";
string last_name;
getline(cin, last_name);
cout << "Here's the infomation in a single string: "
<< last_name << ", " << first_name << endl;
}
/**
输出结果:
Enter your first name: Flip
Enter your last name: Fleming
Here's the infomation in a single string: Fleming, Flip
*/

void exampleNo6(void)
{
struct CandyBar {
char name[20];
float weight;
int calorie;
};

CandyBar snack = { "Mocha Munch", 2.3f, 350 }; // test exampleNo5
CandyBar snarray[3] = {
{ "Chocolate", 2.8f, 400 },
{ "Cotton Candy", 2.5f, 420},
{ "Hamburger", 3.1f, 350}
};

/* 使用new来分配CandyBar类型的数组 例9 */
CandyBar * psnarray = new CandyBar[3];

cout << "snarray[0]{ " << "name: " << snarray[0].name
<< ", weight: " << snarray[0].weight
<< ", calorie: " << snarray[0].calorie << " }\n";
cout << "snarray[1]{ " << "name: " << (snarray + 1)->name
<< ", weight: " << (snarray + 1)->weight
<< ", calorie: " << (snarray + 1)->calorie << " }\n";
cout << "snarray[2]{ " << "name: " << (*(snarray + 2)).name
<< ", weight: " << (*(snarray + 2)).weight
<< ", calorie: " << (*(snarray + 2)).calorie << " }\n";
}
/**
输出结果:
snarray[0]{ name: Chocolate, weight: 2.8, calorie: 400 }
snarray[1]{ name: Cotton Candy, weight: 2.5, calorie: 420 }
snarray[2]{ name: Hamburger, weight: 3.1, calorie: 350 }
*/

void exampleNo7(void)
{
struct pizza_msg {
char company[40];
float diameter;
float weight;
};

pizza_msg pmstrct;
cout << "请输入披萨所属的公司名称: ";
cin >> pmstrct.company;
cout << "请输入披萨的直径: ";
cin >> pmstrct.diameter;
cout << "请输入披萨的重量: ";
cin >> pmstrct.weight;

cout << "该披萨的信息如下:\n";
cout << "公司名称:" << pmstrct.company << endl;
cout << "直径:" << pmstrct.diameter << endl;
cout << "重量:" << pmstrct.weight << endl;
}
/**
输出结果:
请输入披萨所属的公司名称: jingzunpisai
请输入披萨的直径: 12.0
请输入披萨的重量: 256
该披萨的信息如下:
公司名称:jingzunpisai
直径:12
重量:256
*/

void exampleNo8(void)
{
char * pcompany = new char[40];
float * pdiameter = new float;
float * pweight = new float;

cout << "请输入披萨的直径: ";
cin >> (*pdiameter);
cout << "请输入披萨所属的公司名称: ";
cin >> pcompany;
cout << "请输入披萨的重量: ";
cin >> (*pweight);

cout << "该披萨的信息如下:\n";
cout << "直径:" << (*pdiameter) << endl;
cout << "公司名称:" << pcompany << endl;
cout << "重量:" << (*pweight) << endl;

delete pdiameter;
delete [] pcompany;
delete pweight;
}
/**
输出结果:
请输入披萨的直径: 20.5
请输入披萨所属的公司名称: jingzunpisai
请输入披萨的重量: 320
该披萨的信息如下:
直径:20.5
公司名称:jingzunpisai
重量:320
*/

void exampleNo10(void)
{
const int Number = 3;
array<float, Number> grade;

cout << "请输入短跑40米的第一次的成绩(秒):";
cin >> grade[0];
cout << "请输入短跑40米的第二次的成绩(秒):";
cin >> grade[1];
cout << "请输入短跑40米的第三次的成绩(秒):";
cin >> grade[2];

cout << "共 " << Number << " 次短跑的平均成绩是:";
cout << (grade[0] + grade[1] + grade[2]) / Number << " 秒.\n";
}
/**
输出结果:
请输入短跑40米的第一次的成绩(秒):5.12
请输入短跑40米的第二次的成绩(秒):6.36
请输入短跑40米的第三次的成绩(秒):4.96
共 3 次短跑的平均成绩是:5.48 秒.
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: