C语言课程设计:连锁超市会员消费记录管理系统

3天时间做的,全部都是自己敲的代码

博客原文链接

#include
#include
#include
struct Data {
	//卡号、姓名、时间、消费额、消费地点、消费类型
	//增、删、改、浏览、查询、搜索
	char id[50];
	char name[50];
	char date[50];
	char consumption[50];
	char where[50];
	char category[50];
};
void view();
void del(int n);
void change(int n);
void add();
void find();
int login();
int main() {
	int y;
	for (y = 0; y < 99999; y++) {
		if (login() == 1) {
			system("cls");
			break;
		}
		system("cls");
		printf("\033[41;37m***************登录错误:账号或者密码错误,请重试************************\n\n\n\033[0m");
	}
	for (y = 0; y < 9999; y++) {
		//开始界面
		printf("        ┌------连锁超市会员消费记录管理系统-----┐\n");
		printf("         |                                    |\n");
		printf("         |             ①浏览                 |\n");
		printf("         |             ②添加                 |\n");
		printf("         |             ③更改                 |\n");
		printf("         |             ④删除                 |\n");
		printf("         |             ⑤搜索                 |\n");
		printf("         |             ⑥退出                 |\n");
		printf("         |                                    |\n");
		printf("        └-------------------------------------┘\n");
		printf("*********************************************************\n");
		printf("         ######请输入数字进行相应的操作#######\n");

		//接受输入数字进行处理
		int number;
		printf("         请输入:");
		scanf("%d", &number);
		system("cls");
		if (number == 6) {
			break;
		}
		//预处理信息
		//
		int hao;
		switch (number)
		{
		case 1://浏览
			view();
			break;

		case 2://添加
			add();
			break;

		case 3://更改
			view();
			printf("\n请选择你要更改数据的序号:");
			scanf("%d", &hao);
			change(hao);
			break;

		case 4://删除
			view();
			printf("\n请选择你要删除数据的序号:");
			scanf("%d", &hao);
			del(hao);
			break;

		case 5://搜索
			find();

			break;
		case 6:
			break;
		}
		system("pause");
		system("cls");
	}
	return 0;
}

void view() {
	char a[1000];
	FILE* file = fopen("infor.txt", "a+");
	printf("\n序号 卡号  姓名 时间 消费额 消费地点 消费类型\n");
	printf("---------------------------------------------\n");
	/*while ((ch = getc(file)) != EOF) {
	putchar(ch);
	}*/
	int i;
	for (i = 1; i < 666; i++) {
		if (fgets(a, 100, file) != NULL) {
			printf(" %d    %s", i, a);
		}
		else {
			break;
		}
	}
	fclose(file);
}
void add() {
	struct Data temp;
	FILE* file = fopen("infor.txt", "a+");
	printf("请依次输入:\n卡号 姓名 时间 消费额 消费地点 消费类型\n");
	printf("---------------------------------------------\n");
	scanf("%s %s %s %s %s %s", &temp.id, &temp.name, &temp.date, &temp.consumption, &temp.where, &temp.category);
	fprintf(file, "%s %s %s %s %s %s\n", temp.id, temp.name, temp.date, temp.consumption, temp.where, temp.category);
	printf("\033[41;37m添加成功\n\033[0m");

	fclose(file);
}

void change(int n) {
	char a[50];
	int i;
	FILE* file = fopen("infor.txt", "a+");
	for (i = 1; i < 666; i++) {
		if (fgets(a, 100, file) != NULL) {
			if (i == n) {
				break;
			}
		}
	}
	fclose(file);
	//对字符串进行处理,切割字符串
	char str[99][99];
	char* temp = strtok(a, " ");
	while (temp) {
		//printf("%s\n", temp);
		strcpy(str[i], temp);//后面的是要拷贝的内容
		i++;
		temp = strtok(NULL, " ");
	}
	system("cls");
	printf("您选择的项是:\n");
	printf("序号 卡号 姓名 时间 消费额 消费地点 消费类型\n");
	printf("--------------------------------------------\n");
	for (i = 0; i < 6; i++) {
		printf("%s ", str[i]);
	}
	printf("\n请问您要更改什么值?\n");
	printf("--------------------------------------------------------\n");
	printf("1.卡号  2.姓名  3.时间  4.消费额  5.消费地点  6.消费类型\n--------------------------------------------------------\n请选择序号:");

	int num;
	char new_str[100];
	scanf("%d", &num);
	printf("请输入新的值:");
	scanf("%s", &new_str);
	switch (num)
	{
	case 1:
		strcpy(str[0], new_str);
		break;
	case 2:
		strcpy(str[1], new_str);
		break;
	case 3:
		strcpy(str[2], new_str);
		break;
	case 4:
		strcpy(str[3], new_str);
		break;
	case 5:
		strcpy(str[4], new_str);
		break;
	case 6:
		strcpy(str[5], new_str);
		break;
	}
	del(n);
	FILE* new_file = fopen("infor.txt", "a+");
	for (i = 0; i < 6; i++) {
		fprintf(new_file, "%s", str[i]);
		if (i != 6) {
			fprintf(new_file, " ");
		}
	}
	fclose(new_file);

}

void del(int n) {
	char a[50][50];
	int x = 0, i;
	FILE* file = fopen("infor.txt", "r+");
	for (i = 1; i < 666; i++) {
		if (fgets(a[x], 100, file) != NULL) {
			if (i != n) {
				x++;
			}
		}
		else {
			break;
		}
	}
	fclose(file);
	FILE* file_temp = fopen("infor.txt", "w");
	fprintf(file_temp, "");
	fclose(file_temp);
	FILE* temp = fopen("infor.txt", "a+");
	for (i = 0; i < x; i++) {
		fprintf(temp, "%s", a[i]);
	}
	printf("\033[41;37m************操作成功************\n\n\033[0m");
	fclose(temp);
}

void find() {
	printf("请输入关键词:");
	char ss[100];
	char ch;
	int i = 0;
	char* ret;
	scanf("%s", &ss);
	char a[50];
	int s = 0;
	FILE* file = fopen("infor.txt", "r+");
	printf("\n搜索结果: \n");
	printf("\n卡号 姓名 时间 消费额 消费地点 消费类型\n");
	printf("--------------------------------------------\n");
	for (i = 1; i < 666; i++) {
		if (fgets(a, 100, file) != NULL) {
			ret = strstr(a, ss);
			if (ret != NULL) {
				printf("%s", a);
				printf("--------------------------------------------\n");
				s = 1;
			}
			else {
				continue;
			}
		}
		else {
			break;
		}
	}
	if (s == 0) {
		printf("\033[41;37m没有找到相关信息\n\033[0m");
	}
	fclose(file);
}
int login() {
	printf("        ┌------连锁超市会员消费记录管理系统---┐\n");
	printf("         |                                    |\n");
	printf("         |             请先登录               |\n");
	printf("         |                                    |\n");
	printf("         |                                    |\n");
	printf("         |        请输入您的账号和密码        |\n");
	printf("         |                                    |\n");
	printf("         |                                    |\n");
	printf("         |                                    |\n");
	printf("        └-------------------------------------┘\n");
	printf("*********************************************************\n");


	char sys_name[20] = { "admin" };
	char sys_password[20] = { "123456" };
	char name[20];
	char password[20];
	printf("\n         \n");
	printf("                   账号:");
	scanf("%s", name);
	printf("                   密码:");
	scanf("%s", password);
	if (strcmp(sys_name, name) == 0 && strcmp(sys_password, password) == 0) {
		return 1;
	}
	else {
		return 0;
	}
}

 

你可能感兴趣的:(C,课程设计)