c语言银行卡管理系统Word格式.docx
《c语言银行卡管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《c语言银行卡管理系统Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
charname[20];
//持卡人姓名
charID[20];
//持卡人身份证号码
charpassword[20];
//密码
intflag;
//标志该卡是否启用(0表示未启用,1表示启用)
floataccount;
//账户金额
fntintegral;
//积分
}card[M];
(1)制卡指申请一个银行卡。
即建立一个CCard对象,输入信息对其初始化。
(2)账户信息存储到账户信息文件中,当制作一新卡时,就把该新卡追加到账户信息文件。
对账户信息的管理需要实现账户信息查询,用基本的查找算法按卡号对账户信息文件进行查找,并打印输出。
(3)实现卡交易和合法性检查。
用户首先依靠卡号和密码登陆(通过查找账户信息文件,来查看卡号和密码是否正确匹配),输入交易金额,如果account>
=输入金额,则输出“交易成功!
”,并更改account=account-输入金额。
否则输出“对不起,您的余额不够!
”。
(4)实现卡金融交易积分功能。
在把积分初始化为0,只需在卡交易的时候,把交易金额取整加到积分上。
(5)实现卡报表功能。
读账户信息文件,分屏输出所有账户的帐号和交易金额
3.总体设计
分析了整个系统之后,根据上面的系统需求分析,可以将这个系统的设计分为如下七大模块:
制卡、发卡、存款、取款、查询账户相关信息、查询账户交易记录、查询全部信息
银行卡管理系统
制卡
发卡
存款
取款
查询账户相关信息
查询账户交易记录
查询全部信息
退出
4.详细设计
#include<
stdio.h>
ctype.h>
/*调用字符函数*/
stdlib.h>
conio.h>
/*通用输入输出库*/
string.h>
#defineM1000
voidmenu();
voidmade();
voidadd();
voidlife();
voidenter();
voidbrowse();
voidhuo(intk);
voidhedui(intk);
voidmenu1(intk);
voidfetch(intk);
voidchange(intk);
voiddeposit(intk);
voidstat_one(intk);
voidprint_one(intj);
intsearch(charh[20]);
intn=0;
structCCard/*定义信用卡结构体*/
intnumber;
charcardNO[20];
intintegal;
voidmenu()/*主菜单*/
intv,w1;
do
{
printf("
\n\n\n\n"
);
\t\t<
_______________________THEMENU______________________>
\n"
\t\t||
(1)制卡操作||\n"
\t\t||------------------------------------------------------||\n"
\t\t||
(2)帐号激活||\n"
\t\t||(3)帐户登录||\n"
\t\t||(4)报表操作||\n"
\t\t||(5)退出||\n"
\t\t||______________________________________________________||\n"
\n\n\t\t请选择操作(1--5):
<
>
\b\b"
scanf("
%d"
&
v);
if(v<
1||v>
5)
{
\n\n\t\t**********输入有误!
************"
w1=1;
getchar();
}
elsew1=0;
}
while(w1==1);
switch(v)
case1:
made();
break;
/*制卡操作*/
case2:
life();
/*账号激活*/
case3:
enter();
/*账户登录*/
case4:
browse();
/*报表操作*/
case5:
exit(0);
/*退出*/
}
voidmain()/*主题*/
printf("
\n\n\n\n\n\n\n\n\n"
\t\t*********************银行卡管理系统************************\n"
menu();
voidmade()/*制卡操作*/
inti;
charh[20];
\n\n\t请输入要申请的号码:
\t\t\t>
\b\b\b\b\b\b\b"
%s"
h);
if(strlen(h)!
=6)
printf("
\n\n\n\t\t**************输入有误,请重新输入***************\n\n"
continue;
for(i=0;
i<
n;
i++)
if(strcmp(card[i].cardNO,h)==0)
{
printf("
\n\n\t\t**********该号码已经存在,请重新输入**********\n\n"
break;
}
while(((strlen(h))!
=6)||strcmp(card[i].cardNO,h)==0);
card[n].number=n;
strcpy(card[n].cardNO,h);
strcpy(card[n].name,"
***"
strcpy(card[n].ID,"
********"
strcpy(card[n].password,"
000000"
card[n].flag=0;
card[n].account=0.00;
card[n].integal=0;
\n\n\n\t\t********************制卡成功!
**********************\n\n"
print_one(n);
n++;
add();
voidprint_one(intj)/*显示消息*/
\n|----|--------------|----------|----------------|----|----------|----------|"
\n|NO.|姓名|卡号|ID|flag|account|integal|"
\n|%4d|%14s|%10s|%16s|%4d|%10.2f|%10d|"
card[j].number,card[j].name,card[j].cardNO,card[j].ID,card[j].flag,card[j].account,card[j].integal);
voidlife()/*登录*/
intk=-1;
if(n==0)
\n\n\t\t****************请先制卡*********************\n"
else
\n\n\t请输入银行卡号码:
k=search(h);
if(k==-1)
\n\n\t\t\t*****************该号码不存在!
****************\n"
else
if(card[k].flag==1)
\n\n\t\t****************该卡已经激活!
*****************\n"
elsehuo(k);
intsearch(charh[20])
inti,k=-1;
for(i=0;
if(strcmp(card[i].cardNO,h)==0)k=i;
return(k);
voidhuo(intk)/*激活操作*/
charm[20],q[20],p[20];
intx,w2;
\n\n\t\t是否激活该卡?
(1)是
(2)否\n"
\n\t\t请选择卡号:
scanf("
x);
if(x!
=1&
&
x!
=2)
{w2=1;
getchar();
elsew2=0;
while(w2==1);
if(x==1)
\n\n\t\t请输入姓名:
\t\t\t