模拟银行营业厅功能的程序.docx

上传人:b****8 文档编号:9982291 上传时间:2023-02-07 格式:DOCX 页数:21 大小:771.54KB
下载 相关 举报
模拟银行营业厅功能的程序.docx_第1页
第1页 / 共21页
模拟银行营业厅功能的程序.docx_第2页
第2页 / 共21页
模拟银行营业厅功能的程序.docx_第3页
第3页 / 共21页
模拟银行营业厅功能的程序.docx_第4页
第4页 / 共21页
模拟银行营业厅功能的程序.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

模拟银行营业厅功能的程序.docx

《模拟银行营业厅功能的程序.docx》由会员分享,可在线阅读,更多相关《模拟银行营业厅功能的程序.docx(21页珍藏版)》请在冰豆网上搜索。

模拟银行营业厅功能的程序.docx

模拟银行营业厅功能的程序

1.引言

银行是经营货币的企业,它的存在方便了社会资金的筹措与融通,它是金融机构里面非常重要的一员。

我们可以看出银行的业务,一方面,它以吸收存款的方式,把社会上闲置的货币资金和小额货币节余集中起来,然后以贷款的形式借给需要补充货币的人去使用;在这里,银行充当贷款人和借款人的中介。

另一方面,银行为商品生产者和商人办理货币的收付、结算等业务,它又充当支付中介。

总之,银行起信用中介作用。

银行是通过存款、贷款、汇兑、储蓄等业务,承担信用中介的金融机构。

银行是金融机构之一,而且是最主要的金融机构。

银行营业厅是银行业与客户的最密切的交流的地点,银行业务基本上都是在银行营业厅完成的。

模拟银行营业厅功能的系统开发主要是基于计算机编程语言-C语言。

C语言是一种成功的系统描述语言,用C语言开发的UNIX操作系统就是一个成功的范例;同时C语言又是一种通用的程序设计语言,在国际上广泛流行。

世界上很多著名的计算公司都成功的开发了不同版本的C语言,很多优秀的应用程序也都使用C语言开发的,它是一种很有发展前途的高级程序设计语言。

2.银行营业厅功能的系统的设计思想

采用分而治之的方法,将一个复杂问题分解为相对简单的一些子问题,然后针对这些子问题进行求解。

如果某个子问题仍然是比较复杂的,再进一步分解为子-子问题,直到所有问题都能够求解。

求解问题的过程是分阶段进行的,每个阶段处理的问题都控制在容易理解和处理的范围内。

实验平台:

VC++6.0或者VisualStudio2005。

C语言是中级语言。

它把高级语言的基本结构和语句与低级语言的实用性结合起来。

C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

C是结构式语言。

结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。

这种结构化方式可使程序层次清晰,便于使用、维护以及调试。

C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

C语言功能齐全。

具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。

而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。

C语言适用范围大。

适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。

C语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。

C语言具有较好的可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。

它是数值计算的高级语言。

C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。

许多著名的系统软件,如PC-DOS,DBASEⅣ都是由C语言编写的。

用C语言加上一些汇编语言子程序,就更能显示C语言的优势了。

3.模拟系统的功能实现

3.1模拟系统的功能图

本系统的基本功能模块图如下:

 

 

(1)主函数main()利用switch()实现各函数的调用,系统根据输入的数字

来调用相应的函数。

(2)查询函数cx()

查询函数cx()主要是查询客户信息,这个功能的实现利用一个fp指向结构体类型的指针变量,指向一个可操作的文件,换句话说,一个文件有一个文件变量指针,今后对文件的访问,转化为针对文件变量指针的操作。

首先打开文件,如果文件没有内容,则输出还没有一个用户。

否则,输入账号,然后fread函数读出文件的内容,如果用互相匹配的字段并且没有到达文件末尾,则输出查询到的客户信息。

流程图如下:

(3)创建用户函数newkehu()

创建用户函数用来创建一个新的银行客户,文件指针fp,fp1。

首先输入想要建立的用户的姓名、帐号然后查询文件中有没有相同的字段,如果没有的话说明可以创建这个客户,输入客户密码,如果两次输入的密码不同则要返回重新申请账号。

如果查询文件有相同字段则说明帐号已经有人用了。

流程图如下:

 

(4)存款函数ck()

存款函数在处理了没有账号的情况,帐号不存在的情况,账号存在存款的情况。

定义了两个文件指针,利用了文件函数中fopen函数、feof函数、fread函数字符串的比较、拷贝的函数。

