标题:ATM 机的运行模拟程序该如何再细一点
取消只看楼主
slina2014
Rank: 1
来 自:加利福尼亚州
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-7-16
结帖率:0
已结贴  问题点数:20 回复次数:1 
ATM 机的运行模拟程序该如何再细一点
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<windows.h>
int record[20];
struct date{
    int month;
    int day;
    int year;
    double qian;
};
struct zhanghu{int a;char b[10];int c;double d;struct date memo[20];}all[21];//客户结构体
struct date get_time()
{
    struct tm *p;
    struct date da;
    time_t t;
    time(&t);
    p=localtime(&t);//取得当地时间
    da.year=1900+p->tm_year;
    da.month=1+p->tm_mon;
    da.day=p->tm_mday;
    return da;
}

int deal(void)      //登录界面
{
int ch;

puts("欢迎使用农业银行自助取款系统");
  puts("1.存款");
  puts("2.取款");
  puts("3.余额查询");
  puts("4.交易查询");
  puts("5.返回");
  puts("6.取卡");
  scanf("%d",&ch);
  return ch;
}
int xunzhao(int zh)   //寻找账号 ,存在返回编号,不存在返回0
{
int i;
  for(i=1;i<21;i++)
  {if (zh==all[i].a) return i;}
  return 0;
}
void tianjia(void)      //添加账号
{
static int num=1; //内部标识位,静态变量
int flag=1;//开户循环标志
int cp=1;//密码比较标志
int judge;//判断是否可用
system("cls");
if(num==19) {puts("账户已满");return ;}


 while(flag)
   {
 puts("请输入八位账户账号");
 scanf("%d",&judge);

 if(xunzhao(judge)) {puts("该账户已存在,请重新输入");flag=1; }   //已存在
 else {flag=0;all[num].a=judge;}
   }
 //if(xunzhao(all[num].a)==0)               //开户

 puts("该账户可用");
 puts("请输入用户名");
 scanf("%s",&all[num].b);
 while(cp)
    {
 puts("请输入六位密码");
 scanf("%d",&all[num].c);
 puts("请重新输入密码");
 scanf("%d",&cp);
 if(cp==all[num].c){puts("开户成功");num++;cp=0;flag=0;}
 else {cp=1;puts("密码错误,请重新输入");}
    }

 return;        //结束
}


int init(void)         //初始化界面
{
int ch;
int denglu=0;
system("cls");
puts("1.添加账户");
puts("2.账户登录");
puts("3.取卡");
scanf("%d",&ch);
return ch;
}
int yanzheng()
{
 int kahao ;  //验证卡号
 int i;//内部编号
 int mima;    //验证密码
 system("cls");
 puts("请输入银行卡号,'0'退出");
 scanf("%d",&kahao);
 if(kahao==0)return 0;
 if(xunzhao(kahao)==0){puts("该卡号不存在");yanzheng();}
 if(i=xunzhao(kahao))
 {
  puts("请输入银行卡密码");
  scanf("%d",&mima);
  if(mima!=all[i].c){puts("密码错误,请重新登录!");yanzheng();}
  else
   {puts("登录成功!");
  printf("\n%s 欢迎您!\n",all[i].b);
    return i;
   }
 }
return 0;}
int cun(int man)
{
 double money;
 system("cls");
 puts("请输入存款金额,'0'返回");
 scanf("%lf",&money);
 if(money==0){return 1;}
else
 {
 all[man].d+=money;//存款操作

 all[man].memo[record[man]]=get_time();
 all[man].memo[record[man]++].qian=money;
 puts("操作成功");
 return 1;
 }
}

int qu(int man)
{
double money;
system("cls");
puts("请输入取款金额,'0'返回");
 scanf("%lf",&money);
 if(money==0){return 1;}
else
 {
 all[man].d-=money;//取款操作
  
 all[man].memo[record[man]]=get_time();
 all[man].memo[record[man]++].qian=(-1)*money;
 puts("操作成功");
 return 1;
 }
}

int yu(int man)
{system("cls");printf("您的账户余额为:%lf\n",all[man].d);return 1;}


int jiao(int man)
{
    int j;
 system("cls");
 printf("交易时间                      交易明细\n");
 for(j=0;j<record[man];j++)
 printf("%d/%d/%d                     %lf\n\n",all[man].memo[j].year,all[man].memo[j].month,all[man].memo[j].day,all[man].memo[j].qian);
 return 1;
}

int caozuo()
{
  int permit;
  int choice;
  int people;
  int jixu;
  int fanhui;
 permit=init();
    if(permit==1) {tianjia();caozuo();}
    else if(permit==2)
    {
      people=yanzheng();
if(people==0)return 0;
    while(jixu)    {   choice=deal();
    if(choice==1)   jixu=cun(people);  //存
    else if(choice==2)  jixu=qu(people);  //取
    else if(choice==3)   jixu=yu(people);  //余额
    else if(choice==4)   jixu=jiao(people);  //交易
    else if(choice==5)   return 1;
     else {return 0;}//取卡
    }
    }
    else return 0;
}

int main()
{
  int flag=0;
  do {system("cls");flag=caozuo();}while(flag);
   system("PAUSE");
      return 0;
}
搜索更多相关主题的帖子: 当地时间 include double return record 
2014-07-16 16:53
slina2014
Rank: 1
来 自:加利福尼亚州
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-7-16
得分:0 
我真的不知道该怎么再细化了

C语言新手
2014-07-16 16:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-434101-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015764 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved