⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 admin.cpp

📁 用户登陆系统存入车辆(存入时间
💻 CPP
字号:



//admin.cpp
//高级功能函数


#include "StdAfx.h"
#include "typedef.h"
#include "md5.H"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <io.h>
#include <string.h>




//	名称:admin_setprice
//	作用:重新设置停车价格
//	参数:空
//	返回值:修改成功:true
//			修改失败:false
bool admin_setprice()
{
	float price = 0.0;
	printf("\n%s%f\n\n%s",*(p_language_print + 26),user.price,*(p_language_print + 27));/*当前价格为:*//*请输入新的价格:*/
	scanf("%f",&price);

	user.price = price;
	
	/********************************/
	unsigned char username_md5[17],	password_md5[17];
	
	MD5_CTX md5;												//初始化用于MD5的加密结构
	MD5Init(&md5);
	
	MD5Update(&md5,username_md5,strlen((char *)user.username)); //对欲加密的字符进行加密
	MD5Final(username_md5,&md5); 
	MD5Update(&md5,password_md5,strlen((char *)user.password)); 
	MD5Final(password_md5,&md5); 
	
	/********************************/
	
	if ((fp_user = fopen("user.dat","w")) == 0)
	{
		printf("%s",*(p_language_print + 9));/*程序运行出现意外错误,按任意键继续*/
		getch();
		fclose(fp_user);
		return false;
	}
	
	for (int ij=0;	ij<17;	ij++)			//将md5密文写入到文件
	{
		fprintf(fp_user,"%x",username_md5[ij]);
	}

	fprintf(fp_user,"\n");

	for (ij=0;	ij<17;	ij++)
	{
		fprintf(fp_user,"%x",password_md5[ij]);
	}
						
	fprintf(fp_user,"\n%f",user.price);

	fprintf(fp_user,"\n%c",user.language);
						
	fprintf(fp_user,"\n%d",user.Dimension.p_long);
						
	fprintf(fp_user,"\n%d",user.Dimension.p_breadth);
						
	fclose (fp_user);

	price_log();

	printf("\n%s",*(p_language_print + 28));/*价格设置成功,从现在开始存入的车辆将以新价格计费,之前车辆仍按照以前价格计费。按任意键继续*/

	getch();

	return true;
}


//	名称:admin_modifypassword
//	作用:修改密码
//	参数:空
//	返回值:修改成功:true
//			修改失败:false
bool admin_modifypassword()
{
	char password1[20],password2[20];

	while(1)
	{
		printf("\n%s",*(p_language_print + 13));/*请输入新密码:*/
		starword(password1);
		
		printf("\n\n%s",*(p_language_print + 2));/*请重复输入密码:*/
		starword(password2);
		
		if (strcmp(password1,password2) == 0)
		{
			break;
		}
		else
			printf("\n\n%s",*(p_language_print + 3));/*两次密码输入不一致,请重新输入。*/
	}

	for(int ini = 0;	ini<20;		ini++)
	{
		user.password[ini] = password1[ini];
	}

	/********************************/
	unsigned char username_md5[17],	password_md5[17];
	
	MD5_CTX md5;												//初始化用于MD5的加密结构
	MD5Init(&md5);
	
	MD5Update(&md5,username_md5,strlen((char *)user.username)); //对欲加密的字符进行加密
	MD5Final(username_md5,&md5); 
	MD5Update(&md5,password_md5,strlen((char *)user.password)); 
	MD5Final(password_md5,&md5); 
	
	/********************************/
	
	if ((fp_user = fopen("user.dat","w")) == 0)
	{
		printf("%s",*(p_language_print + 9));/*程序运行出现意外错误,按任意键继续*/
		getch();
		fclose(fp_user);
		return false;
	}
	
	for (int ij=0;	ij<17;	ij++)			//将md5密文写入到文件
	{
		fprintf(fp_user,"%x",username_md5[ij]);
	}

	fprintf(fp_user,"\n");

	for (ij=0;	ij<17;	ij++)
	{
		fprintf(fp_user,"%x",password_md5[ij]);
	}
						
	fprintf(fp_user,"\n%f",user.price);

	fprintf(fp_user,"\n%c",user.language);
						
	fprintf(fp_user,"\n%d",user.Dimension.p_long);

	fprintf(fp_user,"\n%d",user.Dimension.p_breadth);

	fclose (fp_user);


	password_log();

	printf("\n\n%s",*(p_language_print + 14));/*密码修改成功!按任意键返回。*/

	getch();

	return true;
}



//	名称:admin_setlanguage
//	作用:重新设置语言
//	参数:空
//	返回值:修改成功:true
//			修改失败:false
bool admin_setlanguage()
{
	
	if (user.language == 'c')
	{
		user.language = 'e';
	}
	else if (user.language == 'e')
	{
		user.language = 'c';
	}
	
	/********************************/
	unsigned char username_md5[17],	password_md5[17];
	
	MD5_CTX md5;												//初始化用于MD5的加密结构
	MD5Init(&md5);
	
	MD5Update(&md5,username_md5,strlen((char *)user.username)); //对欲加密的字符进行加密
	MD5Final(username_md5,&md5); 
	MD5Update(&md5,password_md5,strlen((char *)user.password)); 
	MD5Final(password_md5,&md5); 
	
	/********************************/
	
	if ((fp_user = fopen("user.dat","w")) == 0)
	{
		printf("%s",*(p_language_print + 9));/*程序运行出现意外错误,按任意键继续*/
		getch();
		fclose(fp_user);
		return false;
	}
	
	for (int ij=0;	ij<17;	ij++)			//将md5密文写入到文件
	{
		fprintf(fp_user,"%x",username_md5[ij]);
	}
	
	fprintf(fp_user,"\n");
	
	for (ij=0;	ij<17;	ij++)
	{
		fprintf(fp_user,"%x",password_md5[ij]);
	}
	
	fprintf(fp_user,"\n%f",user.price);
	
	fprintf(fp_user,"\n%c",user.language);
	
	fprintf(fp_user,"\n%d",user.Dimension.p_long);
	
	fprintf(fp_user,"\n%d",user.Dimension.p_breadth);
	
	fclose (fp_user);

	if (user.language == 'c')				//重新初始化界面语言
	{
		p_language_print = Chinese;
	}
	else
	{
		p_language_print = English;
	}
	
	
	return true;
}




//	名称:admin_cardata
//	作用:备份/恢复停车场数据文件
//	参数:空
//	返回值:成功:true
//			失败:false
bool admin_cardata()
{
	char command[10],confirm;
	if(access("parkcar.dat.bac",00) == -1)
	{
		printf("%s",*(p_language_print + 15));/*从未备份数据,备份请输入backup。*/
		
		scanf("%s",&command);
		if (strcmp(command,"backup") == 0)
		{
			system("copy parkcar.dat parkcar.dat.bac");
			backbdata_log();
			
			printf("%s",*(p_language_print + 16));/*备份数据文件成功,按任意键返回。*/
			getch();
			
			return true;
		}

		printf("\n%s",*(p_language_print + 17));/*文件未备份,按任意键返回。*/
		getch();

		return false;
	}

	printf("%s\n",*(p_language_print +18));/*数据文件已经备份,重新备份请输入backup,恢复数据文件请输入recover。*/
	fflush(stdin);
	gets(command);

	if (strcmp(command,"backup") == 0)
	{
		system("copy parkcar.dat parkcar.dat.bac");
		backbdata_log();
		
		printf("\n%s",*(p_language_print + 16));/*备份数据文件成功,按任意键返回。*/
		fflush(stdin);
		getch();
		
		return true;
	}

	if (strcmp(command,"recover") == 0)
	{
		printf("%s",*(p_language_print + 19));/*恢复会造成新添加数据丢失,确认操作吗?(y/n)*/
		fflush(stdin);
		confirm = getchar();

		if (confirm == 'y')
		{
			system("copy parkcar.dat parkcar.dat.bac");
			backqdata_log();
			
			printf("\n%s",*(p_language_print + 20));/*恢复数据文件成功,按任意键返回。*/
			getch();
			
			return true;
		}

		if (confirm == 'n')
		{
			return false;
		}
	}
	


	return true;
}



//	名称:admin_userlog
//	作用:查看用户登录日志
//	参数:空
//	返回值:修改成功:true
//			修改失败:false
bool admin_userlog()
{
	print_log();
	return true;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -