您的位置:首页 > 编程语言 > C语言/C++

C++ Primer 第1章 快速入门习题答案

2011-09-22 22:57 316 查看
/* 习题1.1-查看所用的编译器文档,了解它所用的文件命名规范。编译并运行本节的main程序C++程序中一般涉及到两类文件:头文件和源文件在不同的编译器的头文件和源文件的后缀有所差别现在介绍Visual studio系列的编译器头文件后缀“.h”源文件后缀".cpp"*/#include<iostream> int main(){return 0;} 习题-1.3#include<iostream>int main(){std::cout<<"Hello,Wrold!"<<std::endl;return
0;} //习题-1.4#include<iostream>int main(){std::cout<<"Enter two number:"<<std::endl;int v1,v2;std::cin>>v1>>v2;std::cout<<"两个数的乘积"<<v1<<"and"<<v2<<"is"<<v1*v2<<std::endl;return 0;} //习题-1.5#include<iostream>int main(){std::cout<<"Enter two numbers:"<<std::endl;int
v1,v2;std::cin>>v1>>v2;std::cout<<"The sum of ";std::cout<<v1;std::cout<<" and ";std::cout<<v2;std::cout<<" is ";std::cout<<v1+v2;std::cout<<std::endl;system("pause");return 0;} //习题-1.9#include<iostream>int main(){int sum=0;for(int i=-100;i<=100;++i)sum+=i;std::cout<<sum<<std::endl;system("pause");return
0;} //习题-1.10#include<iostream>int main(){int sum=0;for(int i=50;i<=100;i++)sum+=i;std::cout<<sum<<std::endl;system("pause");return 0;} //习题-1.11#include<iostream>int main(){int i=10;while(i>=0){std::cout<<i<<" ";i--;}system("pause");return 0;} //习题-1.16#include<iostream>int
main(){std::cout<<"Enter two number:"<<std::endl;int v1,v2;std::cin>>v1>>v2;if(v1>=v2)std::cout<<"The bigger number is:"<<v1<<std::endl;elsestd::cout<<"The bigger number is:"<<v2<<std::endl;system("pause");return 0;} //习题-1.17#include<iostream>int main(){int
amount=0,value;while(std::cin>>value)if(value<0)amount++;std::cout<<"其中的负数有:"<<amount<<std::endl;system("pause");return 0;} //习题-1.18#include<iostream>int main(){std::cout<<"Enter two number:"<<std::endl;int v1,v2;std::cin>>v1>>v2;int lower,upper;if(v1<=v2){lower=v1;upper=v2;}else
{lower=v2;upper=v1;}std::cout<<"value of "<<lower<<" to "<<upper<<" inclusive are:"<<std::endl;for(int val=lower;val<=upper;++val)std::cout<<val<<" ";system("pause");return 0;} //习题-1.19#include<iostream>int main(){std::cout<<"Enter two number:"<<std::endl;int
v1,v2;std::cin>>v1>>v2;int lower,upper;if(v1<=v2){lower=v1; upper=v2;}else{lower=v2;upper=v1;}std::cout<<"value of"<<lower<<" to "<<upper<<" inclusive are:";for(int val=lower,count=1;lower<=upper;++val,++count){std::cout<<val<<" ";if(count%10==0)std::cout<<std::endl;}
system("pause"); return 0;} #include<iostream>#include<string>#include "Sales_item.h"int main(){Sales_item book;//读入ISBN,售出书的本数,销售价格std::cout<<"Enter transations"<<std::endl;while(std::cin>>book){//输出ISBN,售出书的本数,总收入,平均价格std::cout<<"ISBN,number of copies sold,"<<"total
revenue,and average price:"<<std::endl;std::cout<<book<<std::endl;}system("pause");return 0;} //习题-1.22#include<iostream>#include"Sales_item.h"int main(){Sales_item trans1,trans2;//读入交易std::cout<<"Enter two transations:"<<std::endl;std::cin>>trans1>>trans2;if(trans1.same_isbn(trans2))std::cout<<"The
total information:"<<std::endl<<"ISBN,number of copies sold,"<<"total revenue ,and average price are:"<<std::endl<<trans1<<trans2;elsestd::cout<<"The two transations have different ISBN."<<std::endl;system("pause");return 0;} //习题-1.23#include<iostream>#include"Sales_item.h"int
main(){Sales_item total,trans;if(std::cin>>total){while(std::cin>>trans)if(total.same_isbn(trans))total=total+trans;else{std::cout<<"different ISBN."<<std::endl;return -1;}std::cout<<"The total information:"<<std::endl<<"ISBN,number of copies sold."<<"total
revenue,and average price are:"<<std::endl<<total;}else{std::cout<<"NO data!"<<std::endl;return -1;}system("pause");return 0;} //习题-1.24#include<iostream>#include"Sales_item.h"int main(){Sales_item trans1,trans2;int amount;std::cout<<"Enter transations:"<<std::endl;std::cin>>trans1;amount=1;while(std::cin>>trans2)if(trans1.same_isbn(trans2))//ISBN相同++amount;else{//ISBN不同std::cout<<"Transation
amount of previous ISBN:"<<amount<<std::endl;trans1=trans2;amount=1;}std::cout<<"Transation amount of previous ISBN:"<<amount<<std::endl;system("pause"); return 0;}//习题-1.25#include <iostream>#include "Sales_item.h"int main() { // declare variables to hold
running sum and data for the next record Sales_item total, trans; // is there data to process? if (std::cin >> total) { // if so, read the transaction records while (std::cin >> trans) if (total.same_isbn(trans)) // match: update the running total total =
total + trans; else { // no match: print & assign to total std::cout << total << std::endl; total = trans; } // remember to print last record std::cout << total << std::endl; } else { // no input!, warn the user std::cout << "No data?!" << std::endl; return
-1; // indicate failure } return 0;} /* 习题1.21~1.25要用到的头文件*/#ifndef SALESITEM_H#define SALESITEM_H// Definition of Sales_item class and related functions goes here#include <iostream>#include <string>class Sales_item {friend bool operator==(const Sales_item&,
const Sales_item&);// other members as beforepublic: // added constructors to initialize from a string or an istream Sales_item(const std::string &book): isbn(book), units_sold(0), revenue(0.0) { } Sales_item(std::istream &is) { is >> *this; } friend std::istream&
operator>>(std::istream&, Sales_item&); friend std::ostream& operator<<(std::ostream&, const Sales_item&);public: // operations on Sales_item objects // member binary operator: left-hand operand bound to implicit this pointer Sales_item& operator+=(const Sales_item&);
// other members as before public: // operations on Sales_item objects double avg_price() const; bool same_isbn(const Sales_item &rhs) const { return isbn == rhs.isbn; } // default constructor needed to initialize members of built-in type Sales_item(): units_sold(0),
revenue(0.0) { }// private members as beforeprivate: std::string isbn; unsigned units_sold; double revenue;};// nonmember binary operator: must declare a parameter for each operandSales_item operator+(const Sales_item&, const Sales_item&);inline bool operator==(const
Sales_item &lhs, const Sales_item &rhs){ // must be made a friend of Sales_item return lhs.units_sold == rhs.units_sold && lhs.revenue == rhs.revenue && lhs.same_isbn(rhs);}inline bool operator!=(const Sales_item &lhs, const Sales_item &rhs){ return !(lhs
== rhs); // != defined in terms of operator==}using std::istream; using std::ostream;// assumes that both objects refer to the same isbninlineSales_item& Sales_item::operator+=(const Sales_item& rhs) { units_sold += rhs.units_sold; revenue += rhs.revenue;
return *this;}// assumes that both objects refer to the same isbninlineSales_item operator+(const Sales_item& lhs, const Sales_item& rhs) { Sales_item ret(lhs); // copy lhs into a local object that we'll return ret += rhs; // add in the contents of rhs return
ret; // return ret by value}inlineistream& operator>>(istream& in, Sales_item& s){ double price; in >> s.isbn >> s.units_sold >> price; // check that the inputs succeeded if (in) s.revenue = s.units_sold * price; else s = Sales_item(); // input failed: reset
object to default state return in;}inlineostream& operator<<(ostream& out, const Sales_item& s){ out << s.isbn << "\t" << s.units_sold << "\t" << s.revenue << "\t" << s.avg_price(); return out;}inlinedouble Sales_item::avg_price() const{ if (units_sold) return
revenue/units_sold; else return 0;}#endif





                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: