【第四章】C++ Primer plus 的編程練習題(選取部分)

/***********************************
	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 秒.
*/

發佈了76 篇原創文章 · 獲贊 11 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章