C++ Primer Plus 第六章答案

本文提供了一系列C++编程练习,包括读取键盘输入并处理字符,读取数字数组计算平均值,实现菜单驱动程序,管理Benevolent Order of Programmer成员信息,计算所得税,记录捐款,分析单词开头,计数文件字符,以及从文件读取捐款信息等。这些练习涵盖了输入输出、数据转换、数组操作和文件处理等核心概念。
摘要由CSDN通过智能技术生成

6.11.1 请编写一个程序,读取键盘输入,直到遇到@符号为止,并回显输入(数字除外),同时将大写字符转换为小写,将小写字符转换为大写(别忘了cctype函数系列。

#include <iostream>
#include <cctype>
using std::cout;
using std::cin;
using std::endl;

int main()
{
    char ch;
    while( cin.get(ch) && ch != '@' )
    {
        if( isdigit(ch) )
            continue;
        else if( islower(ch) )
            cout<<(char)toupper(ch);
        else if( isupper(ch) )
            cout<<(char)tolower(ch);
        else
            cout<<ch;
    }
    return 0;
}

6.11.2编写一个程序,最多将10个donation值读入到一个double数组中(如果您愿意,也可以使用模板类array)。程序遇到非数字输入时将结束输入,并报告这些数字的平均值以及数组中有多少个数字大于平均值。

#include <iostream>
using std::cout;
using std::cin;
using std::endl;

int main()
{
    double donation[10];
    double average =0, sum = 0;
    int sumNumber = 0;
    for(int i=0;i<10;i++)
    {
        cout<<"Enter the value of donation "<<i+1<<": ";
        if( !(cin>>donation[i]) )
            break;
        sum += donation[i];
        sumNumber++;
    }
    average = sum / sumNumber;
    int up_average_number =0;
    for(int i=0;i<sumNumber;i++)
        if(donation[i] > average)
            up_average_number++;
    cout<<"The average value of donation is "<<average<<"."<<endl;
    cout<<"There are "<<up_average_number<<" more than average."<<endl;
    return 0;
}

6.11.3编写一个菜单驱动程序的雏形。该程序显示一个提供4个选项的菜单——每个选项用一个字母标记。如果用户使用有效选项之外的字母进行响应,程序将提供用户输入一个有效的字母,直到用户这样做为止。然后,该程序使用一条switch语句,根据用户的选择执行一个简单操作。该程序的运行情况如下:
Please enter one of the following choices:
c) carnivore p) pianist
t) tree g) game
Please enter a c , p , t , or g: q
Please enter a c , p , t , or g: t
A maple is a tree.

#include <iostream>
using std::cout;
using std::cin;
using std::endl;

int main()
{
    cout<<"Please enter one of the following choices: "<<endl;
    cout<<"c) carnivore             p) pianist"<<endl;
    cout<<"t) tree                  g) game"<<endl;
    char ch;
    int flag = 0;
    while( cin>>ch )
    {
        switch(ch)
        {
            case 'c':   cout<<"tiger is a carnivore."<<endl;    flag = 1;   break;
            case 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值