c++ Primer Plus第六版 第四章 课后编程练习

本文提供了C++ Primer Plus第六版第四章的课后编程练习解答,包括使用C++ string类改进程序,结构体操作,以及数组和字符串处理等实践题目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编程练习

c++ Primer Plus第六版 第四章 课后编程练习

第一题

/* 编写一个c++程序,数下数输出示例所示的那样请求并显示信息:
"What is your first name? Betty Sue
What is your last name? Yewe
What letter grade do you deserve? B
What is your age? 22
Name: Yewe, Betty Sue
Grade: C
Age: 22
*/ 

#include<iostream>
#include<string>
#include<cstring>

using namespace std;


class slc
{
private:
	string First_Name;
	string Last_Name;
	int Age;
	char Grade;
public:
	slc();
	void sle(string & fname, string & lname, int age, char grade);
	void print();
};

slc::slc()
{
	Age = 1;
	Grade = 'A';

}
void slc::sle(string & fname, string & lname, int age, char grade)
{
	First_Name = fname;
	Last_Name = lname;
	Age = age;
	Grade = grade + 1;
}
void slc::print()
{
	cout << "Name: " << Last_Name<< ',' << First_Name <<endl;
	cout << "Grade: " << Grade <<endl;
	cout << "Age: " << Age <<endl;
}
int main()
{
	slc ligoudan;
	char grade;
	int age;
	string fname, lname;
	cout << "What is your first name? ";
	cin.get();
	cin >> fname;
	cout << "What is your last name? ";
	cin >> lname;
	cin.get();
	cout << "What letter grade do you deserve? ";
	cin >> grade;
	cin.get();
	cout << "What is your age? ";
	cin >> age;
	ligoudan.sle(fname, lname, age, grade);
	ligoudan.print();
	return 0;
}

第二题


/*修改程序清单4.4, 使用C++ string 类而不是char数组。*/

#include<iostream>
#include<string>


using namespace std;

int main()
{
	//const int ArSize = 20;
	string name;
	string dessert;

	cout << "Enter your name\n";
	getline(cin, name);
	cout << "Enter your favoerite dessert:\n";
	getline(cin, dessert);
	cout << "I have some delicious " << dessert;
	cout << "for you, " << name << ".\n";
	return 0;
}

第三题

#define _CRT_SECURE_NO_WARNINGS//注意!!!!此处是因为下方的strcat并不安全,使用此宏定义关闭(C4996)警告
#include<iostream>
#include<cstring>
using namespace std;

int main()
{
	const int Size = 100;
	char L_name[Size];
	char F_name[Size];
	cout << "Enter your first name: ";
	cin >> F_name;
	cin.get();
	cout << "Enter your last name: ";
	cin >> L_name;
	strcat(L_name, ", ");//使用strcat_s更加安全
	strcat (L_name, F_name);
	cout << "Here`s the information in a single string: " << L_name;

	return 0;
}

第四题

#include<iostream>
#include<string>
#include<cstring>

using namespace std;

int main()
{
	string f_name, l_name, name;
	cout << "Enter your first name: ";
	cin >> f_name;
	cin.get();
	cout << "Enter your last name: ";
	cin >> l_name;
	name = l_name + ", " + f_name;
	cout << "Here`s the information in a single string: " << name;
	return 0;
}

第五题

#include<iostream>
#include<string>

using namespace std;

struct CandyBar
{
	string Name;
	double Weight;
	int Calorie;
};
int main()
{
	CandyBar snack;
	snack.Name = "Mocha Munch";
	snack.Weight = 2.3;
	snack.Calorie = 350;
	cout << snack.Name << endl;
	cout << snack.Weight << endl;
	cout << snack.Calorie << endl;
	return 0;
}

第六题


#include<iostream>
#include<string>

using namespace std;

struct CandyBar
{
	string Name;
	double Weight;
	int Calorie;
};
int main()
{
	CandyBar snack;
	snack.Name = "Mocha Munch";
	snack.Weight = 2.3;
	snack.Calorie = 350;
	cout << snack.Name << endl;
	cout << snack.Weight << endl;
	cout << snack.Calorie << endl;
	return 0;
}

第七题

#include<iostream>
#include<string>

using namespace std;

struct William_Wingate
{
	string Name;
	double Diameter;
	int Weight;
};
void getinl(string & a, double b, int c,William_Wingate & snack)
{
	snack.Name = a;
	snack.Diameter = b;
	snack.Weight = c;
	cout << snack.Name << endl;
	cout << snack.Diameter << endl;
	cout << snack.Weight << endl;
}
int main()
{
	William_Wingate snack;
	string name;
	double diameter;
	int weight;
	cout << "Enter your name: ";
	cin >> name;
	cout << "Enter your diameter: ";
	cin >> diameter;
	cout << "Enter your weight: ";
	cin >> weight;
	getinl(name, diameter, weight, snack);
	return 0;
}

第八题

#include<iostream>
#include<string>

using namespace std;

struct William_Wingate
{
	string Name;
	double Diameter;
	int Weight;
};
void getinl(string & a, double b, int c, William_Wingate & snack)
{
	snack.Name = a;
	snack.Diameter = b;
	snack.Weight = c;
	cout << snack.Name << endl;
	cout << snack.Diameter << endl;
	cout << snack.Weight << endl;
}
int main()
{
	William_Wingate *snack;
	snack = new William_Wingate;
	string name;
	double diameter;
	int weight;
	cout << "Enter your diameter: ";
	cin >> diameter;
	cout << "Enter your name: ";
	cin >> name;
	cout << "Enter your weight: ";
	cin >> weight;
	getinl(name, diameter, weight, *snack);
	delete snack;
	return 0;
}

第九题


#include<iostream>
#include<string>

using namespace std;

struct CandyBar
{
	string Name;
	double Weight;
	int Calorie;
};
int main()
{
	int i, j;
	CandyBar *snack = new CandyBar[3]{
		{ "Mocha Munch", 2.3, 350 },
		{ "Banana", 3.5, 400 },
		{ "HAHAHAHA", 3.0, 370 }
	};
	for (i = 0; i < 3; i++)
	{
		cout << snack[i].Name << endl;
		cout << snack[i].Weight << endl;
		cout << snack[i].Calorie << endl;
	}return 0;
}

第十题

#include<iostream>
#include<string>
#include<array>

using namespace std;


int main()
{
	array<int, 3>arr;
	int i;
	for (i = 0; i < 3; i++)
	{
		cout << " putin your miles " << i << ": ";
		cin >> arr[i];
	}
	for (i = 0; i < 3; i++) 
	{
		cout << "arr[" << i << "]: " << arr[i] << endl;
	}
	return 0;
}

不定期更新。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值