标签:
编程,模拟一个ATM(Automatic Teller Machine,自动取款机)的工作流程。依据帐户信息:姓名、帐号、密码、余额,完成ATM机功能:登录、显示余额、取款、修改密码。
程序工作流程:
密码:
接受用户输入。
① 显示基本信息
② 修改密码
③ 查询余额
④ 存款
⑤ 取款
⑥ 退出
[编程分析]
① 利用数组作为存储单位,保存储户信息;
② 使用文件记载储户信息,程序启动时加载储户信息进入,程序退出时将链表中的储户信息写入文件;
③ 使用链表结构记录有关数据,使用链表完成相关操作;
[步骤]
一、用一个数组表示一个储户
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);
[程序错误和缺陷]
错误:登录界面上第一次输入账号错误,有时会自动退出程序,不进入循环;
缺陷:
密码:
风格,而只能在把账号输入后显示“密码”;
[程序代码]
链接: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
标签:
原文地址:http://www.cnblogs.com/mzct123/p/4822977.html