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

📄 function.cpp

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



//function.cpp
//一般功能函数


#include "StdAfx.h"
#include "typedef.h"
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>




//	名称:fun_input()
//	作用:存入车辆
//	参数:空
//	返回值:成功:(bool)true
//			失败:(bool)false
bool fun_input()
{
	if (IsFull(carlist) == true)
	{
		printf("\n\n%s\n",*(p_language_print + 21));/*车位已满!*/
		getch();
		return false;
	}

	park_car car_temp;

	car_temp.parkplace.p_long = carlist->buffer[carlist->length].parkplace.p_long;
	car_temp.parkplace.p_breadth = carlist->buffer[carlist->length].parkplace.p_breadth;

	printf("\n\n- - - - - %s - - - - -\n\n%s",*(p_language_print + 22),*(p_language_print + 23));/*存入车辆*/  /*请输入车主姓名:*/
	scanf("%s",&car_temp.name);
	printf("\n%s",*(p_language_print + 24));/*请输入车牌号码:*/
	scanf("%s",&car_temp.number);

	int * ptime = now_time();
	for (int time_i = 0; time_i< 6 ; time_i++)
		car_temp.ptime[time_i] = * (ptime + time_i);
	
	car_temp.price = user.price;

	if((InsertList_Sq(carlist,carlist->length,&car_temp)) == false)
	{
		printf("%s",*(p_language_print + 9));/*程序运行出现意外错误,按任意键继续*/
		getch();
		return false;
	}

	if (input_log(car_temp.number) == false)
	{
		printf("%s",*(p_language_print + 25));/*日志可能没有被正确记录。*/
		getch();	
	}

	if ((fp_car = fopen("parkcar.dat","wb")) == 0)						//写入存放存车信息的顺序表
	{
		printf("%s",*(p_language_print + 9));/*程序运行出现意外错误,按任意键继续*/
		return false;
	}
	if((fwrite(carlist,sizeof(park_car),user.Dimension.p_long * user.Dimension.p_breadth,fp_car)) == 0)
	{
		printf("%s",*(p_language_print + 9));/*程序运行出现意外错误,按任意键继续*/
		getch();
		return false;
	}
	fclose(fp_car);

	//*********************************************************			Debug
		#ifdef DEBUG
		printf("\n\nDebug\n");

		int debug_i = 0;
		printf("name = %s\nnumber = %s\nparkplace = %d - %d\nprice = %f\nptime = %d,%d,%d,%d,%d,%d",
			carlist->buffer[debug_i].name,
			carlist->buffer[debug_i].number,
			carlist->buffer[debug_i].parkplace.p_long,
			carlist->buffer[debug_i].parkplace.p_breadth,
			carlist->buffer[debug_i].price,
			carlist->buffer[debug_i].ptime[0],
			carlist->buffer[debug_i].ptime[1],
			carlist->buffer[debug_i].ptime[2],
			carlist->buffer[debug_i].ptime[3],
			carlist->buffer[debug_i].ptime[4],
			carlist->buffer[debug_i].ptime[5]);

		printf("\n\n");
		getch();
		#endif 
	//**********************************************************

	printf("\n%s%d - %d\n\n%s",*(p_language_print + 29),car_temp.parkplace.p_long,car_temp.parkplace.p_breadth,*(p_language_print + 30));/*车辆添加成功,请将车辆放入车位:*//*按任意键返回*/

	getch();

	return true;
}



