




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
銀行業(yè)務管理系統(tǒng)(算法與數(shù)據(jù)結構)2008-2009學年度第二學期XXXX學院數(shù)學與計算機科學學院《算法與數(shù)據(jù)結構課程設計》綜合設計報告課程設計名稱: 銀行業(yè)務管理模擬專 業(yè): 計算機科學與技術班 級: 0X計本(X)班學 號: 0X0X030XX《算法與數(shù)據(jù)結構課程設計》綜合設計報告姓 名: 高XX指導教 師: 肖XX課程設計報告設計項01名稱銀行業(yè)務管理模擬實驗5目編號課時主要儀PC機附屬設優(yōu)盤器設備備主要使Win-TC實驗時2009年3月-5月用軟件間問題的描述和分析商業(yè)銀行業(yè)務模擬是對商業(yè)銀行柜面業(yè)務進行模擬實習課程。隨著金融業(yè)和信息技術的不斷發(fā)展,銀行的管理也已經和計算機接軌,實現(xiàn)了信息的數(shù)字化管理,了解并掌握商業(yè)銀行柜臺,周期業(yè)務的實際操作處理方法,了解現(xiàn)今商業(yè)銀行綜合業(yè)務系統(tǒng)的軟件應用,著重于對學生實際操作能力的訓練,使學生能初步具備工作崗位的適應各個業(yè)務的編程操作能力。多了解各行業(yè)編程需求,減少學生踏上工作崗位的適應磨合時間,提高就業(yè)競爭力,突出應用型人才的培養(yǎng)目標。下面我將對現(xiàn)行銀行業(yè)務管理進行小部分模擬設計?!魧懸粋€上述銀行業(yè)務管理系統(tǒng),能夠實現(xiàn)一些常用功能,如:制卡,發(fā)卡,存款,取款。用于對用戶信息進行管理,并能進行修改,查找,顯示,求和等操作。算法的設計第3 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告概要設計:銀 行 業(yè) 務 管 理 模 擬統(tǒng)發(fā)制取存報消查改退卡卡款款表費找出密◆建立銀行卡管理系統(tǒng),該系統(tǒng)的主要模塊為:1)實現(xiàn)系統(tǒng)內制卡、發(fā)卡功能;2)實現(xiàn)系統(tǒng)內帳戶和相關帳戶管理;3)實現(xiàn)卡交易和合法性檢查;4)實現(xiàn)卡金融交易積分功能;5)實現(xiàn)卡報表功能;6)數(shù)據(jù)以文件形式存儲在編輯過程中,需要使用串,查找等算法,同時需要對輸入的信息進行存儲。在制卡發(fā)卡后,對用戶的信息進行查找,并顯示出來。voidload(){FILE*fp1;if((fp1=fopen("c://user.txt","r"))==NULL){printf("\nCannotopenthefile\n");exit(0);}for(N=0;!feof(fp1);N++){第4 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告fscanf(fp1,"%d%s%s%s%f%d%d",&u[N].cardNO,u[N].name,u[N].adnum,u[N].code,&u[N].left,&u[N].exp,&u[N].flag);return(N);}fclose(fp1);}數(shù)據(jù)結構的設計串是非數(shù)值處理中的主要對象, 我們一般用串來表示字符流。而這個程序中要處理的就是銀行類的字符流,所以我們需要用到串來實現(xiàn)這一功能。串的存儲表示有三種形式,第一種是定長順序存儲結構。第二種是塊鏈式存儲結構。第三種是堆分配存儲結構。在這里,我們采用串的第一種存儲方式——定長順序存儲,而在程序編譯時,要給出確定的空間大小,所以我們將串的空間大小設計為 100個字符。#defineMAXSIZE100結構體定義如下:structuser u[]/*信用卡結構體*/{int cardNO;/*卡數(shù)*/char name[20];/*姓名*/char adnum[22];/*信用卡號*/第5 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告char code[8];/*密碼*/floatleft;/*余額/存款*/intexp;/*消費*/int flag;/*確定是新卡還是舊卡*/}u[M];具體程序的實現(xiàn)首先是系統(tǒng)內的制卡功能:用戶輸入一個是否有19位 N 錯誤 重新Y記錄中卡號Y卡號已經存是否已經存在調函數(shù)N第6 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告根據(jù)實際對密碼等賦初值回 菜#include<stdio.h>#include<dos.h>#include<stdlib.h>#include<string.h>#defineM100/*定義的數(shù)組上限*/intN;/*結構體數(shù)組下標量*/intH;/*幫助確定是否保存文件 */structuser u[]/*信用卡結構體*/{第7 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告int cardNO;/*卡數(shù)*/char name[20];/*姓名*/char adnum[22];/*信用卡號*/char code[8];/*密碼*/floatleft;/*余額/存款*/intexp;/*消費*/int flag;/*確定是新卡還是舊卡*/}u[M];界面設計本程序的主控菜單如下:申請一個卡號使用這個卡號打印消費記錄存款功能取款功能消費功能第8 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告報表功能查找消費記錄修改密碼intmenu(void){intx;do{printf("\t\t<*******************menu************************>\n");printf("\t\t|| (1)Applyforoneblankcard ||\n");printf("\t\t|| (2)Useoneblankcard ||\n");printf("\t\t|| (3)Printtherecord ||\n");printf("\t\t|| (4)Storethemoney ||\n");printf("\t\t|| (5)Fetchthemoney||\n");printf("\t\t|| (6)Spendthemoney ||\n");第9 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告printf("\t\t|| (7)Savethefile||\n");printf("\t\t|| (8)Searchtherecord ||\n");printf("\t\t|| (9)Changethepassward ||\n");printf("\t\t|| (0)quitthesystem||\n");printf("\t\t\tPleaseinputyourchoice(0-10):( )\b\b\b");scanf("%d",&x);if(x<0||x>10){printf("\t\t\t Error!Inputagain.");}}while(x<0||x>10);return(x);}(1).制卡voidmake(structuseru[])第10 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告{inti;chara[22];load(); /*讀取文件中的可用空卡條數(shù) */do{printf("\n\nEntertheADnumberofthecard:\n");scanf("%s",a);if(strlen(a)!=19){printf("\n\n\n\t\t****MistakenID,pleaseenteragain*********\n\n");continue;}for(i=0;i<N;i++)if(strcmp(u[i].adnum,a)==0){printf("\n\n\t\t***TheADnumberexists,pleaseenteragain***\n\n");第11 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告break;}}while(((strlen(a))!=10)||strcmp(u[i].adnum,a)==0);u[N].cardNO=N;strcpy(u[N].name,"***");strcpy(u[N].adnum,a);strcpy(u[N].code,"000000");u[N].flag=-1;u[N].left=0.00;u[N].exp=0;N++;H=1;printf("\n\n\n\t\t*************Successfullyapplied!*************\n\n");printf("\n\n\tPressanykeytoreturn\n\n");getchar();}其中第12 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告voidload(){FILE*fp1;if((fp1=fopen("c://user.txt","r"))==NULL){printf("\nCannotopenthefile\n");exit(0);}for(N=0;!feof(fp1);N++){fscanf(fp1,"%d%s%s%s%f%d%d",&u[N].cardNO,u[N].name,u[N].adnum,u[N].code,&u[N].left,&u[N].exp,&u[N].flag);return(N);}fclose(fp1);}使用該程序,要現(xiàn)在 c盤建立一個名為 user.txt 的文件。(2)發(fā)卡:void deliever(struct user u[]){第13 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告{inti;chara[20];floatb;charcode2[8];for(i=0;i<=N;i++)if(u[i].flag==-1)/*-1 是 新 申 請 的 卡 特 有 的 值 */{printf("\n\n\t\t1.Please enter yourname:");scanf("%s",a);strcpy(u[i].name,a);printf("\n\t\t2.Code:");scanf("%s",u[i].code);printf("\n\t\t3.Codeagain:");scanf("%s",code2);while(stricmp(u[i].code,code2)!=0)/*輸入的密碼兩次應該相同 */{printf("Your two codes are notidentical,pleaseinputthemagain!");第14 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告printf("\n\t\t\tCode:");scanf("%ld",&u1.code);printf("\n\t\t\tCodeagain:");scanf("%ld",&code2);}strcpy(u[i].code,a);printf("\n\n\t\tThe money youwanttostore:");scanf("%f",&b);printf("\n\n");u[i].left=b;u[i].flag=1;/*1是使用的卡特有的值*/H=1;printf("\n\n\t\t*********Youcanusethecard!Congratulations!*********\n\n");printf("\n\n\t\t Press any key toreturn\n\n");getchar();break;}if(i>N)第15 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告{printf("\n\n\n\t\t**************Haveno free card,please makeone!***************\n\n");printf("\n\n\tPress any key toreturn\n\n");getchar();}}流程:輸入姓名兩次密碼確定值相同之后存入一定金額就可以使用信用卡了(3).取款voidfetch(structuseru[]){floatmoney; /*money要取的數(shù)目*/inti,j=0; /*j記錄同名的人數(shù)*/intlogic=0,account=0;/*logic 記錄是否在文件中找到使用者信息第16 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告accout記錄輸入密碼次數(shù) 上限為3次*/intnum[10]; /*記錄同名的人在文件中的位置即條數(shù) */chara[20],b[6];printf("\n\n\t\tPleaseinputyourname:");scanf("%s",a);for(i=0;i<=N;i++)if(strcmp(u[i].name,a)==0){num[j]=i;/*查找是第幾條記錄*/j++;}if(j==0)printf("\n\n\t\t*********Cannotfindtherecordoftheperson%s!*********\n\n",a);if(j>1){printf("\n\nEntertheADnumberofthecard:(\t\tb\b\b\b");第17 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告scanf("%s",a);for(i=0;i<j;i++)if(strcmp(u[num[i]].adnum,a)==0){logic=1;num[j-1]=num[i];/*把數(shù)組中最后一個非零元素賦為正確的信息所在位置*/break;}if(logic==0)printf("\n\n\t\t*** Therecord doesnotexist.***\n\n\n");}if(j==1||logic==1)do{printf("\n\nPlease Enter thecode:( )\b\b\b\b\b\b\b");scanf("%s",b);if(strcmp(u[num[j-1]].code,b)==0){第18 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告printf("\n\n\tThe money leftis:");printf("%f\n\n",u[num[j-1]].left);do{printf("\nHow much doyouwanttofetch:");scanf("%f",&money);if(money>u[num[j-1]].left)printf("\n\n\t BalanceDifficiency!");}while(money>u[num[j-1]].left);break;}else{printf("\n\n\t\t*************Mistakencode--Tryagain*************\n\n");account++;}第19 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告}while(account<3);if(account<3){u[num[j-1]].left-=money;H=1;printf("\n\n\t\t****FetchSuccessful****\n\n");}else{printf("\n\n\t\t****************Fetch failue**********************\n\n\n");printf("\n\n\tPassanykeytoreturn\n\n");getchar();}}(4).存款void deposit(struct user u[])第20 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告/*存儲定義變量意義基本與取款函數(shù)相同*/{floatmoney;inti,j=0;intlogic=0,account=0;intnum[10];chara[20],b[6];printf("\n\nPleaseenteryourname:");scanf("%s",a);for(i=0;i<=N;i++)if(strcmp(u[i].name,a)==0){num[j]=i;j++;}if(j==0)printf("\n\n\t\t***Cannotfindtherecordoftheperson%s!***\n\n",a);if(j>1){printf("\n\nEntertheADnumberofthe第21 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告card:(\t\tb\b\b\b");scanf("%s",a);for(i=0;i<j;i++)if(strcmp(u[num[i]].adnum,a)==0){logic=1;num[j-1]=num[i];break;}if(logic==0)printf("\n\n\t\t*************Therecorddoesnotexist.*************\n\n\n");}if(j==1||logic==1)do{printf("\n\nEnter thecode:( )\b\b\b\b\b\b\b");scanf("%s",b);if(strcmp(u[num[j-1]].code,b)==0){第22 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告printf("\n\nHow muchdoyouwanttodeposit:");scanf("%f",&money);u[num[j-1]].left+=money;H=1;printf("\n\n\t\t**************Successfullydeposit!**************\n\n");break;}else{printf("\n\n\t\t*************Mistakencode--Tryagain*************\n\n");account++;}}while(account<3);if(account==3){printf("\n\n\t\t****** Depositfailue************\n\n\n");printf("\n\n\tPass any key toreturn\n\n");第23 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告getchar();}}(5).報表void forms(struct user u[])/*報表*/{inti,page;do{printf("\n\tThere are %dpages!!",N/8+1);printf("\n\n\tWhichpagedoyouwanttocheck?:()\b\b");scanf("%d",&page);if(page>N/8+1){printf("\n\n\t\t*** Error pageyouenter--Tryagain***");第24 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告continue;}else{printf("\n\t\t\t\tPage(%d)\n",page);printf("\n\n|||||||");printf("\n|NO. | name |AD |flag|left |exp |");printf("\n|||||||");for(i=8*(1)+1;i<=8*(1)+9;i++){printf("\n|%-4d|%-20s|%-20s|%-4d|%-10.2f|%-10d|",u[i-1].cardNO,u[i-1].name,u[i-1].adnum,u[i-1].flag,u[i-1].left,u[i-1].exp);第25 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告printf("\n|||||||");if(i==N)break;}}}while(page>N/7+1);printf("\n\n\tPassanykeytoreturn\n");getchar();}(6).消費voidconsume(structuseru[])/*消費變量意義同取款函數(shù)*/{floatmoney;inti,j=0;intlogic=0,account=0;intnum[10];chara[20],b[6];第26 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告printf("\n\nPleaseenteryourname:");scanf("%s",a);for(i=0;i<=N;i++)if(strcmp(u[i].name,a)==0){num[j]=i;j++;}if(j==0)printf("\n\n\t\t*************** Can notfind the record of the %s!*************\n\n",a);if(j>1){printf("\n\nPleaseentertheADnumberof thecard:(\t\tb\b\b\b");scanf("%s",a);for(i=0;i<j;i++)if(strcmp(u[num[i]].adnum,a)==0){第27 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告logic=1;num[j-1]=num[i];break;}if(logic==0)printf("\n\n\t\t*** Therecord doesnotexist.***\n\n\n");}if(j==1||logic==1)do {printf("\n\nPlease enter thecode:( )\b\b\b\b\b\b\b");scanf("%s",b);if(strcmp(u[num[j-1]].code,b)==0){do{printf("\n\n\nHowmuchistheexpenditure?:");scanf("%f",&money);if(money>u[num[j-1]].left)printf("\n\n\t Balance第28 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告Difficiency!");}while(money>u[num[j-1]].left);u[num[j-1]].left-=money;u[num[j-1]].exp+=money;H=1;printf("\n\n\n\t\t*****Payforsuccessful*******\n\n");break;}else{printf("\n\n\t\t***Mistakencode--Tryagain***\n\n");account++;}}while(account<3);if(account==3){printf("\n\n\t\t****** Failue第29 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告Consume************\n\n\n");printf("\n\n\tPressanykeytoreturn\n\n");getchar();}}(7).改密碼:voidchange(structuseru[]) /*修改定義變量意義同取款函數(shù)*/{inti,j=0;intlogic=0,account=0;intnum[10];chara[20],b[6];printf("\n\nEnteryourname:");scanf("%s",a);for(i=0;i<=N;i++)if(strcmp(u[i].name,a)==0){num[j]=i;第30 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告j++;}if(j==0)printf("\n\n\t\t************** Can notfind the record of the person %s!*************\n\n",a);if(j>1){printf("\n\nPleaseentertheADnumberof thecard:(\t\tb\b\b\b");scanf("%s",a);for(i=0;i<j;i++)if(strcmp(u[num[i]].adnum,a)==0){logic=1;num[j-1]=num[i];break;}if(logic==0)printf("\n\n\t\t*** Therecord does第31 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告notexist.***\n\n\n");}if(j==1||logic==1)do{printf("\n\n\t\t1.Please enter the oldcode:( )\b\b\b\b\b\b\b");scanf("%s",b);if(strcmp(u[num[j-1]].code,b)==0){printf("\n\n\t\t2.Enter the newcode:( )\b\b\b\b\b\b\b");scanf("%s",b);strcpy(u[num[j-1]].code,b);printf("\n\n\t\t*** Thecodehasbeenchanged,don'tforgetthenewone!***\n\n");H=1;break;}else第32 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告{printf("\n\n\t\t*************Mistakencode--Tryagain*************\n\n");account++;}}while(account<3);if(account==3){printf("\n\n\t\t*********** Codeunsuccessfullychanged************\n");printf("\n\n\tPass any key toreturn\n\n");getchar();}}(8).查找消費記錄:intsearch(structuseru[]){inti,j=0;intlogic=0,account=0;intnum[10];第33 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告chara[20],b[6];printf("\n\nPleaseenteryourname:");scanf("%s",a);for(i=0;i<=N;i++)if(strcmp(u[i].name,a)==0){num[j]=i;j++;}if(j==0)printf("\n\n\t\t******************* Cannot find the record ofthe%s!**************\n\n",a);if(j>1){printf("\n\nEntertheADnumberofthecard:(\t\tb\b\b\b");scanf("%s",a);for(i=0;i<j;i++)if(strcmp(u[num[i]].adnum,a)==0)第34 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告{logic=1;num[j-1]=num[i];break;}if(logic==0)printf("\n\n\t\t*************Therecorddoesnotexist.**************\n\n\n");}if(j==1||logic==1)do{printf("\n\nPlease enter thecode:( )\b\b\b\b\b\b\b");scanf("%s",b);if(strcmp(u[num[j-1]].code,b)==0){printf("\n\nTherecordis:");printf("\n\n||||第35 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告||");printf("\n|NO. | name| AD |account |integral|");printf("\n||||||");printf("\n|%-4d|%-20s|%-20s|%-10.2f|%-10d|",u[num[j-1]].cardNO,u[num[j-1]].name,u[num[j-1]].adnum,u[num[j-1]].left,u[num[j-1]].exp);printf("\n||||||");printf("\n\n\t\tPress anykeytocontinue\n\n");getchar();returnnum[j-1];}第36 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告elseprintf("\n\n\t\t*************Mistakencode--Tryagain*************\n\n");account++;}while(account<3);else{printf("\n\n\t\t****************FailueSearch***********************\n\n\n");printf("\n\n\tPassanykeytoreturn\n\n");getchar();return-1;}}(9).退出:voidquit(){charchose;第37 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告if(H==1){printf("\n\nIf you want to savethechange?yorn:()\b\b");chose=getchar();printf("%c",chose);getchar();}if(chose=='y'){save(u);printf("\n\n\n\n\n\t\t**************Thankyou!*********************\n");exit(0);}if(H==0||chose=='n')printf("\n\n\n\n\n\t\t*****************byebye!*********************\n");第38 頁共49 頁《算法與數(shù)據(jù)結構課程設計》綜合設計報告}其中.文件存儲:voidsave(structuseru[]){FILE*fp2;inti;printf("\t**********Savingfile**********\n");printf("");if((fp2=fopen("c://score.txt","w"))==NULL){printf("Cannotopenthefile\n");exit(0);}for(i=0;i<N;i++)fprintf(fp2,"%d%s%s%s%f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/DZJN 36-2021退役動力電池拆解無害化破碎分選技術規(guī)范
- 礦山整合風險控制協(xié)議書示例
- 智能家居展示中心租賃安全協(xié)議書
- 車輛運輸安全與事故賠償協(xié)議
- 礦山開采工程拆遷安置補償協(xié)議范本
- 美食連鎖餐廳品牌合作加盟管理協(xié)議
- 車輛安全責任協(xié)議書范本(駕駛培訓學校)
- 隱秘活動場所安全監(jiān)管與責任承擔協(xié)議
- 餐廳市場營銷推廣合作協(xié)議
- 租賃房屋提前交房合同協(xié)議書范本
- 外科學第七版周圍血管和淋巴管疾病
- 安全生產試題庫看圖找錯課件
- 二級綜合醫(yī)院基本標準(2021年版)
- 北京市初中學業(yè)水平考試體育與健康知識模擬練習題(含答案)
- 市政工程質量通病與防治
- 配電項目工程重點、難點及解決措施
- 北京理工大學出版社二年級下冊《勞動》教案
- JJG 966-2010手持式激光測距儀
- GB/T 26659-2011鑄造用再生硅砂
- GB/T 21558-2008建筑絕熱用硬質聚氨酯泡沫塑料
- GB/T 18494.1-2014變流變壓器第1部分:工業(yè)用變流變壓器
評論
0/150
提交評論