模仿ATM机的源代码.docx

上传人:b****6 文档编号:6711529 上传时间:2023-01-09 格式:DOCX 页数:34 大小:21.81KB
下载 相关 举报
模仿ATM机的源代码.docx_第1页
第1页 / 共34页
模仿ATM机的源代码.docx_第2页
第2页 / 共34页
模仿ATM机的源代码.docx_第3页
第3页 / 共34页
模仿ATM机的源代码.docx_第4页
第4页 / 共34页
模仿ATM机的源代码.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

模仿ATM机的源代码.docx

《模仿ATM机的源代码.docx》由会员分享,可在线阅读,更多相关《模仿ATM机的源代码.docx(34页珍藏版)》请在冰豆网上搜索。

模仿ATM机的源代码.docx

模仿ATM机的源代码

#include

#include

#include

#include

#include

//注册信息

structinformation

{

charname[20];

charID[19];

charAccountName[20];

charpassword[8];

doublebalance1;

}card1;

//交易信息

structtrading

{

characcountname[20];

doublebalance2;

chartime_1[10];

chartime_2[10];

}card2;

charaddress_1[10]="F:

\\ATM\\";

charaddress_2[20]="F:

\\ATM\\卡号.txt";

charaddress_3[20]="F:

\\ATM\\注册.txt";

//函数声明:

voidinquiresgui(characcount[20]);//查询界面

voidwithdrawalsgui(characcount[20],intt);//取款界面

voidMenu();//进入主菜单

voidMenugui(characcount[20]);//主菜单界面

voidInterfacegui();//主界面

voidGotoxy(intx,inty);//光标函数

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]);//取款查询

voidbalanceinquires(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");

printf("\t\t\t\t欢迎您的到来!

\n");

printf("\n");

printf("\t\t\t\t注册账号<1>\n");

printf("\t\t\t\t进入主菜单<2>\n");

printf("\t\t\t\t退出管理系统<0>\n");

printf("\n");

printf("\t\t");

for(i=1;i<=50;i++)

{

printf("*");

}

printf("\n");

system("color34");

m=getch();

switch(m)

{

case'0':

//按0退出系统

break;

case'1':

//按1进入注册界面

Registered();break;

case'2':

//按2进入主菜单

Menu();break;

default:

//输入非法

Interfacegui();

break;

}

}

/*****************************************************************

注册界面

******************************************************************/

/***********************************

注册函数

***********************************/

voidRegistered()

{

charaddress1[50],address2[50],address3[50];

charm;

FILE*fp;

system("cls");

system("color34");

Gotoxy(25,8);

printf("确认<1>\t返回<0>\n");

m=getch();

switch(m)

{

case'1':

//按1开始注册

nameid(card1.name,card1.ID);break;

case'0':

//按0返回主界面

Interfacegui();break;

default:

Registered();break;

}

Account(card1.AccountName);//从文件中获取卡号

password1(card1.password);//输入密码,并检查两次输入的密码是否一致

Gotoxy(0,12);

printf("\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+");

fclose(fp);

fp=fopen(strcat(strcat(address2,card1.AccountName),"取款.txt"),"w+");

fclose(fp);

fp=fopen(strcat(strcat(address3,card1.AccountName),"转账.txt"),"w+");

fclose(fp);

do

{

system("cls");

system("color34");

Gotoxy(33,10);

printf("注册成功!

\n");//注册成功

Gotoxy(30,12);

printf("返回<0>\t退出<1>\n");

m=getch();

switch(m)

{

case'0':

//按0返回主界面

Interfacegui();break;

case'1':

//按1退出系统

break;

}

}while(m!

='0'&&m!

='1');

}

//输入姓名和身份证号码

voidnameid(charname[20],charID[19])

{

//inti;

intn=0;

system("cls");

system("color34");

Gotoxy(0,7);

printf("\t\t请输入您的名字:

");

scanf("%s",name);//输入名字

getchar();

do

{

if(n)

{

system("cls");

system("color34");

Gotoxy(0,7);

printf("\t\t您输入的身份证号码不合法!

\n");

}

printf("\t\t请输入您的身份证号码:

");

scanf("%s",ID);

n=1;

}while(strlen(ID)<18);

//getchar();

}

//输入秘密时显示星号

voidcode(charpassword[8])

{

inti;

for(i=0;i<=6;i++)

{

password[i]=getch();

if(password[i]==13)

{

break;

}

printf("*");

}

password[i]='\0';

}

//从文件中获取卡号

voidAccount(characcount[20])

{

intm;

FILE*fp;

system("cls");

system("color34");

fp=fopen(address_2,"r+");//打开储卡号的文件

do

{

fscanf(fp,"%s%d",account,&m);

}while(m!

=0);

m=1;

fseek(fp,-1L,1);

fprintf(fp,"%d\n",m);//将已开通的卡标记为0;

fclose(fp);//关闭储卡号的文件

Gotoxy(0,6);

printf("\t\t您的卡号为:

%s\n",account);//将客户获得的卡号输出到显示屏上

}

/****************************************/

//输入密码,并检查两次输入的密码是否一致

voidpassword1(charpassword[8])

{

intnum=0;

charpassword1[8],password2[8];

//输入密码并检查两次输入的密码好是否一致

do

{

if(num)

{

system("cls");

system("color34");

Gotoxy(0,6);

printf("\t\t您两次输入的密码不一致,请重新输入");

}

Gotoxy(0,8);

printf("\t\t请输入密码(6位数字):

\n\n");

printf("\t\t请确认密码(6位数字):

\n");

Gotoxy(37,8);

code(password1);//输入秘密时显示星号

Gotoxy(37,10);

code(password2);

printf("\n");

num=1;

}while(strcmp(password1,password2)!

=0);//检查两次输入的密码是否一致,若不一致,则重新输入

strcpy(password,password1);

}

/*************************************************************

进入主菜单

**************************************************************/

voidMenu()

{

intt,k;

inti=3;

characcount[20];

//输入账号并判断账号是否存在

t=1;

do

{

system("cls");

system("color34");

t=accountjudge(t,account);

}while(t==0);

//输入密码并判断密码是否正确

k=1;

do

{

k=passwordjudge(i,k,account);

i--;

}while(k==0&&i>0);

if(i>=0&&k!

=0)

{

Menugui(account);

}

}

//输入账号并判断账号是否存在

intaccountjudge(intt,characcount[20])

{

charm;

characcount1[20],account2[20];

FILE*fp1;

Gotoxy(0,7);

if(t==0)

{

printf("\t\t您输入的账号无效!

\n");

}

printf("\t\t请输入账号:

");

scanf("%s",account1);

fp1=fopen(address_2,"r");//打开储存账号的文件

//检查账号是否存在

do

{

fscanf(fp1,"%s%c",account2,&m);

if(strcmp(account1,account2)==0)

{

t=1;

break;

}

}while(m!

='0');

fclose(fp1);//关闭储存账号的文件

if(m=='0')

{

t=0;

}

strcpy(account,account1);

returnt;//t=0时账号不存在,t=1时账号不存在

}

//输入密码并判断密码是否正确

intpasswordjudge(inti,intt,characcount[20])//account:

卡号

{

charpassword1[8];

FILE*fp1;

system("cls");

system("color34");

Gotoxy(0,7);

if(t==0)

{

printf("\t\t您输入的密码不正确,您还有%d次机会!

\n",i);

}

printf("\t\t请输入密码:

");

code(password1);

fp1=fopen(address_3,"r");//打开储存注册信息的文件

//从文件中寻找该账号所储存的信息

do

{

fscanf(fp1,"%s%s%s%lf%s",card1.name,card1.ID,card1.AccountName,&card1.balance1,card1.password);

}while(strcmp(account,card1.AccountName));

fclose(fp1);//打开储存注册信息的文件

if(strcmp(password1,card1.password)!

=0)

{

t=0;

}

else

{

t=1;

}

returnt;//t=0时密码错误,t=1时密码正确

}

/*****************************************

主菜单

*****************************************/

voidMenugui(characcount[20])

{

inti;

charm;

system("cls");

system("color34");

Gotoxy(16,6);

for(i=1;i<=50;i++)

{

printf("*");

}

printf("\n\n");

printf("\t\t请选择要进行的操作:

\n");

printf("\t\t\t存款<1>\t转账<2>\n");

printf("\t\t\t取款<3>\t查询<4>\n");

printf("\t\t\t修改密码<5>\t返回主界面<0>\n");

printf("\n");

printf("\t\t");

for(i=1;i<=50;i++)

{

printf("*");

}

printf("\n");

m=getch();

switch(m)

{

case'0':

//按0返回主界面

Interfacegui();break;

case'1':

//按1进入存款界面

deposit(account);break;

case'2':

//按2进入转账界面

transfer(account);break;

case'3':

//按3进入取款界面

withdrawalsgui(account,1);break;

case'4':

//按4进入查询界面

inquiresgui(account);break;

case'5':

//按5进入修改密码界面

Cipheramend(account);break;

default:

//输入非法

//printf("输入非法,请重新输入!

\n");

Menugui(account);break;

}

}

/******************************

存款界面

******************************/

voiddeposit(characcount[20])

{

charm;

chartime[30];

doublemoney;//money:

要转账的金额

charaddress[50];

FILE*fp;

system("cls");

system("color34");

Gotoxy(0,7);

printf("\t\t请输入要存入的金额:

");

scanf("%lf",&money);//输入要存储的金额

balanceModify(account,money);//修改账号余额

time1(time);//获得存款的时间

strcpy(address,address_1);

strcat(strcat(address,account),"存款.txt");

fp=fopen(address,"a");//打开储存存款信息的文件

fprintf(fp,"%s%s%.2lf\n",time,account,money);//储存存款信息

fclose(fp);//打开储存存款信息的文件

do

{

system("cls");

system("color34");

Gotoxy(0,7);

printf("\t\t\t\t存款成功!

\n");

printf("\t\t返回主菜单<0>\t退出系统<1>");

m=getch();

}while(m!

='0'&&m!

='1');

if(m=='0')

{

Menugui(account);

}

}

//修改账户余额

voidbalanceModify(characcount[20],doublemoney)

{

FILE*fp;

fp=fopen(address_3,"r+");//打开储存注册信息的文件

do

{

fscanf(fp,"%s%s%s%lf%s",card1.name,card1.ID,card1.AccountName,&card1.balance1,card1.password);

}while(strcmp(account,card1.AccountName)!

=0);//寻找用户信息

fseek(fp,-24L,1);

card1.balance1+=money;//增加账户余额

fprintf(fp,"%-15.2lf",card1.balance1);//修改账户余额

fclose(fp);//关闭储存注册信息的文件

}

//时间函数

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];

FILE*fp;

doublemoney1,money2;

intk=1;

intt=1;

intm=1;

characcount1[20],account2[20];

chartime[30];

charn

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

当前位置:首页 > 解决方案 > 商业计划

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

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