登陆系统------(持续更新)

因为今天刚好一整天没课,所有就把上次的登陆系统给做了出来,由于是第一次做,且有些函数是第一次看,老师还没教到,所有浪费了很多时间看博客和是思考问题,但最终还是把系统做出来了,挺高兴的,话不多说,上代码

 

这是我定义的一些函数体,比较乱,但有注释。最近也在看这方面的博客,尽量下次不把函数名弄那么乱。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void xuanzhe();   //功能选择 
void denglu();    //登录函数 
void zhuche();    //注册函数 
void xiugai();    //资料修改函数 
char name1[100];       //用来临时储存姓名 
char password1[100];   //用来临时储存密码 
char password2[100];   //用来临时储存密码 
FILE *A;      //登录指针   也可当注册指针,为方便看,所以写两个指针区别开来 
FILE *D;      //注册指针 
int i,k; 
char z;
char name[32],password[64],name_tmp[32],password_tmp[64];
char *B;
char *C;
char shuju[100];
int main()

接下来便是主函数,主函数我打算再加一些东西在里面的,但时间不够,所以就只写到这里

int main()
{
	xuanzhe();    //调用选择函数 
	//下面这部门是我为登陆后做的,今天太晚了,就不继续想下去,有空继续做 
	/*printf("******交换机系统******\n1.资料管理\n2.账号管理\n3.退出\n");
	scanf("%s",&z);
	if(z=='2');
	{xiugai();} */
	return 0;
}

接下来是登陆模块的定义

void denglu()
{
     A=fopen("D:\\c语言作业\\平时\\ni.txt","r+");   //以读的方式打开TXT文件ni,增加了“写” 
     if(!A)    //如果文件为空或不存在,则打开失败 
     {printf("文件打开失败!");
     exit (1);}
	
	for(i=0;i<3;i++) 
	{
		printf("\n*******登陆系统******* \n\n");
		printf("用户名:");
		scanf("%s",&name);
		printf("密码:");
		scanf("%s",&password);
		while(1) 
		{
			B=fgets(shuju,sizeof(shuju),A);    //从文件逐行读取数据 
			if(!B)       //当文件读取到空行时,结束循环。防止死循环 
			{break;}
			sscanf(shuju,"%s %s",name_tmp,password_tmp);   //把读取到的数据临时存储到name_tmp和password_tmp中 
			if(!strcmp(name,name_tmp)  &&  !strcmp(password,password_tmp))   //如果输入的账号和密码与文件中的符合,结束循环 
			{break;}
		}
		if(B)    //如果B不为0,结束大循环,执行下一部分 
		{break;}
		else if(i>=2)    //输入三次错误就停止程序 
		{system("cls");
		printf("输入次数已到!!\n");
		system("pause");
		}
		else     //错误时返回执行大循环 
		{system("cls");
		printf("用户名或密码错误!请重新输入!\n");	
		rewind(A);    //让文件回到开头 
		}
	}	
}

再接下来是注册模块的定义

void zhuche()
{
	for(i=0;i<5;i++)
	{
	printf("******注册系统******\n");
    printf("用户名:\n");
	scanf("%s",name1);
	printf("请输入密码:\n");
	scanf("%s",password1);
	printf("重新输入密码:\n");
	scanf("%s",password2);
	D=fopen("D:\\c语言作业\\平时\\ni.txt","a+");   //以追加的形式打开TXT文件ni ,增加了”读“ 
    	while(1)
		{
			C=fgets(shuju,sizeof(shuju),D); //从文件逐行读取数据
			if(!C)       //当文件读取到空行时,结束循环。防止死循环
			{break;}
			sscanf(shuju,"%s",name_tmp);    //把读取到的数据临时存储到name_tmp中 
			if(!strcmp(name1,name_tmp))     //如果输入的账号符合,结束循环 
			{break;}
		}
		if(!C)    //如果文件中没有该用户名,把用户名和密码存储进文件中 
		{
			fprintf(D,"\n%s %s",name1,password1);    //把用户名和密码写入文件 
			fclose(D);    //释放缓冲区 
			system("cls");
			printf("注册成功!\n");
			system("pause");    //结束该函数 
		}
		else
		{system("cls");
		printf("用户名已存在\n");	
		rewind(A);//让文件回到开头 
		}
	}	
}

最后是选择模块的定义

void xuanzhe()
{
	while(k==0)
  {
	printf("欢迎使用交换机系统\n1.登录\n2.注册\n3.退出\n请选择你要的功能:");
    scanf("%s",&z);
    if(z=='1')   //如果选择1,调用登陆函数 
    {system("cls");
	denglu();
    k=1;
    }
    else if(z=='2')    //如果选择2,调用注册函数 
    {system("cls");
	zhuche();
    k=1;
    }
    else if(z=='3')    //如果选择3退出,让程序结束 
    {system("pause");}
    else               //输入的数字不符合,让用户重新输入 
    {printf("输入错误!请重新输入!\n");}
  }
}

