#include <iostream>
#include <cctype>
#include <array>
#include <string>
#include <cstring>
#include <fstream>
#include <cstdlib> using namespace std; int t6_1()
{ char ch; cout << "Enter text for analysis, and type # to terminate input.\n";
cin.get(ch);
while (ch != '@')
{
if (isdigit(ch))
{
cin.get(ch);
continue;
}
else if (isupper(ch))
{
ch = tolower(ch);
}
else if (islower(ch))
{
ch = toupper(ch);
}
cout << ch; cin.get(ch);
}
cout << endl;
system("pause");
return 0;
} const int MaxSize = 10;
int t6_2()
{
array<double, MaxSize>donations = { 0 }; cout << "input the donations:\n"; cout << "donation#1:";
int i = 0;
while (i <MaxSize && cin >> donations[i])
{
if (++i <MaxSize)
{
cout << "donation#" << i + 1<<":";
}
} double total = 0;
double average = 0; for (int j = 0; j < i; j++)
{
total += donations[j];
}
if (i==0)
{
cout << "No donations.\n";
}
else
{
average = total / i;
cout << "Average is " << average << endl;
cout << "Bigger than average: ";
for (int j = 0; j < i; j++)
{ if (donations[j] > average)
{
cout << donations[j] << " ";
}
}
} system("pause");
return 0;
} int t6_3()
{
char ch; cout << "Please enter aone of the following choices:\n";
cout << "c) carnivore\t\t\t p) pianist\n";
cout << "t) tree\t\t\t\t g) game\n";
cin.get(ch).get(); while (true)
{
switch (ch)
{
case 'c': cout << "A map is a carnivore.\n"; break;
case 'p': cout << "A map is a pianist.\n"; break;
case 't': cout << "A map is a tree.\n"; break;
case 'g': cout << "A map is a game.\n"; break;
default:
cout << "Please enter a c, p, t, g:";
break;
}
cin.get(ch).get();
} system("pause");
return 0;
}
const int strsize = 20;
typedef struct Bop{
char fullname[strsize];
char title[strsize];
char bopname[strsize];
int preference;
}bop;
int t6_4()
{
bop b1 = { "bopp1", "title1", "bop1", 1 };
bop b2 = { "bopp2", "title2", "bop2", 0 };
bop b3 = { "bopp3", "title3", "bop3", 2 }; cout << "BOP report.\n";
cout << "a.display by name.\t\t\t b.display by title.\n";
cout << "c.display by bopname.\t\t d.display by preference.\n";
cout << "q.quit.\n";
cout << "Enter your choice:";
char ch;
cin.get(ch).get();
while (ch != 'q')
{
switch (ch)
{
case 'a':
cout << b1.fullname << endl;
cout << b2.fullname << endl;
cout << b3.fullname << endl;
break;
case 'b':
cout << b1.title << endl;
cout << b2.title << endl;
cout << b3.title << endl;
break;
case 'c':
cout << b1.bopname << endl;
cout << b2.bopname << endl;
cout << b3.bopname << endl;
break;
case 'd':
if (b1.preference== 0)
{
cout << b1.fullname << endl;
}
else if (b1.preference ==1)
{
cout << b1.title << endl;
}
else
{
cout << b1.bopname << endl;
} if (b2.preference == 0)
{
cout << b2.fullname << endl;
}
else if (b2.preference == 1)
{
cout << b2.title << endl;
}
else
{
cout << b2.bopname << endl;
} if (b3.preference == 0)
{
cout << b3.fullname << endl;
}
else if (b3.preference == 1)
{
cout << b3.title << endl;
}
else
{
cout << b3.bopname << endl;
}
break; default:
cout << "Please input a a, b, c, d ,q:";
}
cin.get(ch).get();
}
cout << "Bye!"; system("pause");
return 0;
} int t6_5()
{
double wage = 0;
double tax = 0; while (cin>>wage && wage >=0)
{
if (wage <= 5000)
{
tax = 0;
}
else if (wage > 5000 && wage <= 1500)
{
tax = 5000 * 0 + (wage - 5000)*0.1;
}
else if (wage > 1500 && wage <= 3500)
{
tax = 5000 * 0 + 10000 * 0.1 + (wage - 15000)*0.15;
}
else
{
tax = 5000 * 0 + 10000 * 0.1 + 20000 * 0.15 + (wage - 35000)*0.2;
} cout << "tax = " << tax << endl;
} system("pause");
return 0;
} typedef struct Donor
{
string name;
double money;
}donor;
int t6_6()
{
int donors = 0; cout << "Enter the number of donors.\n";
cin >> donors;
cin.get();
donor *donorSet = new donor[donors]; for (int i = 0; i < donors; i++)
{
cout << "Enter donor#" << i + 1 << ":\n";
getline(cin, donorSet[i].name);
cin >> donorSet[i].money;
cin.get();
} cout << "\nGrand Patrons:\n";
int flag = 0;
for (int i = 0; i < donors; i++)
{
if (donorSet[i].money > 10000)
{
cout << donorSet[i].name << endl;
flag = 1;
}
}
if (flag == 0)
{
cout << "None.\n";
} cout << "Patrons:\n";
flag = 0;
for (int i = 0; i < donors; i++)
{
if (donorSet[i].money <= 10000)
{
cout << donorSet[i].name << endl;
flag = 1;
}
}
if (flag == 0)
{
cout << "None.\n";
} system("pause");
return 0;
} int t6_7()
{
int vowelCount = 0;
int consonantsCount = 0;
char ch; cout << "Enter words (q to quit):\n";
cin.get(ch);
while (ch != 'q')
{
if (isalpha(ch))
{
if (tolower(ch) == 'a' || tolower(ch) == 'e' || tolower(ch) == 'i' || tolower(ch) == 'o' || tolower(ch) == 'u')
{
vowelCount++;
}
else
consonantsCount++; cin.get(ch);
while (ch != ' '&& ch != '\n')
{
cin.get(ch);
}
}
else
cin.get(ch);
} cout << vowelCount << " words beginning with vowels.\n";
cout << consonantsCount << " words beginning with consonants.\n";
//system("pause");
return 0;
} const int SIZE = 60;
int test6_8()
{
char filename[SIZE];
ifstream inFile;
cout << "Enter the name of the data file:";
cin.getline(filename,SIZE);
inFile.open(filename); if (!inFile.is_open())//failed to open file
{
cout << "Could not open the file.\n";
cout << "Program terminating.\n";
exit(EXIT_FAILURE);
} char ch;
int count = 0; inFile >> ch;
while (inFile.good())
{
count++;
inFile >> ch;
cout << ch;
} if (inFile.eof())
{
cout << "End of the file.\n";
}
else if (inFile.fail())
{
cout << "Input terminated by data mismatch.\n";
}
else
cout << "Input terminated for unknown reason.\n"; inFile.close(); cout << "file has " << count << "characters.\n"; return 0;
} int test6_9()
{
char filename[SIZE];
ifstream inFile;
cout << "Enter the file name: ";
cin.getline(filename, SIZE); inFile.open(filename);
if (!inFile.is_open())
{
cout << "File cannot be opened.\n";
cout << "Program terminating.\n";
exit(EXIT_FAILURE);
} int donors = 0; cout << "Enter the number of donors.\n";
inFile >> donors;
inFile.get();
donor *donorSet = new donor[donors]; for (int i = 0; i < donors; i++)
{
cout << "Enter donor#" << i + 1 << ":\n";
getline(inFile, donorSet[i].name);
inFile >> donorSet[i].money;
inFile.get();
} if (inFile.eof())
{
cout << "file end.\n";
}
else if (inFile.fail())
{
cout << "Input file terminated by mismatch.\n";
}
else
cout << "Input file terminated by unknown reasons.\n"; inFile.close(); cout << "\nGrand Patrons:\n";
int flag = 0;
for (int i = 0; i < donors; i++)
{
if (donorSet[i].money > 10000)
{
cout << donorSet[i].name << endl;
flag = 1;
}
}
if (flag == 0)
{
cout << "None.\n";
} cout << "Patrons:\n";
flag = 0;
for (int i = 0; i < donors; i++)
{
if (donorSet[i].money <= 10000)
{
cout << donorSet[i].name << endl;
flag = 1;
}
}
if (flag == 0)
{
cout << "None.\n";
} return 0;
} int main()
{
test6_9();
system("pause");
return 0;
}

  

