#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. JS正则表达式验证数字(很全)

    1.<script type="text/javascript"> 2.     function validate(){ 3.       var reg = new ...

  2. 【COGS】147. [USACO Jan08] 架设电话线(二分+spfa)

    http://cojs.tk/cogs/problem/problem.php?pid=147 学到新姿势了orz 这题求的是一条1-n的路径的最大路径最小. 当然是在k以外的. 我们可以转换一下. ...

  3. Cobar_基于MySQL的分布式数据库服务中间件

    Cobar是阿里巴巴研发的关系型数据的分布式处理系统,是提供关系型数据库(MySQL)分布式服务的中间件,该产品成功替代了原先基于Oracle的数据存储方案,它可以让传统的数据库得到良好的线性扩展,并 ...

  4. winform学习1-----理解小概念-20160506

    panel属性,dock:获取或设置控件停靠到父容器的哪一个边缘. none,right,left,fill(完全填充),top C#默认窗体大小设置:maximumsize 窗体最大值 minimu ...

  5. 验证标题是否存在(TextBox控件失去焦点验证)

    首先解释两个属性, AutoPostBack 属性用于设置或返回当用户在 TextBox 控件中按 Enter 或 Tab 键时,是否发生自动回传到服务器的操作. 如果把该属性设置为 TRUE,则启用 ...

  6. 用MyEclipse搭建SSH框架(Struts2 Spring Hibernate)

    1.new一个web project. 2.右键项目,为项目添加Struts支持. 点击Finish.src目录下多了struts.xml配置文件. 3.使用MyEclipse DataBase Ex ...

  7. php 数组操作

    <?php $vegetables[0] = "corn"; $vegetables[1] = "broccoli"; $vegetables[2] = ...

  8. jQuery.qrcode.js客户端生成二维码,支持中文并且可以生成LOGO

    描述: jquery.qrcode.js 是一个能够在客户端生成矩阵二维码QRCode 的jquery插件 ,使用它可以很方便的在页面上生成二维条码.此插件是能够独立使用的,体积也比较         ...

  9. [转].net自定义验证控件CustomValidator的使用

    本文转自:http://tech.cncms.com/web/aspnet/96310.html CustomValidator验证控件,可以自定义验证函数,实现其它几个验证控件不能实现的验证规则,最 ...

  10. 【液晶模块系列基础视频】5.1X-GUI字体驱动1

    ============================= 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:ht ...