if(x[j]>x[k])k=j;
if(k!
=i)
{t=x[i];x[i]=x[k];x[k]=t;}
}
}
voidcopy_string(charfrom[],charto[])
{inti=0;
while(from[i]!
='\0')
{to[i]=from[i];i++;}
to[i]='\0';
}
3.1程序要求:
课题5:
银行存取款管理设计
功能:
能够输入和查询客户存款取款记录。
在客户文件中,每个客户是一条记录,包括编号、客户姓名、支取密码、客户地址、客户电话、账户总金额;在存取款文件中,每次存取款是一条记录,包括编号、日期、类别、存取数目、经办人。
类别分为取款和存款两种。
本系统能够输入客户存款或取款记录;根据客户姓名查询存款和取款记录。
分步实施:
1、初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数;
2、建立一个文件,输入客户的必要信息,能对文件进行显示、输入、修订、删除等。
3、进一步要求:
完成客户姓名查询存款和取款记录,并能得到每次帐户总金额。
要求:
1、用C语言实现系统;
2、利用结构体数组实现信息的保存;
3.2设计说明:
功能介绍:
1、能录入用户存取款的基本信息,包括客户姓名、性别、年龄、住址以及存取款日期、数目等基本信息,保存到结构体数组中。
2、能根据输入客户姓名进行存取款信息的查询以及修改、删除等操作。
3、能根据客户姓名进行查找后,以列表的方式将客户存取款信息显示在屏幕上。
3.3程序组成框图与流程图:
(1)组成图:
银行存取款管理系统
修改客户信息
删除客户信息
输出客户信息
系统退出
录入客户信息
查询客户信息
要求根据客户姓名查找
(2)流程图:
IF
YES
m=1
getchar();
1
Intm;
main
N
printf("\n▂▃▂▃▂▃▂▃▂▃▃银行存取款管理系统▂▃▂▃▃▂▃▂▃▂▃▂\n");
N
Y
voidkehu()
IF
intm;
m=1
N
m=2
M
(1)┏━━━━━━━━━━━┓\n");
Y
N
break;
M
(2)
Y
m=3
break;
N
Y
m=4
M(3)
M
N
break;
Y
M(4)
M(5)
注示:
M
(1)=printf("┏━━━━━━━━━━━┓\n");
printf("▍1:
客户资料查询▍\n");
printf("┗━━━━━━━━━━━┛\n");
printf("┭┮┯┬┭请输入您要查询的客户的姓名:
\n");
M
(2)=printf("┏━━━━━━━━━━━┓\n");
printf("▍2:
客户资料添加▍\n");
printf("┗━━━━━━━━━━━┛\n");
printf("▄▄▄▄▄请输入新客户的姓名和卡号(1-245):
▄▄▄▄▄\n");
printf("┅┄┅┄请输入姓名:
\n");
scanf("%s",r);
printf("┅┄┅┄请输入卡号:
\n");
M(3)=printf("┏━━━━━━━━━━━┓\n");
printf("▍3:
客户资料修改▍\n");
printf("┗━━━━━━━━━━━┛\n");
printf("\n▄▄▄▄▄请输入您要修改的客户的姓名和卡号▄▄▄▄▄:
\n");
printf("┅┄┅┄请输入姓名:
\n");
scanf("%s",c);
printf("┅┄┅┄请输入卡号:
\n");
M(4)=printf("┏━━━━━━━━━━━┓\n");
printf("▍4:
客户资料删除▍\n");
printf("┗━━━━━━━━━━━┛\n");
printf("\n▄▄▄▄▄请输入您要删除的客户姓名和卡号▄▄▄▄▄:
\n");
printf("┅┄┅┄请输入姓名:
\n");
scanf("%s",c);
printf("┅┄┅┄请输入卡号:
\n");
M(5)=fprintf(stderr,"输入有误!
");
voidkehu1(structcoup[],char*re,long*h)
FILE*fp;
voidkehup(structcou*p,char*re,long*h)
printf("客户【%s】详细资料\n",re);
voidkehu2(structcou*p,char*re,longh)
FILE*fp;
voidkehu3(structcou*p,char*re,longh)
FILE*fp;
voidkehu4(structcou*p,char*re,longh)
FILE*fp;
IF
voidcunq1()
IF
IF
Intm;
m=1
N
m=2
N
(1)┏━━━━━━━━━━━┓\n");
Y
N
break;
N
(2)
Y
m=3
break;
N
Y
N(3)
break;
注示:
N
(1)=printf("┏━━━━━━━━━━━┓\n");
printf("▍1.存款办理▍\n");
printf("┗━━━━━━━━━━━┛\n");
printf("┭┮┯请输入办理存款业务的客户的姓名和卡号(1-245)┭┮┯\n\n");
printf("┄┅┄┅输入客户姓名:
\n");
scanf("%s",g);
printf("┄┅┄┅输入客户卡号:
\n");
scanf("%ld",&m1);
N
(2)=printf("┏━━━━━━━━━━━┓\n");
printf("▍2:
取款办理▍\n");
printf("┗━━━━━━━━━━━┛\n");
printf("┭┮┯请输入办理取款业务的客户的姓名和卡号(1-245)┭┮┯\n\n");
printf("┄┅┄┅输入客户姓名:
\n");
scanf("%s",g);
printf("┄┅┄┅输入客户卡号:
\n");scanf("%ld",&m1);
cunq12(w,g,m1);
N(3)=printf(stderr,"输入有误!
");
voidcunq11(structcou*p,char*re,longh)
FILE*fp;
voidcunq12(structcou*p,char*re,longh)
FILE*fp;
voidcunq2()
IF
Intm;
m=1
N
m=2
Z
(1)┏━━━━━━━━━━━┓\n");
Y
N
break;
Z
(2)
Y
m=3
break;
N
Y
Z(3)
break;
注示:
Z
(1)=printf("┏━━━━━━━━━━━┓\n");
printf("▍1:
存款查询▍\n");
printf("┗━━━━━━━━━━━┛\n");
printf("┭┮┯┰┱请输入您要查询的客户的姓名:
\n");
scanf("%s",v);
cunq211(w,v,&t);
cunq212(w,v,&t);
Z
(2)=printf("┏━━━━━━━━━━━┓\n");
printf("▍2:
取款查询▍\n");
printf("┗━━━━━━━━━━━┛\n");
printf("┭┮┯┰┱请输入您要查询的客户的姓名:
\n");
scanf("%s",v);
cunq221(w,v,&t);
cunq222(w,v,&t);
Z(3)=fprintf(stderr,"输入有误!
");
voidcunq211(structcoup[],char*re,long*h)
FILE*fp;
voidcunq212(structcou*p,char*re,long*h)
printf("客户【%s】存款明细\n",re);
voidcunq221(structcoup[],char*re,long*h)
FILE*fp;
voidcunq222(structcou*p,char*re,long*h)
printf("客户【%s】存款明细\n",re);
voidhelp()
printf("\n");
3.4程序代码:
#include
#include
voidkehu();
voidkehu1(structcoup[],char*re,long*h);/*(把顾客资料)从文件读到缓冲区*/
voidkehu2(structcou*p,char*re,longh);/*客户资料输入*/
voidkehu3(structcou*p,char*re,longh);/*新客户资料输入*/
voidkehu4(structcou*p,char*re,longh);/*资料清除*/
voidkehup(structcou*p,char*re,long*h);/*打印顾客资料*/
voidcunq1();
voidcunq11(structcou*p,char*re,longh);/*客户存款资料的键入*/
voidcunq12(structcou*p,char*re,longh);/*客户取款资料的键入*/
voidcunq2();
voidcunq211(structcoup[],char*re,long*h);/*(把顾客存款资料)从文件读到缓冲区*/
voidcunq212(structcou*p,char*re,long*h);
voidcunq221(structcoup[],char*re,long*h);/*(把顾客取款资料)从文件读到缓冲区*/
voidcunq222(structcou*p,char*re,long*h);
voidhelp();
longt;
externstructcou
{
longb;
charx[20];
longm;
chara[50];
longd;
floatj;
longbc;
charjin[20];
charjin2[20];
chart[20];
floatj1;
floatj2;
floatj3;
floatj4;
}w[200];
structcouw[200];
voidmain()
{
intm;
while
(1)
{
printf("\n▂▃▂▃▂▃▂▃▂▃▃银行存取款管理系统▂▃▂▃▃▂▃▂▃▂▃▂\n");
printf("…………………………………【功能选择】……………………………………\n");
printf("1:
客户添加与操作2:
存取款办理3:
存取款查询4:
关于\n");
printf("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n");
printf("请按相应的数字选择您的需要------------------------------------------------------\n");
scanf("%d",&m);
switch(m)
{
case1:
kehu();break;
case2:
cunq1();break;
case3:
cunq2();break;
case4:
help();break;
}
getchar();
printf("\n\n\n\n\n┄┅┄┄┄┅┄┅按回车键返回主界面...");
getchar();
}
}
voidkehu()
{
intm;
charr[20],b[20],c[20];
longh,k;
printf("\n▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄");
printf("\n客户文件:
1:
客户资料查询");
printf("\n2:
客户资料添加");
printf("\n3:
客户资料修改");
printf("\n4:
客户资料删除");
printf("\n5:
后退\n\n");
printf("▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\n");
printf("-------------------------------------------------按相应的数字以选择您的需要-----\n");
scanf("%d",&m);
switch(m)
{
case1:
printf("┏━━━━━━━━━━━┓\n");
printf("▍1:
客户资料查询▍\n");
printf("┗━━━━━━━━━━━┛\n");
printf("┭┮┯┬┭请输入您要查询的客户的姓名:
\n");
scanf("%s",b);
kehu1(w,b,&t);/*从文件读到缓冲区*/
kehup(w,b,&t);/*打印*/
break;
case2:
printf("┏━━━━━━━━━━━┓\n");
printf("▍2:
客户资料添加▍\n");
printf("┗━━━━━━━━━━━┛\n");
printf("▄▄▄▄▄请输入新客户的姓名和卡号(1-245):
▄▄▄▄▄\n");
printf("┅┄┅┄请输入姓名:
\n");
scanf("%s",r);
printf("┅┄┅┄请输入卡号:
\n");
scanf("%ld",&h);
kehu2(w,r,h);/*把数据从缓冲区输入到文件*/
break;
case3:
printf("┏━━━━━━━━━━━┓\n");
printf("▍3:
客户资料修改▍\n");
printf("┗━━━━━━━━━━━┛\n");
printf("\n▄▄▄▄▄请输入您要修改的客户的姓名和卡号▄▄▄▄▄:
\n");
printf("┅┄┅┄请输入姓名:
\n");
scanf("%s",c);
printf("┅┄┅┄请输入卡号:
\n");
scanf("%ld",&k);
kehu3(w,c,k);/*把新数据从缓冲区输入到文件*/
break;
case4:
printf("┏━━━━━━━━━━━┓\n");
printf("▍4:
客户资料删除▍\n");
printf("┗━━━━━━━━━━━┛\n");
printf("\n▄▄▄▄▄请输入您要删除的客户姓名和卡号▄▄▄▄▄:
\n");
printf("┅┄┅┄请输入姓名:
\n");
scanf("%s",c);
printf("┅┄┅┄请输入卡号:
\n");
scanf("%ld",&k);
kehu4(w,c,k);/*把0数据从缓冲区输入到文件*/
break;
case5:
break;
default:
fprintf(stderr,"输入有误!
");
}
}
voidkehu1(structcoup[],char*re,long*h)
{FILE*fp;
fp=fopen(re,"rb");
fread(h,4,1,fp);
fread(&p[*h],sizeof(structcou),1,fp);
fclose