#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
#define N 20
typedef struct member{
long num;
char name[10];
int points;
int money;
}MEMBER;
void printlist(MEMBER *x);
int readmember(MEMBER *x);
void printmember(MEMBER *x,int n);
void search(MEMBER *x,int n);
void ascending(MEMBER *x,int n);
void rebate(MEMBER *x,int n);
int main(){
MEMBER x[N];
do{
printlist(x);
Sleep(1000);
system("cls");
fflush(stdin);
printf("敲击任意键继续");
}while(getchar());
}
void printlist(MEMBER *x){
int c=0;
static int n=0;//如果是动态变量int,则每次调用printlist(),n被重置为0,无法记录保存用户人数
printf("*******商场VIP客户管理系统*******\n");
printf("请选择菜单功能:\n");
printf("1、输入客户信息(账号,姓名,积分)\n");
printf("2、打印客户信息\n");
printf("3、按照客户编号查询客户信息\n");
printf("4、按照客户积分对顾客进行升序排序\n");
printf("5、年底积分返券\n");
printf("6、退出\n");
scanf("%d",&c);
system("cls");
switch(c){
case 1:
n=readmember(x);
break;
case 2:
printmember(x,n);
break;
case 3:
search(x,n);
break;
case 4:
ascending(x,n);
break;
case 5:
rebate(x,n);
break;
case 6:
exit(0);
default:
printf("Input error!\n");
}
}
int readmember(MEMBER *x){
printf("输入-1,则结束读取\n");
int i=-1;
do{
i++;
printf("第%d条用户信息\n",i+1);
scanf("%ld%s%d",&x[i].num,x[i].name,&x[i].points);
x[i].money=0;
}while(x[i].num>0);
return i;
}
void printmember(MEMBER *x,int n){
int i;
for(i=0;i<n;i++){
printf("%ld\t%s\t%d\n",x[i].num,x[i].name,x[i].points);
}
}
void search(MEMBER *x,int n){
long s;
int i,flag=0;
printf("请输入查找编号:\n");
scanf("%ld",&s);
for(i=0;i<n;i++)
{
if(x[i].num==s)
{
flag=1;
break;
}
}
if(flag){
printf("%ld\t%s\t%d\n",x[i].num,x[i].name,x[i].points);
}else{
printf("Not found\n");
}
}
void ascending(MEMBER *x,int n){
int i,j;
MEMBER temp;
for(i=0;i<n-1;i++){
for(j=0;j<n-1-i;j++){
if(x[j].points>x[j+1].points){
temp=x[j];
x[j]=x[j+1];
x[j+1]=temp;
}
}
}
for(i=0;i<n;i++){
printf("%ld\t%s\t%d\n",x[i].num,x[i].name,x[i].points);
}
}
void rebate(MEMBER *x,int n){
int i;
for(i=0;i<n;i++){
if(x[i].points>50000){
x[i].money+=999;
x[i].points-=50000;
}
if(x[i].points>=30000&&x[i].points<50000)
{
x[i].money += 399;
x[i].points-=30000;
}
if(x[i].points>=10000&&x[i].points<30000)
{
x[i].money += 199 ;
x[i].points -=10000;
}
if(x[i].points>=5000&&x[i].points<10000)
{
x[i].money += 50;
x[i].points -= 5000;
}
}
for(i=0;i<n;i++){
printf("%d\n",x[i].money);
}
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交