C++ Primer Plus(第五版)第6章编程题答案
第1题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
//C++ Primer Plus Edition 5 //Chapter 6 Homework 1 #include<iostream> #include<cctype> using namespace std; int main() { cout << "Enter text for analysis and type @" "to terminate input.\n"; char ch; cin.get(ch); while (ch != '@') { if (!isdigit(ch)) { if (islower(ch)) ch = toupper(ch); else if (isupper(ch)) ch = tolower(ch); cout << ch; } cin.get(ch); } system("pause"); return 0; } //错误代码,判断如果是数字执行continue的话就会循环判断字符是不是等于@,第一个字符就无限循环。 //else同样。 //while (ch != '@') { // if (isdigit(ch)) // continue; // else if (isalpha(ch)) // { // cout << ch << endl; // if (islower(ch)) // ch = toupper(ch); // else if (isupper(ch)) // ch = tolower(ch); // cout << ch; // } // else // continue; //} |
第2题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
//C++ Primer Plus Edition 5 //Chapter 6 Homework 2 #include<iostream> #include<cctype> const int SIZE = 10; using namespace std; int main() { double donation[10]; double average; int countbig = 0; int count=0; double sum = 0.0; cout << "Enter 10 numbers.If you want to quit, just input @:" << endl; for (int i = 0; i < SIZE; i++) { cin >> donation[i]; if (cin.fail()) break; else { sum += donation[i]; ++count; } } average = sum / count; cout << "The average number is: " << average << endl; for (int i = 0; i < count; i++) { if (donation[i] > average) ++countbig; } cout << countbig << " numbers bigger than average.\n"; system("pause"); return 0; } |
第3题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
//C++ Primer Plus Edition 5 //Chapter 6 Homework 3 #include<iostream> #include<cctype> using namespace std; void showmenu(); int main() { showmenu(); char choice; cin.get(choice); while ((choice != 'c') && (choice != 'p') && (choice != 't') && (choice != 'g')) { cout << "Please enter a c,p,t,g: "; //cin.get(choice); cin.ignore(); } switch (choice) { case 'c': cout << "This is carnivore's answer.\n"; break; case 'p': cout << "This is pianist's answer.\n"; break; case 't': cout << "A maple is a tree.\n"; break; case 'g': cout << "This is game's answer.\n"; break; default: break; } system("pause"); return 0; } void showmenu() { cout << "Please enter one of the following choices.\n" "c)carnivore p)pianist\n" "t)tree g)game\n"; } |
第4题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
//C++ Primer Plus Edition 5 //Chapter 6 Homework 4 #include<iostream> #include<cctype> using namespace std; //函数 void showmenu(); void dis_by_name(); void dis_by_title(); void dis_by_bop(); void dis_by_pre(); //定义常量 const int strsize = 30; const int NUM = 5; //定义结构体 struct bop { char fullname[strsize]; char title[strsize]; char bopname[strsize]; int preference;//0=fullname,1=title,2=bopname }; bop people[5] = { { "Wimp Macho", "BOSS", "WM", 0 }, { "Raki Rhodes", "Manager", "Junior Programmer", 2 }, { "Celia Laiter", "MIPS", "CL", 1 }, { "Hoppy Hipman", "Analyst Trainee", "AT", 1 }, { "Pat Hand", "Student", "LOOPY", 2 } }; char ch; //开始主函数 int main() { showmenu(); cin >> ch; while ((ch != 'a') && (ch != 'b') && (ch != 'c') && (ch != 'd') && (ch != 'q')) { showmenu(); //cin.get(choice); cin.ignore(); } while (ch != 'q') { switch (ch) { case 'a': dis_by_name(); break; case 'b': dis_by_title(); break; case 'c': dis_by_bop(); break; case 'd': dis_by_pre(); break; default: break; } cout << "Next choice:" << endl; cin >> ch; while ((ch != 'a') && (ch != 'b') && (ch != 'c') && (ch != 'd') && (ch != 'q')) { showmenu(); //cin.get(choice); cin.ignore(); } } cout << "Bye!" << endl; system("pause"); return 0; } void showmenu() { cout << "Please enter one of the following choices.\n" "a)display by name b)display by title\n" "c)display by bopname d)display by preference\n" "q)game\n"; } void dis_by_name() { for (int i = 0; i < NUM; ++i) { cout << people[i].fullname << endl; } } void dis_by_title() { for (int i = 0; i < NUM; ++i) { cout << people[i].title << endl; } } void dis_by_bop() { for (int i = 0; i < NUM; ++i) { cout << people[i].bopname << endl; } } void dis_by_pre() { for (int i = 0; i < NUM; ++i) { if(people[i].preference==0) cout << people[i].fullname << endl; else if(people[i].preference==1) cout<< people[i].title << endl; else cout << people[i].bopname << endl; } } |
第5题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
//C++ Primer Plus Edition 5 //Chapter 6 Homework 5 #include<iostream> const double level1 = 0.1; const double level2 = 0.15; const double level3 = 0.2; using namespace std; int main() { double tvarp; double cus; cout << "Please input your money: "; cin >> tvarp; while (cin.good() && (tvarp > 0)) { if (tvarp <= 5000) cus = 0.0; else if (tvarp > 5000 && tvarp <= 15000) cus = (tvarp - 5000)*level1; else if (tvarp > 15000 && tvarp <= 35000) cus = 10000 * level1 + (tvarp - 15000)*level2; else if (tvarp > 35000) cus = 10000 * level1 + 20000 * level2 + (tvarp - 35000)*level3; cout << "您需要交税" << cus << " tvarp.\n"; cout << "Please input your money: "; cin >> tvarp; } cout << "Bye\n"; system("pause"); return 0; } |
第6题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
//C++ Primer Plus Edition 5 //Chapter 6 Homework 6 #include<iostream> #include<cctype> #include<string> using namespace std; struct donation { string name; double money; }; int main() { int num; int count = 0; cout << "Please input the number of donationer: "; cin >> num; cin.get();//吃掉换行符 donation *donaer = new donation[num]; for (int i = 0; i < num; i++) { cout << "Enter the name: "; getline(cin, donaer[i].name); cout << "Enter money: "; cin >> donaer[i].money; cin.get();//吃掉换行符 } cout << "****************************" << endl; cout << "Grand Patrons" << endl; cout << "****************************" << endl; for (int i = 0; i < num; i++) { if (donaer[i].money > 10000) { ++count; cout << "Name: " << donaer[i].name << endl; cout << "Donate Money: " << donaer[i].money << endl; cout << endl; } } if (count == 0) { cout << "None" << endl; } count = 0; cout << "****************************" << endl; cout << "Patrons" << endl; cout << "****************************" << endl; for (int i = 0; i < num; i++) { if (donaer[i].money <= 10000) { ++count; cout << "Name: " << donaer[i].name << endl; cout << "Donate Money: " << donaer[i].money << endl; cout << endl; } } if (count == 0) { cout << "None" << endl; } delete[] donaer; system("pause"); return 0; } |
第7题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
//C++ Primer Plus Edition 5 //Chapter 6 Homework 7 #include<iostream> #include<cctype> #include<string> using namespace std; int main() { string word; char ch; int yuan = 0; int fu = 0; int others = 0; cin >> word; while (word != "q") { ch = word[0]; if (isalpha(ch)) { if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u' || ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U') ++yuan; else ++fu; } else ++others; cin >> word; } cout << yuan << " words beginning with vowels." << endl; cout << fu << " words beginning with consonants." << endl; cout << others << " others." << endl; system("pause"); return 0; } |
第8题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
//C++ Primer Plus Edition 5 //Chapter 6 Homework 8 #include<iostream> #include<fstream> #include<cstdlib> using namespace std; const int MAXSIZE = 50; int main() { char filename[MAXSIZE]; ifstream inFile; cout << "Please enter the file's name: "; cin.getline(filename, MAXSIZE); inFile.open(filename); if (!inFile.is_open()) { cout << "Open this file error."<<endl; exit(EXIT_FAILURE); } char ch; int count = 0; inFile >> ch; while (inFile.good()) { ++count; inFile >> ch; } if (inFile.eof()) { cout << "Have reached end of this file.\n"; } else if (inFile.fail()) { cout << "Input terminated by data mismatch.\n"; } else cout << "unknown reason to stop.\n"; if (count == 0) { cout << "No data in this file.\n"; } else { cout << "There are " << count << " characters in this file.\n"; } inFile.close(); system("pause"); return 0; } |
第9题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
//C++ Primer Plus Edition 5 //Chapter 6 Homework 9 #include<iostream> #include<cctype> #include<string> #include<fstream> using namespace std; const int MAXSIZE = 50; struct donation { string name; double money; }; int main() { char filename[MAXSIZE]; ifstream inFile; cout << "Please enter the file's name: "; cin.getline(filename, MAXSIZE); inFile.open(filename); if (!inFile.is_open()) { cout << "Open this file error." << endl; exit(EXIT_FAILURE); } int num; int count = 0; inFile >> num; inFile.get();//吃掉换行符 donation *donaer = new donation[num]; for (int i = 0; i < num; i++) { getline(inFile, donaer[i].name); inFile >> donaer[i].money; inFile.get();//吃掉换行符 } cout << "****************************" << endl; cout << "Grand Patrons" << endl; cout << "****************************" << endl; for (int i = 0; i < num; i++) { if (donaer[i].money > 10000) { ++count; cout << "Name: " << donaer[i].name << endl; cout << "Donate Money: " << donaer[i].money << endl; cout << endl; } } if (count == 0) { cout << "None" << endl; } count = 0; cout << "****************************" << endl; cout << "Patrons" << endl; cout << "****************************" << endl; for (int i = 0; i < num; i++) { if (donaer[i].money <= 10000) { ++count; cout << "Name: " << donaer[i].name << endl; cout << "Donate Money: " << donaer[i].money << endl; cout << endl; } } if (count == 0) { cout << "None" << endl; } delete[] donaer; inFile.close(); system("pause"); return 0; } |
1 条留言 访客:0 条 博主:0 条 引用: 1 条
来自外部的引用: 1 条