c++primer第五版練習(xí)第一章答案_第1頁(yè)
c++primer第五版練習(xí)第一章答案_第2頁(yè)
c++primer第五版練習(xí)第一章答案_第3頁(yè)
c++primer第五版練習(xí)第一章答案_第4頁(yè)
c++primer第五版練習(xí)第一章答案_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1.1如圖,程序文件(源文件)后綴為cpp。在debug中有exe后綴的可執(zhí)行文件sln:在開(kāi)發(fā)環(huán)境中使用的解決方案文件。它將一個(gè)或多個(gè)項(xiàng)目的所有元素組織到單個(gè)的解決方案中。此文件存儲(chǔ)在父項(xiàng)目目錄中.解決方案文件,他是一個(gè)或多個(gè).proj(項(xiàng)目)的集合。vcxproj是項(xiàng)目信息文件,就是你解決方案里面看到的那個(gè)項(xiàng)目filters是過(guò)濾信息文件,某些特殊的文件是不顯示在vs里面的user是本地化用戶(hù)配置,允許多個(gè)用戶(hù)使用自己喜好的方式配置這個(gè)項(xiàng)目(例如打開(kāi)項(xiàng)目時(shí)候窗體位置等與項(xiàng)目?jī)?nèi)容無(wú)關(guān)的配置)編譯第二頁(yè)的程序int main() return 0;1.2 若改為返回-1,系統(tǒng)如何處理程序錯(cuò)誤的

2、標(biāo)識(shí)。如下1.6 修改如下1.7 注意字體顏色1.8 前2句合法,如下圖3,4句肯定不合法,這兩句是要鬧怎樣!1.9 2很顯然結(jié)果為0;完成的為-100到100的累加。1.13 用for做前面的用while做的練習(xí)(以1.11為例)1.14 比較while和forfor循環(huán)更適用于循環(huán)的開(kāi)始和結(jié)束已知,循環(huán)次數(shù)固定的場(chǎng)合;while循環(huán)更適合于條件不確定的場(chǎng)合。知道循環(huán)次數(shù)的時(shí)候for和while都可以用,比如for(int i=0;i<100;i+).就可以寫(xiě)成int i=0;while(i<100)i+;,不知道循環(huán)次數(shù)只能用while,

3、如while(x>0).1.15見(jiàn)再探編譯試驗(yàn)。1.161.17 若全部重復(fù)值若沒(méi)有重復(fù)1.18 和1.17重復(fù)1.19 1.20首先看頭文件#ifndef SALESITEM_H #define SALESITEM_H /檢驗(yàn)是否定義了SALESITEM_H ,若沒(méi)有則重新定義#include <iostream> #include <string> class Sales_item public: Sales_item(const std:string &book):isbn(book),units_sold(0),revenue(0.0) /類(lèi)型轉(zhuǎn)換

4、構(gòu)造函數(shù),根據(jù)一個(gè)指定的類(lèi)型的對(duì)象創(chuàng)建一個(gè)本類(lèi)的對(duì)象,isbn初始化為形參的值 Sales_item(std:istream &is) is >> *this; /形參為istream類(lèi)型的引用從輸入流中讀取并存入this指針中 friend std:istream& operator>>(std:istream &,Sales_item &); /重載>>和<<作為友元函數(shù)可以訪問(wèn)類(lèi)成員 friend std:ostream& operator<<(std:ostream &,cons

5、t Sales_item &);public: Sales_item & operator+=(const Sales_item&); /成員函數(shù)public: double avg_price() const; /一成員函數(shù)bool same_isbn(const Sales_item &rhs)const /函數(shù)參數(shù)列表后的const 使用在類(lèi)的成員函數(shù)中 表示不會(huì)對(duì)成員變量進(jìn)行修改 return isbn = rhs.isbn; Sales_item():units_sold(0),revenue(0.0) /無(wú)參數(shù)構(gòu)造函數(shù)public: std:stri

6、ng isbn; unsigned units_sold; double revenue; ; using std:istream; using std:ostream; Sales_item operator+(const Sales_item &,const Sales_item &); /在重載加前,重載+=中用到+ 所以要先聲明一次inline bool operator=(const Sales_item &lhs,const Sales_item &rhs) /參數(shù)為類(lèi),保證不被修改用const,簡(jiǎn)單用inline,重載了=和!= return lh

7、s.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); inline Sales_item & Sales_item:operator +=(const Sales_item &rhs) /重載+= units_sold += rhs.units_s

8、old; revenue += rhs.revenue; return *this; inline Sales_item operator+(const Sales_item &lhs,const Sales_item &rhs) Sales_item ret(lhs); ret += rhs; return ret; /每次用到istream則istream指向this指針,此處一旦構(gòu)造了Sales_item s則istream就會(huì)指/向s。inline istream& operator>>(istream &in,Sales_item &

9、;s) double price; in >> s.isbn >> s.units_sold >> price; if(in) s.revenue = s.units_sold * price; else s = Sales_item(); /此時(shí)調(diào)用無(wú)參數(shù)構(gòu)造函數(shù) return in; inline ostream& operator<<(ostream &out,const Sales_item &s) out << s.isbn << "t" <<s.units

10、_sold << "t" << s.revenue << "t" << s.avg_price(); return out; inline double Sales_item:avg_price() const if(units_sold) return revenue/units_sold; else return 0; #endif /和#ifndef 一起使用 否則可能報(bào)錯(cuò)直接cout該類(lèi),顯然重載的運(yùn)算符<<并不能滿(mǎn)足1.20題目要求。將inline ostream& opera

11、tor<<(ostream &out,const Sales_item &s) out << s.isbn << "t" <<s.units_sold << "t" << s.revenue << "t" << s.avg_price(); return out; 改為inline ostream& operator<<(ostream &out,const Sales_item &s)

12、out << s.isbn << " " <<s.units_sold << " " << << "t" << s.avg_price(); return out; 然后就可以敲一條記錄進(jìn)去 就打出一條出來(lái)了若題目中讀取一組理解為文檔讀取的話(huà),代碼如下。文檔如下1.21 書(shū)上22頁(yè)就有 還弄個(gè)習(xí)題!1.22 練習(xí) 1.25 (包含1.23 1.24)#include <iostream>#include"Sales_item.h&

13、quot;#include <fstream>#include <string>using namespace std;int main() Sales_item total;/一個(gè)total表示同isbn的和 if(std:cin>>total)/第一個(gè)輸入即是total Sales_item trans;/用trans保存每個(gè)讀取記錄 int counter=1; while(std:cin>>trans) if(total.isbn=trans.isbn) total+=trans;/如果isbn同 則更新總額 +counter; else std:cout<<total<<std:endl;std:cout<<

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論