银行ATM机工作流程模拟编程(一)

[编程内容]

编程,模拟一个ATM(Automatic Teller Machine,自动取款机)的工作流程。依据帐户信息:姓名、帐号、密码、余额,完成ATM机功能:登录、显示余额、取款、修改密码。

程序工作流程:

  • 显示登录界面:      帐号:

密码:

接受用户输入。

  • 若为非法用户,提示出错,并重新登录,3次出错后退出;
  • 若为合法用户,则显示操作菜单,提供下述服务:

① 显示基本信息

② 修改密码

③ 查询余额

④ 存款

⑤ 取款

⑥ 退出

[编程分析]

① 利用数组作为存储单位,保存储户信息;

② 使用文件记载储户信息,程序启动时加载储户信息进入,程序退出时将链表中的储户信息写入文件;

③ 使用链表结构记录有关数据,使用链表完成相关操作;

[步骤]

一、用一个数组表示一个储户

struct people

{

char name[10];

char account[20];

char password[10];

float money;

struct people*next;

};

二、建立main函数

void main()

{

int i,z,a,t=0;

char account[20],password[10],ch;

struct people *head,*p;                               /*1*/

FILE *fp=fopen("1.txt","r");                        /*2*/

head=NULL;                                       /*3*/

if(fp==NULL){printf("系统出错");return 1;}            /*4*/

for(i=0;i<5;i++)                                      /*5*/

{

p=(struct people*)malloc(sizeof(struct people));         /*6*/

fscanf(fp,"%s%s%s%f",p->name,p->account,p->password,&(p->money));  /*7*/

p->next=head;                                    /*8*/

head=p;                                         /*9*/

}

fclose(fp);                                           /*10*/

printf("***********欢迎使用ATM自动取款机***********\n");

printf("*******************************************\n");

denglu(head,p);

}

  •  分析

文件:2——fopen函数原型 FILE * fopen(const char * path,const char * mode);参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态(1.txt的内容见附件;mode流形态链接

http://www.cnblogs.com/devil-91/archive/2012/05/29/2523572.html

3——fopen函数若打开文件不成功,返回NULL;

4——fscanf函数

int fscanf(FILE*stream,constchar*format,[argument...]);FILE *stream:文件指针;char *format:格式字符串;[argument...]:输入列表。

功 能: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。这与fgets有区别,fgets遇到空格不结束;

10——fclose函数关闭文件。

链表:1——定义头指针head和遍历指针p;

6——malloc函数为结点分配空间(malloc函数链接

http://blog.csdn.net/xw13106209/article/details/4962479)

8——结点的next指针指向上一个结点;

9——设置当前结点为头结点。

注意:1不能放在2后面,2表示FILE*指针fp的初始化,C中要求把变量的声明放在最前面。

三、建立功能函数

void denglu(struct people *head,struct people *p);

void jiemian(struct people *head,struct people *p);

void chaxun(struct people *head,struct people *p);

void qukuan(struct people *head,struct people *p);

void cunkuan(struct people *head,struct people *p);

void xiugai(struct people *head,struct people *p);

void tuika(struct people *head,struct people *p);

void xinxi(struct people *head,struct people *p);

[程序错误和缺陷]

错误:登录界面上第一次输入账号错误,有时会自动退出程序,不进入循环;

缺陷:

  • 登录界面不能实现:      帐号:

密码:

风格,而只能在把账号输入后显示“密码”;

  • 建立管理员界面,实现储户的增加、减少和储户信息的更改,要求用到链表结点的增加、删除、查找;
  • 在从文件中读取储户数据时设置新的变量控制储户个数的输入输出,而不是利用固定个数读取(如本例的5个储户信息);
  • 想一想如果此程序每次运行都需要将文件中的储户信息读入程序链表中,那当文件中的储户量达到一个很大的数字时,每次程序往链表中读入或写入数据时不但要消耗大量的时间,还需要计算机有足够的空间,程序效率太差。

[程序代码]

链接:http://www.cnblogs.com/mzct123/p/4822895.html

[附件]

1.txt内容:

zhangsan 2015001 123456 10000.000000

lisi 2015002 123456 6000.000000

wangwu 2015003 123456 4000.000000

cj 2015004 123456 100000.000000

jiaojiao 2015005 123456 100000.000000

时间: 2024-08-06 15:32:33

银行ATM机工作流程模拟编程(一)的相关文章

银行ATM机工作流程模拟编程(一)(代码)

#include<stdio.h>#include<stdlib.h>#include <conio.h>#include <string.h> void denglu(struct people *head,struct people *p);void jiemian(struct people *head,struct people *p);void chaxun(struct people *head,struct people *p);void qu

SIMSCI PRO II v9.2-ISO 1CD化工流程模拟

最新石油软件目录表: Coade Tank v4.0 V2012(化学工业储油罐设计分析评估软件) SW6-2011 v1.0 1CD SW6 V7.05 压力容器计算软件 Intergraph CADWORX 2012 FRNC-5PC.V8.0 通用加热炉工艺计算软件 Pipenet 1.6 英文版管网模拟分析软件Sunrise 全功能 支持Win 7 Stoner Pipeline Simulator v9.9.0(v9.7.2, v9.6, v9.5) Synergee gas V4.5

已经测试vmgsim.V9.0.46 最新版流程模拟软件

已经测试vmgsim.V9.0.46 最新版流程模拟软件     VMGSim 物性数据库包括5600 多个纯组分,100,000个以上的二元交互作用参数数据库,以及大量的混 合物交互作用参数,并在此基础上进行物性数据的严格计算:对于炼油模型,VMGSim集成了利用油品分析 评价数据进行炼油物流表征及油品特殊物性计算的强大功能:vmgsim在石油天然气,石油炼制,石油化工 等域,利用VMGSim你能够准确建模并预测大多数的工艺装置的性能:VMGSim在提高模拟模型的使用和开发 效率方面有了新的创

WinIo驱动级键盘模拟编程

WinIo驱动级键盘模拟编程 前天无聊,翻翻自己的兴趣项目文件夹,发现了这个放下很久的项目!那是大三时候的事了.当时是为了提高我魔兽三的按键速度,用了个叫移花接木的软件,把键盘的键位改了.的确是有所帮助,但这是共享软件,用40次就不能再用了除非注册.于是乎就有了做一个类似的软件出来,在网上搜索了一把发现WinIo模拟按键是最可靠的了,就决定向这方向钻进去了.哎...技术不够,看了很久的技术文章和代码也只是了解了一点,而且那时MFC技术还没到家根本做不出什么能用的东西来...后来听个兄弟说:反汇编

Environmental.Science.Limited.ChemHELP.v2.03+VMGSIM.V9.0.46最新版流程模拟软件

Environmental.Science.Limited.ChemHELP.v2.03VMGSIM.V9.0.46最新版流程模拟软件 chemhelp易于安装和设置(系统要求如下).在一台电脑上,化学制品可以从数据库中选择,输入他 们的全名,或者使用一个搜索,可以指定一个部分的化学名称,中国科学院或联合国的数字,欧共体或欧 共体指数,甚至是一个风险短语.可以为选定的化学物显示的数据包括索引编号.危险符号.芯片分类和 标签.风险短语.物理性质.同义词.以及更多.正如这表明,在数据库中的许多化学物

背包式短信群发机工作原理

背包式短信群发机工作原理[电/薇135乄0150乄6506][Q群733860034][穆里尼奥生涯最惨输球!曼联一战连创7大耻辱24岁!河南建业俱乐部官方庆生:正青春 奋斗更出彩亚运孙兴慜2传神锋戴帽 韩国加时4-3点杀10人乌兹币圈热衷境外建群:群内人数过万 现今逐渐成"死群"牛文文:出行打破行业规律会出事 滴滴变投行管理公司泰森食品的行业变革特朗普得意阻挡中国 第三阵营3000亿重拳等着美国小米周四盘中股价涨0.452% 二季度收入同比增长75-俄国防部:俄军在叙利亚共击毙超8.

模拟银行ATM系统(基础版)

Account类 package ATM; public class Account {//定义Account类 private String accountID;//用于存储学生的用户账号(由八位数字组成) private String accountname;//用于存储账户的名称 private String operatedate;//用于存储操作的时间,由十位字符组成,显示格式"XXXX-XX-XX" private int operatetype;//用于存储操作账户的类型

使用Java实现数据库编程—06 项目:银行ATM取款机系统

1.        创建普通用户: 语法: CREATE USER `user`@`host` [IDENTIFIED 'password'];   //user:用户名,host:主机名,password:密码: Eg:创建本地用户teacher,密码为123456, CREATE USER `teacher`@`localhost` IDENTIFIED BY '123456'; Eg:本地用户student,无密码 CREATE USER `student`@`localhost`;   

【云简评】之十九《云+端如何促进银行ATM机的革命》

2015-04-20 张晓东 东方云洞察 点击上面的链接文字,可以快速关注"东方云洞察"公众号 [简评] 1. 大约10年前,银行的ATM机器从IBM OS2进入到Windows XP时代, Microsoft 停止支持 Windows XP 后,大量仍在运行 XP 的 ATM失去了安全.技术保障.所以ATM面临升级到Windows7.8的选择或者另寻他路. 2. Android本身是基于Linux的,从安全性方面完全可以满足ATM的要求,随着Android在开发.界面以及技术支持力量