C语言————密码本

一个练手的小项目

#include 
#include 
#include 
#include 

void Swindow();	//设置控制台长宽
void Menu();//主菜单目录
void addsite();//添加用户
void deletesite();//删除用户
void altersite();//修改信息
void findsite();//查看单一站点
void allsite();//查看所有站点信息
void savefile();//保存文件


typedef struct _SITE
{
	char SiteArr[20];
	char PassArr[20];
}SITE;
SITE ARR[20];
int g_num = 0;			//添加信息计数

int main()
{
	Swindow();	//设置控制台
	Menu();//主菜单目录
	return 0;
}

void Swindow()//设置控制台长宽
{
	system("mode con cols=36 lines=30");
	system("title PasswordBook");
	system("color F0");
}

void addsite()//添加用户
{
	printf("************************************\n");
	printf("请输入你要保存的站点名称\n");
	printf("************************************\n");
	scanf_s("%s", ARR[g_num].SiteArr, 20);
	printf("************************************\n");
	printf("请输入你要保存的站点密码\n");
	printf("************************************\n");
	scanf_s("%s", ARR[g_num].PassArr, 20);
	printf("添加成功!\n");
	g_num++;
	savefile();
	system("pause");

}
void deletesite()//删除用户
{
	char ch1[20] = { 0 };
	printf("************************************\n");
	printf("请输入需要删除的站点名称\n");
	printf("************************************\n");
	scanf_s("%s", ch1, 20);
	for (int i = 0; i < g_num; i++)
	{
		if ((strcmp(ARR[i].SiteArr, ch1)) == 0)
		{
			printf("你现在要删除的是站点%s \n", ARR[i].SiteArr);

			for (int j = i; j < g_num; j++)
			{
				strcpy_s(ARR[j].SiteArr, 20, ARR[j + 1].SiteArr);
				strcpy_s(ARR[j].PassArr, 20, ARR[j + 1].PassArr);
			}

			break;
		}
	}
	g_num--;
	savefile();
	printf("删除成功!\n");
	system("pause");
}

void altersite()//修改信息
{
	char ch2[20] = { 0 };
	printf("************************************\n");
	printf("请输入需要修改的站点名称\n");
	printf("************************************\n");
	scanf_s("%s", ch2, 20);
	for (int i = 0; i < g_num; i++)
	{
		if ((strcmp(ARR[i].SiteArr, ch2)) == 0)
		{
			printf("************************************\n");
			printf("你现在修改的是站点%s\n", ARR[i].SiteArr);
			printf("************************************\n");
			printf("请输入站点名称\n");
			printf("************************************\n");
			scanf_s("%s", ARR[i].SiteArr, 20);
			printf("************************************\n");
			printf("请输入站点密码 \n");
			printf("************************************\n");
			scanf_s("%s", ARR[i].PassArr, 20);
			printf("修改成功!\n");
			system("pause");
			break;
		}
		if ((strcmp(ARR[g_num - 1].SiteArr, ch2)) != 0)
		{
			printf("************************************\n");
			printf("未能找到站点。\n");
			system("pause");
			break;
		}
	}
	savefile();
}
void findsite()//搜索站点
{
	char ch[20] = { 0 };
	int a = 0;
	printf("************************************\n");
	printf("请输入需要查看的站点名称\n");
	scanf_s("%s", ch, 20);
	printf("************************************\n");
	for (int i = 0; i < g_num; i++)
	{
		if ((strcmp(ARR[i].SiteArr, ch)) == 0)
		{

			printf("站点:%s\n", ARR[i].SiteArr);
			printf("密码:%s\n", ARR[i].PassArr);
			printf("************************************\n");
			a++;
		}

	}
	system("pause");
	if (a == 0)
	{
		printf("************************************\n");
		printf("抱歉,未能找到站点信息。");
		system("pause");
	}

}
void allsite()//查看所有站点信息
{

	FILE *fFile2 = NULL;
	fopen_s(&fFile2, "D:\\111.txt", "r+");
	fread(&g_num, 4, 1, fFile2);
	fread(ARR, (sizeof(SITE)), g_num, fFile2);
	fclose(fFile2);
	printf("************************************\n");
	printf("当前共存储了 %d 条信息。\n", g_num);
	for (int i = 0; i < g_num; i++)
	{
		printf("************************************\n");
		printf("站点:%s\n", ARR[i].SiteArr);
		printf("密码:%s\n", ARR[i].PassArr);
	}
	printf("************************************\n");
	system("pause");
}
void savefile()//保存文件
{
	FILE *fFile1 = NULL;
	fopen_s(&fFile1, "D:\\111.txt", "w+");
	fwrite(&g_num, 4, 1, fFile1);
	fwrite(ARR, (sizeof(SITE)), g_num, fFile1);
	fclose(fFile1);
}
void Menu()//主菜单
{
	int i = 0;

	while (true)
	{
		printf("************************************\n");
		printf("*       请选择你想使用的操作:     *\n");
		printf("*           1 添加用户             *\n");
		printf("*           2 删除用户             *\n");
		printf("*           3 信息修改             *\n");
		printf("*           4 查找用户             *\n");
		printf("*           5 查看所有             *\n");
		printf("*           6 退出程序             *\n");
		printf("************************************\n");
		scanf_s("%d", &i);

		system("cls");
		switch (i)
		{
		case 1:
		{
			addsite();

			break;
		}
		case 2:
		{
			deletesite();
			break;
		}
		case 3:
		{
			altersite();
			break;
		}
		case 4:
		{
			findsite();
			break;
		}
		case 5:
		{
			allsite();
			break;
		}
		case 6:
		{
			return;

		}

		}

		system("cls");
	}
}

你可能感兴趣的:(C语言,小项目,练手)