C++ PRIMER PLUS 第六版编程答案(五)
来源:互联网 发布:传奇db数据库编辑器 编辑:程序博客网 时间:2024/05/21 09:26
6.11编程练习
1. 编写一个程序,读取键盘输入,直到遇到@符号为止,并回显输入(数字除外),同时将大小写字符转换为小写,将小写字符转换为大写。
#include <iostream>#include <cctype>using namespace std;int main(){ char ch; while (cin.get(ch) && ch != '@'){ if (isalpha(ch)) { if (isupper(ch)) { char temp = tolower(ch); cout << temp << endl; } else { char temp = toupper(ch); cout << temp << endl; } } } system("pause"); return 0;}
2. 编写一个程序,最多将10个donation值读入到一个double数组中。程序遇到非数字输入时将结束输入,并告诉这些数字的平均值以及数组中有多少个数字大于平均值。
#include <iostream>using namespace std;int main(){ double donation[10] = {0}; double temp; int i = 0; while (i<10 ){ cout << "#" << i << ": "; if (!(cin >> temp)){ break; } donation[i] = temp; i++; } double sum = 0; for (int j = 0; j < 10; j++) { sum = sum + donation[j]; } double pingjun = sum / (i*1.0); int dabiao = 0; for (int k = 0; k < 10; k++) { if (donation[k] > pingjun){ dabiao++; } } cout << "平均值:" << pingjun << ",达标数:" << dabiao << endl; system("pause"); return 0;}
3. 编写一个菜单驱动程序的雏形。该程序显示一个提供4个选项的菜单——每个选项用一个字母标记。如果用户使用有效选项之外的字母进行响应,程序将提示用户输入一个有效的字母,直到用户这样做为止。然后,该程序使用一条switch语句,根据用户的选择执行一个简单操作。
#include <iostream>#include <string>int main(){ using namespace std; cout << "Please enter one of the following choices:" << endl; cout << "c) carnivore\tp) pianist" << endl; cout << "t) tree \tg) game" << endl; cout << "Please enter a,c,p,t, or g:"; char ch; cin.get(ch); string temp; bool flag = true; while (flag){ switch (ch) { case 'c': temp = "carnivore"; flag = false; break; case 'p': temp = "pianist"; flag = false; break; case 't': temp = "tree"; flag = false; break; case 'g': temp = "game"; flag = false; break; default: cout << "Please enter a,c,p,t, or g:"; flag = true; //清除输入的'\n'缓存 cin.sync(); cin.get(ch); break; } } cout << "A maple is a: "<<temp<<endl; system("pause"); return 0;}
4. 请编写一个程序,可以使用真实姓名,头衔,秘密姓名或成员偏好列出成员。编写该程序时,请使用下面的结构:
5. 在Neutronia王国,货币单位是tvarp,收入所得税的计算方式如下:
~5000tvarps: 不收税
5001~15000tvarps: 10%
15001~35000tvarps: 15%
35000~tvarps: 20%
#include <iostream>using namespace std;int main(){ const int a = 0; const int b = 10000 * 0.1; const int c = 20000 * 0.15; int sum; float result; while (true && cin >> sum){ if(sum > 35000) { result = (sum - 35000)*0.2 + c + b + a; } else if (sum > 15000){ result = (sum - 15000)*0.15 + b + a; } else if (sum > 5000){ result = (sum - 5000)*0.1 + a; } else{ result = 0; } cout << "个人所得税: " << result << endl; } system("pause"); return 0;}
6. 编写一个程序,记录捐助给“维护合法权利团体”的资金。该陈旭要求用户输入捐献者数目,然后要求用户输入每一个捐献者的姓名和款项。这些信息被存储在衣蛾动态分配的结构数组中。每个结构有两个成员:用来存储姓名的字符数组和用来存储款项的double成员。读取所有的数据后,程序将显示所有捐款超过10000的捐款者的姓名及其捐款数额。该列表前应包含一个标题。
#include <iostream>#include <string>using namespace std;struct juanzhu{ string name; double number;};int main(){ int sum; cout << "Enter sum: "; cin >> sum; juanzhu* jz = new juanzhu[sum]; for (int i = 0; i < sum; i++) { string tempname; double tempnumber; cout << "第" << i + 1 << "个\n姓名:"; cin >> tempname; cout << "捐款数:"; cin >> tempnumber; jz[i].name = tempname; jz[i].number = tempnumber; } for (int i = 0; i < sum; i++) { if (jz[i].number > 10000) { cout << "Grand Patrons:\n" << "name:" << jz[i].name<< "\nmoney:" << jz[i].number << endl; } } system("pause"); return 0;}
7.
8. 编写一个程序,它打开一个文件,逐个字符地读取该文件,直到到达文件末尾,然后指出该文件中包含多少个字符。
#include <iostream>#include <fstream>#include <string>#include <cstdlib>using namespace std;int main(){ string filename = "solution8.txt"; ifstream inFile; inFile.open(filename); if (!inFile.is_open()) { cout << "Could not open the file " << filename << endl; exit(EXIT_FAILURE); } char value; int count = 0; while (inFile >> value && inFile.good()){ count++; } cout << "count:" << count; system("pause"); return 0;}
9. 完成编程练习6,但从文件中读取所需的信息。该文件的第一项为捐款人数,余下的内容应为成对的行。在每一行中,第一行为捐款人姓名,第二行为捐款数额。
#include <iostream>#include <fstream>#include <string>#include <cstdlib>using namespace std;struct juanzhu{ string name; double number;};int main(){ string filename = "solution9.txt"; ifstream inFile; inFile.open(filename); int sum; inFile >> sum; juanzhu* jz = new juanzhu[sum]; string name; double number; int i = 0; while (inFile >> name && inFile >> number >> number && inFile.good()){ jz[i].name = name; jz[i].number = number; } if (!inFile.is_open()) { cout << "Could not open the file " << filename << endl; exit(EXIT_FAILURE); } for (int i = 0; i < sum; i++) { if (jz[i].number > 10000) { cout << "Grand Patrons:\n" << "name:" << jz[i].name<< "\nmoney:" << jz[i].number << endl; } } system("pause"); return 0;}
0 0
- C++ PRIMER PLUS 第六版编程答案(五)
- C ++ Primer Plus 第六版 第六章编程练习答案
- C++PRIMER PLUS第六版课后编程答案 4.1-4.5
- C++PRIMER PLUS第六版课后编程答案 4.6-4.10
- C++PRIMER PLUS第六版课后编程答案 5.1-5.5
- C++PRIMER PLUS第六版课后编程答案 5.6-510
- C++primer plus第六版课后编程题答案 6.1
- C++primer plus第六版课后编程题答案 6.2
- C++primer plus第六版课后编程题答案 6.3
- C++primer plus第六版课后编程题答案 6.4
- C++primer plus第六版课后编程题答案 6.5
- C++primer plus第六版课后编程题答案 6.6
- C++primer plus第六版课后编程题答案 6.7
- C++primer plus第六版课后编程题答案 6.8
- C++primer plus第六版课后编程题答案 6.9
- C++primer plus第六版课后编程题答案7.1
- C++primer plus第六版课后编程题答案7.2
- C++primer plus第六版课后编程题答案7.3
- LeetCode 13 Roman to Integer
- Qt v5.6.2 bug
- 微信小程序,安全性有多高?黑客能盗走你的红包吗
- 根据key从Properties文件中加载指定的value
- java中Token验证
- C++ PRIMER PLUS 第六版编程答案(五)
- json理解
- 14、二叉树
- C++、java和matlab最近使用的一些比较
- IDEA快捷键
- openstack对接其他云平台时各种用户名密码的查找
- DNS服务器-bind
- synchronized锁方法,synchronized锁对象,synchronized(this),synchronized(class)最佳理解方式
- cocos2dx 3.13 tableview cell 的小问题