大一上学期期末项目设计;

思路参考:【千锋教育新版C语言程序设计视频教程(适合自学,c语言初学者入门教程)】 https://www.bilibili.com/video/BV1id4y1375a/?p=119&share_source=copy_web&vd_source=a6401c9820869ff8ca006c68478cde72

代码段:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
#include<conio.h>
//创建数据域
struct Date{int year;int month;int day;
};
struct Goods{int goods1cost;int goods2cost;int goods3cost;int totalcost;
};struct Other{char likes[10];int integral;//积分为消费额的两倍; char coupon[20];
};struct number {char rank;//等级分 A/B/C/D/E 500积分为D,1000积分为C,2000积分积分为B,4000积分为A; char name[10];char phonenumber[20]; char gender[5];//性别分 男 / 女 struct Date link;struct Goods cost;struct Other thing2; };//创建节点
struct Node{struct number data;struct Node *pnext;
};//头部指针全局化
struct Node *list=NULL;//功能选项总开关;
int key=0;//函数声明区域
struct Node* CreatHead();//初始化头部指针
void gotoxy(int x,int y);//光标定位
void changeColors();//改变控制台颜色函数
struct Node* createNode(struct number data);//创建新节点函数
void insertInfo(struct Node* headNode,struct number data);//插入新数据节点函数
void saveInfo(char *filename,struct Node *headNode);//同步文件数据函数
void readInfo(char *filename,struct Node*headNode);//读取文件函数
void showlist(struct Node*headNode);//总体打印函数
void showlistplus(struct Node*headNode);//筛选函数
void showlistplus2(struct Node*headNode);//筛选函数
void analysis(struct number *temp);//分析函数
void analysisplus(struct Node *temp);//分析函数
void menu();//总菜单
struct Node* SearchByName(struct Node* headNode,char *name);//根据姓名查找函数
struct Node* SearchByphonenumber(struct Node* headNode,char *number);//根据手机号码查找函数
void deleteByname(struct Node* headNode, char *name);//删除数据函数
void menuone();//修改会员信息菜单
void keyEvent();//选择功能
//函数声明区域结束 //主函数
int main()
{changeColors();//初始化头部指针 list=CreatHead();//读取原来文件的数据 readInfo("numberInfo.txt",list);while(1){menu();keyEvent();if(key==0)break;system("pause");system("cls"); //清屏}system("cls"); //清屏return 0;
}//用于初始化头部指针
struct Node* CreatHead(){struct Node *pHeadNode = (struct Node*)malloc(sizeof(struct Node));if(pHeadNode == NULL)return NULL;pHeadNode->pnext=NULL;return pHeadNode;
}
//用于输出 " Nice to meet you "
void gotoxy(int x,int y)
{// 光标定位函数COORD p;//定义结构体变量pHANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);// 获取当前函数句柄p.X=x;p. Y=y;//将光标的目标移动位置传递给结构体SetConsoleCursorPosition(handle,p);//移动光标
}
void changeColors(){system("color F4");//改变屏幕的背景色和前景色gotoxy(8,8);//光标定位到指定位置printf("Nice to meet you!\n");getch( );
}
//创建新的节点
struct Node* createNode(struct number data){struct Node *newNode=(struct Node*)malloc(sizeof(struct Node));if(newNode==NULL)return NULL;newNode->data=data;newNode->pnext=NULL;return newNode;
}
void insertInfo(struct Node* headNode,struct number data){//根据传来的temp,创建一个新的Node 的结构体; newNodestruct Node *newNode= createNode(data);newNode->pnext = headNode -> pnext;headNode->pnext=newNode;
}
//同步文件操作
void saveInfo(char *filename,struct Node *headNode){//打开文件FILE *fp=fopen(filename, "w");//写入文件 fprintfstruct Node *move = headNode->pnext;//fprintf(fp,"等级 姓名 性别 手机号 生日 商品1消费额 商品2消费额 商品3消费额 总消费额 积分 偏好 优惠券\n");while(move!=NULL){fprintf(fp,"%c %s %s %s %d/%d/%d %d %d %d %d %d %s %s\n",move->data.rank,move->data.name,move->data.gender,move->data.phonenumber,move->data.link.year,move->data.link.month,move->data.link.day,move->data.cost.goods1cost,move->data.cost.goods2cost,move->data.cost.goods3cost,move->data.cost.totalcost,move->data.thing2.integral,move->data.thing2.likes,move->data.thing2.coupon);move=move->pnext;}//关闭文件 fclose(fp);
}
//读取文件操作
void readInfo(char *filename,struct Node*headNode){//fscanf 返回EOF FILE *fp = fopen(filename,"r");if(fp==NULL){fp = fopen(filename,"w");fclose(fp);return;}struct number temp;//"等级 姓名 性别 手机号码 生日 商品1消费额 商品2消费额 商品3消费额 总消费额 积分 偏好 优惠券\n"while(fscanf(fp,"%c %s %s %s %d/%d/%d %d %d %d %d %d %s %s\n",&temp.rank,temp.name,temp.gender,&temp.phonenumber,&temp.link.year,&temp.link.month,&temp.link.day,&temp.cost.goods1cost,&temp.cost.goods2cost,&temp.cost.goods3cost,&temp.cost.totalcost,&temp.thing2.integral,temp.thing2.likes,temp.thing2.coupon)!=EOF){insertInfo(list,temp);    }fclose(fp);
}
//总览全部信息
void showlist(struct Node*headNode){struct Node *move = headNode->pnext;//printf("等级 姓名 性别 手机号码 生日 商品1消费额 商品2消费额 商品3消费额 总消费额 积分 偏好 优惠券\n");while(move!=NULL){printf("%c\t%s\t%s\t%s\t%d/%d/%d\t%d\t%d\t%d\t%d\t%d\t%s\t%s\n",move->data.rank,move->data.name,move->data.gender,move->data.phonenumber,move->data.link.year,move->data.link.month,move->data.link.day,move->data.cost.goods1cost,move->data.cost.goods2cost,move->data.cost.goods3cost,move->data.cost.totalcost,move->data.thing2.integral,move->data.thing2.likes,move->data.thing2.coupon);move=move->pnext;}
}
//筛选优质会员信息
void showlistplus(struct Node*headNode){struct Node *move= headNode->pnext;while(move!=NULL){if(move->data.cost.totalcost>=4000){printf("%c\t%s\t%d\t%d\t优质会员\n",move->data.rank,move->data.name,move->data.cost.totalcost,move->data.thing2.integral);}move=move->pnext;}
}
//筛选信息
void showlistplus2(struct Node*headNode){struct Node *move= headNode->pnext;while(move!=NULL){if(move->data.cost.totalcost>=4000){printf("%c\t%s\t%d\t%d\t%s\t优质会员\n",move->data.rank,move->data.name,move->data.cost.totalcost,move->data.thing2.integral,move->data.thing2.likes);}move=move->pnext;}
}
//进行数据分析
void analysis(struct number *temp){temp->cost.totalcost=(temp->cost.goods1cost)+(temp->cost.goods2cost)+(temp->cost.goods3cost);temp->thing2.integral=(temp->cost.totalcost)*2;if(temp->thing2.integral>=500&&temp->thing2.integral<1000){temp->rank='D';strcpy(temp->thing2.coupon,"30元代金券3张"); }else if(temp->thing2.integral>=1000&&temp->thing2.integral<2000){temp->rank='C';strcpy(temp->thing2.coupon,"40元代金券4张");}else if(temp->thing2.integral>=2000&&temp->thing2.integral<4000){temp->rank='B';strcpy(temp->thing2.coupon,"80元代金券5张");}else if(temp->thing2.integral>=4000){temp->rank='A';strcpy(temp->thing2.coupon,"200元代金券6张");}else{temp->rank='E';strcpy(temp->thing2.coupon,"10元代金券5张"); }if(temp->cost.goods1cost>temp->cost.goods2cost){if(temp->cost.goods3cost>temp->cost.goods1cost){strcpy(temp->thing2.likes,"商品3"); }else{strcpy(temp->thing2.likes,"商品1"); }}else{if(temp->cost.goods3cost>temp->cost.goods2cost){strcpy(temp->thing2.likes,"商品3"); }else{strcpy(temp->thing2.likes,"商品2"); }}}
//进行修改数据后的数据分析
void analysisplus(struct Node *temp){temp->data.cost.totalcost=(temp->data.cost.goods1cost)+(temp->data.cost.goods2cost)+(temp->data.cost.goods3cost);temp->data.thing2.integral=(temp->data.cost.totalcost)*2;if(temp->data.thing2.integral>=500&&temp->data.thing2.integral<1000){temp->data.rank='D';strcpy(temp->data.thing2.coupon,"30元代金券3张");}else if(temp->data.thing2.integral>=1000&&temp->data.thing2.integral<2000){temp->data.rank='C';strcpy(temp->data.thing2.coupon,"40元代金券4张");}else if(temp->data.thing2.integral>=2000&&temp->data.thing2.integral<4000){temp->data.rank='B';strcpy(temp->data.thing2.coupon,"80元代金券5张");}else if(temp->data.thing2.integral>=4000){temp->data.rank='A';strcpy(temp->data.thing2.coupon,"200元代金券6张");}else{temp->data.rank='E';strcpy(temp->data.thing2.coupon,"10元代金券5张"); }if(temp->data.cost.goods1cost>temp->data.cost.goods2cost){if(temp->data.cost.goods3cost>temp->data.cost.goods1cost){strcpy(temp->data.thing2.likes,"商品3"); }else{strcpy(temp->data.thing2.likes,"商品1"); }}else{if(temp->data.cost.goods3cost>temp->data.cost.goods2cost){strcpy(temp->data.thing2.likes,"商品3"); }else{strcpy(temp->data.thing2.likes,"商品2"); }}}
//打印菜单
void menu(){printf("|*============================================*|\n");printf("|*            欢迎使用会员管理系统            *|\n");printf("|*============================================*|\n");printf("|*    1.录入会员信息                          *|\n");printf("|*    2.查找会员信息                          *|\n");printf("|*    3.修改会员信息                          *|\n");printf("|*    4.删除会员                              *|\n");printf("|*    5.会员消费奖励                          *|\n");printf("|*    6.优质会员筛选                          *|\n");printf("|*    7.优质会员商品推荐                      *|\n");printf("|*    8.速览会员信息                          *|\n");printf("|*    0.退出系统                              *|\n");printf("|*============================================*|\n");printf("     请输入功能选项0-8\n");}
//姓名查找函数
struct Node* SearchByName(struct Node* headNode,char *name){struct Node *move = headNode->pnext;while(move!=NULL){if(strcmp(move->data.name,name)==0)break;move=move->pnext;}return move;
}
//手机号码查找函数
struct Node* SearchByphonenumber(struct Node* headNode,char *number){struct Node *move = headNode->pnext;while(move!=NULL){if(strcmp(move->data.phonenumber,number)==0)break;move=move->pnext;}return move;
}
//删除函数
void deleteByname(struct Node* headNode, char *name){struct Node *move = headNode->pnext;struct Node *pre = headNode;while(move!=NULL){if(strcmp(move->data.name,name)==0)break;pre = move;move=move->pnext;}if(move==NULL){return ;}else{printf("----------删除成功!------------\n"); pre->pnext=move->pnext;free(move);move=NULL;}}
//修改信息功能菜单
void menuone(){printf("请问要修改的会员信息:\n");printf("1.姓名\n");printf("2.手机号码\n");printf("3.商品1消费额\n");printf("4.商品2消费额\n");printf("5.商品3消费额\n");
}//总体的key事件,用于功能选择 void keyEvent(){struct number temp;struct Node* result;int key2=0;printf("请输入选项:"); scanf("%d", &key);switch (key) {case 1: printf("您选择的功能是 [录入会员信息] \n");printf("录入的会员信息 姓名,性别,手机号码,生日(Year/Month/Day),商品1消费额,商品2消费额,商品3花费消费额\n");printf("请输入姓名:");scanf("%s",temp.name);printf("请输入性别:");scanf("%s",temp.gender);getchar();printf("请输入手机号码:");scanf("%s",temp.phonenumber);printf("请输入生日:");scanf("%d/%d/%d",&temp.link.year,&temp.link.month,&temp.link.day);printf("请输入商品1消费额度:");scanf("%d",&temp.cost.goods1cost); printf("请输入商品2消费额度:");scanf("%d",&temp.cost.goods2cost); printf("请输入商品3消费额度:"); scanf("%d",&temp.cost.goods3cost); //分析数据 analysis(&temp);//同步到链表中insertInfo(list,temp);//同步文件saveInfo("numberInfo.txt",list);break;    case 2: printf("您选择的功能是 [查找会员信息] \n");printf("请选择以那种方式查找:\n");printf("1.姓名查找\n");printf("2.手机号码查找\n");printf("选择方式: ");scanf("%d",&key2);switch(key2){case 1:printf("查询的会员姓名:");scanf("%s",temp.name);result=SearchByName(list,temp.name);break;case 2:printf("查询的会员手机号码:");scanf("%s",temp.phonenumber);result=SearchByphonenumber(list,temp.phonenumber);break;default:break;}if(result==NULL){printf("----------未找到此会员----------\n");} else{printf("等级\t姓名\t性别\t手机号码\t生日\t\t商品1消费额\t商品2消费额\t商品3消费额\t总消费额\t积分\t偏好\t优惠券\n");printf("%c\t%s\t%s\t%s\t%d/%d/%d\t%d\t%d\t%d\t%d\t%d\t%s\t%s\n",result->data.rank,result->data.name,result->data.gender,result->data.phonenumber,result->data.link.year,result->data.link.month,result->data.link.day,result->data.cost.goods1cost,result->data.cost.goods2cost,result->data.cost.goods3cost,result->data.cost.totalcost,result->data.thing2.integral,result->data.thing2.likes,result->data.thing2.coupon);}break;                case 3: printf("您选择的功能是 [修改会员信息] \n");printf("请选择以那种方式查找:\n");printf("1.姓名查找\n");printf("2.手机号码查找\n");printf("选择方式: ");scanf("%d",&key2);switch(key2){case 1:printf("查询的会员姓名:");scanf("%s",temp.name);result=SearchByName(list,temp.name);break;case 2:printf("查询的会员手机号码:");scanf("%s",temp.phonenumber);result=SearchByphonenumber(list,temp.phonenumber);break;default:break;}if(result==NULL){printf("----------未找到此会员----------\n");} else{printf("等级\t姓名\t性别\t手机号码\t生日\t\t商品1消费额\t商品2消费额\t商品3消费额\t总消费额\t积分\t偏好\t优惠券\n");printf("%c\t%s\t%s\t%s\t%d/%d/%d\t%d\t%d\t%d\t%d\t%d\t%s\t%s\n",result->data.rank,result->data.name,result->data.gender,result->data.phonenumber,result->data.link.year,result->data.link.month,result->data.link.day,result->data.cost.goods1cost,result->data.cost.goods2cost,result->data.cost.goods3cost,result->data.cost.totalcost,result->data.thing2.integral,result->data.thing2.likes,result->data.thing2.coupon);menuone();printf("请选择: ");int key3=0;scanf("%d",&key3);int cost;switch(key3){case 1:printf("新名字:"); char newname[10];scanf("%s",newname);strcpy(result->data.name,newname); saveInfo("numberInfo.txt",list);break;case 2:printf("新手机号码:");char newnumber[20];scanf("%s",newnumber);strcpy(result->data.phonenumber,newnumber); saveInfo("numberInfo.txt",list);break;case 3:printf("商品1新消费额:");scanf("%d",&cost);result->data.cost.goods1cost=cost;analysisplus(result);saveInfo("numberInfo.txt",list);break;case 4:printf("商品2新消费额:");scanf("%d",&cost);result->data.cost.goods2cost=cost;analysisplus(result); saveInfo("numberInfo.txt",list);break;case 5:printf("商品3新消费额:");scanf("%d",&cost);result->data.cost.goods3cost=cost;analysisplus(result);saveInfo("numberInfo.txt",list);break;default:break;}}break;case 4: printf("您选择的功能是 [删除会员信息] \n");printf("等级\t姓名\t性别\t手机号码\t生日\t\t商品1消费额\t商品2消费额\t商品3消费额\t总消费额\t积分\t偏好\t优惠券\n");showlist(list); printf("删除的会员的姓名:");scanf("%s",temp.name);deleteByname(list,temp.name); saveInfo("numberInfo.txt",list);break;    case 5: printf("您选择的功能是 [会员消费奖励查询] \n");printf("请选择以那种方式查找:\n");printf("1.姓名查找\n");printf("2.手机号码查找\n");printf("选择方式: ");scanf("%d",&key2);switch(key2){case 1:printf("查询的会员姓名:");scanf("%s",temp.name);result=SearchByName(list,temp.name);break;case 2:printf("查询的会员手机号码:");scanf("%s",temp.phonenumber);result=SearchByphonenumber(list,temp.phonenumber);break;default:break;}if(result==NULL){printf("----------未找到此会员----------\n");} else{printf("等级\t姓名\t性别\t手机号码\t生日\t总消费额\t积分\t偏好\t优惠券\n");printf("%c\t%s\t%s\t%s\t%d/%d/%d\t%d\t%d\t%s\t%s\n",result->data.rank,result->data.name,result->data.gender,result->data.phonenumber,result->data.link.year,result->data.link.month,result->data.link.day,result->data.cost.totalcost,result->data.thing2.integral,result->data.thing2.likes,result->data.thing2.coupon);}break;  case 6: printf("您选择的功能是 [优质会员筛选] \n");printf("等级\t姓名\t总消费额\t积分\n");showlistplus(list);break;case 7: printf("您选择的功能是 [优质会员商品推荐] \n");printf("等级\t姓名\t总消费额\t积分\t偏好\n");showlistplus2(list);break;           case 8:printf("您选择的功能是 [速览会员信息] \n"); printf("等级\t姓名\t性别\t手机号码\t生日\t\t商品1消费额\t商品2消费额\t商品3消费额\t总消费额\t积分\t偏好\t优惠券\n");showlist(list); break;             case 0: break;   default:printf("选项不存在,请重新选择");break;}}

C语言 会员管理系统相关推荐

  1. 会员管理系统源码 php语言开发

    会员管理系统源码 php语言开发 可用于美容店,理发店,服装店,美甲店,奢侈品店等等 功能介绍: 1.常用功能 会员登记,会员充值,会员充次,商品消费(会员),商品消费(散客),快速消费(会员),快速 ...

  2. 会员管理系统源码 php语言开发 可用于美容店,理发店,服装店

    会员管理系统源码 php语言开发 可用于美容店,理发店,服装店,美甲店,奢侈品店等等 功能介绍: 1.常用功能 会员登记,会员充值,会员充次,商品消费(会员),商品消费(散客),快速消费(会员),快速 ...

  3. 健身会所会员卡管理系统c语言,健身会所会员管理系统解决方案

    原标题:健身会所会员管理系统解决方案 本案例适合于:健身馆会员管理系统 健身房会员管理系统 健身会员管理系统 1.个性化会员信息登记 ,可根性商家自身的要求和特点,记录会员信息.除了基本的姓名.电话. ...

  4. C语言:会员管理系统

    会员信息包括:会员号(6位数,唯一),姓名,身份证号,联系电话,状态(1表示正常,0表示挂失). 会员管理包括:会员的添加.删除.修改(会员号不能修改).挂失.查询.接触挂失. 先给大家看看效果: 上 ...

  5. 一个简易的会员管理系统(C语言)

    由于大一最后的课设,就写了会员管理系统,有需要的小伙伴可以看一下. 系统功能如下: 1.登录窗口 2.管理员登录 3.会员登录 4.其他就是增删改查了 源代码: #include <stdio. ...

  6. c语言药房系统书写指导书,C语言药房管理系统[文书借鉴]

    <C语言药房管理系统[文书借鉴]>由会员分享,可在线阅读,更多相关<C语言药房管理系统[文书借鉴](16页珍藏版)>请在人人文库网上搜索. 1.include#include# ...

  7. C语言课程学籍管理课程书面报告,C语言学籍管理系统课程设计报告书

    <C语言学籍管理系统课程设计报告书>由会员分享,可在线阅读,更多相关<C语言学籍管理系统课程设计报告书(30页珍藏版)>请在人人文库网上搜索. 1.C语言程序设计课程设计报告学 ...

  8. MySQL超市会员管理系统_PHP+MYSQL药店会员管理系统的设计与实现

    药房会员管理系统是信息时代的产物,随着时代的发展,各大药店也与时俱进使用了各类现代化的系统来进行各类药品和会员信息的管理,甚至有些药店会给会员使用积分系统,根据用户的消费进行积分,然后用积分兑换一些差 ...

  9. 开发一个会员管理系统

    背景 由于现在公司内客户量剧增, 简单的靠电话及笔记本记录,来维护客户有些困难,但又不想去花钱购买那些专业版的会员管理系统,只能自己动手撸一个相对简易的会员系统来使用了. 开发语言及使用技术 后端:j ...

最新文章

  1. iptables使用ipt_connlimit限制连接数
  2. 微信 小程序组件 搜索分类 带缓存(终极 上线版)
  3. Tomcat配置Web虚拟目录
  4. SQL语言之DQL语言学习(十一)分页查询
  5. [导入]给家人补补钙!双莲炖腔骨
  6. Linux PCI网卡驱动分析
  7. jQuery学习笔记:事件
  8. 不动产中心考试计算机测试题,2005年全国计算机二级考试VFP笔试模拟题
  9. mail、sendEmail发送邮件命令
  10. 前端盒模型的概念和文本溢出解决办法
  11. mysql存储登录密码_用户身份验证:存储用户ID和密码在一个MySQL数据库
  12. 从0开始学Python,0基础小白
  13. DRF实战1 - 环境搭建
  14. Js坐标转换器-百度地图坐标转腾讯地图坐标
  15. 英语-- such that
  16. 制作马卡龙渐变海报教程
  17. 豆瓣读书isbn 查询
  18. 孤独星球android app,《孤独星球》终于出了全套免费的旅行指南APP!
  19. 树莓派利用OpenCV的图像跟踪、人脸识别等
  20. AI教程之:渐变效果

热门文章

  1. 服务器安全神器,Linux 上安装 Fail2Ban 保护 SSH
  2. 反问疑问_反问疑问句的用法
  3. 反问疑问句的一些用法
  4. Vue 之 echarts 图表数据可视化的基础使用(简单绘制各种图表、地图)
  5. kal8linux密码,KAL1 LINUX 官方文档之arm上的ka1i---树莓派全盘加密
  6. typec耳机知识介绍-数字耳机,模拟耳机
  7. win10浏览器闪退_Win10 Build 14942 Edge 浏览器闪退怎么解决?
  8. 『牛角书』基于JS实现的鸿蒙游戏——二十四点纸牌
  9. 请问这个验证码是怎么做的?
  10. php-fpm的几种重启方式