首先:在c盘以外的其他盘内新建文件夹(文件夹名:银行案例),
其次:在 银行案例 文件夹,再新建 数据 文件夹,
然后:数据 文件夹 中分别再建 明细信息、用户信息、余额信息三个文件夹分别装数据
以下为代码:
#include<stdio.h>
#include<windows.h>
#include<time.h>
void page1();
void reg();
void login();
void page2();
int fun1();
void fun2();
void fun3();
void fun4();
void fun5();
void fun6();
char *user_path1="D:\\C语言\\银行案例\\数据\\用户信息\\";
char *user_path="D:\\C语言\\银行案例\\数据\\用户信息\\用户信息.txt";
char *baln_path="D:\\C语言\\银行案例\\数据\\余额信息\\ ";
char *mx_path="D:\\C语言\\银行案例\\数据\\明细信息\\";
char zh[100],pwd[100],zh1[100],pwd1[100];//全局变量
void main()
{
page1();
}
void page1()
{
int n;
while(1)
{
printf("\t欢迎来到ATM系统\n");
printf("\t1.注册用户\n");
printf("\t2.用户登录\n");
printf("\t0.退出\n");
printf("请输入功能编号:");
scanf("%d",&n);
switch(n)
{
case 1:reg();break;
case 2:login();break;
case 0:exit(0);
default:printf("您输入的功能编号有误,请重新输入!\n");break;
}
}
}
void reg()//注册函数
{
FILE *fp;
char fn[100];
int i,flag=1,f1=0,f2=0,f3=0,f4=0;
char card[100],pass[100],card1[100],pass1[100];
printf("请输入注册的账号:");
scanf("%s",card);
for(i=0;i<strlen(card);i++)
{
if(card[i]<'0' || card[i]>'9')
{
printf("账号必须全部为数字\n");
flag=0;
break;
}
}
if(strlen(card)<10 || strlen(card)>13)
{
printf("账号长度必须为10-13位\n");
flag=0;
}
fp=fopen(user_path,"r");
if(fp==NULL)
{
printf("文件打开失败\n");
}
while(!feof(fp))
{
fscanf(fp,"%s\t%s\n",card1,pass1);
if(strcmp(card,card1)==0)
{
printf("用户名已注册\n");
flag=0;
break;
}
}
fclose(fp);
if(flag == 1)
{
while(1)
{
printf("请输入密码:");
scanf("%s",pass);
for(i=0;i<strlen(pass);i++)
{
if(pass[i]>='0' && pass[i]<='9')
{
f1=1;
}
if((pass[i]>='A' && pass[i]<='Z') || (pass[i]>='a'&&pass[i]<='z'))
{
f2=1;
}
if(pass[i] == '_')
{
f3=1;
}
}
if(pass[strlen(pass)-3] == '@')
{
f4=1;
}
if(f1&&f2&&f3&&f4)
{
printf("注册成功\n");
fp=fopen(user_path,"a");
if(fp == NULL)
{
printf("文件打开失败\n");
}
fprintf(fp,"%s\t%s\n",card,pass);
fclose(fp);
strcpy(fn,baln_path);//将余额信息路径拷贝到fn中
strcat(fn,card);//拼接上文件名
strcat(fn,".txt");//拼接后缀名
fp=fopen(fn,"w");//新建对应的余额文件
if(fp==NULL)