/*
采用结构化程序设计思想实现模拟ATM(自动柜员机)。?
?
功能包括:
1、模拟ATM(自动柜员机)主界面;
2、模拟ATM(自动柜员机)的查询功能(Quary?.);
3、模拟ATM(自动柜员机)存款功能(Credit);
4、模拟ATM(自动柜员机)取款功能(Debit);
5、退出功能模块五(即:返回主界面return)。?
提示说明:
1、根据所学的知识实现现实系统的综合开发;
2、注意设计思想和算法的实现,特别是综合应用所学知识与实践的结合;
3、注意界面之间的连接。
基本要求:
1.用字符数组保存用户卡号和密码,用以进行身份验证。
2.注意程序的健壮性(考虑输错密码多次的锁定,每日取款不超过20000元的限定,单笔不超过2000元的限定。)
提高要求:
1.用文件保存用户卡号和密码,用以进行身份验证。
2.完成打印凭条的功能。
3.异常处理(吞卡)。*/
/*
专业:软件工程
班级:1501班
姓名:陈辉
学号:1508010131
*/
#include<stdio.h>
#define N 100
//插卡
//查询
//取钱
//打印
//存钱
//退卡
//故障
//main_界面
struct ATM
{
int num; //账号
int password; //密码
int money; //钱
int time; //更新时间
};
struct ATM atm[100];
void init() //初始化银行账户信息
{
for(int i=0;i<1;i++)
{
atm[i].num=1;
atm[i].password=1;
atm[i].money=1;
atm[i].time=1;
}
for( i=1;i<100;i++)
{
atm[i].num=0;
atm[i].password=0;
atm[i].money=0;
atm[i].time=0;
}
}
int Registe(int nu,int pass) //登录模块
{
for(int i=0;i<100;i++)
{
if(!(atm[i].num-nu))
if(!(atm[i].password-pass))
{
printf("登录成功");
return i;
}
}
return 0;
}
void inqurie(int nu,int pass) //查询金额
{
int p=Registe(nu,pass);
if(p)
{
printf("余额:%d",atm[p].money);
}
}
int Credit(int nu,int pass) //存款模块
{
int mon;
int p=Registe(nu,pass);
if(p) //登录成功
{
printf("请输入存款金额:\n");
scanf("%d",&mon);
}
printf("\n当前余额:%d",atm[p].money+mon);
return 0;
}
int Debit(int nu ,int pass) //取款模块
{
int mon;
int p=Registe(nu,pass);
if(p) //登录成功
{
printf("请输入取款金额:\n");
scanf("%d",&mon);
}
printf("\n当前余额:%d",atm[p].money-mon);
return 0;
}
void main_1()
{
printf("\n\n\n\n");
printf(" *********************************************\n");
printf(" ****** (1)插卡 ******\n");
printf(" ****** (2)无卡操作 ******\n");
printf(" *********************************************\n");
}
void main_2() //主界面
{
printf("\n\n\n\n");
printf(" *********************************************\n");
printf(" ****** (1)查询 ******\n");
printf(" ****** (2)取款 (3)退卡 ******\n");
printf(" ****** (5)存款 ******\n");
printf(" ****** 中国建设银行:95533 ******\n");
printf(" *********************************************\n");
}
void main_3() //取款界面
{
printf("\n\n\n\n");
printf(" *********************************************\n");
printf(" ****** (1)100 (3)500 ******\n");
printf(" ****** (2)1000 (4)2000 ******\n");
printf(" ****** (5)输入金额(100的倍数): ******\n");
printf(" *********************************************\n");
}
void main_4() //
{
printf("\n\n\n\n");
printf(" *********************************************\n");
printf(" ****** (1)输入存款金额 ******\n");
printf(" *********************************************\n");
}
int main()
{
main_1();
int a;
scanf("%d",&a);
int nu,pass;
int a1,a2;
switch(a)
{
case 1:
{
printf("请输入账号,密码:\n");
scanf("%d %d",nu,pass);
int p= Registe(nu,pass);
main_2();
scanf("%d",&a);
switch(a)
{
case 1:inqurie(nu ,pass);break; // 查询
case 2:a1=Debit( nu , pass);break;
case 3:printf("退出成功");break;
case 5:a2=Credit( nu, pass);break;
}
}
case 2:
break;
}
return 0;
}
采用结构化程序设计思想实现模拟ATM(自动柜员机)。?
?
功能包括:
1、模拟ATM(自动柜员机)主界面;
2、模拟ATM(自动柜员机)的查询功能(Quary?.);
3、模拟ATM(自动柜员机)存款功能(Credit);
4、模拟ATM(自动柜员机)取款功能(Debit);
5、退出功能模块五(即:返回主界面return)。?
提示说明:
1、根据所学的知识实现现实系统的综合开发;
2、注意设计思想和算法的实现,特别是综合应用所学知识与实践的结合;
3、注意界面之间的连接。
基本要求:
1.用字符数组保存用户卡号和密码,用以进行身份验证。
2.注意程序的健壮性(考虑输错密码多次的锁定,每日取款不超过20000元的限定,单笔不超过2000元的限定。)
提高要求:
1.用文件保存用户卡号和密码,用以进行身份验证。
2.完成打印凭条的功能。
3.异常处理(吞卡)。*/
/*
专业:软件工程
班级:1501班
姓名:陈辉
学号:1508010131
*/
#include<stdio.h>
#define N 100
//插卡
//查询
//取钱
//打印
//存钱
//退卡
//故障
//main_界面
struct ATM
{
int num; //账号
int password; //密码
int money; //钱
int time; //更新时间
};
struct ATM atm[100];
void init() //初始化银行账户信息
{
for(int i=0;i<1;i++)
{
atm[i].num=1;
atm[i].password=1;
atm[i].money=1;
atm[i].time=1;
}
for( i=1;i<100;i++)
{
atm[i].num=0;
atm[i].password=0;
atm[i].money=0;
atm[i].time=0;
}
}
int Registe(int nu,int pass) //登录模块
{
for(int i=0;i<100;i++)
{
if(!(atm[i].num-nu))
if(!(atm[i].password-pass))
{
printf("登录成功");
return i;
}
}
return 0;
}
void inqurie(int nu,int pass) //查询金额
{
int p=Registe(nu,pass);
if(p)
{
printf("余额:%d",atm[p].money);
}
}
int Credit(int nu,int pass) //存款模块
{
int mon;
int p=Registe(nu,pass);
if(p) //登录成功
{
printf("请输入存款金额:\n");
scanf("%d",&mon);
}
printf("\n当前余额:%d",atm[p].money+mon);
return 0;
}
int Debit(int nu ,int pass) //取款模块
{
int mon;
int p=Registe(nu,pass);
if(p) //登录成功
{
printf("请输入取款金额:\n");
scanf("%d",&mon);
}
printf("\n当前余额:%d",atm[p].money-mon);
return 0;
}
void main_1()
{
printf("\n\n\n\n");
printf(" *********************************************\n");
printf(" ****** (1)插卡 ******\n");
printf(" ****** (2)无卡操作 ******\n");
printf(" *********************************************\n");
}
void main_2() //主界面
{
printf("\n\n\n\n");
printf(" *********************************************\n");
printf(" ****** (1)查询 ******\n");
printf(" ****** (2)取款 (3)退卡 ******\n");
printf(" ****** (5)存款 ******\n");
printf(" ****** 中国建设银行:95533 ******\n");
printf(" *********************************************\n");
}
void main_3() //取款界面
{
printf("\n\n\n\n");
printf(" *********************************************\n");
printf(" ****** (1)100 (3)500 ******\n");
printf(" ****** (2)1000 (4)2000 ******\n");
printf(" ****** (5)输入金额(100的倍数): ******\n");
printf(" *********************************************\n");
}
void main_4() //
{
printf("\n\n\n\n");
printf(" *********************************************\n");
printf(" ****** (1)输入存款金额 ******\n");
printf(" *********************************************\n");
}
int main()
{
main_1();
int a;
scanf("%d",&a);
int nu,pass;
int a1,a2;
switch(a)
{
case 1:
{
printf("请输入账号,密码:\n");
scanf("%d %d",nu,pass);
int p= Registe(nu,pass);
main_2();
scanf("%d",&a);
switch(a)
{
case 1:inqurie(nu ,pass);break; // 查询
case 2:a1=Debit( nu , pass);break;
case 3:printf("退出成功");break;
case 5:a2=Credit( nu, pass);break;
}
}
case 2:
break;
}
return 0;
}