各位仁兄,麻烦分析一下!谢谢啦
/*c3:会员收费系统
(1)能录入会员信息(会员号、会员级别、姓名、消费总金额、积分、本次金额)
(2)能对每个会员进行收费操作
(3)对每个会员的当次消费总额进行打折、将当次金额计入总金额,并记积分
(其中:具体折扣、积分规则可自定。如金卡,8折,10元积1分;银卡,8.5折。。。)
(4)能输出会员消费记录单*/
#include<stdio.h>
#define n 100
#include<string>
int i;
struct xx //创建结构体
{
int number;
char name[100]; //姓名
int jibie; //会员级别
float money; //消费总金额
float jifen; // 积分
float bencie; //本次消费金额
int x ; //消费次数
}xx[n];
void huiyuan();
void shoufei();
void dazhe();
void output();
void main()
{
while (1)
{
int v;
system("cls");
printf("\n\t* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
printf("\n\t* * ");
printf("\n\t\t\t 欢迎进入会员收费系统 ");
printf("\n\t* * ");
printf("\n\t\t\t1、录入会员信息");
printf("\n\t* * ");
printf("\n\t\t\t2、进行收费操作");
printf("\n\t* * ");
printf("\n\t\t\t3、查询打折与积分信息");
printf("\n\t* * ");
printf("\n\t\t\t4、查询会员消费纪录");
printf("\n\t* * ");
printf("\n\t\t\t5、退出");
printf("\n\t* * ");
printf("\n\t\* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
printf("\n");
printf("\n请输入:");
scanf("%d",&v);
switch(v)
{
case 1:huiyuan();break;
case 2:shoufei();break;
case 3:dazhe();break;
case 4:output();break;
case 5:return;
default:printf("有错误!!请重新输入:");
scanf("%d",&v);
}
}
}
void huiyuan()
//会员信息录入
{
int i=1;
int t='y';
system("cls");
while(t=='y'||t=='Y')
{
printf("欢迎来到会员注册\n");
for(n=1;n<i;n++)
{
printf("请录入会员信息(首次会员的消费总金额、积分、本次金额均为0)\n");
printf("请输入会员号:\n");
scanf("%d",&xx[i].number);
printf("请输入姓名(请用英文或中文输入):\n");
scanf("%s",&xx[i].name);
printf("请您选择会员级别:\n");
printf("1、金卡 2、银卡 3、铜卡\n");
scanf("%d",&xx[i].jibie);
printf("是否继续(请输入小写y/n)\n");
scanf("%d",&t);
t=getchar();
t=getchar();
if(t=='n')
printf("输入完毕,请按任意键返回\n");
return;
}
}
return;
}
void shoufei() //录入收费,并计算;
{
int s; //x是记录会员消费的次数
int x=0,i,t='y';
system("cls");
printf("欢迎使用会员收费操作\n");
printf("请输入会员号:");
scanf("%d",&s);
while(t=='y'||t=='Y')
{
for(i=1;i<n;i++)
{
if(s!=xx[i].number)
{
printf("对不起!你输入的会员号不存在,请重新注册");
huiyuan();
}
printf("请您输入本次消费金额(输入0为结束):"); //消费的过程
xx[i].money=0; //根据会员的会员级别,进行消费总额的打折(金卡,7折,银卡,8折,铜卡9折)
scanf("%f",&xx[i].bencie); //会员消费总额(打折之后的金额),进行积分,10元积1分;
//如何知道这次的消费金额是哪一个会员的(不清楚的地方)
while(xx[i].bencie!=0)
{
xx[i].money=xx[i].bencie+xx[i].money;
scanf("%f\n",&xx[i].bencie);
}
printf("这次的消费总额为:\n");
printf("%5.2f\n",xx[i].money);
printf("是否继续进行收费操作(请输入小写y/n)\n");
scanf("%d",&t);
t=getchar();
t=getchar();
if(t=='n')
{ printf("输入完毕,请按任意键返回\n");
return;
}
x++;
printf("%d",x); //验证是否能记录消费次数
}
}
}
void dazhe()
{
int s;
int i=1;
system("cls");
printf("请输入会员号:");
scanf("%d",&s);
for(i=1;i<n;i++)
{
if(s==xx[i].number)
{
if(xx[i].jibie==1)
{ //如果用户输入的会员级别是1、金卡,就给用户打7折
xx[i].money=xx[i].money*0.7;
xx[i].jifen=xx[i].money/10;
}
else if(xx[i].jibie==2)
{ xx[i].money=xx[i].money*0.85; //如果用户输入的会员级别是2、银卡,就给用户打8折
xx[i].jifen=xx[i].money/10;
}
else if(xx[i].jibie==3)
{ xx[i].money=xx[i].money*0.9; //如果用户输入的会员级别是1、金卡,就给用户打9折
xx[i].jifen=xx[i].money/10;
}
else
{ printf("无此会员号,请重新注册");
huiyuan();
}
}
}
}
void output()
{
// int p;
// system("cls");
printf("\n\n 会员号 姓名 级别 积分 消费金额 总积分\n");
for(i=0;i<n;i++)
{
printf("\n\n 会员号:");
printf("\t %d",xx[i].number);
printf("\n\n 姓名:");
printf("\t %s",xx[i].name);
printf("\n\n 会员级别:");
printf(" \t %d",xx[i].jibie);
printf("\n\n 积分:");
printf("\t %f",xx[i].jifen);
printf("\n\n 消费总金额:");
printf("\t %f",xx[i].money);
}
printf("\n");
}