流程图如下:

 

 

(5)取款函数qk()

取款函数实现了帐号不存在、还没有一个用户、账户存在但是存款数额不够取款数额、账户存在密码正确存款数足够取款数四种情况。

定义了两个文件指针,利用了文件函数中fopen函数、feof函数、fread函数字符串的比较、拷贝的函数

流程图如下:

 

(6)注销函数dela()

注销函数实现了操作完成后数据的保存。

定义了两个文件指针,利用了文件函数中fopen函数、feof函数、fread函数字符串的比较、拷贝的函数

流程图如下:

 

3.2模拟系统的功能图示:

1、进入主界面

2、客户的查询

(1)第一次进入本系统,查询,没有结果

(2)建立第一个客户

3、查询帐号为11的客户

4、目前存款数为零,存款

5、存完款100元,现在取款,第一种情况:

钱不够取

第二种情况:

取款成功,取款50元

6、现在查询户头剩余的款数:

7、注销帐号,这样子这个账号会被保留

8、注销帐号成功

9、如果需要再去申请一个账号的话,原来账号会被自动删除,当你申请了一个新的账号之后,再去注销新的帐号,这样就会安全的保存新的账号,删除原来的账号。

3.3系统开发代码:

#include

#include

#include

structkehu

{charnum[20];

charname[20];

charpasswd[20];

intstatue;

intmoney;

}dat,temp;

voidcx()

