/***********************************
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 秒.
*/
【第四章】C++ Primer plus 的編程練習題(選取部分)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.