、客户消费积分管理系统
客户消费积分管理系统——顺序存储
顺序存储
基本要求
基本要求:客户基本信息主要包括:会员编号、手机号码、姓名、总积分、当前积余额。针对客户的消
费情况,进行积分管理,对客户消费实行不同程度的打折优惠或折现服务。
(1)对客户的增加、删除、修改、查询;
(2)根据消费积分设置优惠活动;
(3)设计实现菜单方式的交互界面,界面友好,可反复操作。
综合课设,数据结构和C语言综合运用
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- CSDN专家-黄老师 2021-07-02 23:22关注
#include<stdio.h> #include<stdlib.h> #include<string.h> 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; } }
参考一下,如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 3无用
悬赏问题
- ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
- ¥15 找一个QT页面+目标识别(行人检测)的开源项目
- ¥15 有没有整苹果智能分拣线上图像数据
- ¥20 有没有人会这个东西的
- ¥15 cfx考虑调整“enforce system memory limit”参数的设置
- ¥30 航迹分离,航迹增强,误差分析
- ¥15 Chrome Manifest扩展引用Ajax-hook库拦截请求失败
- ¥15 用Ros中的Topic通讯方式控制小乌龟的速度,走矩形;编写订阅器代码
- ¥15 LLM accuracy检测
- ¥15 pycharm添加远程解释器报错