//	名称:fun_output()
//	作用:取出车辆
//	参数:空
//	返回值:成功:(bool)true
//			失败:(bool)false
bool fun_output()
{
	printf("\n\n- - - - - %s - - - - -\n\n",*(p_language_print + 31));/*取出车辆*/
	if (IsEmpty(carlist) == 1)
	{
		printf("%s\n",*(p_language_print + 32));/*当前没有车辆在停车场存放。*/
		getch();
		return false;
	}

	char number[10];
	char command[10];

	while(1)
	{
		printf("%s",*(p_language_print + 24));/*请输入车牌号码:*/
		scanf("%s",&number);

		int i = Searchnumber_Sq(carlist,	number);


		if (i == 0)
		{
			printf("\n\n%s",*(p_language_print + 33));/*没有找到该车辆,请检查输入。*/
			getch();
			return false;
		}

		int * ptime = now_time();
		for (int time_i = 0; time_i< 6 ; time_i++)
			carlist->buffer[i-1].ltime[time_i] = * (ptime + time_i);

		times_segment(carlist->buffer[i-1].ptime,
			carlist->buffer[i-1].ltime,
			carlist->buffer[i-1].time);

		car_pay(i-1);


		printf("\n%s\n\t\t%s%s\n\t\t%s%s\n\t\t%s%d - %d\n\t\t%s%d%s %d%s %d:%d\n\t\t%d%s %d%s %d:%d\n\t\t%s%d%s%d%s%d\n\t\t%s%.2f%s\n\n",
			*(p_language_print + 34),/*记录已找到:*/
			*(p_language_print + 35),/*车牌号码:*/
			carlist->buffer[i-1].number,
			*(p_language_print + 36),/*车主姓名:*/
			carlist->buffer[i-1].name,
			*(p_language_print + 37),/*停车位置:*/
			carlist->buffer[i-1].parkplace.p_long,
			carlist->buffer[i-1].parkplace.p_breadth,
			*(p_language_print + 44),/*存入时间:*/
			carlist->buffer[i-1].ptime[1],
			*(p_language_print + 39),/*月*/
			carlist->buffer[i-1].ptime[2],
			*(p_language_print + 40),/*日*/
			carlist->buffer[i-1].ptime[3],
			carlist->buffer[i-1].ptime[4],
			*(p_language_print + 45),/*当前时间:*/
			carlist->buffer[i-1].ltime[1],
			*(p_language_print + 39),/*月*/
			carlist->buffer[i-1].ltime[2],
			*(p_language_print + 40),/*日*/
			carlist->buffer[i-1].ltime[3],
			carlist->buffer[i-1].ltime[4],
			*(p_language_print + 46),/*停车计时:*/
			carlist->buffer[i-1].time[2],
			*(p_language_print + 41),/*天*/
			carlist->buffer[i-1].time[3],
			*(p_language_print + 42),/*小时*/
			carlist->buffer[i-1].time[4],
			*(p_language_print + 43),/*分钟*/
			*(p_language_print + 47),/*停车费用*/
			carlist->buffer[i-1].pay,
			*(p_language_print + 48));/*元*/

		printf("%s\n",*(p_language_print + 49));/*确认取出该车请输入takeout,返回请输入back。*/
		scanf("%s",&command);

		if ((strcmp(command , "takeout")) == 0)
		{
			place takeout_place_temp;
			takeout_place_temp.p_long = carlist->buffer[i-1].parkplace.p_long;
			takeout_place_temp.p_breadth = carlist->buffer[i-1].parkplace.p_breadth;

			char takeout_number_temp[10];

			for (int takeout_number_temp_i = 0; takeout_number_temp_i < 10;	takeout_number_temp_i ++)
			{
				takeout_number_temp[takeout_number_temp_i] = carlist->buffer[i-1].number[takeout_number_temp_i];
			}

			//*********************************************************			Debug
				#ifdef DEBUG
				printf("\n\nDebug\n");

				printf("%d - %d",takeout_place_temp.p_long,takeout_place_temp.p_breadth);

				printf("\n\n");
				getch();
				#endif 
			//**********************************************************

			if(DeleteList_Sq(carlist,i-1) == false)
			{
				printf("%s",*(p_language_print + 9));/*程序运行出现意外错误,按任意键继续*/
				getch();
				return false;
			}

			carlist->buffer[carlist->length].parkplace.p_long = takeout_place_temp.p_long;
			carlist->buffer[carlist->length].parkplace.p_breadth = takeout_place_temp.p_breadth;


			if ((fp_car=fopen("parkcar.dat","wb")) == 0)
			{
				printf("%s",*(p_language_print + 9));/*程序运行出现意外错误,按任意键继续*/
				getch();
				return false;
			}
			fwrite(carlist,sizeof(park_car),user.Dimension.p_long * user.Dimension.p_breadth,fp_car);				//写入存放存车信息的顺序表
			fclose(fp_car);

			output_log(takeout_number_temp);

			printf("\n\n%s\n");/*车辆取出成功,按任意键继续。*/
			getch();	

			return true;
		}

		if (command == "back")
		{
			return true;
		}

		return true;
	}
	

}



//	名称:fun_search()
//	作用:搜索车辆
//	参数:空
//	返回值:成功:(bool)true
//			失败:(bool)false
bool fun_search()
{
	printf("\n\n- - - - - %s - - - - -\n\n",*(p_language_print + 51));/*搜索车辆*/
	if (IsEmpty(carlist) == 1)
	{
		printf("\n%s",*(p_language_print + 52));/*当前没有车辆在停车场存放。*/
		getch();
		return false;
	}

	char carnumber[10];

	printf("%s",*(p_language_print + 53));/*请输入要查找的车牌号码:*/
	scanf("%s",&carnumber);

	int i = Searchnumber_Sq(carlist,carnumber);

	if (i == 0)
	{
		printf("\n%s",*(p_language_print + 54));/*没有找到该车记录*/
		getch();
		return false;
	}

	printf("\n%s\n\t\t%s\n\t\t%s\n\t\t%s%d%s %d %d:%d\n\t\t%s%d.%d",
		*(p_language_print + 34),/*记录已找到:*/
		*(p_language_print + 35),/*车牌号码:*/
		carlist->buffer[i-1].number,
		*(p_language_print + 36),/*车主姓名:*/
		carlist->buffer[i-1].name,
		*(p_language_print + 44),/*存入时间:*/
		carlist->buffer[i-1].ptime[1],
		*(p_language_print + 39),/*月*/
		carlist->buffer[i-1].ptime[2],
		*(p_language_print + 40),/*日*/
		carlist->buffer[i-1].ptime[3],
		carlist->buffer[i-1].ptime[4],
		*(p_language_print + 37),/*存放位置:*/
		carlist->buffer[i-1].parkplace.p_long,
		carlist->buffer[i-1].parkplace.p_breadth);

	printf("\n\n按任意键返回");

	getch();
	return true;
}


