面向對象程序設計(C)實驗指導-薛曼玲_第1頁
面向對象程序設計(C)實驗指導-薛曼玲_第2頁
面向對象程序設計(C)實驗指導-薛曼玲_第3頁
面向對象程序設計(C)實驗指導-薛曼玲_第4頁
面向對象程序設計(C)實驗指導-薛曼玲_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、面向對象程序設計(c+)實驗指導薛曼玲張淑英王雙立編北華大學計算機科學技術學院2011年1月一實驗基本平臺11硬件12. 軟件1二 教學目的和基本要求21. 教學目的22 基本耍求23. 上機實驗前的準備工作34. 上機試驗的步驟35. 實驗成績4實驗一 c+基礎5實驗二 類和對象11實驗三繼承與派生21實驗四多態性25實驗五i/o流30實驗六異常處理與模板33一實驗基本平臺1. 硬件pc系列微型計算機,奔騰以上兼容機,要求內存至少為64m 以上,一個硬盤驅動器和至少一個usb接口。彩色顯示器,并配 鍵盤和鼠標。2. 軟件系統平臺:windows 2000/windows xp,并定時更新系統

2、。c+j2具:visual c+是 microsoft 公司的 visual studio 開發 工具箱中的一個c+程序開發包。visual studio提供了一整套開 發internet和windows應用程序的工具,包括visual c+, visual basic, visual foxpro, visual interdev, visual j+以及其他輔助工 具,如代碼管理工具visual sourcesafe和聯機幫助系統msdn。visual c+包中除包括c+編譯器外,還包括所有的庫、例子和為 創建windows應用程序所需要的文檔。visual c+是目前使用得最多的c+編譯

3、系統,現在常用的是visual c+ 6.0版本,雖然己有公司推出漢化版,但只是把菜單漢 化了,而不是真正的中文版visual c+,而且漢語的語法不很準 確,許多人都使用英文版。苴實,visual c+的不同版本的上機操 作方法是大同小異的,掌握了其中的一種,就會舉一反三,能順 利地使用其他版本。二教學目的和基本要求1. 教學目的鞏固和加強課堂教學內容,提高學生實踐技能,培養實事求 是的科學精神和科學作風,為學好后續課程和從事實際編程工作 奠定基礎。通過上機實驗,可以:(1) 加深對講授內容的理解,尤其是一些語法規定,初學者的程 序岀錯往往錯在語法上。通過多次上機,就能自然地、熟練 地掌握。

4、通過上機來掌握語法規則則是行之有效的方法。(2) 熟悉所用的計算機系統的操作方法,也就是了解和熟悉c+ 程序開發的環境。使用者應該了解為了運行一個c+程序需 要哪些必要的外部條件,可以利用哪些系統的功能來幫助自 己開發程序。(3) 學會上機調試程序。也就是善于發現程序中的錯誤,并且能 很快地排除這些錯誤,使程序能正確運行。2. 基本要求(1) 能夠掌握而向對象程序設計的基本思想和方法,掌握c+ 的語法、語義和語用,能夠熟練運用c+解決一般問題,養 成良好的程序設計風格。(2) 學生實驗前,做好預習,完成程序的設計和編寫工作。(3) 學生實驗后,認真填寫實驗報告,在報告中完成實驗指導書 中所提示

5、的思考問題。(4) 學生實驗過程中,應該獨立思考,口覺解決實驗過程中出現 的問題。3. 上機實驗前的準備工作在上機實驗前應事先做好準備工作,以提高上機實驗的效率:(1) 了解所用的計算機系統的性能和使用方法;(2) 復習和掌握與木實驗有關的教學內容;(3) 準備好上機所需的程序,初學者切忌不編程序或抄別人程序 去上機,應從一開始養成嚴謹的科學作風;(4) 對運行中可能出現的問題事先做出估計,對程序中自己有疑 問的地方,上機時給予注意;(5) 準備好調試和運行時所需的數據。4. 上機試驗的步驟上機實驗時應該一人一組,獨立上機。對于上機中出現的問 題,應善于自己分析判斷,努力獨立處理,這是學習調試

