当前位置:首页 > C++Primer - Plus(第五版)习题解答
Solutions for Programming Exercises in C++ Primer Plus, 5th Edition
items[top++] = item; return true; } else
return false; }
bool Stack::pop(Item & item) {
if (top > 0) {
item = items[--top]; return true; } else
return false; }
// pe10-5.cpp
#include
#include \// link with pe10stack.cpp
void get_customer(customer & cu); int main(void) {
using namespace std;
Stack st; // create a stack of customer structures customer temp;
double payments = 0; char c;
cout << \
<< \ while (cin >> c && (c = toupper(c)) != 'Q') {
while (cin.get() != '\\n') continue;
if (c != 'A' && c != 'P') {
cout << \ continue; }
switch (c) {
case 'A' : if (st.isfull())
cout << \ else {
get_customer(temp); st.push(temp); }
break;
case 'P' : if (st.isempty())
cout << \
SP 25 of 73 September 2, 2004
Solutions for Programming Exercises in C++ Primer Plus, 5th Edition
else {
st.pop(temp);
payments += temp.payment;
cout << temp.fullname << \ cout << \ << payments << \ }
break;
default : cout << \ }
cout << \
<< \ }
cout << \ return 0; }
void get_customer(customer & cu) {
using namespace std;
cout << \ cin.getline(cu.fullname,35);
cout << \ cin >> cu.payment;
while (cin.get() != '\\n') continue; }
PE 10-8
// pe10-8arr.h -- header file for a simple list class
#ifndef SIMPLEST_ #define SIMPLEST_
// program-specific declarations
const int TSIZE = 45; // size of array to hold title struct film {
char title[TSIZE]; int rating; };
// general type definitions typedef struct film Item;
const int MAXLIST = 10; class simplist {
private:
Item items[MAXLIST]; int count; public:
simplist(void); bool isempty(void); bool isfull(void);
SP 26 of 73 September 2, 2004
Solutions for Programming Exercises in C++ Primer Plus, 5th Edition
int itemcount();
bool additem(Item item);
void transverse( void (*pfun)(Item item)); };
#endif
// pe10-8arr.cpp -- functions supporting simple list operations #include \
simplist::simplist(void) {
count = 0; }
bool simplist::isempty(void) {
return count == 0; }
bool simplist::isfull(void) {
return count == MAXLIST; }
int simplist::itemcount() {
return count; }
bool simplist::additem(Item item) {
if (count == MAXLIST) return false; else
items[count++] = item; return true; }
void simplist::transverse( void (*pfun)(Item item)) {
for (int i = 0; i < count; i++) (*pfun)(items[i]); }
// pe10-8.cpp -- using a class definition
#include
#include
#include \ // array version
void showmovies(Item item); // to be used by transverse()
int main(void) {
using namespace std;
SP 27 of 73 September 2, 2004
Solutions for Programming Exercises in C++ Primer Plus, 5th Edition
simplist movies; // creates an empty list Item temp;
if (movies.isfull()) // invokes isfull() member function {
cout << \ exit(1); }
cout << \
while (cin.getline(temp.title,TSIZE) && temp.title[0] != '\\0') {
cout << \ cin >> temp.rating;
while(cin.get() != '\\n') continue;
if (movies.additem(temp) == false) {
cout << \ break; }
if (movies.isfull()) {
cout << \ break; }
cout << \ }
if (movies.isempty())
cout << \ else {
cout << \ movies.transverse(showmovies); }
cout << \ return 0; }
void showmovies(Item item) {
std::cout << \ << item.rating << std::endl; }
Chapter 11
PE 11-2
// pe11-2.h -- Vector class with <<, mode state // modified implementation #ifndef MODVECTOR_H_ #define MODVECTOR_H_ #include
SP 28 of 73 September 2, 2004
共分享92篇相关文档