




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
實驗輸入輸出流實驗課程名:面向?qū)ο蟪绦蛟O(shè)計(C++)專業(yè)班級: 學(xué)號: 姓名: 實驗時間: 實驗地點: 指導(dǎo)教師: -、實驗?zāi)康暮鸵罄斫忸惡蛯ο蟮母拍?,掌握聲明類和定義對象的方法。掌握構(gòu)造函數(shù)和析構(gòu)函數(shù)的實現(xiàn)方法。初步掌握使用類和對象編制C++程序。⑷掌握對象數(shù)組、對象指針和string類的使用方法。掌握使用對象、對象指針和對象引用作為函數(shù)參數(shù)的方法。掌握類對象作為成員的使用方法。掌握靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)的使用方法。理解友元的概念和掌握友元的使用方法。二、實驗內(nèi)容1.定義描述職工工資的類Laborage,數(shù)據(jù)成員為職工號(No)、姓名(Name[8])、應(yīng)發(fā)工資(Ssalary)、社保金(Security)、實發(fā)工資(Fsalary)。定義公有成員函數(shù)Input(),在Input()函數(shù)內(nèi)輸入職工號、姓名、應(yīng)發(fā)工資、社保金,實發(fā)工資由公式:Fsalary=Ssalary-Security計算。定義輸出職工工資的成員函數(shù)Show()。在顯示函數(shù)Show()中,職工號、姓名的輸出域?qū)挒?、左對齊,其余數(shù)據(jù)的輸出域?qū)挒?0、右對齊、保留小數(shù)點后兩位,輸出格式均用預(yù)定義格式控制函數(shù)設(shè)置。在主函數(shù)中用Laborage類定義職工對象數(shù)組a[3]。用Input()輸入職工工資,用Show()顯示每個職工的工資。(提示:用getline輸入姓名后,必須用回車結(jié)束姓名輸入)實驗數(shù)據(jù):1001ZhouZhi30002001002ChenHua40004001003WangFan5000500實驗代碼:#includeviostream>#include<iomanip>#includevfstream>usingnamespacestd;classLaborage{public:Laborage(){}voidinput();voiddisplay。;private:intnum;charname[10];floatSsalary;floatSecurity;floatFsalary;};voidLaborage::input(){cin>>num;cin.get(name,10,'\n');cin>>Ssalary;cin>>Security;Fsalary=Ssalary-Security;}voidLaborage::display(){coutvvresetiosflags(ios::right)vvsetw(8)vvsetiosflags(ios::left)vvnum;coutvvsetw(8)<<setiosflags(ios::left)vvname;coutvv setw(10)vvsetiosflags(ios::right)vvsetiosflags(ios::fixed)vvsetprecision(2)vvSsalary;coutvv setw(10)vvsetprecision(2)vvSecurity;setiosflags(ios::right)vvsetiosflags(ios::fixed)vvcoutvv setw(10)vvsetprecision(2)vvFsalary;coutvvendl;}intmain(void){Laboragelab[3];inti;for(i=0;iv3;i++)setiosflags(ios::right)vvsetiosflags(ios::fixed)vv{coutvv"請輸入第"vvi+1vv"個職員的信息為:lab[i].input();}for(i=0;i<3;i++){lab[i].display();}return0;}實驗結(jié)果:grC:XDocxmentsandSettings^AdaLinis-trator\桌面\Debug\^-題.exe厲輸入第1個職員的信息為:⑷血外皿血i0000200犢輸入第2個職員的信息為:iG02CJienHua4000400情輸入第3個職員的信息為:1B03Wan9Fan1001ZhouZhi3300.0S200.002800..001002ClienHua4000.08■400.0036B0..001093Uan^fFan500.0045麗..90Pressan9keytoicontinue代碼分析:在輸入時調(diào)用getline()以換行符作為輸入姓名時的結(jié)束標(biāo)志,已達(dá)到輸入空格的目的輸出時采用resetiosflags(ios::right)實現(xiàn)結(jié)束向左對齊,用setw⑻實現(xiàn)輸出域?qū)挒?,使用一系列的格式控制字符來實現(xiàn)輸出格式的控制。2.重載運(yùn)算符“<<”和“>>”,使其能夠輸入一件商品的信息和輸出這件商品的信息。商品的信息由編號、商品名和價格。假如商品類Merchandise的框架如下:classmerchandise{public:Merchandiss();?Merchandiss();friendistream&operator>>(istream&in,Merchandiss&s);friendostream&operatorvv(ostream&out,Merchandiss&s);private:intno;char*name;doubleprice;};要求實現(xiàn)該類,并編寫以下的main函數(shù)對該類進(jìn)行操作。intmain(){Merchandisemer;cin>>mer;coutvvmer;return0;}實驗代碼:#includeviostream>usingnamespacestd;classmerchandise{public:merchandise(){no=0;name[0]=、0';price=1;}~merchandise(){}friendistream&operator>>(istream&in,merchandise&s);friendostream&operatorvv(ostream&out,merchandise&s);private:intno;charname[100];doubleprice;};istream&operator>>(istream&in,merchandise&s){coutvv"請輸入商品信息(編號、名稱、價格):";in>>s.no;in.getline(,100,、n');in>>s.price;returnin;}ostream&operatorvv(ostream&out,merchandise&s){coutvv"商品信息顯示如下:"vvendl;outvvs.novv''vv''vvs.pricevvendl;returnout;}intmain(){merchandisemer;cin>>mer;coutvvmer;return0;}實驗結(jié)果:raiC:\Windews\system32\cmd.exe蘋/入商品信息(編號、名稱、價格):1酮1康師傅桶面侖品信息顯示如下:Mir.3:8實驗分析:先定義一個商品的類構(gòu)造函數(shù)定義為無參函數(shù)在函數(shù)體中將name置為空,其他為0?在重載>>時使用getline函數(shù)輸入name以’\n'作為結(jié)束標(biāo)記重載vv時直接輸出。在主函數(shù)中調(diào)用這些函數(shù)實現(xiàn)輸入輸出的功能。3?將一個源文件復(fù)制為兩個不同名目的文件,源文件與目的文件均用構(gòu)造函數(shù)打開,使用成員函數(shù)get與put復(fù)制第一個目的文件,使用getline與插入運(yùn)算符復(fù)制第二個目的文件。(提示:用get函數(shù)將輸入文件流對象的指針指向文件尾后,無法將該指針移到文件首位置。所以只能定義兩個輸入文件流對象打開同一源文件,用于兩種方式的文件復(fù)制。實驗數(shù)據(jù):源文件:e:\ex\a.txt,文件內(nèi)容為soucefile目的文件1:e:\ex\b.txt目的文件2:e:\ex\c.txt實驗代碼:#include〈iostream〉#include〈fstream〉#include<string〉usingnamespacestd;voidcreatefile(){ofstreamoutfile("a.txt");if(!outfile){cerr〈〈"opena.txterror!"〈〈endl;exit(1);}charstr[100];cin.getline(str,100,'\n');outfile〈〈str;outfile.close();}voidcopyfile_b(){ofstreamoutfile("b.txt");if(!outfile){cerr〈〈"openb.txterror!"〈〈endl;exit(1);}ifstreaminfile("a.txt");if(!infile){cerr〈〈"opena.txterror!"〈〈endl;exit(1);}charch;while(infile.get(ch)){outfile〈〈ch;outfile.close();infile.close();}voidcopyfile_c(){ofstreamoutfile("c.txt");if(!outfile){cerr〈〈"openc.txterror!"〈〈endl;exit(1);}ifstreaminfile("a.txt");if(!infile){cerr〈〈"opena.txterror!"〈〈endl;exit(1);}charch;while(infile.get(ch)){outfile〈〈ch;}outfile.close();infile.close();}voiddisplay(char*filename){ifstreaminfile(filename);if(!infile){cerr〈〈"openthefileerror!"〈〈endl;exit(1);}charch;while(infile.get(ch)){cout.put(ch);}cout〈〈endl;infile.close();}intmain()createfile();copyfile_b();copyfile_c();cout〈〈"a文?件t中D的I?內(nèi)"2容"Y為a:eo";display("a.txt");cout〈〈"b文?件t中D的I?內(nèi)"2容"Y為a:eo";display("b.txt");cout〈〈"c文?件t中D的I?內(nèi)"2容"Y為a:eo";display("c.txt");return0;}實驗結(jié)果:畫C:\WindowsVsyslem32\cmd.exe…”a.txt-記事半盒申冃希輯疋)楫式彎看⑼幫囲間jishfagfb.t>rt-記事本缺〔戸漏輯(日梧式型WMWCH)jishfagf_Jctxt-記事本世舊精〔E)梧式g 藉目1伯〕jishfagf定義幾個函數(shù)分別實現(xiàn):創(chuàng)建文件、復(fù)制文件、讀取文件中的內(nèi)容到顯示器在主函數(shù)中調(diào)用創(chuàng)建函數(shù),創(chuàng)建一個文件a,調(diào)用復(fù)制文件的函數(shù)將a中的內(nèi)容復(fù)制到文件b,c中在調(diào)用讀取文件的函數(shù)將a、b、c中的內(nèi)容輸出到曰—曰—HS.顯示器中。4.將存放在源文件(e:\ex\arrayl.txt)中學(xué)生成績讀入二維整型數(shù)組a[3][5]中,數(shù)組a的第0列存放學(xué)號,第4列存放平均成績。計算出每個學(xué)生的平均成績,用擂臺法對數(shù)組a按平均成績升序排序后,存放在目的文件(e:\ex\array2.txt)中。學(xué)生的學(xué)號與成績?nèi)鐚嶒灁?shù)據(jù)所示。編寫程序?qū)崿F(xiàn)上述要求。實驗數(shù)據(jù):源文件:e:\ex\array1.txt,內(nèi)容如下:1001 9085800100280706001003 8580750目的文件:e:\ex\array2.txt實驗代碼:#include〈iostream〉#include〈fstream〉usingnamespacestd;voidcreatefile(){ofstreamoutfile("array1.txt");inta[3][4];inti,j;for(i=0;i〈3;i++){cout<<"請?輸°?入,?第「?2"〈〈i+l〈〈〃個?學(xué)“生的I?信?息弋:go";for(j=0;j〈4;j++){cin〉〉a[i][j];}}for(i=0;i<3;i++){for(j=0;j<4;j++){outfile〈〈a[i][j];outfile〈〈'';}outfile〈〈'\n';}}//^aja建匚§文?件tarraylvoidsort()//排?序"°并je^aja建[§文?件tarray2{ifstreaminfile("array1.txt");inta[3][5];inti,j,t;doubles=0;for(i=0;i〈3;i++){for(j=0;j〈4;j++){infile〉〉a[i][j];s=s+a[i][j];}s=(s—a[i][0])/3;a[i][4]=s;s=0;}for(j=0;j<2;j++){for(i=0;i〈2-j;i++){if(a[i][4]〉a[i+1][4]){for(t=0;t〈5;t++){s=a[i][t];a[i][t]=a[i+1][t];a[i+1][t]=s;}}}}ofstreamoutfile("array2.txt");if(!outfile){cerr〈〈"openfileerror!";exit(1);}for(i=0;i〈3;i++)for(j=0;j〈5;j++){outfile〈〈a[i][j];
C:\WindeW5\system32Xcmd.exe0生生生¥1237第第第qAAA8C:\WindeW5\system32Xcmd.exe0生生生¥1237第第第qAAA8息息息亠一_旺一_日一_刊1S01908S701QQ280?0£01QQ380?57010031001請按任意鍵繼紙???|arrayS.t^t■記事本劉牛舊編輯罔TSKfOl查看凹轄助(H〕n-5n,T—T—OQooQ6T—7-u5nV717—nxw-u-uo,88g231oooo-o-o,111實驗分析:定義三個函數(shù)分別實現(xiàn):創(chuàng)建文件,排序,輸出文件。排序采用冒泡排序?qū)⑵骄煽兣判颍羟懊娴拇笥诤竺娴?,將各個對應(yīng)項交換,達(dá)到排序的目的。在主函數(shù)中調(diào)用這三個函數(shù),實現(xiàn)程序的功能5.編寫一個程序,將兩個文本文件連接成一個文件,然后將此文件中所有小寫字母轉(zhuǎn)換成大寫字母,并打印出來。實驗代碼:#include〈iostream〉#include〈fstream〉#include<stdlib.h〉usingnamespacestd;voidcreatefile(char*filename){ofstreamoutfile(filename);if(!outfile){cerr〈〈"openfileerror!"〈〈endl;exit(1);}charstr[80];cin.getline(str,80);inti=0;while(str[i]){outfile〈〈str[i];i++;}outfile.close();}voidchange(){ifstreaminfile("c.txt");if(!infile){cerr〈〈"openfileerror!"〈〈endl;exit(1);}ofstreamoutfile("d.txt");if(!outfile){cerr〈〈"openfileerror!"〈〈endl;exit(1);}charstr;while(infile.get(str)){if(str〉=97&&str〈=122)str=str—32;outfile.put(str);cout〈〈str;}cout〈〈endl;infile.close();outfile.close();}voidcopyfile(){charch;ifstreaminfile("d.txt");//讀"0取 磁玄?盤■■-的I?文?本本A?文?件tofstreamoutfile("c.txt");//^aja建(§文?本A?文?件twhile(infile.get(ch))//讀"0取"?文?本A?中D的I?內(nèi)“容"丫{cout〈〈ch;//輸°?出?文?本A?內(nèi)"2容"Y到I?內(nèi)"2存a?outfile〈〈ch;//寫ja入"?內(nèi)"2容"Y到I?文?件t}
infile.close(); //關(guān)?閉A?文?件t流0jAoutfile.close();cout〈〈endl;}intmain(){cout<<"請?輸°?入■??a文?件t中D的I?數(shù)°y據(jù)Y:eo";createfile("a.txt");cout〈〈"請?輸°?入■??b文?件t中D的I?數(shù)°y據(jù)Y";createfile("b.txt");system("copya.txt+b.txtc.txt");change();copyfile();return0;}實驗結(jié)果:raiiiraiiiC:^Windom32\cmd.exe□B加-記事本文犧輛(E〕恰式童看⑷辛助(H)adfaksdf2J|Ktxt-記事本叉些陰鋌(E〕宿式Q)童看的秤助(巴_asjfinnin. ”C.txt-記事本文樣舊丐齋舊梧式期査看阿幫輒五jwAKSDPASJFINNIN實驗分析:定義三個函數(shù):create,change,copy。分別實現(xiàn)創(chuàng)建文件,改變大小寫,拷貝,程序中先建立文件a,b,在用庫函數(shù)system將兩個文件鏈接成一個文件c,在調(diào)用change函數(shù),將文件c中的字母改為大寫,并保存到d文件中,最后調(diào)用copy函數(shù)將d中的內(nèi)容拷貝到c中并覆蓋。從而使c中的字母都為大寫。6.產(chǎn)生一個二進(jìn)制數(shù)據(jù)文件,將n~m之間的所有素數(shù)寫入文件data.dat中。從數(shù)據(jù)文件中讀取二進(jìn)制數(shù)據(jù),并在顯示器上以每行5個數(shù)的形式顯示。實驗數(shù)據(jù):n=100m=400實驗代碼:#include〈iostream〉#include〈fstream〉#include<math.h〉usingnamespacestd;intjudge(inta)//求a是否是素數(shù)如果是則輸出{inttemp=sqrt(a*1.0);inti;for(i=2;i<a&&i〈=temp+1;i++){if(a%i==0)return0;}cout〈〈a〈〈'';return1;}voidcreatefile()/創(chuàng)建文件a將素數(shù)存入{ofstreamoutfile("1.dat");if(!outfile){cerr〈〈"openfileerror!"〈〈endl;exit(1);}inti;intc=0;for(i=201;i〈=400;i++){if(judge(i))//若i是素數(shù),則將i存入文件中{outfile〈〈i〈〈’';c++;if(c%5==0){cout〈〈endl;outfile<<endl;}}}cout<<endl;outfile.close();}intmain(){createfile();return0;}實驗結(jié)果:sawC:\Windoen-!32\cmd^<eill223227229233!39241
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 藝術(shù)與社會責(zé)任探討-深度研究
- 智能化信貸風(fēng)控策略-深度研究
- 智能交通管理系統(tǒng)開發(fā)-深度研究
- 2025年住房按揭貸款合同新標(biāo)準(zhǔn)
- 航空貨運(yùn)綠色包裝技術(shù)-深度研究
- 泉州工藝美術(shù)職業(yè)學(xué)院《溝通藝術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西英華國際職業(yè)學(xué)院《建筑初步(一)》2023-2024學(xué)年第二學(xué)期期末試卷
- 無錫科技職業(yè)學(xué)院《現(xiàn)代微處理器原理及應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 石河子大學(xué)《建筑信息模型于工程整合之應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西管理職業(yè)學(xué)院《教師綜合素質(zhì)與修養(yǎng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 深靜脈血栓形成的診斷和治療指南(第三版)解讀資料講解課件
- 人教版小學(xué)一年級美術(shù)上冊全冊課件
- 統(tǒng)編人教部編版道德與法治四年級下冊教材解讀教師教材培訓(xùn)課件
- 履約專項檢查表
- 人教版數(shù)學(xué)四年級下冊第一單元測試卷
- 模具保養(yǎng)記錄表
- 2023國家自然科學(xué)基金申請書
- 原始狩獵圖 (2)
- 《色彩構(gòu)成——色彩基礎(chǔ)知識》PPT課件
- 鍍層的結(jié)合力
- 霍尼韋爾DDC編程軟件(CARE)簡介
評論
0/150
提交評論