6、程序的 良好機會。(1) 進入c+工作環境;(2) 輸入自己所編好的程序;(3) 檢查一遍已輸入的程序是否有錯;(4)進行編譯和連接;(5)運行程序并分析運行結果是否合理和正確。在運行時要注意 當輸入不同數據時所得到的結果是否止確。(6)輸出程序清單和運行結果。5. 實驗成績實驗成績依據實驗預習和表現、現場驗收和實驗報告給出成 績檔次(優、良、中、及格、不及格)。(1)實驗預習和表現:學生課前必須預習,教師通過課堂提問等 方式檢查預習效果。在實驗中,教師可依據學生使用實驗環 境的能力、觀察和分析實驗現象的能力、實驗結果和數據的 正確性以及學生的課堂紀律、實驗態度、保持實驗室衛生等 方面的表現進

7、行綜合考核。(根據預習和平時表現情況教師 分不同檔次給出相應成績。)(2)實驗報告:學生實驗后應按時完成實驗報告。要求:內容充 實、項目填寫正確完整、書面整潔等。(根據實驗報告情況 教師分不同檔次給出相應成績。)(3)驗收:通過驗收了解學生對基本理論和基本操作掌握的程度 和實際水平(根據學生在規定時間完成的實驗情況,教師分 不同檔次給出相應成績)。實驗一 c+基礎【實驗目的】1. 了解visual c+的特點,熟悉visual c+的開發環境,學習用 visual c+編寫標準的c+控制臺程序;2. 理解引用的含義、引用和指針的區別,能夠根據要求進行引用 的定義和初始化;3. 掌握函數重載的意

8、義和應用。【實驗學時】2學吋【實驗類型】驗證型【實驗內容】1. 重載函數add,功能分別是完成兩個整數相加、兩個浮點數相 加并將結果輸出;2. 通過引用實現swap(x,y),函數的功能是交換x, y的值?!緦嶒炘怼?. 重載函數是在相同的作用域下,函數名相同的多個函數的函數 參數列表不同,函數參數列表不同表現為要么參數的個數不 同,要么參數的類型不同。重載函數實際上是實現功能上相似 而形式上略有區別的事物。2. 引用不是對新類型的定義,引用是已有變量的別名。引用不是值,不占用存儲空間。引用的使用形式為:類型&別名變量=變量;引用是特殊的指針,只是引用比指針少占用了兩個字節空間。在使

9、用引用傳遞函數參數的過程中,傳遞的函數是原來的變 量,不是在函數作用域內建立的變量的副本,因而利用引用可 實現函數的多值返回功能。【實驗步驟】1. 熟悉visual c+實驗環境,用appwizard建立一個控制臺應用, 在終端上輸出” hello”。首先創建一個項口 (project),項口將代表你的應用,存 放你應用的所有信息,包括源文件、資源文件、編譯連接設置 等。創建項目的步驟為:啟動 developer studio從主菜單中選擇filelnew,將顯示出new對話框 選擇projects標簽,并從列表中單擊 win32 console application在“location”編

10、輯框中輸入你的工作目錄名稱,如 c:studentyour_name (口建)在對話框的右上角的“project name”編輯框內鍵入項目的 名字,如”hello”,系統將自動為你的項口分配一個默認的 目錄單擊0k繼續如果是vc 6.0,系統將顯示一個詢問項目類型的程序向導, 選擇 uan empty project單擊finish或ok結束配置,創建應用程序這時系統為你創建一個新的項目,并且在左邊的工作區窗 口中將出現你項ii的名字。工作區窗口除原來的infoview標 簽外乂增加了兩個標簽(如果是visual c+6.0,則沒有 infoview 標簽):classview 和 file

11、viewo classview 從類的角 度顯示項目中建立的各個類,雙擊某個類名將會在右邊的文檔 顯示區顯示類的定義文件并把文件的當前位置定位到所選的 類;fileview顯示構成項口的各個文件,選擇某一文件將會在 右邊的文檔顯示區顯示文件內容;infoview是vc5的幫助文 件目錄,在這里可以選擇所要獲取幫助的標題,在右邊將顯示 幫助內容。編輯你的第一個c+源程序,用下面的方法在你創建的項 口中添加一個文件:在主菜單上選擇filelnew 在new對話框中選擇file標簽,單擊“c+ source file” 選中add to project復選框在右邊的file name編輯框屮為文件指

12、定一個名字,如 hello,系統將自動為你加上后綴cpp。新的空白文件將自動打開,顯示在文檔顯示區。在文件中 輸入以下內容:/hello world example#include <iostream>using namespace std;int main() cout« hhello!n« endl ;return 0; /正常返刨2. 編寫兩個名字為add的函數,第一個add函數有2個形參, 數據類型為整型,功能為輸出兩個整型變量的和;第二個add 函數的形參個數也為2個,數據類型為浮點型,功能為輸出兩 個浮點型變量的和;編寫主函數,分別定義兩個整型變量和

