C++簡易銀行卡管理系統(tǒng)_第1頁
C++簡易銀行卡管理系統(tǒng)_第2頁
C++簡易銀行卡管理系統(tǒng)_第3頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、分類號華北水利水電大學NorthChinaInstituteofWaterConservancyandHydroelectricPower課程設計題目簡易銀行卡管理系統(tǒng)院系信息工程學院專業(yè)計算機科學與技術姓名張樂民學號201215211指導教師張帆1題目的內容及要求1.1簡易銀行卡管理系統(tǒng)(1) 開戶:創(chuàng)建一個新的賬戶,接受用戶輸入的身份證號,以及賬戶密碼,判斷用戶輸入的身份證號是否唯一且賬戶密碼是否符合要求,如驗證成功則為該用戶生成一個唯一的帳號。(2) 存款:在用戶輸入正確的帳號和密碼的情況下,接受用戶輸入的存款金額,并對該帳號的存款信息進行更新。(3) 取款:在用戶輸入正確的帳號和密碼的

2、情況下,接受用戶輸入的取款金額。取款金額不應該大丁當前帳號存款金額,當取款金額不大丁當前帳號存款金額時,執(zhí)行取款操作,并對該帳戶的存款信息進行更新。(4) 掛失:在用戶輸入正確的帳號和密碼的情況下,接受用戶掛失操作。當帳號掛失后,與該帳號相關的操作都將被禁止。(5) 銷戶:在用戶輸入正確的帳號和密碼的情況下,接受用戶銷戶。當用戶銷戶后,該帳號將被永久刪除。(6) 轉帳:在用戶輸入正確的帳號和密碼的情況下,接受用戶轉賬操作,轉帳金額不應該大丁當前帳號存款金額,當轉帳金額不大丁當前帳號存款金額時,執(zhí)行轉帳操作,并對該帳戶的存款信息及轉帳的接受賬戶的存款信息進行更新。(7) 修改賬戶密碼:在用戶輸入

3、正確的帳號和密碼的情況下,接受用戶修改密碼操作,用戶輸入的原密碼,若用戶輸入的密碼與原密碼匹配,則接受用戶輸入的新密碼,若用戶兩個輸入的密碼相同,則修改賬戶密碼,并對數(shù)據文件進行更新操作。查看余額:在用戶輸入正確的帳號和密碼的情況下,接受用戶查看余額操作,該模塊只涉及數(shù)據查詢,并不涉及數(shù)據文件更新操作。(8) 查看用戶交易歷史:在用戶輸入正確的帳號和密碼的情況下,接受用戶查看用戶交易歷史操作,系統(tǒng)將顯示當前賬戶的最近的存、取款操作記錄,該模塊只涉及數(shù)據查詢,并不涉及數(shù)據文件更新操作。2小組成員分工及本人任務實驗內容共分為九個子功能,設計時采用模塊化設計,每人分配三個功能,獨立完成,最后進行綜合

4、調試。張樂民:存款取款轉賬杜世豪:修改帳戶密碼查看余額查看用戶交易歷史婁旭陽:開戶掛失銷戶3需求分析3.1總體情況:定義結構體數(shù)組,數(shù)據成員主要有用戶名、密碼、交易歷史、掛失標志、余額、身份證等內容,再定義公有類,在主界面上,可供用戶進行開戶、存取款、轉賬、查看余額、交易歷史、掛失、銷戶等操作,為了實現(xiàn)界面的回復,定義了大量的函數(shù)調用,在控制用戶的循環(huán)操作時,主要采用了while及ifelse循環(huán)。3.2本人任務部分:存款:用戶自主實現(xiàn)存款功能,遇到問題時,可給予一定提示,存款之后,對數(shù)據進行更新。取款:用戶自主實現(xiàn)存款功能,遇到問題時,可給予一定提示,存款之后,對數(shù)據進行更新。轉賬:用戶自主