C++ Primer Pluse_6_课后题的更多相关文章

  1. C++ Primer Pluse_8_课后题

    #include <iostream> #include <string> #include<cstring> using namespace std; void ...

  2. C++ Primer Pluse_7_课后题

    #include <iostream> using namespace std; double Sum2(double x, double y) { double sum = 0; if ...

  3. 玉伯的一道课后题题解(关于 IEEE 754 双精度浮点型精度损失)

    前文 的最后给出了玉伯的一道课后题,今天我们来讲讲这题的思路. 题目是这样的: Number.MAX_VALUE + 1 == Number.MAX_VALUE; Number.MAX_VALUE + ...

  4. 算法(JAVA)----两道小小课后题

    LZ最近翻了翻JAVA版的数据结构与算法,无聊之下将书中的课后题一一给做了一遍,在此给出书中课后题的答案(非标准答案,是LZ的答案,猿友们可以贡献出自己更快的算法). 1.编写一个程序解决选择问题.令 ...

  5. 课后题2.87&2.86

    课后题2.86&2.87 单纯就是想加点分第十章的题目都被做过了就做下第二章的,正好复习一下前面学的知识,第二章给我剩下的题目也不多了,我就挑了这个题目. 2.86 考虑一个基于IEEE浮点格 ...

  6. c++面向对象程序设计 课后题 答案 谭浩强 第四章

    c++面向对象程序设计课后题答案 谭浩强 第四章 1: #include <iostream> using namespace std; class Complex {public: Co ...

  7. 学习参考《零基础入门学习Python》电子书PDF+笔记+课后题及答案

    国内编写的关于python入门的书,初学者可以看看. 参考: <零基础入门学习Python>电子书PDF+笔记+课后题及答案 Python3入门必备; 小甲鱼手把手教授Python; 包含 ...

  8. 学习《零基础入门学习Python》电子书PDF+笔记+课后题及答案

    初学python入门建议学习<零基础入门学习Python>.适合新手入门,很简单很易懂.前一半将语法,后一半讲了实际的应用. Python3入门必备,小甲鱼手把手教授Python,包含电子 ...

  9. Java程序设计(2021春)——第一章课后题(选择题+编程题)答案与详解

    Java程序设计(2021春)--第一章课后题(选择题+编程题)答案与详解 目录 Java程序设计(2021春)--第一章课后题(选择题+编程题)答案与详解 第一章选择题 1.1 Java与面向对象程 ...