13、浮 點型變量,調用子函數add分別輸出2個整數相加的結果和2 個浮點數相加的結果;參考程序如下:#include <iostream>using namespace std;void add(int a,int b)cout«a«'+'«b«'=,«a+b«endl;void add(double a,double b)cout«a«,+,«b«,=f«a+b«endl;void main()int ia,ib;double da,db;c

14、out«n請輸入兩個整型數:h«endl;cin»ia»ib;add(ia,ib);cout«m請輸入兩個浮點數:m«encll;cin»da»db;add(da,db);3. 實驗內容2利用引用的性質來傳遞兩個同類型的數據,函數體 中形參的交換也就是實參的交換,并在函數體中借用一個中間 變量用于存儲數據。在主函數中定義2個變量,輸出這兩個變 量的值,調用swap(x,y)子函數后再輸出這兩個變量,分別用 引用傳參和值傳參的形式觀察結果的變化參考程序如下:#include <iostream>using

15、 namespace std; void swap(int &x,int &y) int t;t=x;x=y;y=t;void main()int a,b;cout«n請輸入兩個整型數:h«endl;cin»a»b;cout«n調用 swap 函數前:h«endl;cout«na=n«a«n b=n«b«endl;swap(a,b);cout«n調用 swap 函數后:n«endl; cout«na=n«a«n b=&q

16、uot;«b«endl;【思考問題】1. 在實驗內容1的參考程序中,兩個同名的函數add什么吋候 被執行?2. 在函數的參數傳遞中,值調用和引用調用有什么區別?【實驗報告要求】1. 實現以上兩個試驗內容的程序的編碼及調試;2. 回答思考問題1并且說明為什么?3. 本次實驗的結論與體會。實驗二類和對象【實驗目的】1. 掌握類和對象的概念、類和對象的區別;2. 理解類的成員的訪問控制的含義,公有和私有的區別;3. 構造函數和析構函數的使用、對象成員的使用;4. 掌握靜態成員和類中其他成員的區別,止確使用靜態成員;5. 理解友元的含義,正確地用友元函數訪問類的成員;【實驗學時】6

17、學吋【實驗類型】驗證型【實驗內容】1. 設一個學生類stu,其中含有數據成員name>english和math, 分別表示學生的姓名、英語成績與數學成績,使用類的成員函 數output和total輸出學生的基本信息和總成績,并完成在main 函數中的相應調用。2. 商店銷售某一商品,商店每天公布統一的折扣(discount),同 時允許銷售人員在銷售時靈活掌握售價(price),在此基礎上, 對一次購10件以上者,還可以享受9.8折優惠。現已知當天3 個銷貨員銷售情況為銷貨員號(num)銷貨件數(quantity) 銷貨單價(price)101 5102 1223.524.5610310

18、021.5請編程序,計算出當口此商品的總銷售款sum以及每件商品的 平均售價。要求用靜態數據成員和靜態成員函數。3. 聲明boat與car兩個類,二者都有weight屬性,定義二者的 一個友元函數totalweight(),計算二者的重量和?!緦嶒炘怼?. 類是c+語言的一種抽象和封裝機制,它描述了一組具有相同 屬性和行為特征(數據成員和成員函數)的對象;2. 構造函數是類的一個特殊成員函數,它的函數名與類名相同, 當創建一個新對象時,編譯器會自動調用構造函數,析構函數 與構造函數的作用止好相反;3. 靜態成員是在類還未生成對象z前就已經存在的數據或函數, 它描述了現實世界中的無規則的處于游

19、離狀態的量,可代替全 局變量的用法。其特點是:類還未生成對象之前就可使用。是類的成員函數,是類對象的一部分。為類對象所共享。靜態數據成員需要初始化,靜態成員函數不自動傳遞this 指針,因而靜態成員函數的參數中至少有一個類對象作參 數,一般使用引用。兩者均沿用訪問權限的使用規則。使用靜態成員函數形式為:類名:靜態成員函數(參數);或對象名靜態成員函數(參數);4. 友元函數是在類中由關鍵字friend修飾的非成員函數。友元函 數可以訪問類中的私有成員,其它成員也可訪問。這樣既保護 了類的封裝性又實現了對類中數據的靈活訪問。其特點是:友元函數不是類的成員函數。友元函數不口動傳遞this指針,因而