5、實現(xiàn)轉賬功能,遇到問題時,可給予一定提示,轉賬之后,對雙方賬戶的數(shù)據進行更新。4概要設計總體數(shù)據結構為結構體數(shù)組設計,采用順序存儲方式,總體的程序設計沒有涉及太過復雜的數(shù)據結構,可采用較為簡單的順序存儲方式。structSAccount(intusername/整型定義用戶名intpassword;整型定義密碼intid;/整型定義身份證號intmoney;/整型定義余額intlost;/整型定義掛失charhistory1024;字符型定義歷史account40;結構體數(shù)組數(shù)量最多為40個主函數(shù)將實現(xiàn)檢測登錄的賬號密碼是否匹配,在登錄成功之后,才會調用存款、取款、轉賬函數(shù),進入相對應的界面。

6、轉賬中,轉賬的對象的用戶名將在主函數(shù)中給出,然后調用轉賬函數(shù),對用戶名是否存在進行判斷。定義WhereUser函數(shù)即為找到用戶位置,在轉賬中調用,找到轉賬對象的位置,對其的余額進行計算。5詳細設計5.1類型定義均在程序定義了整型常量與字符申型變量5.2算法描述存款:輸入界面,對存入金額的判斷,符合要求時,對余額進行更新,并把新的數(shù)據寫入至文件中。取款:輸入界面,對取款金額進行判斷,當取款金額小丁余額時,取款成功,更新余額及交易歷史。轉帳:檢查轉賬賬號是否存在,存在時,當轉賬金額小丁余額時,可進行轉賬,對雙方賬戶信息進行更新,不存在時,轉賬失敗。就轉賬進行詳細介紹。主函數(shù):case4:syste

7、m("cls");intusername;cout<<"請輸入你要轉入的賬號:"cin>>username;Virement(num,username);return1;break;調用至voidVirement(intnum,intusername)中,使用if(CheckUsername(username)else語句對輸入的帳號進行判斷,帳號存在時,輸入轉賬金額,當轉賬金額小丁賬戶余額時,操作成功,找到轉賬對象的位置,對雙方余額進行計算:intn=WhereUser(username);accountnum.money-=a

8、;accountn.money+=a;然后定義字符申型變量:charstr110;charstr21024;charstr31024;strcpy(str2,accountnum.history);itoa(a,str1,10);wsprintf(str3,"%s取出%s元",str2,str1);strcpy(accountnum.history,str3);UpdateAllfile(account);使用strcpy字符申復制函數(shù),將str1,str2的數(shù)值賦給str3,將str3的值賦給accountnum.history交易歷史,然后更新所有數(shù)據到文件,每次操作,

9、如存取款,都必須對余額進行計算,同時更新交易歷史。6源代碼:#include<stdio.h>#include<iostream.h>#include<string.h>#include<fstream.h>#include<stdlib.h>#include<windows.h>#defineMAX1024structSAccountintusername;intpassword;intid;intmoney;intlost;charhistory1024;account40;classCAccountpublic:in

10、tusername;/賬號intpassword;/密碼intid;/身份證intmoney;余額intlost;/掛失標志char*history;歷史intOpenAccount(intid,intpassword);/開戶(返回一個賬號)boolCheckId(intid,SAccountsa);/檢查是否存在ID;*username*存在trueboolCheckUsername(intusername)intcount=GetCount();Readfile(account,count);for(inti=0;i<count;i+)if(username=accounti.us

11、ername)returntrue;returnfalse;*檢查賬號密碼是否匹配心心心心心心心心心*boolCheckPassword(intusername,intpassword)(intcount=GetCount();Readfile(account,count);for(inti=0;i<count;i+)(if(username=accounti.username&&password=accounti.password)returntrue;returnfalse;找到用戶位置*心心心心心心心心心*intWhereUser(intusername)(intc

12、ount=GetCount();Readfile(account,count);for(inti=0;i<count;i+)(if(username=accounti.username)returni;*心心心心心心心心心*voidSaveMoney(intnum)存款(inta;cout<<"請問你要存入的金額為:"<<endl;cin>>a;while(a<=0)(cout<<"輸入錯誤,請重新輸入:"<<endl;cin>>a;intcount=GetCount()

13、;Readfile(account,count);accountnum.money=accountnum.money+a;cout<<"操作已成功"<<endl;cout<<"您已成功存入:"<<a<<"元"<<endl;charstr110;charstr21024;charstr31024;strcpy(str2,accountnum.history);itoa(a,str1,10);wsprintf(str3,"%s存入%s元",str2

14、,str1);strcpy(accountnum.history,str3);UpdateAllfile(account);*心心心心心心心心心*voidGetMoney(intnum)(inta;cout<<"請輸入款金額:"<<endl;cin>>a;while(a<=0)(cout<<"請重新輸入取款金額:"<<endl;cin>>a;intcount=GetCount();Readfile(account,count);if(accountnum.money<a)

15、(cout<<"對不起,你的余額不足!"<<endl;else(accountnum.money=accountnum.money-a;charstr110;charstr21024;charstr31024;strcpy(str2,accountnum.history);itoa(a,str1,10);wsprintf(str3,"%s取出%s元",str2,str1);strcpy(accountnum.history,str3);UpdateAllfile(account);此處改變歷史記錄cout<<"

16、;操作成功,請查收鈔票"<<endl;*轉*voidVirement(intnum,intusername)/供帳位置num的賬戶向username轉入if(CheckUsername(username)inta;cout<<"請問你要轉帳的金額為:";cin>>a;while(a<=0)cout<<"您輸入轉帳金額小丁等丁0"<<endl;cout<<"請重新輸入轉帳金額:"cin>>a;intcount=GetCount();Rea

17、dfile(account,count);if(accountnum.money<a)(cout<<"對不起,你的余額不足!"<<endl;return;else(intn=WhereUser(username);accountnum.money-=a;accountn.money+=a;charstr110;charstr21024;charstr31024;strcpy(str2,accountnum.history);itoa(a,str1,10);wsprintf(str3,"%s取出%s元",str2,str1);

18、strcpy(accountnum.history,str3);charstr410;charstr51024;charstr61024;strcpy(str5,accountn.history);itoa(a,str4,10);wsprintf(str6,"%s存入%s元",str5,str4);strcpy(accountn.history,str6);UpdateAllfile(account);cout<<"轉帳成功"<<endl;elsecout<<"您要轉入的賬號不存在,操作失敗"<

19、;<endl;登陸成功后的菜單界面,*心心心心心心心心心*intLodingView(intnum)intflag=0;intcount=GetCount();Readfile(account,count);cout<<”*”<<endl;cout<<"*歡迎你,用戶"<<accountnum.username<<"*"<<endl;cout<<”*”<<endl;cout<<"*1:存款2:取款3:修改密碼*"<&

20、lt;endl;cout<<"*4:轉賬5:余額6:交易歷史*"<<endl;cout<<"*0:返回主界面*"<<endl;cout<<”*”<<endl;cout<<"請輸入你的指令:"cin>>flag;returnflag;7運行結果及分析7.1測試數(shù)據:(1)主界面TF:BankManjgeSy5temDebugBanklVfanageSytem-exe"(2)首先進行開戶,創(chuàng)立唯一性賬號,'F:BankMdna

21、geSy5temDebugBdnkManage5ystem.exe"銀行卡管理系統(tǒng)一一開戶66s100004Jh-»IKiJJX.:6碼功號A'入戶的MMMMr1r銀行卡管理系統(tǒng)KICKXMMMM”開戶2:登陸玦解除掛失3:掛買4:|p6:退出累統(tǒng)請總入你濕旨家(3)登陸,進入存取款界面r:drIk.IvIdndyitsrnuy_DdrikivijndyrsyhLfiii.exK輸入賬號以湖胸4輸入密碼=的咒財jiXKXXKNXKXXitiiXiigxmiXWjKXXMXiCisiiCiCMiOCjKKXMXXKXKMXX誠X1M禱XlKiKX歡迎4爾.用戶1003

22、04XJOfXKJOCX:MJtXXJCWXJtJIXIOOtKJIXKXKICMiaBOtKiMKXiMlOCXHJrtXJtICXItXXJtXXKK*l:#t2遺毯3邃恩密碼i(WM14*4二轉賬余額6咬易歷史*U:推向全界面««*XX秘K*KX舞iMX葛建胃*M;MXM菖就KM直皆>«親*;*-><*->1*:-1<*菌*請輸入你的指令,(4)存款請問你要存入的金額為:11111辱醍瞬足11111元KJOCitmiimK拭XXXXKXXliKXKKKUKXK拭WLH拭itKKWLK拭HIM拭KK拭KIf拭KHMititMiKH

23、歡迎你g用戶麗麗4;尊瀑穗賽b:iME王界面mxnxjKlOOiKXKKiOiKXliHiCMIiMililiMtIiKXMKXKKiiliMiififiMmiKXJWMKlMXHitiMk青輸入你的指令*取款請輸入款金額=舞作成功,請查收鈔票:M*:M!M*M:M!M歡迎你,用戶朋。4XM!XMtMX甄*ItNiXIfXICKXIKNXaOIXXKXXlitXlitXXKIOCKXXKXXKHXNmCWIXiaM:p*"懷就2嘿瑟3噬苞密碼*«*4:轉賬5:余額6=父易歷史*隊返回主界面MKKMMiXi<*iXKlHtitirWlC:MM:lfNiMWitKNM:i

24、(ltM:KfrM:itXiKIOiM;Wif青輸入你的指令、(5) 轉賬!-:BankWanageystemEJebugBankManjgeSystem,exe查看余額及交易歷史rDdraitividfidyeyLtrrriMruuyDdriK.i¥iandy«iyiierTLexEF:EankManageSystemD?bugBankManageSystem.exe'開戶成功存入:LiiH元取出44元取出珀元取出77刀無xxxxocx歡迎你,用戶100麗4X2:W3=g:MltXXS:余額6:父跤返回主界面請輸入你的指令,7.2測試結果:代碼所執(zhí)行的功能順暢運行,余額的計算、交易歷史的界面較為活晰合理,沒有錯誤,達到預先設想功能。7.3時間復雜度分析:時間復雜度O(n)7.4改進思想:本次程序已經是在大家討論并經過多次修改的程序,但是確實存在著許多不足。其一:希望可以就交易歷史的函數(shù)進行修改,讓其交易歷史的記錄規(guī)范化,程序中的交易歷史記錄是無序的,希望可以就存入的錢,取出的錢,轉賬的錢按順序進行顯示;其二:對交易的時間進行編寫,在查看交易歷史時,可以看到每次交易的準確時問。8課程設計總結本次課程設計是一次嚴謹?shù)膶嵺`操作,在設計過程中,根據“課程設計報告內容要求”,對組員進行了詳細的分工,對設計流程也有詳細的規(guī)劃,

溫馨提示

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

評論

0/150

提交評論