C语言课设案例-万年历代码实现

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<string.h>
#include<conio.h>
struct Customer
{
	char userid[20];
	char pwd[20];
	char name[20];
	char tel[20];
	char addr[20];
};
int main()
{
	void yh();
	void gly();

	int n;
	do
	{
		system("cls");
		printf("1、用户登录\n");
		printf("2、管理员登录\n");
		printf("0、退出\n");
		printf("请选择:");
		scanf("%d", &n);
		switch(n)
		{
			case 1: yh(); break;
			case 2: gly(); break;
		}
	}while(n != 0);
	return 0;
}
void yh()
{
	system("cls");
	printf("选择了用户\n");
	void ckrq();
	void bz();
	void login();
	void reg();
	void retur();


	int n;
	login();

	do
	{
		system("cls");
		printf("1、查看日期\n");
		printf("2、备注\n");
		printf("0、返回\n");
		printf("请选择:");
		scanf("%d", &n);
		switch(n)
		{
			case 1: ckrq(); break;
			case 2: bz(); break;
		}
	}while(n != 0);
}
void ckrq()
{
	void srrq();
	void retur();
	int n;
	do
	{
		system("cls");
		printf("1、输入日期\n");
		printf("0、返回\n");
		printf("请选择:");
		scanf("%d", &n);
		switch(n)
		{
			case 1: srrq(); break;
		}
	}while(n != 0);
}
void bz()
{
	void srrq1();
	void retur();
	
	int n;
	do
	{
		system("cls");
		printf("1、输入日期\n");
		printf("0、返回\n");
		printf("请选择:");
		scanf("%d", &n);
		switch(n)
		{
			case 1: srrq1(); break;
		}
	}while(n != 0);
}
void srrq()
{
}
void srrq1()
{
}
void srrq2()
{
}
void srrq3()
{
}


void gly()
{
	system("cls");
	printf("选择了管理员\n请输入管理员密码:");
	Sleep(1000);
	void xgyt();
	void xgjt();
	void pw(char c[]);
	void retur();

	int n;
	char c[20],a[20];
	int t,f;
	FILE *p;
	
	//管理员密码
	pw(c); 
	p=fopen("管理员密码.txt","r");
	fscanf(p,"%s",a);
	fclose(p);
	do
	{
		f=0;
		if(strcmp(a,c)==0)
		{
			printf("登陆成功!\n");
			Sleep(800);
		}
		else
		{
			printf("密码错误,请重新输入  (0)退出\n");
			f=1;
			pw(c);
			if(t==0)
			exit(0);
		}
	}while(f!=0);
	do
	{
		system("cls");
		printf("1、修改一天\n");
		printf("2、修改多天\n");
		printf("0、返回\n");
		printf("请选择:");
		scanf("%d", &n);
		switch(n)
		{
			case 1: xgyt(); break;
			case 2: xgjt(); break;
		}
	}while(n != 0);
}
void xgyt()
{
	void srrq2();
	void retur();
	
	int n;
	do
	{
		system("cls");
		printf("1、输入日期\n");
		printf("0、返回\n");
		printf("请选择:");
		scanf("%d", &n);
		switch(n)
		{
			case 1: srrq2(); break;
		}
	}while(n != 0);
}
void xgjt()
{
	void srrq3();
	void retur();
	
	int n;
	do
	{
		system("cls");
		printf("1、输入日期\n");
		printf("0、返回\n");
		printf("请选择:");
		scanf("%d", &n);
		switch(n)
		{
			case 1: srrq3(); break;
		}
	}while(n != 0);
}
void login()
{
	void reg();
	void pw(char c[]);
	
	struct Customer a,b;
	
	int t,f;
	printf("是否有账号?(输入 1 注册帐号)\n");
	scanf("%d",&t);
	if(t==1)
	
	reg();
	
	FILE *p;
	
	 do
	 {
	 	system("cls");
	 	printf("用户名:");
	 	scanf("%s",a.userid);
	 	printf("密  码:");
		pw(a.pwd); 
		
		//用户名密码验证
		f==0;
		p=fopen("用户数据.txt","r");
		while(fscanf(p,"%s%s%s%s%s",b.userid,b.pwd,b.name,b.tel,b.addr)!=EOF)
		{
			if(strcmp(a.userid,b.userid)==0 && strcmp(a.pwd,b.pwd)==0)
				{
					f=1;
					a=b;
					break;
				}
			t=1;
		}
		if(f!=1)
		{
			printf("用户名或密码错误,请重新输入!(0退出)\n");
			scanf("%d",&t);
			if(t==0)
			    exit(0);
		}
	 }while(f!=1);
	 fclose(p);
	 printf("登陆成功!\n");
	 Sleep(800);
}
void reg()
{
	void pw(char c[]);
	
	char c[20];
	struct Customer a,b;
	FILE *p;
	int f;
	do
	{
		f=0;
    	printf("用户名:");
		scanf("%s",a.userid);
    	p=fopen("用户数据.txt","r");
		while(fscanf(p,"%s",b.userid)!=EOF)
		{
			if(strcmp(a.userid,b.userid)==0)
				{
					f=1;
					break;
				}
			fclose(p);		
		}	
		if(f==1)
			printf("该用户名已存在,请重新输入!\n");
    }while(f!=0);  
    //验证密码   
    do
    {
    	f=0;
    	printf("密  码: ");
    //	scanf("%s",a.pwd); 
    	pw(a.pwd);
    	printf("重复密码:");
    //	scanf("%s",c); 
    	pw(c);
    	if(strcmp(a.pwd,c)!=0)
    	{
    		printf("两次密码不一致,请重新输入!\n");
    		f=1;
		}
	}while(f!=0);

	printf("姓  名:");
	scanf("%s",a.name);  
	printf("电  话:");
	scanf("%s",a.tel);  
	printf("地  址:");
	scanf("%s",a.addr);
	
	p=fopen("用户数据.txt","a+");
	fprintf(p,"%s %s %s %s %s\n",a.userid,a.pwd,a.name,a.tel,a.addr);
	fclose(p); 
}
void pw(char c[])
{
    int i=0;
    do
    {
    	c[i]=getch();
    	if(c[i]!='\r')
    	printf("*");
    	i++;
	}while(c[i-1]!='\r');
	c[i-1]='\0';
	printf("\n");
}

void retur()
{
	system("cls");
	printf("正在退出......");
	Sleep(1000);
} 这里插入代码片

版权声明:本文为Bonesi原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。