C++Primerplus编程练习 第六章
第六章
1
#include <iostream>
#include <cctype>
#include <cstring>
int main()
{using namespace std;char result[50];cout << "请输入内容:"<<endl;int i=0;while((result[i]=cin.get())!='@'){ if(isdigit(result[i])){continue;} if(islower(result[i])){result[i]=toupper(result[i]);} else{result[i]=tolower(result[i]);} i++;} result[i]='\0';cout << "\n" <<result<<endl;return 0;
}
2
#include <iostream>
int main()
{const int MAX =10;using namespace std;double donation[MAX];cout << "请输入donation值: "<<endl;int i=0;while(i<MAX && cin>>donation[i]){i++;} double ave = 0;for(int j=0;j<i;j++){ave+=donation[j];} ave = ave/i;int n =0 ;for(int j=0;j<i;j++){if(donation[j]>ave){ n++;} } cout << "平均数为 " << ave << " 共有 " <<n<<" 个数大于平均数"<<endl;return 0;
}
3
#include <iostream>int main()
{using namespace std;cout << "Please enter one of the following choices: "<<endl<<"c) carnivore"<<"\tp) pianist"<<endl<<"t) tree" << " \tg) game"<<endl;char input;cin >> input;bool flag=true;while(flag){switch(input){case 'c':cout<<"carnivore get"<<endl;break;case 'p':cout<<"pianist get"<<endl;break;case 't':cout<<"A maple is a tree"<<endl;break;case 'g':cout<<"game get"<<endl;break;default:cout<<"Please enter a c, p, t, or g: ";cin>>input;continue; } flag=false;} return 0;
}
4
#include <iostream>
const int strsize = 50;
struct bop{char fullname[strsize]; char title[strsize];char bopname[strsize];int preference;
};
using namespace std;
void printBop(const bop* member, int size,int choice){for(int i=0;i<size;i++){int check=choice;if(choice==-1){check = member[i].preference;} switch(check){case 0:cout<<member[i].fullname<<endl;break;case 1:cout<<member[i].title<<endl;break;case 2:cout<<member[i].bopname<<endl;break;} }
}
int main()
{const int MEMBERNUM=5; bop member[MEMBERNUM]{{"Wimp Macho","job title","WM",0},{"Raki Rhodes","Junior Programmer","RR",1},{"Celia Laiter","job title","MIPS",2},{"Hoppy Hipman","Analyst Trainee","HH",1},{"Pat Hand","job title","LOOPY",2}};cout << "Benevolent Order of Programmers Report"<<endl<<"a. display by name "<<"\tb. display by title" <<endl<<"c. display by bopname "<<"\td. display by preference"<<endl<<"q. quit"<<endl<<"Enter your choice: ";char choice;cin >> choice;while(choice!='q'){switch(choice){case 'a':printBop(member,MEMBERNUM,0);break;case 'b':printBop(member,MEMBERNUM,1);break;case 'c':printBop(member,MEMBERNUM,2);break;case 'd':printBop(member,MEMBERNUM,-1);break;default: cout<<"Enter your right choice: ";cin>>choice;continue;}cout<<"Next choice: ";cin>>choice;}cout<<"Bye!"<<endl;return 0;
}
5
#include <iostream>int main()
{using namespace std;const double LV_1_RATE=0.1;const double LV_2_RATE=0.15;const double LV_3_RATE=0.20; double income=0;cout << "请输入你的收入计算个人所得税: ";while(cin>>income && income>0){double tax;cout << "收入为 " << income << " tvarps时,所得税为 ";if(income <= 5000){tax =0; }else if(income >5000 && income <=15000){tax = (income-5000)*0.1;}else if(income > 15000 && income <= 35000){tax = 10000*LV_1_RATE+(income-15000)*LV_2_RATE;}else{tax = 10000*LV_1_RATE+20000*LV_2_RATE+(income-35000)*LV_3_RATE;} cout << tax << " tvarps " <<endl;cout << "请继续输入:" ;} cout << "结束计算\n";return 0;
}
6
#include <iostream>
using namespace std;
struct Patron{string name;double fund;
};
int main()
{int numOfPatron;string grandPatrons;string normalPatrons;cout << "请输入捐款者的数目: ";(cin >> numOfPatron).get();Patron* patrons = new Patron[numOfPatron];for(int i=0;i<numOfPatron;i++){cout << "请输入捐款者的姓名: ";getline(cin,patrons[i].name);cout << "请输入捐款的数目: ";cin >> patrons[i].fund;cin.get();} cout << "Grand Patrons: ";for(int i=0;i<numOfPatron;i++){if(patrons[i].fund > 10000){cout << patrons[i].name << ' '<<patrons[i].fund << ' ';} } cout << endl << "Patrons: ";for(int i=0;i<numOfPatron;i++){if(patrons[i].fund <= 10000){cout << patrons[i].name << ' '<<patrons[i].fund << ' ';}}cout << endl;return 0;
}
7
#include <iostream>
#include <cctype>
int main()
{using namespace std;int Vowel=0;int Consonant=0;int other=0;string word;cout << "Enter words (q to quit): "<<endl;while(cin>>word && word!="q"){char letter=word[0];if(isalpha(letter)){letter = tolower(letter);if(letter=='a'||letter=='e'||letter=='i'||letter=='o'||letter=='u'){Vowel++;} else{Consonant++;} } else{other++;} } cout << Vowel << " words begining with vowels\n"<< Consonant << " words begining with consonants\n" << other << " others\n"<<endl;return 0;
}
8
// file.txt
hello hi
This is my first attempt to write code for file input
bueryi ***
end ! QAQ
#include <iostream>
#include <fstream>
int main()
{using namespace std;ifstream inFile;inFile.open("file.txt");char letter;int num=0;while(inFile >> letter){num++;} inFile.close(); cout << "共有 " << num << " 个字符"<<endl;return 0;
}
9
// donate.txt
4
Sam Stone
2000
Freida Flass
100500
Tammy Tubbs
5000
Rich Raptor
55000
#include <iostream>
#include <fstream>
using namespace std;
struct Patron{string name;double fund;
};
int main()
{int numOfPatron;string grandPatrons;string normalPatrons;ifstream inFile;inFile.open("donate.txt");(inFile >> numOfPatron).get();Patron* patrons = new Patron[numOfPatron];for(int i=0;i<numOfPatron;i++){getline(inFile,patrons[i].name);inFile >> patrons[i].fund;inFile.get();} cout << "Grand Patrons: ";for(int i=0;i<numOfPatron;i++){if(patrons[i].fund > 10000){cout << patrons[i].name << ' '<<patrons[i].fund << ' ';} } cout << endl << "Patrons: ";for(int i=0;i<numOfPatron;i++){if(patrons[i].fund <= 10000){cout << patrons[i].name << ' '<<patrons[i].fund << ' ';}}cout << endl;return 0;
}