




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實 驗 報 告課程名稱面向對象程序設計實驗名稱類與對象專 業通信工程 班 級通信1101學 號姓 名指導教師喬匯東2012年 10 月17 日實驗一 類與對象實驗名稱類與對象 評分實驗日期 2012年10月 17日 指導教師喬匯東姓名 皮鋒專業班級 通信工程學號201103020127一、實驗目的(1)掌握類與對象定義與使用方法。(2)理解類與對象的基本關系。(3)了解封轉原則應用的方式。(4)掌握成員函數的基本使用方法。(5)掌握構造析構函數的使用方法。二、實驗平臺PC機一臺,軟件開發環境VC6.0+;三、實驗內容 1、定義一個類實現銀行帳戶的概念,賬戶應包括有數據成員帳號、存款余額和”賬戶
2、密碼”等。在main函數中創建3個賬戶對象,分別存入一定的現金,然后顯示各個賬戶的存款余額。2、把數據成員帳號和存款余額定義為private,給銀行賬戶這個類添加公有的成員函數存款、取款、查詢余額和”查詢帳號”。 main()函數中創建3個賬戶,調用成員函數進行一些存取款的操作。3、編輯代碼實現用戶正確輸入賬號和密碼能顯示該賬戶余額的功能。4、為類添加構造和析構函數,要求構造函數能對數據成員進行初始化,并在每個賬戶創建時給出提示,比如每個賬號創建時顯示“新賬戶建立”字樣,析構函數要求能在賬戶對象釋放時顯示賬戶中所余金額。四、實驗記錄(記錄實驗各步驟的代碼,實驗各步驟觀察得到的結果)1.定義一個
3、類實現銀行帳戶的概念#includeusing namespace std;class accountpublic:int user;double balance;int cipher;int main()account a,b,c;a.balance=100;b.balance=200;c.balance=300;couta賬戶的存款余額:a.balanceendl;coutb賬戶的存款余額:b.balanceendl;coutc賬戶的存款余額:c.balanceendl;system(PAUSE);return 0;程序執行結果:說明:程序中建立了3個賬戶a,b,c,分別存入了100元,2
4、00元,300元,所以執行結果的存款余額分別為100元,200元,300元。2.#includeusing namespace std;class account private:int user;double balance;public:void save(double x)/存款balance=0;balance=balance+x;void draw(double x)/取款balance=balance-x;int queryuser(int m)/查詢用戶return user=m;void querymoney()/查詢余額 cout用戶user的余額為:balanceendl;
5、int main()account a,b,c;a.queryuser(10000);b.queryuser(10001);c.queryuser(10002);a.save(1000);b.save(2000);c.save(3000);a.draw(300);b.draw(200);c.draw(100);a.querymoney();b.querymoney();c.querymoney();system(PAUSE);return 0;執行程序結果:說明:程序中創建了3個賬戶10000,10001,10002,且分別存入了1000元,2000元,3000元,取出了300元,200元,1
6、00元。所以得出以上運行結果。3.#includeusing namespace std;class account private:int user;double balance;/余額public:int cipher;/賬戶密碼void save(double x)/存款balance=0;balance=balance+x;void draw(double x)/取款balance=balance-x;int queryuser(int m)/查詢用戶return user=m;void querymoney()/查詢余額 cout用戶user的余額為:balanceendl;int
7、judge(int &m) int key;if(m=user) cout請輸入密碼:key;if(key=cipher) querymoney(); return 1;else cout密碼輸入錯誤!endl; return 1; else return 0;int main()account a,b,c;a.queryuser(10000);b.queryuser(10001);c.queryuser(10002);a.cipher=1111;b.cipher=2222;c.cipher=3333;a.save(1000);b.save(2000);c.save(3000);a.draw(
8、300);b.draw(200);c.draw(100);int x; cout請輸入您的賬戶名:x; int pw=a.judge(x)+b.judge(x)+c.judge(x); if(pw=0) cout用戶不存在!endl; system(PAUSE);return 0;程序執行結果:說明:程序中賬戶10002的設置密碼是33333,密碼輸入正確,且第三題的用戶存取款和第二題一樣,所以程序輸出正確的運行結果。說明:程序中的三個用戶名分別是10000,10001,10002,而輸入的用戶名為10004,是不存在的,所以不能顯示用戶的存款余額。說明:程序中設置的用戶10000的密碼為11
9、11,而輸入的密碼為2222,密碼輸入有誤,根據程序要求,所以不能顯示用戶的存款余額。4.#includeusing namespace std;class account private:int user;double balance;/余額public:int cipher;/賬戶密碼account(int user=0)cipher=0;balance=0;cout新賬戶user建立了。endl; account()cout賬戶號user被刪除了!endl;cout賬戶user的余額為:balanceendl;void save(double x)/存款 balance=balance+
10、x;void draw(double x)/取款balance=balance-x;int queryuser(int m)/查詢用戶return user=m;void querymoney()/查詢余額 cout用戶user的余額為:balanceendl;int judge(int &m) int key;if(m=user) cout請輸入密碼:key;if(key=cipher) querymoney(); return 1;else cout密碼輸入錯誤!endl; return 1; else return 0;int main()account a(10000),b(10001
11、),c(10002);a.queryuser(10000);b.queryuser(10001);c.queryuser(10002);a.cipher=1111;b.cipher=2222;c.cipher=3333;a.save(1000);b.save(2000);c.save(3000);a.draw(300);b.draw(200);c.draw(100);int x; cout請輸入您的賬戶名:x; int pw=a.judge(x)+b.judge(x)+c.judge(x); if(pw=0) cout用戶不存在!endl; system(PAUSE);return 0;程序執
12、行結果:說明:程序中用構造函數對每個用戶進行了初始化且對用戶建立進行了提示,用析構函數對賬戶釋放時顯示余額,用戶10002的密碼是3333,輸入正確,所以得如上圖所示結果。五、實驗結論與體會實驗中程序按要求由簡到繁一步一步實現要執行的功能。在第一步中,我建立了三個賬戶,并在main函數中顯示三個賬戶的存款余額,但是在main函數中,首先我沒有寫account a,b,c;著句話,所以程序編譯時出現錯誤: error C2065: a : undeclared identifier和error C2228: left of .balance must have class/struct/unio
13、n type。經過仔細檢查,我才在main函數中用account 定義了3個對象。在第二步中,把數據成員帳號和存款余額定義為private,但是在main函數中沒有注意余額balance為private,仍然用a.balance來實現現金的存入,使得編譯通不過,后來才在類中使用了存款函數void save(double x)和取款函數void draw(double x),并在main函數中用a.save(1000); a.draw(300)來實現存取款功能。在第三步中,要求實現用戶正確輸入賬號和密碼能顯示該賬戶余額的功能,所以必須在類中添加judge函數判斷賬號和密碼是否正確,在judge函
14、數中用if else的嵌入式結構,先判斷賬號,再判斷密碼,但是不管第二個用戶是否存在,都輸出“用戶不存在”,程序在邏輯上存在問題,不能實現想要的功能,在同學的幫助下,才在main函數中加了一句int pw=a.judge(x)+b.judge(x)+c.judge(x); if(pw=0) cout用戶不存在!endl; 這樣才實現了想要的功能。在第四步中,為類添加構造和析構函數。首先我把構造函數寫成account(int user=0,intcipher=0),然后在main函數中用account a(10000,1111),b(10001,2222),c(10002,3333);但執行時總是顯示用戶不存在,仔細檢查才發現int cipher;不是private,之后把構造
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海南省三亞市2025年八年級《語文》上學期期末試題與參考答案
- 旅游房車營地租賃與旅游志愿者合作合同
- 虛擬財產交易平臺結算服務與網絡安全保障合同
- 2025年中國北斗導航儀行業市場前景預測及投資價值評估分析報告
- 立體綠化技術咨詢與實施方案合同
- 游戲角色廣告植入版權授權協議
- 2025年中國鈀鈷合金行業市場前景預測及投資價值評估分析報告
- 野生動物國際運輸保險理賠及保護協議
- 法律服務校企合作定向實習律師崗位勞務合同
- 高效生物降解材料研發與技術轉移合作協議
- 教師交通安全法規
- 2025-2030年中國蛭石市場發展前景及投資策略分析報告
- 江蘇省淮安市(2024年-2025年小學六年級語文)統編版期末考試(下學期)試卷及答案
- 文創產品設計課件
- 土地平整工程施工方案與技術措施
- 基層數字化治理能力提升的內在邏輯與創新路徑
- 《公路橋梁阻尼模數式伸縮裝置》
- 蒸壓加氣混凝土板檢測原始記錄表(含型式檢驗)
- 南京市房屋租賃合同(試行)(居間服務版)
- ICU病人鎮靜鎮痛護理
- 《公路橋涵養護規范》(5120-2021)
評論
0/150
提交評論