20、友元函數的參數中至 少有一個類對象作參數,一般使用引用。5. 詳細原理請參考教材?!緦嶒灢襟E】1. 定義一個學生類stu,其中含有數據成員name>english和math, 成員函數output和total分別輸出學生的基本信息和總成績, main主函數中定義兩個學生類對象。參考程序如下:#include <iostream>using namespace std;class stupublic:stu(char n=nn,double e=0.0,double m=0.0);void input();void outputq;void total();private:ch

21、ar name8;double english,math;;stu:stu(char nf,double e,double m)strcpy(name,n);english=e;math=m;void stu:input()cout«m請輸入學生的姓名、英語成績與數學成績:"vvendl;cin»name»english»math;void stu:output ()coutvv”學生的姓名、英語成績與數學成m:n«name«n,'«english«'v'«niath&#

22、171;endl;void stu:total ()cout«h學生的總成績是:nvenglish+mathvvendl;void main()stu sic張思寧”,95,80),s2;s2.input ();s 1 .output ();si.total ();s2.output();s2.total ();2. 提示:將折扣discount,總銷售款sum和商品銷售總件數n聲 明為靜態數據成員,再定義靜態成員函數average (求平均售 價)和display (輸出結果)。參考程序如下:#include <iostream>#include <iomanip

23、>#include <string>using namespace std;class cdispublic:cdis(int n,int q,double p)m_inum=n;m_i quantity=q;m_dprice=p;if(q>=10)ssum+=p *q* sdiscount;elsessum+=p *q;sn+=q;static double average()return ssum/sn;static double sum()return ssum;void disp() cout«setiosflags(ios: :left)«

24、setw( 12)«m_inum«setw( 12)«m_iq uantity«setw(l 2)«m_dprice«endl;private:int m_inum;int mquantity;double m_dprice;static double sdiscount;static double ssum;static int sn;;double cdis:sdiscount=0.98;double cdis:ssum=o;int cdis:sn=0;void main()cdissl(101,5,23.5),s2(102,12

25、,24.56),s3(103,100,21.5); coutvvendl vv”銷貨員號 銷貨件數銷貨單價"«endl;sl.dispo;s2.disp();s3.disp();cout«endl«n總銷售款=n«cdis:sum()«endl;cout«endl«n平均售價="vvcdis:avenige()vvendl;3. 定義boat與car兩個類,二者都有私有數據成員weight屬性, 各有一個帶默認形參的構造函數和一個成員函數用來輸入 weight,定義二者的一個友元函數totalweight

26、(),計算二者的 重量和。#include <iostream>using namespace std;class car;class boatpublic:boat(double w=o):weight(w)void input_boat_weight()cout«n請輸入輪船的重量:”;cin»weight;friend double totalweight(boat &b,car &c);private:double weight;class carpublic:car(double w=o):weight(w)void input_car

27、_weight()cout«m請輸入轎車的重量:”; cin»weight;friend double totalweight(boat &b,car &c);private:double weight;;double totalweight(boat &b,car &c)return b.weight +c.weight;void main()boat bl;car c 1;bl .input_boat_weight();cl.input_car_weight ();cout«h重量和是:m«totalweight(b

28、1 ,c l)«endl;【思考問題】1. 友元函數可訪問類中的靜態成員函數嗎?說明原因。2. 靜態成員函數可訪問友元函數嗎?說明原因。【實驗報告要求】1. 實現以上三個試驗內容的程序的編碼及調試;2. 回答思考問題并且說明為什么?3. 本次實驗的結論與體會。實驗三繼承與派生【實驗目的】1. 學習聲明和使用類的繼承關系,聲明派生類。2. 理解繼承的含義,掌握派生類的定義方法和實現。3. 掌握創建派生類對象時構造函數的執行順序?!緦嶒瀸W時】4學時【實驗類型】綜合性【實驗內容】1. 設計一個程序,演示創建派生類對象時構造函數和析構函數的 執行順序。2. point類描述點這一概念,其中數