随机推荐

  1. EF 实体映射

    1.继承自EntityTypeConfiguration 2.ToTable映射表名 3.HasKey映射主键,Property配置属性,并返回PrimitivePropertyConfigurati ...

  2. Unity3D脚本18:可视化辅助设置类 Gizmos

    Gizmos   类 Gizmos用于场景中给出一个可视化的调试或辅助设置. 所有的Gizmos绘制都必须在脚本的OnDrawGizmos或OnDrawGizmosSelected函数中完成. OnD ...

  3. ural 1272. Non-Yekaterinburg Subway

    1272. Non-Yekaterinburg Subway Time limit: 1.0 secondMemory limit: 64 MB A little town started to co ...

  4. ural 1244. Gentlemen

    1244. Gentlemen Time limit: 0.5 secondMemory limit: 64 MB Let's remember one old joke: Once a gentle ...

  5. [Unity2D]精灵

    精灵是Unity2D里面对通过图片纹理实现的游戏对象,通常会是游戏里面的玩家,敌人之类的,在Unity里面创建一个精灵的操作非常简单,直接把图片资源拖放到Hierarachy视图就可以完成了精灵的创建 ...

  6. MySQL 里面的Where 和Having和Count 和distinct和Group By对比

    mysql> select accid as uid,date(datetime) AS datetime from game.logLogin GROUP BY accid HAVING da ...

  7. C++ Ouput Exactly 2 Digits After Decimal Point 小数点后保留三位数字

    在C++编程中,有时候要求我们把数据保留小数点后几位,或是保留多少位有效数字等等,那么就要用到setiosflags和setprecision函数,记得要包含头文件#include <ioman ...

  8. 针对binlog MIXED格式对表的增删改统计分析

    通常情况下DB都是有非常完整的监控的,那么如果监控不完善,那么在某段时间内又发生了性能问题,那么我们也可以分析binlog来尝试找到问题.下面就贴出命令,其实就是常用的命令组合. mysqlbinlo ...

  9. ORACLE SEQUENCE用法

    引用自: http://www.cnblogs.com/hyzhou/archive/2012/04/12/2444158.html 在oracle中sequence就是序号,每次取的时候它会自动增加 ...

  10. 【新产品发布】《GM1001 4~20mA 高精度电流采集模块》

    一.主要特性 1.测量精度高达±0.01%FS±0.002mA: 2.采样电阻仅10欧姆(20mA时压降仅0.2V),对被测系统影响  微乎其微: 3.差分输入,可测量正反电流无需改动硬件,使用方便: ...