C++ Primer plus第六版编程答案第六章

本文展示了C++编程中的几个实例,包括字符处理、数组和结构体的使用、控制流程(如switch和循环)、用户输入处理以及文件I/O操作,展示了基础的C++编程技巧。
摘要由CSDN通过智能技术生成

目录

1.cpp

2.cpp

3.cpp

4.cpp

5.cpp

6.cpp

7.cpp

8.cpp

9.cpp


1.cpp

#include<iostream>
#include<cctype>
using namespace std;
int main()
{
    char ch;
    cin.get(ch);
    while (isalpha(ch))
    {
        if (islower(ch))
            cout << char(toupper(ch)) <<endl;
        if (isupper(ch))
            cout << char(tolower(ch)) <<endl;
        if (ch == '@')
            break;
        cin.get(ch);
        cin.get(ch);
    }
    
    return 0;
}

2.cpp

#include<iostream>
using namespace std;
int main()
{
    const int Arsize = 20;
    double li[Arsize] ;
    int i = 0; 
    while (cin >> li[i])
    {
        i++;
        if (i == 10)
            break;
    }
    double sum = 0;
    for (int j = 0; j < i; j++)
    {
        sum += li[j];
    }
    double average = sum/i;
    int count = 0;
    for (int j = 0; j < i; j++)
    {
        if (li[j] > average)
            count++;
    }
    cout << "average:" << average << "有" << count << "个数字大于平均值" <<endl;   
    return 0;
}

3.cpp

#include<iostream>
using namespace std;
int main()
{
    cout << "Please enter one of the following choice:" <<endl;
    cout << "c) carnivore            p) pianist" <<endl;
    cout << "t) tree                 g) game" <<endl;
    char ch;
    cin >> ch;
    while (1)
    {
        if (ch == 'c' || ch == 'p' || ch == 't' || ch == 'g')
            break;
        else
        {
            cout << "Please enter a c, p, t, or g:";
            cin >> ch;
        }
    }
    
    switch (ch)
    {
    case 'c':
        cout << "is a c" <<endl;
        break;
    case 'p':
        cout << "is a p" <<endl;
        break;
    case 't':
        cout << "is a t" <<endl;
        break;
    case 'g':
        cout << "is a g" <<endl;
    default:
        break;
    }
    return 0;
}

4.cpp

#include<iostream>
using namespace std;
const int Arsize = 20;
struct bop
{
    char fullname[Arsize]; // real name
    char title[Arsize];  // job title
    char bopname[Arsize]; // secret BOP name
    int preference; // 0 = fullname, 1 = title, 2= bopname
    /* data */
};

int main()
{   
    bop* B = new bop[3]
    {
        {"aa_bb","aa","bb",2},
        {"cc_dd","cc","dd",1},
        {"ee_ff","ee","ff",0}
    };
    cout << "a. display by name     b. display by title" <<endl;
    cout << "c. display by bopname  d. display by preference" <<endl;
    cout << "q. quit" <<endl;
    cout << "Enter your choice:";
    while (1)
    {
        /* code */
        char ch;
        cin >> ch;
        switch (ch)
        {
        case 'a':
            for (int i = 0; i < 3; i++)
            {
                cout << B[i].fullname <<endl;
            }
            break;
        case 'b':
            for (int i = 0; i < 3; i++)
            {
                cout << B[i].title <<endl;
            }
            break;
        case 'c':
            for (int i = 0; i < 3; i++)
            {
                cout << B[i].bopname <<endl;
            }
            break;
        case 'd':
            for (int i = 0; i < 3; i++)
            {
                if (B[i].preference == 0)
                    cout << B[i].fullname <<endl;
                else if (B[i].preference == 1)
                {
                    cout << B[i].title <<endl;
                }
                else if (B[i].preference == 2)
                {
                    cout << B[i].bopname <<endl;
                }               
            }
            break;
        case 'q':
            cout << "Bye!" <<endl;
            break;     
        default:
            break;
        }
        if (ch == 'q')
            break;
        else
            cout << "Next choice:";
        
    }
    
    return 0;
}

5.cpp

