1、银行业务管理系统银行业务管理系统XXXX学院数学与运算机科学学院算法与数据结构课程设计综合设计报告课程设计名称: 银行业务治理模拟 专 业: 运算机科学与技术 班 级: 0X计本(X)班 学 号: 0X0X030XX 姓 名: 高XX 指 导 教 师: 肖XX 课程设计报告设计项目编号01名称银行业务治理模拟实验课时5要紧仪器设备PC机附属设备优盘要紧使用软件Win-TC实验时刻2009年3月-5月1.问题的描述和分析商业银行业务模拟是对商业银行柜面业务进行模拟实习课程。随着金融业和信息技术的不断进展,银行的治理也差不多和运算机接轨,实现了信息的数字化治理,了解并把握商业银行柜台,周期业务的实
2、际操作处理方法,了解现今商业银行综合业务系统的软件应用,着重于对学生实际操作能力的训练,使学生能初步具备工作岗位的适应各个业务的编程操作能力。多了解各行业编程需求,减少学生踏上工作岗位的适应磨合时刻,提高就业竞争力,突出应用型人才的培养目标。 下面我将对现行银行业务治理进行小部分模拟设计。 写一个上述银行业务治理系统,能够实现一些常用功能,如:制卡,发卡,存款,取款。用于对用户信息进行治理,并能进行修改,查找,显示,求和等操作。2.算法的设计概要设计: 建立银行卡治理系统,该系统的要紧模块为: (1)实现系统内制卡、发卡功能;(2)实现系统内帐户和相关帐户治理;(3)实现卡交易和合法性检查;(
3、4)实现卡金融交易积分功能;(5)实现卡报表功能;(6)数据以文件形式储备在编辑过程中,需要使用串,查找等算法,同时需要对输入的信息进行储备。在制卡发卡后,对用户的信息进行查找,并显示出来。void load() FILE *fp1; if(fp1=fopen(c:/user.txt,r)=NULL) printf(nCan not open the filen); exit(0); for(N=0;!feof(fp1);N+) fscanf(fp1,%d%s%s%s%f%d%d,&uN.cardNO,uN.name,uN.adnum,uN.code,&uN.left,&uN.exp,&uN.
4、flag); return(N); fclose(fp1);3.数据结构的设计串是非数值处理中的要紧对象,我们一样用串来表示字符流。而那个程序中要处理的确实是银行类的字符流,因此我们需要用到串来实现这一功能。串的储备表示有三种形式,第一种是定长顺序储备结构。第二种是块链式储备结构。第三种是堆分配储备结构。在那个地点,我们采纳串的第一种储备方式定长顺序储备,而在程序编译时,要给出确定的空间大小,因此我们将串的空间大小设计为100个字符。#define MAXSIZE 100结构体定义如下:struct user u /*信用卡结构体*/ int cardNO; /*卡数*/ char name2
5、0; /*姓名*/ char adnum22; /*信用卡号*/ char code8; /*密码*/ float left; /*余额/存款*/ int exp; /*消费*/ int flag; /*确定是新卡依旧旧卡*/uM;4.具体程序的实现第一是系统内的制卡功能: 是否有19位 NY 记录中卡号 Y 是否差不多存在 调函数N 依照实际对密码等 赋初值#include#include #include#include #define M 100 /*定义的数组上限*/int N; /*结构体数组下标量*/int H; /*关心确定是否储存文件*/struct user u /*信用卡结
6、构体*/ int cardNO; /*卡数*/ char name20; /*姓名*/ char adnum22; /*信用卡号*/ char code8; /*密码*/ float left; /*余额/存款*/ int exp; /*消费*/ int flag; /*确定是新卡依旧旧卡*/uM;5.界面设计本程序的主控菜单如下:1.申请一个卡号2.使用那个卡号3.打印消费记录4.存款功能5.取款功能6.消费功能7.报表功能8.查找消费记录9.修改密码int menu(void) int x; do printf(ttn); printf(tt| (1)Apply for one blank
7、 card |n); printf(tt| (2)Use one blank card |n); printf(tt| (3)Print the record |n); printf(tt| (4)Store the money |n); printf(tt| (5)Fetch the money |n); printf(tt| (6)Spend the money |n); printf(tt| (7)Save the file |n); printf(tt| (8)Search the record |n); printf(tt| (9)Change the passward |n); p
8、rintf(tt| (0)quit the system |n); printf(tttPlease input your choice (0-10):( )bbb); scanf(%d,&x); if(x10) printf(ttt Error! Input again.); while(x10); return (x);(1).制卡void make(struct user u) int i; char a22; load(); /*读取文件中的可用空卡条数*/ do printf(nnEnter the AD number of the card:n); scanf(%s,a); if(
9、strlen(a)!=19) printf(nnntt* Mistaken ID,please enter again*nn); continue; for(i=0;iN;i+) if(strcmp(ui.adnum,a)=0) printf(nntt* The AD number exists,please enter again *nn); break; while(strlen(a)!=10)|strcmp(ui.adnum,a)=0); uN.cardNO=N; strcpy(uN.name,*); strcpy(uN.adnum,a); strcpy(uN.code,000000);
10、 uN.flag=-1; uN.left=0.00; uN.exp=0; N+; H=1; printf(nnntt* Successfully applied!*nn); printf(nntPress any key to return.nn); getchar();其中void load() FILE *fp1; if(fp1=fopen(c:/user.txt,r)=NULL) printf(nCan not open the filen); exit(0); for(N=0;!feof(fp1);N+) fscanf(fp1,%d%s%s%s%f%d%d,&uN.cardNO,uN.
11、name,uN.adnum,uN.code,&uN.left,&uN.exp,&uN.flag); return(N); fclose(fp1);使用该程序,要现在c盘建立一个名为user.txt的文件。(2)发卡: void deliever(struct user u) int i; char a20; float b; char code28; for(i=0;iN) printf(nnntt*Have no free card,please make one!*nn); printf(nntPress any key to return.nn); getchar(); 流程:输入姓名
12、两次密码确定值相同之后 存入一定金额就能够使用信用卡了(3).取款void fetch(struct user u) float money; /*money要取的数目*/ int i,j=0; /*j记录同名的人数 */ int logic=0,account=0; /*logic记录是否在文件中找到使用者信息 accout记录输入密码次数 上限为3次*/ int num10; /*记录同名的人在文件中的位置即条数 */ char a20,b6; printf(nnttPlease input your name:); scanf(%s,a); for(i=0;i1) printf(nnEn
13、ter the AD number of the card:(tt )bbbbbbbbbbbbbbbbbbbb); scanf(%s,a); for(i=0;iunumj-1.left) printf(nnt Balance Difficiency!); while(moneyunumj-1.left); break; else printf(nntt* Mistaken code-Try again*nn); account+; while(account3); if(account3) unumj-1.left-=money; H=1; printf(nntt* Fetch Success
14、ful* nn); else printf(nntt*Fetch failue *nnn); printf(nntPass any key to return.nn); getchar(); (4).存款void deposit(struct user u) /*储备 定义变量意义差不多与取款函数相同*/ float money; int i,j=0; int logic=0,account=0; int num10; char a20,b6; printf(nnPlease enter your name:); scanf(%s,a); for(i=0;i1) printf(nnEnter
15、the AD number of the card:(tt )bbbbbbbbbbbbbbbbbbbb); scanf(%s,a); for(i=0;ij;i+) if(strcmp(unumi.adnum,a)=0) logic=1; numj-1=numi; break; if(logic=0) printf(nntt* The record does not exist.*nnn); if(j=1|logic=1) do printf(nnEnter the code :( )bbbbbbb); scanf(%s,b); if(strcmp(unumj-1.code ,b)=0) pri
16、ntf(nnHow much do you want to deposit:); scanf(%f,&money); unumj-1.left+=money; H=1; printf(nntt* Successfully deposit !*nn); break; else printf(nntt* Mistaken code-Try again*nn); account+; while(accountN/8+1) printf(nntt* Error page you enter-Try again *); continue; else printf(nttttPage (%d )n,pag
17、e); printf(nn|-|-|-|-|-|-|); printf(n|NO. | name | AD |flag| left | exp |); printf(n|-|-|-|-|-|-|); for(i=8*(page-1)+1;iN/7+1); printf(nntPass any key to return.n); getchar();(6).消费 void consume(struct user u) /*消费 变量意义同取款函数*/ float money; int i,j=0; int logic=0,account=0; int num10; char a20,b6; printf(nnPlease enter your name:); scanf(%s,a); for(i=0;i1) printf(nnPlease enter the AD number of the card:(tt )bbbbbbbbbbbbbbbbbbbb); scanf(%s,a); for(i=0;iunumj-1.left) printf(nnt B