会员信息包括:会员号(6位数,唯一),姓名,身份证号,联系电话,状态(1表示正常,0表示挂失)。

会员管理包括:会员的添加、删除、修改(会员号不能修改)、挂失、查询、接触挂失。

先给大家看看效果:

上代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct VIP             //定义结构体,存储会员账号、姓名、身份证号、联系方式、状态、余额
{long no;char name[20];    //姓名、身份证号含有字符,使用char定义 char IDcard[19];char phone[12];   //联系电话有11位,超出了int的范围,使用字符串定义 int zhuangtai;      //如果状态为1,则正常,若为0,则状态为挂失 int yue;
};
struct VIP s[50];     //定义结构体数组
int n=0;              //n表示存入的会员数量 void init();          //含义见main主函数
void print();
struct VIP gete();
void add1();
void findbyno();
void findbyname();
void findbyIDcard();
void findbyphone();
void mod();
void del();
void sort();
void transaction();void init()   //初始化(唯一的6位会员账号)
{int f=1; //1唯一   0不唯一 printf("请输入会员的账号,姓名,身份证号码,联系电话,余额,状态\n");printf("当输入会员号为0时停止输入\n");while(n<=50){printf("请输入会员的账号:\n");scanf("%ld",&s[n].no);while(s[n].no!=0){if(s[n].no/1000000==0 && s[n].no/100000!=0){int i;for(i=0;i<n&&f==1;i++){if(s[n].no==s[i].no){f=0;printf("请输入唯一的6位会员账号\n"); }}   if(f==1) break;}else{printf("请输入6位会员账号\n"); printf("请重新输入会员的账号:\n");scanf("%d",&s[n].no);}}if(s[n].no==0)   break;        //如果输入的账号为0,结束输入printf("请输入会员的姓名:\n");scanf("%s",s[n].name);printf("请输入会员的身份证号,联系电话,余额,状态:\n");scanf("%s%s%d%d",s[n].IDcard,s[n].phone,&s[n].yue,&s[n].zhuangtai);n++;}
}void print()  //输出
{//|和=组合起来,使输出结果时有表格样式//%t、空格使输出时数据对其 int j;printf("会员信息记录如下:\n");printf("     |===================================================================================|\n");printf("     |账号\t姓名\t        身份证号      \t  联系电话   \t余额\t  状态           |\n");printf("     |-----------------------------------------------------------------------------------|\n");for(j=0;j<n;j++)     {printf("     |%ld\t%s\t  %s\t%s\t%d\t",s[j].no,s[j].name,s[j].IDcard,s[j].phone,s[j].yue);if(s[j].zhuangtai==1)printf("  正常           |\n");elseprintf("  挂失           |\n"); if(j<(n-1))printf("     |-----------------------------------------------------------------------------------|\n");}printf("     |===================================================================================|\n");
}struct VIP gete()       //输入
{struct VIP e;printf("请输入账号:\n");scanf("%d",&e.no);int f=1;while(e.no){    if(e.no/1000000==0 && e.no/100000!=0){int i;for(i=0;i<n&&f==1;i++){if(e.no==s[i].no){f=0;printf("请输入唯一的6位会员账号\n"); scanf("%d",&e.no);}        }   if(f==1)   break;}else{printf("请输入6位会员账号\n");   printf("请重新输入会员的账号:\n");scanf("%d",&e.no);}}printf("请输入姓名:\n");scanf("%s",&e.name);printf("请输入会员的身份证号,联系电话,余额,状态:\n");scanf("%s%s%d%d",&e.IDcard,&e.phone,&e.yue,&e.zhuangtai);return e;}void add1()   //添加新的会员信息
{struct VIP e = gete();int i; printf("请输入要插入的位置(1-%d):\n",n);scanf("%d",&i); while(i<1||i>n+1) {printf("您输入的位置有误!\n");printf("请重新输入要插入的位置(1-%d):\n",n);scanf("%d",&i);}for(int j=n-1;j>=i-1;j--) {s[j+1]=s[j];}s[i-1]=e;n++;
}void findbyno()     //根据会员账号查找会员信息
{int num,i;int found=1;char choice;while(1){printf("请输入要查找的会员的账号:\n");scanf("%d",&num);getchar();for(i=0;i<n&&found==1;i++){if(s[i].no==num){found=0;printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue);if(s[i].zhuangtai==1)printf("正常\n");elseprintf("挂失!\n"); }}if(found==1){printf("未找到!\n");}found=1;   printf("是否继续查询(Y/N)\n");choice=getchar();if(choice=='N'|| choice=='n')break;}
}void findbyname()    //根据会员姓名查找会员信息
{char name[20];char choice;int found=1;int i;while(1){printf("输入要查询会员的姓名:\n");scanf("%s",name);getchar();for(i=0;i<n&&found==1;i++){if(strcmp(s[i].name,name)==0){found=0;printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue);if(s[i].zhuangtai==1)printf("正常\n");elseprintf("挂失!\n"); }}if(found==1){printf("未找到!\n");}found=1;  printf("是否继续查询(Y/N)\n");choice=getchar();if(choice=='N'|| choice=='n')break;}
}void findbyIDcard()   //根据身份证号查找会员信息
{char num[19];int i;int found=1;char choice;while(1){printf("请输入要查找的会员的身份证号:\n");scanf("%s",num);getchar();for(i=0;i<n&&found==1;i++){if(strcmp(s[i].IDcard,num)==0){found=0;printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue);if(s[i].zhuangtai==1)printf("正常\n");elseprintf("挂失!\n"); }}if(found==1){printf("未找到!\n");}found=1;   printf("是否继续查询(Y/N)\n");choice=getchar();if(choice=='N'|| choice=='n')break;}
}void findbyphone()    //根据联系电话查找会员信息
{char num[12];int i;int found=1;char choice;while(1){printf("请输入要查找的会员的联系电话:\n");scanf("%s",num);getchar();for(i=0;i<n&&found==1;i++){if(strcmp(s[i].phone,num)==0){found=0;printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue);if(s[i].zhuangtai==1)printf("正常\n");elseprintf("挂失!\n"); }}if(found==1){printf("未找到!\n");}found=1;    printf("是否继续查询(Y/N)\n");choice=getchar();if(choice=='N'|| choice=='n')break;}
}void mod()     //修改已有的会员信息
{int num,i;int found=1;char choice;int opt;while(1){printf("请输入要修改的会员的账号(会员号无法修改):\n");scanf("%d",&num);getchar();for (i=0;i<n&&found==1;i++){if(s[i].no==num){found=0;printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue);if(s[i].zhuangtai==1)printf("正常\n");elseprintf("挂失\n"); printf("--请选择--1.修改身份证号 2.修改联系电话 3.修改状态\n");scanf("%d",&opt);getchar();switch(opt){case 1:printf("请输入身份证号新值:\n");  scanf("%s",s[i].IDcard);   getchar(); break;case 2:printf("请输入联系电话新值:\n");  scanf("%s",s[i].phone);     getchar(); break;case 3:printf("请输入状态新值:\n");  scanf("%d",&s[i].zhuangtai);   getchar(); break;              }}}if(found==1){printf("未找到!\n");}  found=1;printf("是否继续修改(Y or N)\n");choice=getchar();getchar();if(choice=='N'|| choice=='n')break;}
}void del()     //删除已有会员信息
{int num,i,j;int found=1;char choice;while(1){printf("请输入要删除的会员的账号:\n");scanf("%d",&num);getchar();for(i=0;i<n&&found==1;i++)   //5  1-5      {if(s[i].no==num){found=0;printf("你要删除的会员信息为:\n");printf("会员账号     姓名      身份证号      联系电话       余额        状态\n"); printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue);if(s[i].zhuangtai==1)printf("正常\n");elseprintf("挂失!\n"); for(j=i;j<n-1;j++){s[j]=s[j+1];}n--;              }}if(found==1){printf("未找到!\n");}   found=1;printf("是否继续(Y/N)\n");choice=getchar();getchar();if(choice=='N'|| choice=='n')break;}
}
void transaction()     //消费或充值
{int num,i,a,b;int found=1;char choice;while(1){printf("请输入会员的账号:\n");scanf("%d",&num);getchar();for(i=0;i<n&&found==1;i++)if(s[i].no==num){found=0;printf("%ld\t%s\t%d\t%d\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue);if(s[i].zhuangtai==1)printf("正常\n");elseprintf("挂失!\n"); printf("请选择类型:1.消费  2.充值\n");scanf("%d",&a);getchar();printf("请输入金额:\n");scanf("%d",&b); getchar();if(a==1){s[i].yue=s[i].yue-b;printf("%ld\t%s\t%s\t%s\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue);if(s[i].zhuangtai==1)printf("正常\n");elseprintf("挂失!\n");}else{s[i].yue=s[i].yue+b;printf("%ld\t%s\t%s\t%s\t%d\t",s[i].no,s[i].name,s[i].IDcard,s[i].phone,s[i].yue); if(s[i].zhuangtai==1)printf("正常\n");elseprintf("挂失!\n");}       }if(found==1){printf("未找到!\n");}found=1;   printf("是否继续(Y/N)\n");choice=getchar();getchar(); if(choice=='N'|| choice=='n')break;}
}void sort()     //根据会员账号从小到大排序
{int i,j;struct VIP temp;for(i=0;i<n;i++) {for (j=i+1;j<n;j++) {if (s[i].no>s[j].no) { temp=s[i]; s[i]=s[j]; s[j]=temp; }}}printf("\n排序后的会员信息:\n");
}int main()
{int opt;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("     |*    9.根据会员账号排序并显示                *|\n");printf("     |*    10.会员消费或充值                       *|\n"); printf("     |*    0.退出会员信息管理系统                  *|\n");printf("     |*============================================*|\n");while(1){printf("请输入要完成的功能:0-10:");scanf("%d",&opt);getchar();    //吸收回车 switch(opt){case 1:init();print();break;          //初始化 case 2:add1();print();break;          //添加 case 3:mod();print();break;           //修改 case 4:findbyno();print();break;      //根据账号查询 case 5:findbyname();print();break;    //根据姓名查询 case 6:findbyIDcard();print();break;  //根据身份证号查询 case 7:findbyphone();print();break;   //根据联系电话查询 case 8:del();print();break;           //删除 case 9:sort();print();break;          //排序 case 10:transaction();print();break;  //消费/充值 case 0:system("cls");exit(0);break;   //退出 default:printf("请输入0-10中的数!\n");break;}}
}

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

  1. C语言 会员管理系统

    大一上学期期末项目设计: 思路参考:[千锋教育新版C语言程序设计视频教程(适合自学,c语言初学者入门教程)] https://www.bilibili.com/video/BV1id4y1375a/? ...

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

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

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

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

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

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

  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. 大盘点 | 2020年21篇医学影像算法最佳综述
  2. 迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)...
  3. 关于String字符串的常用操作。(持续更新中)
  4. 事务之五:Spring @Transactional工作原理
  5. Docker Compose基本介绍
  6. track文件 什么是git_git常用命令
  7. 竞赛图 计算机网络 应用题,我校学子获2020年“中国高校计算机大赛-网络技术挑战赛”全国总决赛一等奖(图)...
  8. Java异常处理001:Maven clean package时Failed to clean project: Failed to delete
  9. 创纪录!浪潮云海完成OpenStack Rocky版本全球最大规模单一集群测试!
  10. 命中注定码农路[一. 重新开始]
  11. 【Android开发—智能家居系列】(二):用手机对WIFI模块进行配置
  12. 华为P40系列发布!新机皇临世,售价首次过万!
  13. 在CentOS下为sqlplus和rman 添加rlwrap
  14. 使用MediaCodec和RTMP做直播推流
  15. 挂载NTFS分区导致Docker容器无法启动,Exited (137)错误
  16. 修真院java_【修真院JAVA小課堂】JMeter的簡單介紹
  17. 全球与中国pH控制剂市场现状及未来发展趋势(2022)
  18. HHDBCS便捷功能简介
  19. 继百果园、鲜丰水果后,洪九果品凭什么冲击“水果上市第一股”?
  20. Oracle版本升级后引出的catalog连接问题

热门文章

  1. 复旦大学EMBA深圳校友胡盛龙专访:“非洲手机之王”如何应对“群雄逐鹿”
  2. __attribute__ 详解 1
  3. win10饥荒服务器未响应,win10系统电脑运行饥荒闪退的解决方法
  4. JavaScript实战教程
  5. 周岭《认知觉醒》读书笔记
  6. L298N驱动电机+pwm
  7. 腾讯安全在数字生态大会内容集锦
  8. 可视化监控告警-grafana
  9. 怎么有效锻炼自己的记忆力?
  10. 平心在线计算机维修的入门知识