⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 selsolutions5.txt

📁 一本很好的C++学习的丛书!初学者必看的
💻 TXT
📖 第 1 页 / 共 5 页
字号:
Solutions for Programming Exercises in C++ Primer Plus, 5th Edition

Chapter 2

// pe2-2.cpp

#include <iostream>

int main(void)
{
    using namespace std;
    cout << "Enter a distance in furlongs: ";
    double furlongs;
    cin >> furlongs;
    double feet;
    feet = 220 * furlongs;
    cout << furlongs << " furlongs = "
         << feet << " feet\n";

    return 0;
}


// pe2-3.cpp

#include <iostream>
using namespace std;

void mice();
void run();
int main()
{
   mice();
   mice();
   run();
   run();

   return 0;
}

void mice()
{
   cout << "Three blind mice\n";
}

void run()
{
   cout << "See how they run\n";
}


// pe2-4.cpp

#include <iostream>

double C_to_F(double);
int main()
{
    using namespace std;
    cout << "Enter a temperature in Celsius: ";
    double C;
    cin >> C;
    double F;
    F = C_to_F(C);
    cout << C << " degrees Celsius = "
         << F << " degrees Fahrenheit\n";

   return 0;
}

double C_to_F(double temp)
{
    return 1.8 * temp + 32.0;
}

Chapter 3

// pe3-1.cpp

#include <iostream>

const int Inch_Per_Foot = 12;

int main(void)
{
    using namespace std;
// Note: some environments don't support the backspace character
    cout << "Please enter your height in inches: ___/b/b/b ";
    int ht_inch;
    cin >> ht_inch;
    int ht_feet = ht_inch / Inch_Per_Foot;
    int rm_inch = ht_inch % Inch_Per_Foot;
    cout << "Your height is " << ht_feet << " feet, ";
    cout << rm_inch << " inch(es).\n";
    return 0;
}


// pe3-3.cpp
#include <iostream>
const double MINS_PER_DEG = 60.0;
const double SECS_PER_MIN = 60.0;
int main()
{
    using namespace std;
    
    int degrees;
    int minutes;
    int seconds;
    double latitude;
    
    cout << "Enter a latitude in degrees, minutes, and seconds:\n";
    cout << "First, enter the degrees: ";
    cin >> degrees;
    cout << "Next, enter the minutes of arc: ";
    cin >> minutes;
    cout << "Finally, enter the seconds of arc: ";
    cin >> seconds;
    latitude = degrees + (minutes + seconds / SECS_PER_MIN)/MINS_PER_DEG;
    cout << degrees << " degrees, " << minutes << " minutes, "
         << seconds << " seconds = " << latitude << " degrees\n";
    return 0; 
}



// pe3-5.cpp

#include <iostream>

int main(void)
{
    using namespace std;
    cout << "How many miles have you driven your car? ";
    float miles;
    cin >> miles;
    cout << "How many gallons of gasoline did the car use? ";
    float gallons;
    cin >> gallons;
    cout << "Your car got " << miles / gallons;
    cout << " miles per gallon.\n";
    return 0;
}


// pe3-6.cpp

#include <iostream>

const double KM100_TO_MILES = 62.14;
const double LITERS_PER_GALLON = 3.875;

int main ( void )
{
    using namespace std;
    double euro_rating;
    double us_rating;
    cout << "Enter fuel consumption in liters per 100 km: ";
    cin >> euro_rating;
    // divide by LITER_PER_GALLON to get gallons per 100-km
    // divide by KM100_TO_MILES to get gallons per mile
    // invert result to get miles per gallon
    us_rating = (LITERS_PER_GALLON * KM100_TO_MILES) / euro_rating;
    cout << euro_rating << " liters per 100 km is ";
    cout << us_rating << " miles per gallon.\n";
    
    return 0;
}
Chapter 4

// pe4-2.cpp -- storing strings in string objects
#include <iostream>
#include <string>
int main()
{
    using namespace std;
    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";
    return 0; 
}


// pe4-3.cpp -- storing strings in char arrays
#include <iostream>
#include <cstring>
const int SIZE = 20;
int main()
{
    using namespace std;
    char firstName[SIZE];
    char lastName[SIZE];
    char fullName[2*SIZE + 1];

    cout << "Enter your first name: ";
    cin >> firstName;   
    cout << "Enter your last name: ";
    cin >> lastName;   
    strncpy(fullName,lastName,SIZE);
    strcat(fullName, ", ");
    strncat(fullName, firstName, SIZE);
    fullName[SIZE - 1] = '\0';
    cout << "Here's the information in a single string: "
         << fullName << endl;
    return 0; 
}



// pe4-5.cpp
// a candybar  structure
struct CandyBar {
    char brand[40];
    double weight;
    int calories;
};
    
#include <iostream>

int main()
{
    using namespace std;  //introduces namespace std
    CandyBar snack = { "Mocha Munch", 2.3, 350 };
    
    cout << "Brand name: " << snack.brand << endl;
    cout << "Weight: " << snack.weight << endl;
    cout << "Calories: " << snack.calories << endl;
    
    return 0;
}


// pe4-7.ccp

#include <iostream>

const int Slen = 70;

struct pizza {
    char name[Slen];
    float diameter;
    float weight;
};

int main(void)
{
    using namespace std;
    pizza pie;
    cout << "What is the name of the pizza company? ";
    cin.getline(pie.name, Slen);
    cout << "What is the diameter of the pizza in inches? ";
    cin >> pie.diameter;
    cout << "How much does the pizza weigh in ounces? ";
    cin >> pie.weight;
    cout << "Company: " << pie.name << "\n";
    cout << "Diameter: " << pie.diameter << " inches\n";
    cout << "Weight: " << pie.weight << " ounces\n";
    return 0;
}



Chapter 5


// pe5-2.cpp

#include <iostream>

int main(void)
{
    using namespace std;
    double sum = 0.0;
    double in;
    cout << "Enter a number (0 to terminate) : ";
    cin >> in;
    while (in != 0) {
        sum += in;
        cout << "Running total = " << sum << "\n";
        cout << "Enter next number (0 to terminate) : ";
        cin >> in;
    }
    cout << "Bye!\n";
    return 0;
}


// pe5-4.cpp
// book sales
#include <iostream>

const int MONTHS = 12;
const char * months[MONTHS] = {"January", "February", "March", "April",
                          "May", "June", "July", "August", "September",
                           "October", "November", "December"};
int main()
{
    using namespace std;  //introduces namespace std
    int sales[MONTHS];
    int month;
    
    cout << "Enter the monthly sales for \"C++ for Fools\":\n";
    for (month = 0; month < MONTHS; month++)
    {
        cout << "Sales for " << months[month] << ": ";
        cin >> sales[month];
    }
    
    double total = 0.0;
    for (month = 0; month < MONTHS; month++)
        total += sales[month];
    
    cout << "Total sales: " << total << endl;
    return 0;
}



// pe5-6.cpp

#include <iostream>

struct car { char name[20]; int year;};

int main(void)
{
    using namespace std;
    int n;
    cout << "How many cars do you wish to catalog?: ";

    cin >> n;

    while(cin.get() != '\n')    // get rid of rest of line
        ;

    car * pc = new car [n];

    int i;
    for (i = 0; i < n; i++)
    {
        cout << "Car #" << (i + 1) << ":\n";
        cout << "Please enter the make: ";
        cin.getline(pc[i].name,20);
        cout << "Please enter the year made: ";
        cin >> pc[i].year;
        while(cin.get() != '\n')    // get rid of rest of line
            ;
    }
    cout << "Here is your collection:\n";
    for (i = 0; i < n; i++)
        cout << pc[i].year << " " << pc[i].name << "\n";

    delete [] pc;
    return 0;
}


// pe5-7.cpp -- count words using C-style string
    