全部代码

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void xuanzhe();   //功能选择 
void denglu();    //登录函数 
void zhuche();    //注册函数 
void xiugai();    //资料修改函数 
char name1[100];       //用来临时储存姓名 
char password1[100];   //用来临时储存密码 
char password2[100];   //用来临时储存密码 
FILE *A;      //登录指针   也可当注册指针,为方便看,所以写两个指针区别开来 
FILE *D;      //注册指针 
int i,k; 
char z;
char name[32],password[64],name_tmp[32],password_tmp[64];
char *B;
char *C;
char shuju[100];
int main()
{
	xuanzhe();    //调用选择函数 
	//下面这部门是我为登陆后做的,今天太晚了,就不继续想下去,有空继续做 
	/*printf("******交换机系统******\n1.资料管理\n2.账号管理\n3.退出\n");
	scanf("%s",&z);
	if(z=='2');
	{xiugai();} */
	return 0;
}

void denglu()
{
     A=fopen("D:\\c语言作业\\平时\\ni.txt","r+");   //以读的方式打开TXT文件ni,增加了“写” 
     if(!A)    //如果文件为空或不存在,则打开失败 
     {printf("文件打开失败!");
     exit (1);}
	
	for(i=0;i<3;i++) 
	{
		printf("\n*******登陆系统******* \n\n");
		printf("用户名:");
		scanf("%s",&name);
		printf("密码:");
		scanf("%s",&password);
		while(1) 
		{
			B=fgets(shuju,sizeof(shuju),A);    //从文件逐行读取数据 
			if(!B)       //当文件读取到空行时,结束循环。防止死循环 
			{break;}
			sscanf(shuju,"%s %s",name_tmp,password_tmp);   //把读取到的数据临时存储到name_tmp和password_tmp中 
			if(!strcmp(name,name_tmp)  &&  !strcmp(password,password_tmp))   //如果输入的账号和密码与文件中的符合,结束循环 
			{break;}
		}
		if(B)    //如果B不为0,结束大循环,执行下一部分 
		{break;}
		else if(i>=2)    //输入三次错误就停止程序 
		{system("cls");
		printf("输入次数已到!!\n");
		system("pause");
		}
		else     //错误时返回执行大循环 
		{system("cls");
		printf("用户名或密码错误!请重新输入!\n");	
		rewind(A);    //让文件回到开头 
		}
	}	
}


void zhuche()
{
	for(i=0;i<5;i++)
	{
	printf("******注册系统******\n");
    printf("用户名:\n");
	scanf("%s",name1);
	printf("请输入密码:\n");
	scanf("%s",password1);
	printf("重新输入密码:\n");
	scanf("%s",password2);
	D=fopen("D:\\c语言作业\\平时\\ni.txt","a+");   //以追加的形式打开TXT文件ni ,增加了”读“ 
    	while(1)
		{
			C=fgets(shuju,sizeof(shuju),D); //从文件逐行读取数据
			if(!C)       //当文件读取到空行时,结束循环。防止死循环
			{break;}
			sscanf(shuju,"%s",name_tmp);    //把读取到的数据临时存储到name_tmp中 
			if(!strcmp(name1,name_tmp))     //如果输入的账号符合,结束循环 
			{break;}
		}
		if(!C)    //如果文件中没有该用户名,把用户名和密码存储进文件中 
		{
			fprintf(D,"\n%s %s",name1,password1);    //把用户名和密码写入文件 
			fclose(D);    //释放缓冲区 
			system("cls");
			printf("注册成功!\n");
			system("pause");    //结束该函数 
		}
		else
		{system("cls");
		printf("用户名已存在\n");	
		rewind(A);//让文件回到开头 
		}
	}	
}


void xuanzhe()
{
	while(k==0)
  {
	printf("欢迎使用交换机系统\n1.登录\n2.注册\n3.退出\n请选择你要的功能:");
    scanf("%s",&z);
    if(z=='1')   //如果选择1,调用登陆函数 
    {system("cls");
	denglu();
    k=1;
    }
    else if(z=='2')    //如果选择2,调用注册函数 
    {system("cls");
	zhuche();
    k=1;
    }
    else if(z=='3')    //如果选择3退出,让程序结束 
    {system("pause");}
    else               //输入的数字不符合,让用户重新输入 
    {printf("输入错误!请重新输入!\n");}
  }
}


void xiugai()    //登陆后修改资料的函数,没时间写下去,大家不用的话可以去掉,不影响整个程序 
{
	printf(""); 
}

最后这函数是为登陆后写的,取点也没关系。好了,有时间再继续做这个系统,争取做的和真的登陆系统一样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值