日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++编程练习:设计一个银行账户类,包含户名、帐号以及当前余额属性,并且能完成开户、存款、取款和查询余额等行为。

發布時間:2024/2/28 c/c++ 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++编程练习:设计一个银行账户类,包含户名、帐号以及当前余额属性,并且能完成开户、存款、取款和查询余额等行为。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 例題
  • 分析
  • 代碼
  • 測試
  • 結語

例題

設計一個銀行賬戶(Account)類,包含戶名、帳號以及當前余額屬性,可完成開戶、存款、取款和查詢余額等行為。銀行賬戶類的定義要求如下:

class Account { public:Account(char name[],long num,float amount); //類的有參構造函數Account(); //類的無參構造函數void deposit(float amount); //往賬戶中存款int withdraw(float amount); //從賬戶中取款float getBalance(); //查詢當前余額 private:char mName[20]; //銀行賬戶的戶名long mSN; //本賬戶的帳號float mBalance; //本賬戶當前的余額 };

請根據上述給定的類,完善其相應的構造函數及成員函數的定義,并執行主函數實現測試。

分析

代碼分析:
1、根據題意,我們要設計一個類Account,要將mName、mSN、mBalance均作為其成員數據,將deposit、withdraw、getBalance均作為其成員函數。類圖UML設計圖如下:

2、代碼中 strcpy()即字符串復制函數,其原型是char * strcpy(char * dest,const char * src),把含有‘ \0 ’結束符的字符串復制到羅一個地址空間,即把從 src 地址開始且含有 NULL 結束符的字符串復制到以 dest 開始的地址空間,其中 src 和 dest 所指內存區域不可以重疊且 dest 有足夠空間容納 src 的字符串。

strcpy(mName, name); //字符串復制函數

3、無參構造函數跟有參構造函數的區別,即在類里定義一個與類名相同的函數,但它的實參列表為空。

//類的有參構造函數 Account::Account(char name[], long num, float amount) {strcpy(mName, name); //字符串復制函數mSN = num;mBalance = amount; } //類的無參構造函數 Account::Account() {cout << "無參函數被調用!"<< endl; }

4、取款操作中,我們要考慮賬戶透支,即賬戶余額為0的情況,這里我們定義一個 if - else if 語句,若取款金額大于卡內金額時,return 0此時函數正常終止,而當取款金額小于或等于卡內金額時,return 1此時函數異常退出,即異常退出此函數。

//從當前賬戶中取款 int Account::withdraw(float amount) {if (amount > mBalance){return 0;}else if (amount <= mBalance){mBalance = mBalance - amount; return 1; //return 1代表函數非正常終止} }

5、查詢賬戶余額操作中,return 關鍵字,其作用是返回程序流程的控制權,副作用是返回一個值,這里是返回卡內金額 mBalance 的值。

//查詢當前賬戶的余額 float Account::getBalance() {return mBalance; }

6、Account A(name, num, amount)這里我們建立了一個賬戶,即實例化一個對象。

int main() {int NO, m;char name[20];long num;float amount;cout << "請輸入所開賬戶戶名:";cin >> name;cout << "請輸入所開賬戶帳號:";cin >> num; cout << "請輸入所開賬戶初始存款金額:";cin >> amount;Account A(name, num, amount);.................................................................................................................. }

代碼

以下是完整的程序代碼:

#include<iostream> using namespace std; class Account { public:Account(char name[], long num, float amount); //類的有參構造函數 Account(); //類的無參構造函數 void deposit(float amount); //往當前賬戶中存款 int withdraw(float amount); //從當前賬戶中取款 float getBalance(); //查詢當前賬戶的余額 private:char mName[20]; //銀行賬戶的戶名 long mSN; //本賬戶的帳號 float mBalance; //本賬戶當前的余額 }; //類的有參構造函數 Account::Account(char name[], long num, float amount) {strcpy(mName, name); //字符串復制函數mSN = num;mBalance = amount; } //類的無參構造函數 Account::Account() {cout << "無參函數被調用!" << endl; } //往當前賬戶中存款 void Account::deposit(float amount) {mBalance = mBalance + amount; } //從當前賬戶中取款 int Account::withdraw(float amount) {if (amount > mBalance){return 0;}else if (amount <= mBalance){mBalance = mBalance - amount; return 1; //return 1代表函數非正常終止} } //查詢當前賬戶的余額 float Account::getBalance() {return mBalance; } //主函數 int main() {int NO, m;char name[20];long num;float amount;cout << "請輸入所開賬戶戶名:";cin >> name;cout << "請輸入所開賬戶帳號:";cin >> num; cout << "請輸入所開賬戶初始存款金額:";cin >> amount;Account A(name, num, amount); cout << "" << endl;cout << "------------------------------------------------"<<endl;cout << " 菜單欄 "<<endl;cout << "1、存款請輸入“1”"<<endl;cout << ""<<endl;cout << "2、取款請輸入“2”"<<endl;cout << ""<<endl;cout << "3、查詢賬戶余額請輸入“3”"<<endl;cout << ""<<endl;cout << "4、退出請輸入“4”"<<endl;cout << ""<<endl;cout << "------------------------------------------------"<<endl;while (1){cout << "請輸入選擇:" << endl;cin >> NO; switch (NO) //通過switch循環來判斷輸入的菜單欄選擇對應其相應的操作{ case 1: cout << "請輸入存款金額:";cin >> amount;A.deposit(amount);break; //表示跳出該switch語句體case 2: cout << "請輸入取款金額:";cin >> amount;m = A.withdraw(amount);if (m == 0) cout << "當前賬戶余額不足!" << endl;else cout << "取款成功!" << endl;break; case 3: cout << "當前賬戶余額為:" << A.getBalance() << endl;break;case 4: cout << "賬戶已退出!" <<endl;return 0;default:cout << "輸入錯誤!"<< endl; //判斷輸入菜單欄是否輸入正確exit(0);}cout << "" <<endl;} }

測試

測試圖:

運行成功!

結語

以上就是本次C++的全部內容,感謝您的閱讀和支持,篇幅較長,若有表述或者代碼中的不當之處,望指出!您的指出和建議能給作者帶來很大的動力!!!

總結

以上是生活随笔為你收集整理的C++编程练习:设计一个银行账户类,包含户名、帐号以及当前余额属性,并且能完成开户、存款、取款和查询余额等行为。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。