当前位置: 首页 > news >正文

C语言编写的自动取款机模拟程序

#include〈stdio。h>

#include<string。h>

#include <stdio.h>

#include〈stdlib.h〉

#include〈direct.h〉

#include<io.h>

#include 〈errno。h>

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

作者  :     万水千山总是情

QQ      :     824955445

时间   :     2014/4/29

功能: :   模拟自动取款机

test    :     结构体的运用,文件的读取和写入操作

备注 :    尽量考虑到了各种错误,但是一定有所疏忽,对于错误的处理并不是都感到满意。因为只是模拟

对于某些输入内容没有过于严格的进行检验.

暂时:实现功能如下:

1。用户帐号注册和登录

2.取款,存款,转账,更改密码,余额查询.

以后有时间或者有兴趣会增加其他功能的,比如帐号注销,超级管理员之类的。

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

#define AC_USER_NAME_MIN 6

#define AC_PASSWD_MIN 6

#define ILLEAGUE_CHAR 0

#define TIME_OUT     -5

#define PASSWD_WRONG —6

#define LOAD_SUCCESSFUL -7

#define CREAT_S -9

#define CREAT_F —10

#define LEAGUE_CHAR -11

#define UNKNOW -12

#define AC_USER_NAME_MAX 15

#define USER_NAME_MAX 12

#define AC_PASSWD_MAX 12

char root_path[255]="D:\\bank_systems\\";//根目录

char auth[255]="D:\\bank_systems\\”;

int users_sum=0;

struct s_user

char name[USER_NAME_MAX];

char account_name [AC_USER_NAME_MAX];

char account_passwd [AC_PASSWD_MAX];

char balance[10];

char tel[12];

char auth_flag;

};

struct s_user g_user;

void read_file(FILE *fp,char *read_path,char *des,char *error,char exit_flag)

{

int i=0;

fp=NULL;

if((fp=fopen(read_path,”r”))!=NULL)

{

do

des[i]=fgetc(fp);

}while(des[i++]!=EOF);

des[i—1]=’\0';

}

else

printf(”%s\n”,error);

if(exit_flag==1)

exit(1);

}

fclose(fp);

void write_file(FILE *fp,char *write_path,char *src,char *error,char exit_flag)

{

fp=NULL;

if((fp=fopen(write_path,"w"))!=NULL)

fwrite(src,sizeof(char),strlen(src),fp);

}

else

printf(”%s\n",error);

if(exit_flag==1)

{

exit(1);

}

fclose(fp);

void dtos(double res,char*str_send )

long pow[]={1,10,100,1000,10000,100000,1000000};

long temp;

int i=0;

int t=0;

int len=0;

temp=(long)(res*100);

if(res!=0)

{

  for(;;)

{

if(temp>=pow[i])

i++;

else

{

break;

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

str_send[t]=(char)(temp/pow[i-1—t]+'0’);

temp=temp%pow[i-1-t];

}

str_send[i]=’\0’;

len=strlen(str_send);

str_send[len+1]='\0’;

str_send[len]=str_send[len-1];

str_send[len—1]=str_send[len—2];

str_send[len—2]='.’;

if(str_send[0]==’.’)

{

str_send[strlen(str_send)+1]='\0’;

for(i=strlen(str_send);i〉0;i--)

str_send[i]=str_send[i—1];

}

str_send[0]=’0';

}

else

  {

      str_send[0]=’0';

      str_send[1]='\0’;

  }

}

void type_user(struct s_user *user)

{

double result=0;

http://www.lryc.cn/news/474707.html

相关文章:

  • 【常用数据结构】开发中常用的数据结构?
  • OCC 点云
  • 方法重写与方法重载
  • Vue3实现地球上加载柱体
  • OpenGL入门003——使用Factory设计模式简化渲染流程
  • 01_AI编程案例展示:借助AI轻松爬取海量网盘链接
  • 【机器学习导引】ch5-神经网络
  • 【Axure原型分享】颜色选择器——填充颜色
  • 怎么安装行星减速电机才是正确的
  • Unity程序化生成地形
  • Vxe UI vue vxe-table 表格中使用下拉表格,单元格渲染下拉表格
  • Android开发教程实加载中...动效
  • NVR设备ONVIF接入平台EasyCVR视频融合平台智慧小区视频监控系统建设方案
  • 适配器模式适用的场景
  • Ambari里面添加hive组件
  • Windows部署rabbitmq
  • 【Flask】四、flask连接并操作数据库
  • ES跟Kafka集成
  • Python Matplotlib:基本图表绘制指南
  • 供应商图纸外发:如何做到既安全又高效?
  • 探索 Move 编程语言:智能合约开发的新纪元
  • vue3+vant实现视频播放(含首次禁止进度条拖拽,视频看完后恢复,保存播放视频进度,刷新及下次进入继续播放,判断视频有无全部看完等)
  • 情感强度分析:精确衡量文本情感强弱的 AI 技术
  • 工厂方法模式与抽象工厂模式
  • 「Math」初等数学知识点大纲(占位待处理)
  • 百元高性价比头戴式降噪耳机选哪款?四款平价性价比品牌别错过!
  • vue3 setup写不写到标签上的区别
  • 【论文解读】EdgeYOLO:一种边缘实时目标检测器(附论文地址)
  • xlwings,让excel飞起来!
  • C语言学习,标准库 <stddef.h>