本文实例为大家分享了C语言实现会员管理系统的具体代码,供大家参考,具体内容如下

会员信息包括:会员号(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”);
}

  1. }
  2. if(f==1)
  3. break;
  4. }
  5. else
  6. {
  7. printf("请输入6位会员账号\n");
  8. printf("请重新输入会员的账号:\n");
  9. scanf("%d",&s[n].no);
  10. }
  11. }
  12. if(s[n].no==0)
  13. break; //如果输入的账号为0,结束输入
  14. printf("请输入会员的姓名:\n");
  15. scanf("%s",s[n].name);
  16. printf("请输入会员的身份证号,联系电话,余额,状态:\n");
  17. scanf("%s%s%d%d",s[n].IDcard,s[n].phone,&s[n].yue,&s[n].zhuangtai);
  18. n++;
  19. }

}

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”);
else
printf(“ 挂失 |\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++)
{

  1. if(s[i].no==num)
  2. {
  3. found=0;
  4. 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);
  5. if(s[i].zhuangtai==1)
  6. printf("正常\n");
  7. else
  8. printf("挂失!\n");
  9. }
  10. }
  11. if(found==1)
  12. {
  13. printf("未找到!\n");
  14. }
  15. found=1;
  16. printf("是否继续查询(Y/N)\n");
  17. choice=getchar();
  18. if(choice=='N'|| choice=='n')
  19. break;
  20. }

}

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”);
else
printf(“挂失!\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”);
else
printf(“挂失!\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”);
else
printf(“挂失!\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”);
else
printf(“挂失\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”);
else
printf(“挂失!\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”);
else
printf(“挂失!\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”);
else
printf(“挂失!\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”);
else
printf(“挂失!\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;
}
}
}

更多相关文章

  1. Android腾讯微薄客户端开发十四:首页menu菜单
  2. Android(Java):长时间未登录提醒
  3. 基于Android的短信管理系统
  4. 说说在 Android(安卓)中如何实现记住密码功能
  5. 疯狂android讲义学习总结---TextView
  6. MyCms 开源自媒体系统后台 角色管理&管理员管理操作说明
  7. js关闭浏览器时退出账号的处理
  8. Android登录页面制作并且记住账号密码
  9. sqlserver数据库迁移后,孤立账号解决办法

随机推荐

  1. php中的include,require,include_once,requi
  2. 分析一下PHP中的Trait机制原理与用法
  3. 谈谈PHP中require和include的区别
  4. PHP中的is_callable()与method_exists()
  5. php的6种输出方式的区别
  6. 了解PHP文件上传相关知识
  7. PHP中static和self的区别
  8. 谈谈PHP中strlen和mb_strlen的区别
  9. php中常用的4种运行方式
  10. 了解一下PHP面向对象的相关概念