ATM模拟系统代码错误分析。求改正
在做一个ATM模拟系统,要求必须实现多用户注册,用户信息写入txt文件,并且可调出,现在我只会写入,不会调出,所以没用写入,可是为什么这样不能实现多用户?希望指点!#include<stdio.h>
#include<sys\stat.h>
#include<fcntl.h>
#include<io.h>
#include<windows.h>
#include<string.h>
#include<stdlib.h>
void menu()
{
printf("\n\t**********************欢迎使用ATM系统***************************\n\n\n");
printf(" 1、添加账户\n");
printf(" 2、存款\n");
printf(" 3、取款\n");
printf(" 4、余额查询\n");
printf(" 5、退出\n");
}
struct information
{
char name[20];
char num[10];
char password[8];
char sex[10];
char adds[40];
int money;
}xx[100];
int isCorrect(char *an,char *psd)
{
int i;
for(i=0;i<100;i++)
{
if(strcmp(xx[i].name,an)==0 && strcmp(psd,xx[i].password)==0)
return 1;
}
return 0;
}
void add()
{
}
int main()
{
char ch[100],you[20],youm[10];
int amount,errorcount=0,i,a=0;
int handle;
char s[1000];
int length,res;
for(;;)
{
menu();
printf(" 请选择:");
scanf("%s",ch);
if(strcmp(ch,"1")==0)
{
system("cls");
for(;a<100;a++)
{
printf("\n请输入用户名:");
scanf("%s",xx[a].name);
printf("\n请输入账号:");
scanf("%s",xx[a].num);
printf("\n请输入密码:");
scanf("%s",xx[a].password);getchar();
printf("\n请输入存款金额:");
scanf("%d",&xx[a].money);getchar();
printf("\n请输入性别:");
scanf("%s",xx[a].sex);getchar();
printf("\n请输入地址:");
scanf("%s",xx[a].adds);
printf("\n\t\t\t恭喜你注册成功\n");
/*sprintf(s,"%s %s %s %d %s %s",xx[a].name,xx[a].num,xx[a].password,xx[a].money,xx[a].sex,xx[a].adds);
printf("%s",s);
if((handle=open("yonghu.txt",O_WRONLY))==-1)
{
printf("Error opening file.\n");
exit(1);
}
length=strlen(s);
lseek(handle,0,SEEK_END);
if((res=write(handle,s,length))!=length)
{
printf("Error writing to the file.\n");
exit(1);
}*/
getchar();getchar();break;
}system("cls");
}
else if(strcmp(ch,"2")==0)
{
system("cls");
printf("请输入你的账户名:");
scanf("%s",you);getchar();
printf("请输入你的密码:");
scanf("%s",youm);
for(i=0;i<100;i++)
{
if(isCorrect(you,youm)==1)
{
printf("请输入您的存款金额:");
scanf("%d",&amount);
xx[i].money=xx[i].money+amount;
printf("存款成功!您的当前余额为:%d元\n",xx[i].money);break;
}
else
{
errorcount++;
if(errorcount==3)
{
printf("您已经连续三次输入错误,系统将自动关闭\n");goto C;
}printf("密码或用户名错误\n");break;
}
}
getchar();getchar();system("cls");
}
else if(strcmp(ch,"3")==0)
{
system("cls");
printf("请输入你的账户名:");
scanf("%s",you);getchar();
printf("请输入你的密码:");
scanf("%s",youm);
for(i=0;i<100;i++)
{
if(isCorrect(you,youm)==1)
{
printf("请输入您的取款金额:");
scanf("%d",&amount);
if(amount<=xx[i].money)
{
xx[i].money=xx[i].money-amount;
printf("取款成功!您的当前余额为:%d元\n",xx[i].money);break;
}
else
{
printf("账户余额不足、取款失败!\n");break;
}
}
else
{
errorcount++;
if(errorcount==3)
{
printf("您已经连续三次输入错误,系统将自动关闭\n");goto C;
}
printf("密码或用户名错误\n");break;
}
}
getchar();getchar();system("cls");
}
else if(strcmp(ch,"4")==0)
{
system("cls");
printf("请输入你的账户名:");
scanf("%s",you);getchar();
printf("请输入你的密码:");
scanf("%s",youm);
for(i=0;i<100;i++)
{
if(isCorrect(you,youm)==1)
{
printf("您现在的余额为%d元\n",xx[i].money);break;
}
else
{
errorcount++;
if(errorcount==3)
{
printf("您已经连续三次输入错误,系统将自动关闭\n");goto C;
}
printf("密码或用户名错误\n");break;
}
}
getchar();getchar();system("cls");
}
else if(strcmp(ch,"5")==0)
{
C:system("cls");
printf("\n\n ***********************************************\n");
printf("\t**\t\t\t\t**\n");
printf("\t**\t谢谢使用\t\t**\n");
printf("\t**\t 再见 \t\t**\n");
printf("\t**\t\t\t\t**\n");
printf(" ***********************************************\n");
getchar();getchar();return;
}
else
{
system("cls");
}
}
getchar();getchar();
return 0;
}