//	名称:fun_state()
//	作用:查看停车场状态
//	参数:空
//	返回值:成功:(bool)true
//			失败:(bool)false
bool fun_state()
{
	printf("\n\n- - - - - %s - - - - -\n\n",*(p_language_print + 55));/*查看停车场状态*/
	printf("%s%d%s\n\n%s\n",*(p_language_print + 56),(user.Dimension.p_long * user.Dimension.p_breadth -carlist->length),*(p_language_print + 57),*(p_language_print + 58));/*停车场当前还有*//*个空余车位。*//*当前所有存放车辆:*/
	for (int i=0;	i< carlist->length;		i++)
	{
		printf("\n\n*  *  *  *  *  *  *  *\n");
		printf("\n%s\n\t\t%s\n\t\t%s\n\t\t%s%d%s %d %d:%d\n\t\t%s%d.%d",
			*(p_language_print + 34),/*记录已找到:*/
			*(p_language_print + 35),/*车牌号码:*/
			carlist->buffer[i].number,
			*(p_language_print + 36),/*车主姓名:*/
			carlist->buffer[i].name,
			*(p_language_print + 44),/*存入时间:*/
			carlist->buffer[i].ptime[1],
			*(p_language_print + 39),/*月*/
			carlist->buffer[i].ptime[2],
			*(p_language_print + 40),/*日*/
			carlist->buffer[i].ptime[3],
			carlist->buffer[i].ptime[4],
			*(p_language_print + 37),/*存放位置:*/
			carlist->buffer[i].parkplace.p_long,
			carlist->buffer[i].parkplace.p_breadth);
	}
	printf("\n\n");
	
	getch();
	return true;
}



//	名称:fun_admin
//	作用:转入高级管理菜单
//	参数:空
//	返回值:空
bool fun_admin()
{
	printf("\n%s",*(p_language_print + 59));/*请重新输入管理员密码:*/	//进入高级菜单前的身份确认
	char password[20];
	starword(password);

	if (strcmp(password,user.password) != 0)
	{
		printf("\n%s",*(p_language_print + 60));/*密码输入错误,按任意键返回。*/
		getch();
		return false;
	}

	char acommand[10];
	printf("\n\n%s\n\n%s",*(p_language_print + 61),*(p_language_print + 30));/*密码验证成功,即将进入高级管理命令,请谨慎操作。*//*按任意键继续*/
	getch();
	while(1)
	{
		system("cls");
		if (user.language == 'c')
		{
			In_hander_ch();
		} 
		else
		{
			In_hander_en();
		}

		printf("- - - - - %s - - - - -",*(p_language_print + 62));/*高级管理命令*/
		while(1)
		{
			printf("\n\n%s",*(p_language_print + 63));/*请输入高级管理命令(输入help获得帮助):*/
			rewind(stdin);
			scanf("%s",&acommand);
			
			if     (strcmp(acommand,"price") == 0)
			{
				admin_setprice();
				break;
			}
			else if(strcmp(acommand,"password") == 0)
			{
				admin_modifypassword();
				break;
			}
			else if(strcmp(acommand,"language") == 0)
			{
				admin_setlanguage();
				return true;
			}
			else if(strcmp(acommand,"backdata") == 0)
			{
				admin_cardata();
				break;
			}
			else if(strcmp(acommand,"log") == 0)
			{
				admin_userlog();
				break;
			}
			else if(strcmp(acommand,"back") == 0)
			{
				return true;
			}
			else if(strcmp(acommand,"help") == 0)
			{
				if (user.language == 'c')
				{
					In_admin_ch();
				} 
				else
				{
					In_admin_en();
				}
			}
			else
			{
				printf("%s",*(p_language_print + 64));/*命令输入错误,请重新输入:*/
			}
		}
	}
	return false;
}



//	名称:fun_quick
//	作用:退出系统
//	参数:空
//	返回值:空
void fun_quick()
{
	DestroyList_Sq(carlist);
		
	logout_log();
	
	exit(0);
}

⌨️ 快捷键说明

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