29、據成員x和y表示點的橫坐 標和縱坐標。circle類描述圓這一概念,它是point的派生類, circle類中新增數據成員radius表示圓的半徑。請用c+代碼 描述這兩個類,并用circle類的友元函數display。輸出圓的圓 心的橫、縱坐標和圓的半徑,成員函數area ()輸出圓的面 積并寫出main()函數的實現?!緦嶒炘怼?. 類的繼承,是指新類從已有類那里得到已有的特性。從已有類 產生新類的過程就是類的派生。在一個已有類的基礎上添加額 外的數據后就派生了另一個類,前一個類稱為基類,后一個類 稱為派生類,派生類繼承了基類的原有數據。派生類的構造函數書寫形式為:派生類名“派生類名(參

30、數):基類名(參數) 函數休派生類生成對象吋,系統先調用基類的構造函數,然后調 用派生類的構造函數。系統撤消派生類對象時,調用順序正好 與此順序相反。2. 類的繼承方式有三種:公有繼承、私有繼承、保護繼承。使用規則為:在公有繼承方式下,基類的公有成員成為派生類的公有成 員;基類的私有成員成為派生類的不可訪問成員;基類的 保護成員成為派生類的保護成員。在私有繼承方式下,基類的公有成員和保護成員成為派生 類的私有成員;基類的私有成員成為派生類的不可訪問成 員。3. 詳細原理請參考教材?!緦嶒灢襟E】1. 定義一個類base,含有一個構造函數,在此函數屮輸出“基 類構造函數被調用”,一個析構函數,在此

31、函數中輸出“基類 析構函數被調用”;定義一個類derived,公有繼承類base,含 有一個構造函數,在此函數中輸出“派生類構造函數被調用”, 一個析構函數,在此函數中輸出“派生類析構函數被調用”。2. 分別定義一個基類point和一個派生類circle:定義一個類point,含有1個帶默認形參的構造函數,功能 為給該類的兩個私有數據成員橫坐標和縱坐標初始化,4 個公有成員函數 void input_x()、void input_y()、double get_x()和double get_y()功能分別為輸入和獲取橫、縱坐 標,含有2個私有數據成員橫坐標x和縱坐標y;定義circle類,公有繼

32、承類point,該類含有帶默認形參的 構造函數,功能為初始化橫、縱坐標和圓的半徑,2個公 有成員函數void input_r()n void area(),功能為輸入圓的 半徑和輸出圓的面積,1個友元函數friend void display(circle &c),功能為輸出圓的圓心的橫、縱坐標和 圓的半徑;在主函數中定義派生類circle的對象,通過派生類對象調 用成員函數輸入圓的圓心的橫、縱坐標和半徑,輸出圓的 面積,用友元函數輸出派®類對象的和關信息?!舅伎紗栴}】結合實驗過程,回答下列問題:1. 派生類怎樣訪問基類的私有成員?2. 基類的成員函數可以直接訪問派生類的私有

33、成員嗎?說明原 因?!緦嶒瀳蟾嬉蟆?. 實現以上兩個試驗內容的程序的編碼及調試;2. 回答思考問題2并且說明為什么?3. 本次實驗的結論與體會。實驗四多態性【實驗目的】1. 理解虛函數在類的繼承層次中的作用。2. 掌握純虛函數的概念,理解抽象類的現實價值。3. 掌握普通運算符重載函數、成員運算符重載函數和友元運算符 重載函數的區別。4. 學會單目和雙目運算符重載的使用?!緦嶒瀸W時】4學時【實驗類型】綜合性【實驗內容】1. 類shape用來計算各類形狀的面積,純虛函數area提供了計 算各類形狀面積的接口;類circle描述圓這一形狀,半徑radius 和計算而積的虛函數area是其成員;類t

34、riangle描述三角形, 底width、高height和計算面積的虛函數area是其成員。請用 c+描述這三個類。2. 用運算符重載的兩種方式分別重載運算符“ + ”、“<<”和“>>”,實現復數的相加、相減運算及輸入和輸出?!緦嶒炘怼?. 多態性是面向對象程序設計的基本特征之一。多態性就是同一符號或名字在不同情況下具有不同解釋的現象;2. 多態性有兩種表現形式:一種是不同的對象在收到相同的消息 時,產生不同的動作,這主要通過虛函數來實現;另一種是同 一對象收到和同的消息卻產生不同的函數調用,這主要通過函 數重載來實現。3. 虛函數是在基類中冠以關鍵字virtual

35、的成員函數。它提供了一 種接口。虛函數可以在一個或多個派生類中被重定義。在派生 類重定義虛函數時必須有相同的函數原型,包括返回類型,函 數名、參數個數、參數類型的順序必須相同。虛函數必須是類 的成員函數,不能為全局函數,也不能為靜態函數。析構函數 可以是虛函數,但構造函數不能為虛函數。通過虛函數可以模 擬現實中使用某一種方式完成多種任務。在不考慮繼承的情況下,虛函數和普通函數用法相同。使 用虛函數的時候,必須自基類將函數聲明為虛函數,在派生類 中可以重載虛函數。但是在派生類不能改變虛函數的返回值, 否則將出現編譯錯誤。純虛函數就是函數體為空的虛函數,其立義格式為: virtual類型函數名(參

36、數列表)二0;含有純虛函數的類稱為抽象類。純虛函數的實現部分可在 派生類中寫出,因而純虛函數為用戶提供一個公有的接口。一 般通過指針或引用來實現對虛函數的調用。4使用運算符重載可以完成對象間的數據運算,實現方式町以是 普通運算符重載函數、成員運算符重載函數和友元運算符重載 函數。一般地,類中的成員函數實現單目運算符的重載,類外 普通函數和友元函數實現雙目運算符的重載。使用運算符重載,注意事項有4個: 一般來說,不改變運算符原有含義,只讓它能夠對新的數 據類型進行計算。例如,重載“+”運算符后,它的功能還 是進行加法運算。重載運算符時,不能改變運算符原有的優先級別,也不能 改變運算符需要的操作數

37、的數目。有些運算符不能進行重載。如”類成員運算符、“*” 類指向運算符、“:”類作用域分解運算符和“?:” 條件運算運算符。不能人為定義新的運算符,只能使用系統提供的原有運算 符。運算符重載定義格式:函數返回類型operator運算符(參數)函數體這里的函數參數多為類類型的引用。5. 在同一作用域中允許多個函數使用同一函數名的方式稱為重 載。6. 詳細原理請參考教材?!緦嶒灢襟E】1. 定義一個抽象類,2個派生類:定義抽象類shape,聲明純虛函數double area(),提供計算 各類形狀面積的接口。定義圓類circle,公有繼承抽象類shape,聲明私有數據成 員圓的半徑,構造函數初始化私

38、有數據成員,公有成員函 數area()返回圓的的面積。定義三角形類triangle,聲明似有數據成員底width和高 height,構造函數初始化底和高,公有成員函數area()返冋 三角形的面積。主函數聲明指向基類的指針,聲明圓類和三角形類的對象, 用基類的指針分別指向兩個派生類對象,輸出圓和三角形 面積。2. 定義復數類,運算符“+”和重載為成員函數形式,運算 符“vv”和“>>”重載為友元函數形式,實現復數的相加、 相減運算及輸入和輸出。參照教材例8-3定義復數類。重載運算符“+”和為成員函數,返回復數的相加和 和減運算的結果。重載運算符“vv”和“>>”為友元函

39、數,實現復數的輸入 和輸出?!舅伎紗栴}】結合實驗過程,回答下列問題:1. 什么是c+的多態性?它是如何實現的?2. 編寫試驗內容2的程序能否用于一個整數與一個復數的算術 運算?如4+ (5-21)【實驗報告要求】1. 實現以上兩個試驗內容的程序的編碼及調試;2. 回答思考問題2并且說明為什么?3. 本次實驗的結論與體會。實驗五i/o流【實驗目的】1. 掌握ofstream和ifstream類成員函數的使用。2. 學會文件操作的順序,止確完成文件的打開、讀寫?!緦嶒瀸W時】2學時【實驗類型】綜合性【實驗內容】1. 建立兩個磁盤文件fl.dat和f2.dat,編程序實現以下工作:(1)從磁盤輸入20

40、個整數,分別存放在兩個磁盤文件中(每個 文件中放10個整數);(2)從fl.dat讀入10個數,然后存放到f2.dat文件原有數據的后 面;(3)從f2.dat +讀入20個整數,將它們按從小到大的順序存放 到f2.dat (不保留原來的數據)?!緦嶒炘怼?. 在c+語言中,沒有專門的輸入/輸出(i/o)語句,信息的輸 入/輸出是通過一類特殊的對象來完成的,就是輸入流對象和 輸出流對象;2. 每一個c+編譯器都帶有一個面向對象的輸入/輸出軟件包,就是i/o流類庫。其中,流是i/o流類的中心概念。3. c+把每一個文件都看成是一個有序的字節流,每個文件都以 文件結束標志結束。如果要操作某個文件,程序必須首先打開 該文件。當一個文件被打開后,該文件就和一個流關聯起來, 這里的流實際上就是一個字節序列,是打開文件后操作系統為 該文件建立的一個緩沖區。4. 一個程序在執行時都會自動打開3個文件以及與這3個文件相 關聯的流標準輸入流、標準輸出流和標準錯誤流。5. 在c+語言中,最常用的輸入輸出運算符是“>

溫馨提示

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

評論

0/150

提交評論