#include <iostream>
#include <cstring>     // prototype for strcmp()
const int STR_LIM = 50;
int main()
{
    using namespace std;
    char word[STR_LIM];
    int count = 0;
    
    cout << "Enter words (to stop, type the word done):\n";
    
    while (cin >> word && strcmp("done", word))
        ++count;

    cout << "You entered a total of " << count << " words.\n";
    return 0; 
}


// pe5-9.cpp
//nested loops
    
#include <iostream>

int main()
{
    using namespace std;  //introduces namespace std
    int rows;
    int row;
    int col;
    int periods;
    
    cout << "Enter number of rows: ";
    cin >> rows;
    
    for (row = 1; row <= rows; row++)
    {
        periods = rows - row;
        for (col = 1; col <= periods; col++)
            cout << '.';
        // col already has correct value for next loop
        for (   ; col <= rows; col++)
            cout << '*';
        cout << endl;
    }
    
    return 0;
}

Chapter 6

// pe6-1.cpp
#include <iostream>
#include <cctype>
int main( )
{
    using namespace std;    //introduces namespace std
    char ch;
    
    cin.get(ch);
    while(ch != '@')
    {
        if (!isdigit(ch))
        {
            if (isupper(ch))
                ch = tolower(ch);
            else if (islower(ch))
                ch = toupper(ch);
            cout << ch;
        }
        cin.get(ch);
    }
    
    return 0;
}


// pe6-3.cpp

#include <iostream>

int main(void)
{
    using namespace std;
    cout << "Please enter one of the following choices:\n";
    cout << "c) carnivore        p) pianist\n"
         << "t) tree             g) game\n";
    char ch;
    cin >> ch;
    while (ch != 'c' && ch != 'p' && ch != 't' && ch != 'g')
    {
        cout << "Please enter a c, p, t, or g: ";
        cin >> ch;
    }
    switch (ch)
    {
        case 'c' :  cout << "A cat is a carnivore.\n";
                    break;
        case 'p' :  cout << "Radu Lupu is a pianist.\n";
                    break;
        case 't' :  cout << "A maple is a tree.\n";
                    break;
        case 'g' :  cout << "Golf is a game.\n";
                    break;
        default  :  cout <<  "The program shouldn't get here!\n";
    }
    return 0;
}


// pe6-5.cpp
// Neutronia taxation
#include <iostream>
const double LEV1 = 5000;
const double LEV2 = 15000;
const double LEV3 = 35000;
const double RATE1 = 0.10;
const double RATE2 = 0.15;
const double RATE3 = 0.20;
int main( )
{
    using namespace std;
    double income;
    double tax;
    
    cout << "Enter your annual income in tvarps: ";
    cin >> income;
    
    if (income <= LEV1)
        tax = 0;
    else if (income <= LEV2)
        tax = (income - LEV1) * RATE1;
    else if (income <= LEV3)
        tax = RATE1 * (LEV2 - LEV1) + RATE2 * (income - LEV2);
    else
        tax = RATE1 * (LEV2 - LEV1) + RATE2 * (LEV3 - LEV2)
             + RATE3 * (income - LEV3);
    
    cout << "You owe Neutronia " <<  tax << " tvarps in taxes.\n";
    
    return 0;
}


// pe6-7.cpp
#include <iostream>
#include <string>
int main()
{
    using namespace std;
    string word;
    char ch;
    int vowel = 0;
    int consonant = 0;
    int other = 0;
    cout << "Enter words (q to quit):\n";
    cin >> word;
    while ( word != "q")
    {
        ch = tolower(word[0]);
        if (isalpha(ch))
        {
            if (ch == 'a' || ch == 'e' || ch ==  'i' || ch == 'o' 
                          || ch == 'u')
                vowel++;
            else
                consonant++;
        }
        else
            other++;
        cin >> word;
    }
    cout << vowel <<" words beginning with vowels\n";
    cout << consonant << " words beginning with consonants\n";
    cout << other << " others\n";

    return 0; 
}


// pe6-8.cpp -- counting characters
#include <iostream>
#include <fstream>          // file I/O suppport
#include <cstdlib>          // support for exit()
const int SIZE = 60;
int main()
{
    using namespace std;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -