目前可以完成注册,登入及对比是否正确,还不完善,仅供参考

#include<stdio.h>
#include<string.h> //字符串所在头文件
#include<stdlib.h> //清屏所在头文件
#include<stdlib.h> //调用宏预处理指令头文件
#include <windows.h>//Windows系统函数 

#define MI 20 //密码
#define MING 10 //用户名
#define JIN 20 //金额
void NR(int a,int t);//如果密码正确将进入这个函数
void DR();//登入函数 
void PD();//判断储存函数 
void CC();//储存用户名的文件函数其中包含读取文件内容 
void DD();//储存密码的文件函数其中包含读取文件内容 
//--------------------------------------------------------------------------------------------
void EE();//换色 
void DA();//注册大块 

//--------------------------------------------------------------------------------------------
static void ZC();//优先全局变量 
static int number;//进行每次数值累计 
static int times; //输出累计第多少次数 
char user[MING];   //存放用户名
char users[MING]; //用于确认用户名
char cunfang[MI]; //用于存放密码
char queren[MI];  //用于确认密码是否正确
char zonghe[10];//用于存放总和 
int cishu = 0;    //循环次数
int b;

int main()
{
printf("欢迎使用本程序!\n");
printf("本程序拥有多功能程序您可以自由选择!\n"); 
printf("下面请进行选择使用哪种程序。");
printf("选项:");
printf("1.注册登入累计系统 2.切换背景以及字体颜色 3.") ;
 
 int wo;
 scanf("%s",&wo);
 if(wo==1)
 {
 	printf("请问您是否已存在账号?\n");
printf("如果已有账号请输入1进入登入界面,如果没有账号请输入2进入注册用户界面!") ;
 	DA();
 }
 else if(wo==2)
 {
 	
    
 }

    return 0;
}
//注册详细内容ZC() 
static void ZC(){
	do
		{
    	printf("\t\t\t\t注册界面\t\t\t\t\n");
   		 printf("请输入你的用户名:");
    	scanf("%s",&user);//用户输入的数值写入到user中 
    	printf("请确认你的用户名:");//打印 
    	scanf("%s",&users);//用户输入的数值写入到users中 
        CC(); //调用了下面用于储存文件名以及读取文件名的函数 
	}while(strcmp(user,users));//将用户输入的user以及users中的内容进行对比,如果不是完全一样将要求用户重新输入直到完全相同 。 

	do
		{
    	printf("请输入你的密码:");//打印 
   		 scanf("%s",&cunfang);//用于获取用户输入的存放值 
    	printf("请确认你的密码:");//打印 
    	scanf("%s",&queren);//用于获取用户输入的确认值 
		DD();    //调用了下面的用于存放密码写入以及读取的函数 
		}	while(strcmp(cunfang,queren));//将用户输入的cunfang以及queren中的内容进行对比,如果不是完全一样将要求用户重新输入直到完全相同
	//用于进行用户登入时进行对比如果用户输入的内容与对应的文件内容完全相同,将允许进入该程序的内部 
	if(strcmp(cunfang,users)==0){
		printf("警告您的密码与您的用户名不能相同为了您的账号安全请按Enter键进行重新注册!");
		getchar();// 用户按回车键进行下一步相当于暂停了一下程序 
		getchar(); 
		system("cls");//清屏
	
	}else{
		/*进行对比如果完全相同则进入下一个语句如果不相同则一直循环直到完全相同为止*/
		printf("密码设置成功!\n");
		printf("你的密码为:%s",cunfang);// 第一次注册完成之后会提示用户设置的密码,用于方便用户记住密码 
		printf("按任意键进入登入系统............");
		getchar();//getchar阻止程序继续直到按任意键为止
		system("cls");//清屏
		DR();// 用于调用登入函数进行登入程序 
	}

}
// 登入程序 
void DR()
{

printf("\t\t\t\t登入界面\t\t\t\t\n");
printf("用户名:");

scanf("%s",&user);
while(strcmp(user,users))
{
    cishu++; //累计输入用户名次数
    if(cishu<3)
    {
        printf("第%d次错误,请重新输入!",cishu);
    }
    else
    {
    break;
    }
}
 printf("密码:");
 DD();// 调用了存放用户名函数下面的DD将详细介绍这个函数中的内容 
 
 scanf("%s",&cunfang) ;// 获取用户输入的字符 
 while(strcmp(cunfang,queren))// 将用户输入的字符与文件中的内容进行对比,如果完全一致进入输入密码阶段 
 {
     cishu++;// 可尝试次数 
     if(cishu<3)// 最多三次因为c语言中,计数是从0开始计数的0,1,2为三次 
     {
     printf("第%d次错误,请重新输入!",cishu);// 打印 
     }
     else
     {
     break;// 用于退出程序的函数 
     }
 }
   system("cls");// 清屏 
  
} 
// 内容函数 
void NR(int a,int t)
{
   
    
    for(times=1;times<=3;times++)// 注意这个循环中我定义的初始值为1,所有这次循环将是1,2,3结束 
    {
    int b;
    char c[10]; 
    printf("当前余额:%d",a);// 显示当前用户的当余额 
    printf("请输入您今天的第%d次收获金额:",times);// 显示用户第几次累计 
    scanf("%d",&b);// 用于获取用户所输入的数值用于累计 
    number=number+b;// 将获取到的数值进行逐一的累计,到第三次终止程序 
    
    printf("本次累计金额为:%d",number);// 打印总金额 
     
    
    printf("所有累计金额共:%d¥",c);
    }
    getchar(); // 暂停程序直到用户按回车键 
    printf("本次程序完成按enter键结束程序!\n");
    printf ("欢迎下次使用!\n");
    getchar();
    printf("请问您还要进行什么操作?\n");
    printf("选项:\n");
	printf ("输入1进行将进行背景换色!\n"); 
	scanf("%d",&b);
	if(b==1)
	{	
	EE();
    }
}
void CC()
{

 FILE *fp;// 设置了一个文件指针fp 
   fp = fopen( "ewq.txt" , "w" );// 格式固定,fopen()中的内容是创建了一个名叫ewq.txt的文件并且给了这个文件写的权限 
   fwrite(users, sizeof(users) ,1, fp );// 以二进制的格式写入到文件中,注意()中的内容第一个为获取内容这里的users在前面获取到了用户输入的值,所以他的内容就是用户输入的字符串 
   fclose(fp);// 关闭了fp指针 
   fp=fopen("ewq.txt","r");// 通过指针fp打开了文件ewq.txt文件并给了他可读取的权限方便登入时进行对比 
   
   
   
}
void DD()
{
	FILE *f;// 设置了一个文件指针f
   f = fopen( "qwe.txt" , "w" );// 格式固定,fopen()中的内容是创建了一个名叫qwe.txt的文件并且给了这个文件写的权限 
   fwrite(queren, sizeof(queren) , 1, f );// 以二进制的格式写入到文件中,注意()中的内容第一个为获取内容这里的queren在前面获取到了用户输入的值,所以他的内容就是用户输入的字符串
   fclose(f);// 关闭了fp指针
   f=fopen("qwe.txt","r");// 通过指针fp打开了文件qwe.txt文件并给了他可读取的权限方便登入时进行对比 
}
void EE()
{
	int a;
    printf("请输入1-9每一个数字将数不同的颜色:      ");
    scanf("%d",&a);
    if(a==1)
    {
    	system("color 1");
    }
    else if(a==2)
    {
    	system("color 2");
    }
    else if(a==3)
    {
    	system("color 3");
    }else if(a==4)
    {
    	system("color 4");
    }else if(a==5)
    {
    	system("color 5");
    }else if(a==6)
    {
    	system("color 6");
    }
    else if(a==7)
    {
    	system("color 7");
    }
    else if(a==8)
    {
    	system("color 8");
    }
    else if(a==9)
    {
    	system("color 9");
    }

}
void DA()
{
int pd;
scanf("%d",&pd);
if(pd==1)
{
system("cls");//清屏	
DR();
}
else
{
	system("cls");//清屏
ZC(); 
} 


   printf("\t\t\t\t\t输出结果\n");
   if(cishu>=3)//限制次数用 
   {
       printf("对不起您已输入三次错误的密码或者用户名了程序终止!\n");
       exit(-1);//退出 
   }
   else
   {
   printf("欢迎你%s",users);//用于打印用户名 
   number=0;//用户初始值为0;
   times=0;//累计次数 
   NR(number,times);//内容调用number以及times函数 
   }	
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值