{

FILE*fp;

charnum[20];

fp=fopen("fp.dat","rb");

if(fp==0){

printf("还没有一个人申请账号");

printf("输入任何键返回菜单\n");

}

else{

printf("请输入你的帐号:

");

scanf("%s",num);

while(feof(fp)==0)

{

fread(&dat,sizeof(dat),1,fp);

if(strcmp(dat.num,num)==0)

{printf("———————————————\n");

printf("——名字|帐号|存款(元)——\n");

printf("———————————————\n");

printf("|%9s|%19s%|%9d|\n",dat.name,dat.num,dat.money);

printf("———————————————\n");

printf("\n\n");

getchar();

break;

}

elseif(feof(fp)!

=0)

{

printf("帐号不存在!

\n");

printf("按任何键返回菜单\n");

getchar();

break;}}}

fclose(fp);}

voidnewkehu()

{FILE*fp,*fp1;

charpasswd[20];

fp=fopen("fp.dat","ab");

label1:

printf("请输入你的名字:

");

scanf("%s",dat.name);

fp1=fopen("fp.dat","rb");

printf("帐号:

");

scanf("%s",dat.num);

while(fread(&temp,sizeof(temp),1,fp1)==1)

{if(strcmp(dat.num,temp.num)==0)

{printf("此帐号已经有人用了,请重新输入.\n");

fclose(fp1);

printf("\n\n");

getchar();

break;}}

printf("输入密码:

");

scanf("%s",dat.passwd);

printf("确认密码:

");

scanf("%s",&passwd);

if(strcmp(dat.passwd,passwd)!

=0)

{

printf("密码不一样!

请重新申请帐号.\n");

gotolabel1;}

dat.money=0;fwrite(&dat,sizeof(dat),1,fp);

fclose(fp);

printf("申请成功.\n");

printf("\n\n");

}

voidck()

{

FILE*fp,*fp1;

charnum[20];

charpasswd[20];

intmoney;

inti=1;

fp=fopen("fp.dat","rb");

if(fp==NULL)

{

printf("还没有一个人申请帐号.\n");

printf("\n\n");

getchar();

gotolabel;}

printf("请输入你的帐号:

");

scanf("%s",num);

printf("密码:

");

scanf("%s",passwd);

while(!

feof(fp))

{

fread(&dat,sizeof(dat),1,fp);

if(strcmp(num,dat.num)==0)

{

printf("请输入你要存款的数额:

");

scanf("%d",&money);

strcpy(temp.name,dat.name);

strcpy(temp.num,num);

strcpy(temp.passwd,passwd);

temp.money=dat.money+money;

break;

}

i++;

if(feof(fp)!

=0)

{

printf("帐号不存在!

\n");

printf("按任何键返回菜单......\n");

getchar();

gotolabel;}

}

if(strcmp(num,temp.num)==0&&strcmp(passwd,temp.passwd)==0)

{fclose(fp);

fp1=fopen("fp.dat","wb+");

fseek(fp1,i*sizeof(temp),0);//文件的定位,将它指向要修改的结构

fwrite(&temp,sizeof(temp),1,fp1);//重新写入文件

rewind(fp1);//将文件的指针移到开头的位置

fclose(fp1);}

printf("存款成功!

\n");

printf("\n\n");

getchar();

label:

;}

voidqk()

{FILE*fp,*fp1;

charnum[20];

charpasswd[20];

intmoney;

inti=1;

fp=fopen("fp.dat","rb");

if(fp==NULL)

{

printf("还没有一个人申请帐号.\n");

printf("输入任何键返回菜单......\n");

getchar();

gotolabel;}

printf("请输入你的帐号:

");

scanf("%s",num);

printf("密码:

");

scanf("%s",passwd);

while(!

feof(fp))

{

fread(&dat,sizeof(dat),1,fp);

if(strcmp(num,dat.num)==0&&strcmp(passwd,dat.passwd)==0)

{

printf("请输入你要取款的数额:

");

scanf("%d",&money);if(money>dat.money)

{printf("对不起,您的余额不足!

\n");

printf("\n\n");

getchar();

gotolabel;}

strcpy(temp.name,dat.name);

strcpy(temp.num,num);

strcpy(temp.passwd,passwd);

temp.money=dat.money-money;

break;}

i++;

if(feof(fp)!

=0)

{

printf("帐号不存在!

\n");

printf("按任何键返回菜单......\n");

getchar();

gotolabel;}}

if(strcmp(num,temp.num)==0&&strcmp(passwd,temp.passwd)==0)

{

fclose(fp);

fp1=fopen("fp.dat","wb+");

fseek(fp1,i*sizeof(temp),0);

fwrite(&temp,sizeof(temp),1,fp1);

rewind(fp1);

fclose(fp1);}

printf("取款成功!

\n");

printf("\n\n");

getchar();

label:

;}

voiddela()

{//帐户号查找注销

FILE*fp,*fp1;

charnum[20];

charpasswd[20];

charstatue[5],statue1[]={"y"};

inti=1;

fp=fopen("fp.dat","rb");if(fp==NULL)

{

printf("还没有一个人申请帐号.\n");

printf("\n\n");

getchar();

gotolabel;}

printf("请输入你的帐号:

");

scanf("%s",num);

printf("密码:

");

scanf("%s",passwd);

while(!

feof(fp))

{

fread(&dat,sizeof(dat),1,fp);

if(strcmp(num,dat.num)==0&&strcmp(passwd,dat.passwd)==0)

{

printf("├───────是否注销此账户(y/n)-───────┤\n");

printf("请选择是否销户:

");

scanf("%s",statue);

if(strcmp(statue,statue1)==0)

{

strcpy(temp.name,dat.name);

strcpy(temp.num,num);

strcpy(temp.passwd,passwd);

temp.statue=0;

break;}

else{

printf("按任何键返回菜单......\n");

gotolabel;}}

i++;

if(feof(fp)!

=0)

{

printf("帐号不存在!

\n");

printf("\n\n");

getchar();

gotolabel;}}

if(strcmp(num,temp.num)==0&&strcmp(passwd,temp.passwd)==0)

{

fclose(fp);

fp1=fopen("fp.dat","wb+");

fseek(fp1,i*sizeof(temp),0);

fwrite(&temp,sizeof(temp),1,fp1);

rewind(fp1);

fclose(fp1);}

printf("操作成功!

\n");

printf("\n\n");

getchar();

label:

;}

voidmain()

{

inti;

label:

printf("—欢迎进入银行客户管理系统—\n");

printf("———————————————\n");

printf("—

(1)查询管理输入1再按Enter—\n");

printf("———————————————\n");

printf("—

(2)申请账号输入2再按Enter—\n");

printf("———————————————\n");

printf("—(3)存款管理输入3再按Enter—\n");

printf("———————————————\n");

printf("—(4)取款管理输入4再按Enter—\n");

printf("———————————————\n");

printf("—(5)账户号查找注销输入5再按Enter—\n");

printf("———————————————\n");

printf("请输入选择:

");

do{

scanf("%d",&i);

switch(i)

{

case1:

system("cls");cx();

gotolabel;break;

case2:

system("cls");newkehu();

gotolabel;break;

case3:

system("cls");ck();

gotolabel;break;

case4:

system("cls");qk();

gotolabel;break;

case5:

system("cls");dela();

gotolabel;break;

default:

printf("输入错误,请重新输入");

}

}

while(i!

=0);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1