#include<iostream>
using namespace std;
int main()
{
    double money;
    double tax = 0;
    cout << "请输入收入:";
    while (cin >> money)
    {
        if (money < 0)
            break;
        if (money <= 5000)
        {
            cout << "税收:" << tax <<endl;
        }
        else if ((money > 5000) && (money <= 15000))
        {
            tax = (money - 5000)*0.1;
            cout << "税收:" << tax <<endl;
        }
        else if ((money > 15000) && (money <= 35000))
        {
            tax = 10000*0.1 + (money - 15000)*0.15; 
            cout << "税收:" << tax <<endl;
        }
        else if ((money > 35000))
        {
            tax = 10000*0.1 + 20000*0.15 + (money - 35000)*0.2;
            cout << "税收:" << tax <<endl;
        }

        cout << "请输入收入:";
        
        /* code */
    }
    
    return 0;

}

6.cpp

#include<iostream>
#include<string>
using namespace std;
struct donor
{
    string name;
    double money;
    /* data */
};

int main()
{
    int number;
    cout << "请输入捐献者数目:";
    cin >> number;
    cin.get();
    donor* d = new donor[number];
    for (int i = 0; i < number; i++)
    {
        cout << "请输入第" << i+1 << "个捐献者的姓名:";
        getline(cin,d[i].name);
        cout << "请输入第" << i+1 << "个捐献者的款项:";
        cin >> d[i].money;
        cin.get();
    }
    int sign_grand = 0;
    int sign = 0;
    for (int i = 0; i < number; i++)
    {
        if (d[i].money > 10000)
        {
            cout << "Grand Partons " << d[i].name << " " << d[i].money <<endl;
            sign_grand = 1;
        }
    }
    if (sign_grand == 0)
        cout << "Grand Partons none" <<endl;
    for (int i = 0; i < number; i++)
    {
        if (d[i].money <= 10000)
        {
            cout << "Partons " << d[i].name << " " << d[i].money <<endl;
            sign = 1;
        }
    } 
    if (sign == 0)
        cout << "Partons none" <<endl;
    return 0;
}

7.cpp

#include<iostream>
#include<cctype>
#include<cstring>
using namespace std;
/* 元音 a e i o u*/
int main()
{
    cout << "Enter words (q to quit)";
    const int Arsize = 20;
    char word[Arsize];
    cin >> word;
    int count_v = 0;
    int count_c = 0;
    int count = 0;
    while (strcmp(word,"q"))
    {
        if (isalpha(word[0]))
        {   
            if (word[0] == 'a' || word[0] == 'e' || word[0] == 'i' || word[0] == 'o' || word[0] == 'u')
                count_v++;
            else
                count_c++;    
        }
        else
            count++;
        cin >> word;
        
    }
    cout << count_v << " words beginning with vowels" <<endl;
    cout << count_c << " words beginning with consonants" <<endl;
    cout << count << " others" <<endl;
    return 0;
}

8.cpp

#include<iostream>
#include<fstream>
using namespace std;
int main()
{
    ifstream inFile;
    inFile.open("8.txt");
    char ch;
    int count = 0;
    while (inFile >> ch)
    {
        count++;
    }
    cout << count;
    inFile.close();
    return 0;
}

9.cpp

#include<iostream>
#include<string>
#include<fstream>
using namespace std;
struct donor
{
    string name;
    double money;
    /* data */
};

int main()
{
    int number;
    ifstream inFile;
    inFile.open("9.txt");
    inFile >> number;
    inFile.get();
    donor* d = new donor[number];
    for (int i = 0; i < number; i++)
    {
        getline(inFile,d[i].name);
        inFile >> d[i].money;
        inFile.get();
    }
    inFile.close();
    int sign_grand = 0;
    int sign = 0;
    for (int i = 0; i < number; i++)
    {
        if (d[i].money > 10000)
        {
            cout << "Grand Partons " << d[i].name << " " << d[i].money <<endl;
            sign_grand = 1;
        }
    }
    if (sign_grand == 0)
        cout << "Grand Partons none" <<endl;
    for (int i = 0; i < number; i++)
    {
        if (d[i].money <= 10000)
        {
            cout << "Partons " << d[i].name << " " << d[i].money <<endl;
            sign = 1;
        }
    } 
    if (sign == 0)
        cout << "Partons none" <<endl;
    return 0;
}

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值