模仿ATM机的源代码Word文件下载.docx
《模仿ATM机的源代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《模仿ATM机的源代码Word文件下载.docx(34页珍藏版)》请在冰豆网上搜索。
//光标函数
voidRegistered();
//注册函数
voiddeposit(characcount[20]);
//存款函数
voidtransfer(characcount[20]);
//转账函数
voidCipheramend(characcount[20]);
//修改密码
voidAccount(characcount[20]);
//从文件中获取卡号
voidcode(charpassword[8]);
//输入秘密时显示星号
voidpassword1(charpassword[8]);
//输入密码,并检查两次输入的密码是否一致
voidnameid(charname[20],charID[19]);
//输入姓名和身份证号码
intaccountjudge(intt,characcount[20]);
//输入账号并判断账号是否存在
intpasswordjudge(inti,intk,characcount[20]);
//输入密码并判断密码是否正确
intbalancejudge(characcount[20],doublebalance);
//判断账户余额是否足够
voidbalanceModify(characcount[20],doublemoney);
//修改账户余额
voidtime1(chara[30]);
//时间函数
voidbalanceinquires(characcount[20]);
//余额查询函数
voiddetailgui(characcount[20]);
//明细查询界面
voiddepositinquires(characcount[20]);
//存款查询
voidtransferinquires(characcount[20]);
//转账查询
voidwithdrawalsinquires(characcount[20]);
//取款查询
//余额查询
voidGotoxy(intx,inty)//定位到第y行的第x列
{
intxx=0x0b;
HANDLEhOutput;
COORDloc;
loc.X=x;
loc.Y=y;
hOutput=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOutput,loc);
return;
}
/********************************************************
主界面
*********************************************************/
voidInterfacegui()
inti;
charm;
system("
cls"
);
Gotoxy(16,6);
for(i=1;
i<
=50;
i++)
{
printf("
*"
}
printf("
\n\n"
\t\t\t\t欢迎您的到来!
\n"
\t\t\t\t注册账号<
1>
\t\t\t\t进入主菜单<
2>
\t\t\t\t退出管理系统<
0>
\t\t"
color34"
m=getch();
switch(m)
case'
0'
:
//按0退出系统
break;
1'
//按1进入注册界面
Registered();
break;
2'
//按2进入主菜单
Menu();
default:
//输入非法
Interfacegui();
/*****************************************************************
注册界面
******************************************************************/
/***********************************
注册函数
***********************************/
voidRegistered()
charaddress1[50],address2[50],address3[50];
FILE*fp;
Gotoxy(25,8);
确认<
\t返回<
//按1开始注册
nameid(card1.name,card1.ID);
//按0返回主界面
Account(card1.AccountName);
password1(card1.password);
Gotoxy(0,12);
\t\t请输入初始金额:
"
scanf("
%lf"
&
card1.balance1);
//输入初始金额
fp=fopen(address_3,"
a"
//打开储存注册信息的文件
fprintf(fp,"
%-20s%s%s%-15.2lf%s\n"
card1.name,card1.ID,card1.AccountName,card1.balance1,card1.password);
//将注册信息保存到文件中
fclose(fp);
//关闭储存注册信息的文件
strcpy(address1,address_1);
strcpy(address2,address_1);
strcpy(address3,address_1);
fp=fopen(strcat(strcat(address1,card1.AccountName),"
存款.txt"
),"
w+"
fp=fopen(strcat(strcat(address2,card1.AccountName),"
取款.txt"
fp=fopen(strcat(strcat(address3,card1.AccountName),"
转账.txt"
do
system("
Gotoxy(33,10);
注册成功!
//注册成功
Gotoxy(30,12);
返回<
\t退出<
m=getch();
switch(m)
{
case'
Interfacegui();
//按1退出系统
break;
}
}while(m!
='
&
m!
//输入姓名和身份证号码
voidnameid(charname[20],charID[19])
//inti;
intn=0;
Gotoxy(0,7);
\t\t请输入您的名字:
"
%s"
name);
//输入名字
getchar();
if(n)
system("
Gotoxy(0,7);
printf("
\t\t您输入的身份证号码不合法!
}
\t\t请输入您的身份证号码:
scanf("
ID);
n=1;
}while(strlen(ID)<
18);
//getchar();
//输入秘密时显示星号
voidcode(charpassword[8])
for(i=0;
=6;
password[i]=getch();
if(password[i]==13)
password[i]='
\0'
//从文件中获取卡号
voidAccount(characcount[20])
intm;
fp=fopen(address_2,"
r+"
//打开储卡号的文件
fscanf(fp,"
%s%d"
account,&
m);
=0);
m=1;
fseek(fp,-1L,1);
%d\n"
m);
//将已开通的卡标记为0;
//关闭储卡号的文件
Gotoxy(0,6);
\t\t您的卡号为:
%s\n"
account);
//将客户获得的卡号输出到显示屏上
/****************************************/
//输入密码,并检查两次输入的密码是否一致
voidpassword1(charpassword[8])
intnum=0;
charpassword1[8],password2[8];
//输入密码并检查两次输入的密码好是否一致
{
if(num)
{
Gotoxy(0,6);
\t\t您两次输入的密码不一致,请重新输入"
Gotoxy(0,8);
\t\t请输入密码(6位数字):
\t\t请确认密码(6位数字):
Gotoxy(37,8);
code(password1);
Gotoxy(37,10);
code(password2);
num=1;
}while(strcmp(password1,password2)!
//检查两次输入的密码是否一致,若不一致,则重新输入
strcpy(password,password1);
/*************************************************************
进入主菜单
**************************************************************/
voidMenu()
intt,k;
inti=3;
characcount[20];
t=1;
t=accountjudge(t,account);
}while(t==0);
k=1;
k=passwordjudge(i,k,account);
i--;
}while(k==0&
i>
0);
if(i>
=0&
k!
=0)
Menugui(account);
//输入账号并判断账号是否存在
intaccountjudge(intt,characcount[20])
characcount1[20],account2[20];
FILE*fp1;
Gotoxy(0,7);
if(t==0)
\t\t您输入的账号无效!
\t\t请输入账号:
account1);
fp1=fopen(address_2,"
r"
//打开储存账号的文件
//检查账号是否存在
fscanf(fp1,"
%s%c"
account2,&
if(strcmp(account1,account2)==0)
t=1;
fclose(fp1);
//关闭储存账号的文件
if(m=='
)
t=0;
strcpy(account,account1);
returnt;
//t=0时账号不存在,t=1时账号不存在
//输入密码并判断密码是否正确
intpasswordjudge(inti,intt,characcount[20])//account:
卡号
charpassword1[8];
\t\t您输入的密码不正确,您还有%d次机会!
i);
\t\t请输入密码:
code(password1);
fp1=fopen(address_3,"
//从文件中寻找该账号所储存的信息
%s%s%s%lf%s"
card1.name,card1.ID,card1.AccountName,&
card1.balance1,card1.password);
}while(strcmp(account,card1.AccountName));
if(strcmp(password1,card1.password)!
else
t=1;
//t=0时密码错误,t=1时密码正确
/*****************************************
主菜单
*****************************************/
voidMenugui(characcount[20])
\t\t请选择要进行的操作:
\t\t\t存款<
\t转账<
\n"
\t\t\t取款<
3>
\t查询<
4>
\t\t\t修改密码<
5>
\t返回主界面<
//按1进入存款界面
deposit(account);
//按2进入转账界面
transfer(account);
3'
//按3进入取款界面
withdrawalsgui(account,1);
4'
//按4进入查询界面
inquiresgui(account);
5'
//按5进入修改密码界面
Cipheramend(account);
//printf("
输入非法,请重新输入!
break;
/******************************
存款界面
******************************/
voiddeposit(characcount[20])
chartime[30];
doublemoney;
//money:
要转账的金额
charaddress[50];
\t\t请输入要存入的金额:
money);
//输入要存储的金额
balanceModify(account,money);
//修改账号余额
time1(time);
//获得存款的时间
strcpy(address,address_1);
strcat(strcat(address,account),"
fp=fopen(address,"
//打开储存存款信息的文件
%s%s%.2lf\n"
time,account,money);
//储存存款信息
Gotoxy(0,7);
\t\t\t\t存款成功!
\t\t返回主菜单<
\t退出系统<
voidbalanceModify(characcount[20],doublemoney)
%s%s%s%lf%s"
}while(strcmp(account,card1.AccountName)!
//寻找用户信息
fseek(fp,-24L,1);
card1.balance1+=money;
//增加账户余额
%-15.2lf"
card1.balance1);
//修改账户余额
//时间函数
voidtime1(chara[30])
structtm*local;
time_tt;
t=time(NULL);
local=localtime(&
t);
strftime(a,30,"
%c"
local);
}
转账界面(转账)
*******************************/
voidtransfer(characcount[20])
charaddress1[50],address2[50];
doublemoney1,money2;
intk=1;
intt=1;
intm=1;
charn