銀行ATM系統(tǒng)軟件工程設(shè)計報告_第1頁
銀行ATM系統(tǒng)軟件工程設(shè)計報告_第2頁
銀行ATM系統(tǒng)軟件工程設(shè)計報告_第3頁
銀行ATM系統(tǒng)軟件工程設(shè)計報告_第4頁
銀行ATM系統(tǒng)軟件工程設(shè)計報告_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

西安郵電學(xué)院軟件工程報告學(xué)院名稱:計算機學(xué)院學(xué)生姓名:專業(yè)名稱:網(wǎng)絡(luò)工程班級:PartA:WhatisSoftwareEngineering(SE)軟件工程是一門工程學(xué)科,涉及軟件生產(chǎn)的各個方面,從最初的系統(tǒng)描述一直到使用后的維護,都屬于其學(xué)科范疇。軟件工程人員運用的是系統(tǒng)的、有組織的的工作方法,這種方法對于制作高質(zhì)量的軟件是最有效的。HowmanydifferentpartsinSEdevelopment(1).問題的定義以及規(guī)劃;(2).需求分析;(3).軟件設(shè)計;(4).程序編碼;(5).軟件測試;(6).軟件維護。WhatisSoftwareProcesses軟件過程是指制作軟件產(chǎn)品的一組活動及其結(jié)果。所有的軟件工程都包含:(1).軟件描述;(2)軟件開發(fā);(3)軟件的有效性驗證;(4)軟件進化。Softwaredevelopment(Technologyandmethod)軟件工程方法是一種軟件開發(fā)的結(jié)構(gòu)化方法,其目的在于提高軟件質(zhì)量的同時,使其性價比較高。結(jié)構(gòu)化分析方法(DeMarco,1978)和JSD方法(Jackson,1983)在20世紀70年代首次開發(fā)出來,這些方法旨在識別系統(tǒng)中基本的功能模塊,面向功能的方法現(xiàn)在仍被廣泛應(yīng)用。在20世紀80到90年代,Booch(1994)和Rumbaugh(1991)等人又提出了面向?qū)ο蟮姆椒ā,F(xiàn)在這些不同的方法已經(jīng)被集成了一種方法——統(tǒng)一建模語言(UML)。ProjectandProjectmanagement軟件項目管理者和其他的工程項目管理者的工作性質(zhì)是相同的,然而,軟件工程管理與其他的工程管理相比,在很多方面是有顯著的區(qū)別的。(1).軟件產(chǎn)品是無形的;(2).沒有標準的軟件過程;(3).大型軟件項目常常是“一次性”項目。需求分析由于經(jīng)濟社會發(fā)展速度的大幅提高,幾乎所有的銀行都配備了不用繁瑣的人工操作的ATM自動取款機。軟件設(shè)計本系統(tǒng)相應(yīng)的需求有以下方面:能夠讀取和存儲客戶賬戶中的存取款信息,并方便有效地進行客戶選擇的交易操作。這主要包括以下內(nèi)容:自動調(diào)用銀行總系統(tǒng)中客戶原有信息銀行客戶賬戶中的信息的查詢、讀取客戶操作的識別,及信息的錄入、更新、存儲(2)能夠?qū)⒖蛻糨斎氲男畔⒓皶r上傳到銀行總系統(tǒng)中,并將客戶原有信息進行自動更新。這其中主要包括以下內(nèi)容:匯總客戶更新的信息,直接上傳到銀行總系統(tǒng)中抽調(diào)銀行總系統(tǒng)中客戶原有信息,并進行修改將銀行總系統(tǒng)中客戶原有信息更新為客戶最新輸入的信息,并存儲提供客戶信息訪問的權(quán)限和管理。其中包括:客戶訪問普通信息的權(quán)限銀行系統(tǒng)管理員對客戶信息的錄入、更改和刪除需要補充說明的幾點有:數(shù)據(jù)保存:需要長期保存的數(shù)據(jù)信息有客戶信息:客戶開通銀行賬戶的基本信息賬戶信息:客戶在銀行的存取款信息系統(tǒng)用戶:銀行系統(tǒng)管理員和客戶銀行系統(tǒng)管理員:對ATM機中的信息可進行錄入、更改和刪除等操作客戶:在ATM機上可進行存取交易操作系統(tǒng)的總體規(guī)劃客戶端流程軟件開發(fā)與運行維護由于本人水平有限以及時間倉促,暫時用C語言來實現(xiàn),后期的運行維護也尚未展開。#include"stdio.h"#include"stdlib.h"#include"string.h"#include"conio.h"intNo=0,m,n=0;/*記錄用戶賬號次序變量*/FILE*fp,*fp1;structatmsystem{ charzhanghao[9]; /*賬號*/ charpassword[11]; /*密碼*/ floatallmoney; /*總金額*/}atm[30],atmtemp; /*定義30個帳戶與一個臨時帳戶*/ main() /*主函數(shù)*/{ voidkaihu(); /*聲明開戶函數(shù)*/intcheck(); /*聲明密碼驗證函數(shù)*/voidservice(); /*聲明服務(wù)菜單函數(shù)*/voidzhuanzhang(); /*聲明轉(zhuǎn)帳函數(shù)*/voidchangepw(); /*聲明更改密碼函數(shù)*/voidquit();/*聲明退出函數(shù)*/chara;/*菜單選擇用的變量*/if((fp=fopen("USER.txt","r"))==NULL)/*打開文件*/ { printf("Filecannotbeopened\n"); system("pause"); return0; }for(m=0;!feof(fp);m++)/*讀取文件將內(nèi)容存放到內(nèi)存*/fscanf(fp,"#%s%s%f\n",atm[m].zhanghao,atm[m].password,&atm[m].allmoney);fclose(fp);/*關(guān)閉文件*/No=m+1;for(;;) /*循環(huán)主菜單*/ { system("cls"); /*設(shè)置清屏*/printf("***********WelcometoATMSystem*************\n\n"); printf("Pleaseselect:\n1.Createanewaccount\n2.CustomerService\n3.ExitSystem\n"); /*輸出主菜單*/ printf("--------------------------------------------\n"); scanf("%c",&a); /*接收一個數(shù)字字符*/ if(a=='1') /*判斷是否是1*/ { printf("Settinguserinformation\n"); kaihu(); /*調(diào)用新開戶的函數(shù)*/ printf("\nPressanykeytocontinue"); getch(); system("cls"); /*設(shè)置清屏*/ } elseif(a=='2') /*判斷是否是2*/ { if(check()==1)/*調(diào)用檢查賬戶函數(shù)*/ service();/*認證后開始服務(wù)*/ else { printf("\nSorry,youhavebeenwrongfor3times."); quit(); } } elseif(a=='3') /*判斷是否是3*/quit();/*退出*/ } system("pause"); return0;}voidkaihu() /*定義新開帳戶函數(shù)*/{inti,j,flag=0;charpw,ch1;floatmoney;charch[7]; if(No<=30)/*判斷是否有空間創(chuàng)建帳戶*/ {for(;;){printf("PleaseenteryouraccountID:(lessthan8characters)\n"); scanf("%s",&atmtemp.zhanghao); /*接收一個字符串*/if(strcmp(atmtemp.zhanghao,"exit")==0) exit(1);for(n=0;n<30;n++)/*驗證輸入的帳戶和密碼*/{ if(strcmp(atm[n].zhanghao,atmtemp.zhanghao)==0)/*如果輸入的帳戶已經(jīng)存在*/ { printf("\nAccountalreadyexists,pleasere-enter.\nIfyouwanttoexit,pleaseenter'exit'whenyouenterID.\nPressanykeytocontinue.\n\n"); /*帳戶已經(jīng)存在,請重新輸入*/ getch(); break; } elseif(n==29)/*輸入的帳戶不存在,開建新帳戶*/ flag=1;} if(flag==1) break;/*跳出檢查*/ } printf("\n"); for(j=0;j<3;j++){ i=0; printf("Pleaseenteryourpassword:(lessthan10characters)\n"); pw=getch(); while(pw!='\r') /*接收密碼*/ { if(pw=='\b') { printf("\b\b"); --i; } else { putchar('*'); atmtemp.password[i++]=pw; } pw=getch(); }atmtemp.password[i]='\0';printf("\n");printf("Pleasere-enterpassword");/*再次輸入密碼*/printf("\n"); i=0;ch1=getch();while(ch1!='\r') { if(ch1=='\b') { printf("\b\b"); --i; } else { putchar('*'); ch[i++]=ch1; } ch1=getch(); }ch[i]='\0';printf("\n");if(strcmp(atmtemp.password,ch)==0)/*兩次輸入密碼一樣,繼續(xù)*/ { strcpy(atm[No-1].zhanghao,atmtemp.zhanghao); /*創(chuàng)建新賬號*/ strcpy(atm[No-1].password,atmtemp.password); atm[No-1].allmoney=0; /*金額的初始值為0*/ for(;;) { printf("Pleaseentertheamountinthefirsttime:\n"); scanf("%f",&money); if(money>0) /*判斷是否輸入錯誤*/ { atm[No-1].allmoney+=money; /*總金額等于總金額加上初次存入金額*/ break; } elseprintf("Wrongamount.Again!\n"); } printf("---------------------\n"); printf("Information:\nID:%s\nAmount:%.2f\n",atm[No-1].zhanghao,atm[No-1].allmoney); printf("---------------------\n"); No++;/*帳戶自增*/ break; } elseprintf("Pleasere-enterpassword.Youhave3timestotry!\n"); }}elseprintf("Sorry,therecan'thavemoreaccount.\n");} intcheck() /*定義檢查函數(shù)*/{inti,j,flag=0; /*設(shè)變量*/charpw;for(j=0;j<3;j++) /*讓密碼輸入循環(huán)*/ { i=0; printf("PleaseenteryouraccountID:\n"); scanf("%s",&atmtemp.zhanghao); /*輸入賬號*/ printf("Pleaseenteryourpassword:\n"); pw=getch(); while(pw!='\r') { if(pw=='\b') { printf("\b\b"); --i; } else { putchar('*'); atmtemp.password[i++]=pw; } pw=getch(); } atmtemp.password[i]='\0'; printf("\n"); for(n=0;n<30;n++)/*驗證輸入的帳戶和密碼*/ if(strcmp(atm[n].zhanghao,atmtemp.zhanghao)==0&&strcmp(atm[n].password,atmtemp.password)==0)/*如果輸入的帳戶和密碼相同*/ { printf("\n----------------AuthenticationSuccessful----------------\n\n"); /*認證成功*/ flag=1; /*而且標志為1*/ break; /*跳出內(nèi)循環(huán)*/ }if(flag==1)break;/*跳出外循環(huán)*/ if(flag==0) /*如果驗證密碼不通過*/ printf("Authenticationfailed!Pleasere-enterandcannotbemuchofanerrorinthreetimes!\n\n");/*認證失敗!請重新輸入,不容許多于三次的錯誤!*/ } returnflag;}voidservice() /*聲明服務(wù)菜單函數(shù)*/{inta; /*設(shè)定輸入選擇的變量*/intflag=0;floatcq,q; /*設(shè)cq存入金額的變量,q取款金額的變量*/for(;;){system("cls"); printf("Pleaseselect..............................ID:%s\n\n",atm[n].zhanghao); printf("\t-------------------------------------------------\n"); /*輸出語句-子菜單*/printf("\t-----------1.DepositServices--------------------\n");printf("\t-----------2.TellerService----------------------\n");printf("\t-----------3.Transfer----------------------------\n");printf("\t-----------4.ChangePassword---------------------\n");printf("\t-----------5.Checktheaccountinformation-------\n");printf("\t-----------6.Logout-----------------------------\n");printf("\t-------------------------------------------------\n\n");printf("\tYourchoice:");scanf("%d",&a); /*輸入選擇*/ if(a==1) /*如果選擇1*/ { for(;;) { printf("Pleaseentertheamountyouwantdeposited:"); /*請輸入您要存入的金額*/ scanf("%f",&cq); /*輸入存款的金額*/ if(cq>0) { atm[n].allmoney+=cq; /*余額等于余額加上存款*/ break; } elseprintf("Wrongenter.Again!\n"); } printf("------------------\n"); printf("\nTheamountofyourdeposit:%.2f\nTotalamountofmoneyare:%.2f\n",cq,atm[n].allmoney);/*輸出存款和余額*/ printf("------------------\n"); printf("\nPressanykeytocontinue"); getch(); system("cls"); /*設(shè)置清屏*/ } elseif(a==2) /*如果選擇2*/ { for(flag=0;;) /*加入循環(huán)*/ { if(flag) break;/*跳出循環(huán)*/ for(;;) { printf("Pleaseentertheamountofmoneyyouwant:"); scanf("%f",&q); /*輸入您要取款的金額*/ if(q>0) { if(q>atm[n].allmoney) /*如果取款金額大于余額*/ { printf("Youhavenotenoughbalance!\n"); /*輸出"余額不足",繼續(xù)循環(huán)*/ } else /*否則*/ { atm[n].allmoney-=q; /*余額等于原余額減去取款金額*/ printf("-----------------------\n"); printf("\nTheamountofmoneyyouwantare:%.2f\nThebalanceare:%.2f\n",q,atm[n].allmoney);/*輸出取款金額和余額*/ printf("-----------------------\n"); printf("\nPressanykeytocontinue"); getch(); system("cls"); /*設(shè)置清屏*/ flag=1; break; /*并跳出循環(huán)*/ } } elseprintf("WrongEnter.Again!\n"); } } } elseif(a==3) /*如果選擇3*/ { zhuanzhang(); /*調(diào)用轉(zhuǎn)賬函數(shù)*/ printf("\nPressanykeytocontinue"); getch(); system("cls"); /*設(shè)置清屏*/ } elseif(a==4) /*如果選擇4.修改密碼*/ { changepw(); /*調(diào)用修改密碼的函數(shù)*/ printf("\nPressanykeytocontinue"); getch(); system("cls"); /*設(shè)置清屏*/ } elseif(a==5) /*如果選擇5*/ { printf("---------------------\n"); printf("ID:%s\n",atm[n].zhanghao); /*輸出清單:賬號*/ printf("Psaaword:******\n"); /*輸出密碼*/ printf("Balance:%.2f\n",atm[n].allmoney); /*輸出金額*/ printf("---------------------\n"); printf("Pressanykeytocontinue\n"); getch(); system("cls"); /*設(shè)置清屏*/ } elseif(a==6) /*如果選擇是6*/ { break; }}}voidzhuanzhang() /*定義轉(zhuǎn)帳函數(shù)*/{inti,flag=0,m; floats; for(i=0;i<3;i++) { printf("EntertheaccountIDtobetransferredto:"); /*輸入您要轉(zhuǎn)入帳號*/ scanf("%s",atmtemp.zhanghao);for(m=0;m<30;m++) if(strcmp(atm[m].zhanghao,atmtemp.zhanghao)==0)/*如果輸入的帳戶存在*/ { flag=1; /*而且標志為1*/ break; /*跳出內(nèi)循環(huán)*/ } if(flag==1)break;/*跳出外循環(huán)*/ if(flag==0)printf("\nEntertheaccountIDiswrong.Pleasere-enterandcannotbemuchofanerrorinthreetimes!\n"); } for(;;) { if(flag==1) printf("\nEntertheamountyouwanttransferredto:"); /*輸入您要轉(zhuǎn)入的金額*/ else break; scanf("%f",&s); /*輸入轉(zhuǎn)入的金額*/ if(s>0) { if(atm[n].allmoney<s) /*如果轉(zhuǎn)出的金額大于余額*/ printf("Youhavenotenoughbalance!\n"); /*輸出"余額不足",并繼續(xù)循環(huán)*/ else { atm[n].allmoney-=s; /*轉(zhuǎn)出的賬戶金額等于余額減去轉(zhuǎn)出的金額*/ atm[m].allmoney+=s; /*轉(zhuǎn)入的賬戶金額等于余額加上轉(zhuǎn)入的金額*/ printf("\n------------------\n"); printf("Successfultransfer!\n"); printf("Youraccountbalanceare:%.2f\n",atm[n].allmoney); /*輸出余額*/ printf("------------------\n"); break; } } elseprintf("Wrongenter.Again!\n"); }}voidchangepw() /*定義修改密碼的函數(shù)*/{ inti,j,p;charch,ch1,ch2;charaa[11],cc[11],dd[11]; /*設(shè)定變量aa為輸入原密碼cc密碼*/for(;;) /*循環(huán)*/ { i=0; printf("\nPleaseentertheoriginalpassword:"); /*請輸入原密碼*/ ch=getch(); while(ch!='\r') { if(ch=='\b') { printf("\b\b"); --i; }else { aa[i++]=ch; putchar('*'); } ch=getch(); } aa[i]='\0'; /*輸入原密碼*/ printf("\n"); if(strcmp(aa,atm[n].password)==0) /*判斷輸入的密碼是否與原密碼相同*/ { p=0; j=0; printf("\nPleaseente

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論