C|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|C语言课程设计(连锁超市会员消费记录管理系统)】
推荐阅读
- PMSJ寻平面设计师之现代(Hyundai)
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 【生信技能树】R语言练习题|【生信技能树】R语言练习题 - 中级
- 爱琐搭配(喜欢复古、冷淡,像这种双环设计的气质耳环)
- 一起来学习C语言的字符串转换函数
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗
- 别墅庭院设计,不同的别墅庭院设计也给人视觉上完全不一样的!
- C语言学习|第十一届蓝桥杯省赛 大学B组 C/C++ 第一场