




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 (芙蓉學院)(芙蓉學院) 軟件工程 實驗報告課 題: 銀行儲蓄管理系統 姓 名: 譚 斌 學 號: 07120115 同組姓名: 專業班級: 芙蓉計科0701 指導教師: 周學清 設計時間: 2011/3/20 評閱意見:評定成績: 指導老師簽名: 年 月 日銀行儲蓄管理系統目錄1 需求分析11 系統的功能性需求12 系統需求分析規格說明書13 系統實體聯系(ER)圖14 系統數據流(DFD)圖15 系統數據字典16 面向數據流的設計方法1 需求分析系統中要求每個人銀行管理者都有一個系統帳號,并每個帳號都有密碼,系統的一切操作(如:增加存儲用戶,提高利率等)都由管理者執行,而不是由存諸用戶執
2、行,也主是說存儲用戶并不直接與系統交互,而是通過管理員與系統交互。該系統主要有兩部份業務功能,存款與取款.儲戶填寫的存款單或取款單由業務員輸入系統,如果是存款則系統記錄存款人姓名,住址(或電話號碼),身份證號碼,存款類型,存款日期,到期日期,利率及密碼(可選)等信息,并打印存單給儲戶;如果是取款而且存款時留有密碼,則系統首先核對儲戶密碼,若密碼正確或存款時未留密碼,則系統計算得利息并打印出利息清單給儲戶。11系統的功能性需求 系統為管理者提供主功能界面 系統在啟動時要求管理者輸入登錄帳號與密碼 系統要通過管理員執行一系操作(如:添加用戶,修改,查詢,刪除等) 管理員代用戶實現存款,取款,查詢等
3、操作 儲戶的一切信息,存儲在數據庫表中12系統需求分析規格說明書l 實現儲戶開戶登記l 辦理定期存款帳l 辦理定期存款手續l 辦理活期取款帳l 辦理活期取款手續l 實現利息計算l 輸出明細表l 數據備份和數據恢復功能l 查看帳戶信息1。3系統ER圖系統主要關系模式:1 儲戶(儲戶姓名,住址,身份證號碼)2 管理員(員工號,姓名)3 存款(儲戶姓名,員工號,金額,存款類型,到期日期,存款日期)4 查詢(儲戶姓名,員工號)5 取款(儲戶姓名,員工號,金額,取款日期)住址身份證號碼姓名儲戶1 1金額存款類型到期日期存款日期查詢存款取款 n金額 n n取款日期管理員 打印存單打印清單系統查詢存款取款
4、n n n姓名清單信息員工號金額 n n n取款日期存款類型到期日期金額存款日期 1 1 11 11 5系統頂層數據流(DFD)圖 打印存單 開戶系統用戶業務員 取款 存款 存款 查詢 取款 打印清單16系統0層數據流(DFD)圖8打印存單 打印存單 儲戶信息文件 存取款信息變動 密碼錯誤 讀取儲戶信息5驗證 1開戶 保存新用戶信息2存款 密碼正確2存款3取款3取款系統業務員儲戶4查詢6計算利息 7打印清單 利息清單17第2層DFD圖 儲戶信息文件 核對錯誤 讀取信息22信息核對 存款填寫存款信息 核對信息21提交存款單 核對 正確23信息輸入系統24打印存單 打印 18第3層數據流圖 儲戶信
5、息文件 核對錯誤 讀取信息32信息核對 更新儲戶信息31提交取款單填寫取款信息 核對信息 核對正確34打印清單33信息輸入系統 打印 取款 19第5層數據流圖 儲戶信息文件52身份驗證51注冊新用戶信息 存儲信息 取款信息 取款通知 存款信息 存款通知 查詢信息 顯示信息 驗證錯誤110數據字典數據名字:注冊申請表數據來源:儲戶數據目的:儲戶信息數據組成:姓名+密碼+住址+身份證號碼數據名字:儲戶信息表數據來源:儲戶數據目的:身份驗證數據組成:姓名+密碼+住址+身份證號碼+現有金額數據名字:利息清單數據來源:系統數據目的:儲戶數據組成:利息+姓名+取款時間+取款金額數據名字:存單數據來源:存款
6、信息表數據目的:儲戶數據組成:姓名+到期時間+存入類型+存入時間+利率+存入金額 數據名字:取款單數據來源:儲戶 數據目的:儲戶信息表數據組成:姓名+到期時間+存入類型+存入時間+利率+取款金額+身份證號數據名字:存款單數據目的: 存款信息表數據組成:姓名+到期時間+存入類型+存入時間+利率+存入金額+身份證號1.61確定輸入流和輸出流的邊界,從而孤立出變換中心。如圖:1。1 圖1。11。6。2完成“第一級分解”基于書上第三章第三題實現在銀行儲蓄管理系統在一級分解中,可將系統分解成三個子功能模塊:用戶操作,業務員操作,系統輸出。如下圖所示:銀行存儲管理系統用戶操作系統輸出 業務員操作1。6.3
7、完成“第二級分解”<1 用戶操作的分解可將用戶操作分解為:開戶民,存款,取款,查詢.如下圖所示:用戶操作開戶存款取款查詢提交用戶申請表提交存款單提交用戶申請表提交用戶查詢表2業務員操作的分解業務員的操作是將用戶的操作傳送給系統,代替用戶與系統交互,所以,業務員的操作與系統的操作基本類似,也可以近似地將業務員看作用戶。所以操作員操作可分解為:開戶,存款,取款,查詢并且如用戶在開戶時設有密碼,則進行密碼驗證。所以分解圖如下:業務員操作查詢取款存款開戶密碼驗證提交用戶申請表提交存款單提交用戶申請表提交用戶查詢表<3> 系統輸出分解系統輸出可分解為:計算利息打印清單,保存新用戶信息,
8、更新用戶信息,打印存單分解圖如下:系統輸出計算利息保存新用戶信息更新用戶信 息打印存單打印清單1.64使用設計度量和啟發式規則對第一次分割得到的軟件結構進一步精化.由于業務員的操作與用戶的操作基本相似,可以簡單化地認為系統只與業務員交互,基于這個思想,將有利與簡化以后系統程序的設計與開發。精化圖如下:業務員操作銀行存儲管理系統用戶操作系統輸出查詢取款存款開戶計算利息打印存單更新用戶信息保存新用戶信息密碼驗證提交用戶查詢表提交取款單提交存款單提交用戶申請表打印清單銀行儲蓄管理系統實驗項目:銀行儲蓄實驗項目一、銀行儲蓄系統主菜單模塊設計與實現11庫函數描述(原型、功能、頭部文件)及其作用Time顯
9、示當前時間類 includetime.H>System()調用dos命令 _sleep()停息#include<stdlib.H>String 字符串流#include<string.H#include"myheader.h"中有調用的全部函數聲明12編碼(必須附加注釋)#include"myheader.h"void main()/背景顏色設置system(”COLOR 16”);/*顏色屬性由兩個十六進制數字指定 第一個為背景,第二個則為前景。每個數字可以為以下任何值之一: 0 = 黑色 8 = 灰色 1 = 藍色 9 = 淡
10、藍色 2 = 綠色 A = 淡綠色 3 = 湖藍色 B = 淡淺綠色 4 = 紅色 C = 淡紅色 5 = 紫色 D = 淡紫色 6 = 黃色 E = 淡黃色 7 = 白色 F = 亮白色*/輸出=歡迎進入銀行活期存款系統=int i;for(i=0;i<13;i+)cout=;cout”歡迎進入銀行活期存款系統";for(i=0;i13;i+)cout<=';cout<<endl;/列示當前時間cout"當前時間:”;for(i=0;i6;i+)cout" ";Time t=latesttime();t.print();
11、/列示菜單mylist();cout<<”如果您不了解該系統請按N否則按Y: ”;/核實輸入是否為字符string check;while(1)cincheck;if(check。length()>1)cout<”您的輸入有誤請重新輸入:”;continue;if(check0!=Y&check0!='N)cout<<"您的輸入有誤請重新輸入:”;elsebreak;int mark=1;if(check0='N)mark=0;cout<"友情提示:按對應業務的編號即可進行該業務!”<endl<&
12、lt;”請繼續:"endl;int flag=1;while(flag+)if(flag>2)system("cls");mylist();if(mark)cout<<"請選擇業務:"string servicenum; /核實輸入是否為字符 while(1)cinservicenum;if(servicenum。length()1)cout<”您的輸入有誤請重新輸入:”;continue;elsebreak;cout"確認請按Y,修改請按N,請選擇:”;string mark;/核實輸入是否為字符while(
13、1)cin>mark;if(mark。length()1)cout<<”您的輸入有誤請重新輸入:”;continue;if(mark0!='Y'&mark0!='N)cout”您的輸入有誤請重新輸入:”;elsebreak;if(mark0='N)continue;if(servicenum0='0')break;cout<<” 正在處理請稍等.";_sleep(1000);cout<”."_sleep(1000);cout".n";_sleep(1000);sw
14、itch(servicenum0)/開戶case 1': creaccount();break;/存款case 2': deposit();break;/取款case 3': withdraw();break;/計息case '4': computeprofit();break;/查詢case 5': checkbalance();break;/排序case 6: order();break;/系統介紹case 7: about(); break;default: cout"對不起,您的選擇超出了我們的業務范圍。"<en
15、dl;cout"交易完畢,謝謝合作!!”<<endl;13 mylist.Cpp 主函數顯示菜單void mylist()int i;for(i=0;i<11;i+)cout<' ';cout<<”*主菜單*”<endl;for(i=0;i12;i+)cout<<” ”;cout<”"endl;for(i=0;i<12;i+)cout” ”;cout<”0.。.。.。.。退出 "<endl;for(i=0;i<12;i+)cout<" ”;cout&
16、lt;”1.。.。.。.開戶 "<endl;for(i=0;i<12;i+)cout" "cout<"2.。.。.。.。.。存款 "endl;for(i=0;i12;i+)cout<" ”;cout<<”3.。.。.。.。.。取款 ”<endl;for(i=0;i<12;i+)cout<" ";cout<<”4.。.。.。.。.。計息 "<endl;for(i=0;i<12;i+)cout<" ”;cout<
17、;"5.。.。.。.。.。查詢 ”<endl;for(i=0;i12;i+)cout” ";cout<"6.。.。.。.。.。排序 ”<endl;for(i=0;i<12;i+)cout" ”;cout<<"7.。.。.。.。關于 "<endl;for(i=0;i12;i+)cout<” ";cout<”endl;void about()cout<<”銀行活期存款系統 作者:張瑞”<endl;cout<"該系統嚴格按照國際銀行活期存款規則
18、編寫,”endl;cout<”如果您什么不懂,請在第一步操作中輸入N。”<<endl;cout<”注意:請按照提示進行操作.否則后果自負!”endl;cout<"版權所有,打擊盜版!!”<endl;over();return;14實驗小結(實驗遇到的問題,解決方法)1.調用外部函數時光簡單聲明不行 必需加個外部修飾extern2.也可調用外部變量 同樣用extern3。把定義的函數都放到myheader.H的頭文件中聲明實驗項目二、銀行儲蓄系統開戶模塊設計與實現21庫函數描述(原型、功能、頭部文件)及其作用include<iostream/c
19、+的標準輸入輸出includestdlib.h/c的庫函數#include<string>/字符串流include<conio。h>/getch()鍵盤輸入屏幕不輸出#includevector/STL中的迭代器include <shlobj.h/messagebox()消息框#includetime.h/時間類的頭文件#includestdio.h>/c標準輸入輸出和文件流using namespace std;22帳戶類定義#include"myheader。h”/帳號類是定義在myhead.H頭文件里class Timepublic:int
20、year,month,day,hour,minute,second;Time(int a=0,int b=0,int c=0,int d=0,int e=0,int f=0):year(a),month(b),day(c),hour(d),minute(e),second(f)void print()coutyear<"年”<month"月”day<"日"<<hour"時”minute<<"分”<second"秒”<endl;void print1()cout<ye
21、ar<”年”month<”月”<day”日"<hour<<"時"<<minute<<"分”<second<<”秒”;/兩個時間段相距的天數int isHalfYear(Time t)int ct;if(year>t。year)ct=(year-t.year-1)360+(montht。month+11)*30+day+30-t.day;else ct=(montht。month-1)30+day+30-t.day;return ct;void copy(Time f)/時
22、間拷貝year=f。year;month=f。month;day=f。day;hour=f.hour;minute=f.minute;second=f。second;/判斷時間是否大bool timebig(Time t)if(yeart.year)return false;else if(yeart。year)return true;else if(year=t.year)if(month>t.month)return false;else if(montht。month)return true;else if(month=t。month)if(dayt.day)return fals
23、e;else if(dayt.day)return true;else if(day=t.day)if(hour>t.hour)return false;else if(hour<t.hour)return true;else if(hour=t。hour)if(minutet。minute)return false;else if(minute<t。minute)return true;else if(minute=t.minute)if(secondt。second)return false;else if(second<t.second)return true;e
24、lse return true;elsereturn true;elsereturn true;elsereturn true;return true;;/檢查輸入的字符產是否全是數字bool checknum(const char);/重載比較函數int strcmp(const chars1,const char*s2);/錢數大些函數聲明void readmoney(char);/定義帳號類class Account public:char name20,ID20,balance15,code10;Time time;Account(const char* a=”",const
25、 char b=”,const char* c="”,const char* d=”,Time e=Time(0,0,0,0,0,0)strcpy(name,a);strcpy(ID,b);strcpy(code,c);strcpy(balance,d);time=e;void print1()int i;for(i=0;i30;i+)cout<""cout<<endl;cout<"姓名: "<<name<<endl;cout<”身份證號: ”<ID<endl;cout<”
26、余額: ”<balance<<endl;cout<”余額大寫: ”;readmoney(balance);cout<”開戶時間: ”;time.print();void print2()int i;for(i=0;i30;i+)cout”;cout<endl;cout<"姓名: ”<name<endl;cout<<"身份證號: "<<ID<endl;cout"余額: "<<balance<<endl;cout<"余額大寫:
27、 ”;readmoney(balance);cout<<”上次計息時間(開戶時間): "time。print();class Rempublic:char ID20,money10;int flag;Time t;Rem(chara="”,char*b="”,int c=0,Time d=Time(0,0,0,0,0,0)strcpy(ID,a);strcpy(money,b);flag=c;t=d;void print()if(flag=0)t.print1();cout<" "<<"取款"&
28、lt;money<<"元"endl;if(flag=1)t。print1();cout<" ""存款”money"元"endl;;/菜單void mylist();/開戶void creaccount();/存款void deposit();/取款void revisecode();/計息void computeprofit();/查詢void checkbalance();/排序色void creatcolor();/關于系統介紹void about();/大寫讀取金額void readmoney(cha
29、r s);/重載比較函數int strcmp(const char* s1,const char*s2);/結束void over();/求兩字符串之和void plus(chars1,chars2);/求兩字符串之差void minus(char s1,char* s2);/將字符串倒置void opposition(char * s);/檢查輸入的金額是否合法并對其進行規范性修改bool checkmoney(chars);/計算利息專用bool jixi(Account a);/校驗身份證號是否正確bool checkID(const char* s);/檢查所輸入的身份證號是否已開過戶
30、,開過戶返回true,未開過返回falsebool finID(const char s);/獲取當前時間的time函數Time latesttime();/移位void change(charch);/輸出備忘錄void output(const char s);23編碼(必須附加注釋)#include”myheader.h"void creaccount()/開戶cout”歡迎您在此開戶"<endl;char ID20="”;/檢查該身份證號是否符合中華人民共和國身份證號碼的編制規則while(1)cout<"請輸入您的身份證號: &qu
31、ot;endl;cin>>ID;if(checkID(ID))break;elsecout<<”您的輸入有誤請重新輸入您的身份證號:”<<endl;/檢查是否在此開過戶if(finID(ID))cout<<"您已在次開過戶?!?lt;endl;over();return;cout<”請輸入您的姓名:”<endl;string name;while(1)cin>name;if(name。length()>8)cout<”您的輸入有誤,請重新輸入?!眅ndl;elsebreak;const char*copyn
32、ame=name。c_str();/name的首地址 且必須是const只讀的cout<<"請輸入您的密碼:”<<endl;cout<"注意:密碼更正每人只有三次機會,密碼只有六位。"<<endl;char cod7=”",flag=0;/計數while(1)if(flag)if(flag=3)break;cout<<”您的密碼輸入有誤,"int i;cout<”請輸入密碼:"endl;for(i=0;i6;i+)codi=getch();cout<"&quo
33、t;MessageBox(0,"密碼位數已足”,"提示”,MB_OK MB_SYSTEMMODAL );cout<endl;cout<"請確認一下密碼:"<endl;char copycod7="”;for(i=0;i<6;i+)copycodi=getch();cout<<”*"MessageBox(0,"密碼位數已足",”提示",0);cout<endl;if(strcmp(cod,copycod)!=0)flag+;continue;elseMessageB
34、ox(0,”恭喜!密碼輸入成功!”,”提示",0);break;cout<”請輸入您的開戶金額:"<endl;char money20=”;while(1)cin>money;if(checkmoney(money))break;elsecout<<”您的輸入有誤,請重新輸入:"endl;FILE *fp;fp=fopen("D:mybank”,"a”);Time t=latesttime();Account temp(copyname,ID,cod,money,t);fwrite(&temp,sizeof
35、(Account),1,fp);fclose(fp);MessageBox(0,"恭喜您!!在次開戶成功!!”,”提示”,0);int jx=MessageBox(0,”您是否要查看一下您的信息?”,”提示",1)2;if(jx)temp.print1();over();return;4實驗小結(實驗遇到的問題,解決方法)1. 在getch()前有時要加入cin.get()防止上次輸入被getch()獲取2. 對密碼和帳號輸入后要在數組最后加個“"防止數組錯誤3. 對打開文件是 有時用絕對路徑表示實驗項目三銀行儲蓄系統存款模塊設計與實現31庫函數描述(原型、功能、
36、頭部文件)及其作用includestdio。h>/c的標準輸入輸出和文件流includeshlobj。h/massagebox()消息框的頭文件include "myheaer.h”/全部調用函數include<conio.h/getch()從控制臺讀取一個字符,但不顯示在屏幕上32編碼(必須附加注釋)include"myheader。H”/存款void deposit()FILE*fp;fp=fopen("D:mybank","r");if(fp=NULL)cout<<”您尚未在此開戶!!”endl;over
37、();return;fclose(fp);cout<"=歡迎進入存款模塊=”<endl;cout<”請輸入您的身份證號:"endl;char ID20="”;while(1)cin>ID;if(checkID(ID))if(finID(ID))break;elsecout"您尚未在此開戶!!"<endl;over();return;elsecout”您的輸入有誤,請重新輸入您的身份證號:”<endl;cout<”請輸入您的存款金額: ”;char money20="”;while(1)cin&
38、gt;money;if(checkmoney(money))break;elsecout<<”您的輸入有誤,請重新輸入:”<endl;fp=fopen("D:mybank”,”r+a");while(!feof(fp)Account temp;fread(temp,sizeof(Account),1,fp);if(strcmp(temp。ID,ID)=0)fseek(fp,-sizeof(Account)-1,SEEK_CUR);plus(temp.balance,money);fwrite(&temp,sizeof(Account),1,fp);
39、break;fclose(fp);Rem r(ID,money,1,latesttime());/把ID、錢、存款、最后時間寫入 類中FILE* cfp=fopen(”D:myout","ab");fwrite(r,sizeof(Rem),1,cfp);fclose(cfp);MessageBox(0,”恭喜您存款成功!”,"溫馨提示",MB_OK MB_SYSTEMMODAL );over();return;33實驗小結(實驗遇到的問題,解決方法)1. 在帳號密碼判斷時 用了feof()是判斷文件是否結束 并每次讀取判斷直到文件結束或找到并正
40、確實驗項目四銀行儲蓄系統取款模塊設計與實現41庫函數描述(原型、功能、頭部文件)及其作用#includeiostream.h/c+標準輸入輸出includestdio。h/c的標準輸入輸出include<shlobj。h>/massagebox()以警告框顯示#include "myhead。h"/全部調用函數include<conio。h/getch()從控制臺讀取一個字符,但不顯示在屏幕上42編碼(必須附加注釋)#include”myheader。H”/取款void withdraw()FILEfp;fp=fopen("D:mybank”,”
41、rb");if(fp=NULL)cout<”您尚未在此開戶!!"<<endl;over();return;cout<"=歡迎進入取款模塊=”<endl;cout<”請輸入您的身份證號:"endl;char ID20=”;while(1)cin>>ID;if(checkID(ID)break;elsecout<"您的輸入有誤,請重新輸入您的身份證號:”<endl;if(!finID(ID)cout<<”您尚未在此開戶!”<endl;over();return;char
42、code10="”;while(1)cout<<”請輸入您的密碼:"<<endl;int i;for(i=0;i<6;i+)codei=getch();cout<”*”;MessageBox(0,”密碼位數已足",”提示",MB_OK MB_SYSTEMMODAL );coutendl;string choose;cout<"確認請按1,否則請按0,請選擇:”<endl;while(1)cinchoose;if(choose.length()>1|choose0!='0&choose0!='1)cout<"您的確認輸入您的輸入有誤,請重新輸入:”endl;continue;elsebreak;if(choose0='0)continue;if(choose0=1')break;cout<<"請輸入您的取款金額: &quo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湘西民族職業技術學院《制藥工程工藝設計》2023-2024學年第一學期期末試卷
- 西安思源學院《薪酬與福利》2023-2024學年第一學期期末試卷
- 梧州學院《結構生物學》2023-2024學年第一學期期末試卷
- 河南科技學院《動物分子生物學及生物技術實驗》2023-2024學年第一學期期末試卷
- 沈陽工學院《人力資源管理大數據分析》2023-2024學年第一學期期末試卷
- 駐馬店幼兒師范高等??茖W?!峨娪按髱熝芯俊?023-2024學年第一學期期末試卷
- 長沙理工大學《形態學綜合》2023-2024學年第一學期期末試卷
- 廊坊衛生職業學院《管理類學術英語》2023-2024學年第一學期期末試卷
- 新疆財經大學《基礎俄語四中方》2023-2024學年第一學期期末試卷
- 云南國防工業職業技術學院《城市道路與交通規劃》2023-2024學年第一學期期末試卷
- AS9100內審員培訓教材
- 新老物業移交表格(全套)
- 人教版七年級下冊英語單詞辨音訓練題(一)
- 農村公路安全防護工程施工組織設計
- 企業培訓邀請函(4篇)
- 精裝房驗房項目表格
- 浙江省財政支出專項項目績效評價綜合報告
- 《紅樓夢》PPT課件(優秀)
- 新高考英語讀后續寫——故事編寫思路
- 最新煙葉儲存保管方法標準
- 帶式輸送機傳動裝置二級斜齒圓柱齒輪減速器設計(全套圖紙)
評論
0/150
提交評論