当前位置:
文档之家› 客户消费积分管理系统 C++版有代码
客户消费积分管理系统 C++版有代码
{
head = (cnode *)malloc(sizeof(cnode));
head->next = NULL;
}
void Getelem(cnode *head)
{
cnode *p;
double y;
p = (cnode *)malloc(sizeof(cnode));
printf("请输入姓名:");
change(h,j);
break;
case 5:printf("请输入消费者的消费号:");
scanf("%d",&j);
increase(h,j);
break;
case 6:printf("请输入消费者的消费号:");
scanf("%d",&j);
discountsum(h,j);
break;
default:printf("输入错误。\n");
char ID[4];
double consume;
double integer;
cnode *next;
};
void Count(cnode *head)
{
cnode *p;
int i = 0;t == NULL)
{
printf("\n没有客户!");
}
else
printf("折扣:%.1lf折\n", y);
}
system("pause");
}
void Delete(cnode *head, char name[])
{
cnode *p;
int x;
double y;
p = head;
if (p->next == NULL)
{
printf("\n没有客户!");
{
discount = 0;
}
else if (pionts>0 && pionts<=50)
{
discount = 9.8;
}
else if (pionts>50 && pionts<=100)
{
discount = 9.5;
}
else if (pionts>100 && pionts<=200)
{
while (p->next != NULL)
{
p = p->next;
i++;
}
}
printf("\n现有客户数量为%d位.\n", i);
system("pause");
}
double display_discount(double pionts)
{
double discount;
if (pionts == 0)
3:能够根据消费情况进行客户积分的计算;
4:根据积分情况实行不同程度的打折优惠;
三、流程图
四、数据结构设计
本程序运用链表对客户信息进行存储,首先对结点进行定义,结点中的数据域分别定义了消费者的消费号、身份证、消费价格、积分,其中身份证和消费价格用了字符型数组进行定义,然后定义了客户消费信息链表,每添加一个客户,先分配内存,再添加消费者的信息,之后将链表中最后一个指针指向该新的消费者,删除时,需先找到该消费者前面的消费者,直接将其指针指向删除消费者的下一个消费者,修改信息时,先找到该消费者,选择修改的内容,再进行修改,添加消费价格时,先找到该消费者,根据情况对增加或减少消费价格,并根据价格计算积分,打折时,根据消费者打折的要求,进行打折。
}
}
八、系统运行结果样例
此程序运行在visual C++ 6.0环境下
屏幕截图:
九、结束语
C++的课程设计的目的是,通过设计掌握c++课程以及数据结构学习中掌握的基本理论和算法综合运用解决实际问题。他是理论与实践相结合的重要过程。设计要求学生对数据结构以及,c++语言的熟练运用,同时需要我们发现细小问题的眼光以及解决问题的能力,要求我们掌握更多的课外知识。便于我们程序的编写。
}
else
{
while (p->next != NULL)
{
p = p->next;
printf("姓名: %s\n", p->name);
printf("ID: %s\n", p->ID);
printf("消费: %.2lf", p->consume);
printf("积分: %lf\n", p->integer);
printf("删除成功!");
}
else
{
printf("删除失败!");
}
}
}
printf("\n");
system("pause");
}
void Showall(cnode *head)
{
cnode *p;
double y;
p = head;
if (p->next == NULL)
{
printf("没有客户!\n");
{
p = p->next;
if (!strcmp(name, p->name))
{
printf("姓名: %s\n", p->name);
printf("ID: %s\n", p->ID);
printf("消费: %.2lf", p->consume);
printf("积分: %lf\n", p->integer);
{
discount = 9.0;
}
else if (pionts>200 && pionts<=300)
{
discount = 8.0;
}
else if (pionts > 300)
{
discount = 7.0;
}
return discount;
}
void Initstack(cnode * &head)
3:并且计算机计算的速度快,准确,减轻收银员的工作负担。
本系统用到的主要数据结构为数组和文件。
一个数组对应一个客户,里面用3个字符串分别存储着用户的客户号、姓名和消费情况。
然后将数组写入文件,提取相应信息。
二、系统主要功能
1:采用一定的存储结构进行客户信息的存储;
2:对客户的信息可以进行修改、删除、添加;
}
}
printf("姓名:%s\n", p->name);
printf("ID:%s\n", p->ID);
printf("消费额:%.2lf\n", p->consume);
p->integer = p->consume/100;
printf("积分:%lf\n", p->integer);
y = display_discount(p->integer);
scanf("%d", &x);
switch(x)
{
case 1: printf("请输入修改后的消费:");
scanf("%lf", &p->consume);break;
case 2: printf("请输入续加金额:");
scanf("%lf", &z);
p->consume += z;break;
case 1:create(h);
break;
case 2:ListInsert(h);
break;
case 3:printf("请输入删除的位置:");
scanf("%d",&j);
Listdelete(h,j);
break;
case 4:printf("请输入修改的位置:");
scanf("%d",&j);
case 2:printf("请输入修改后的ID:");
scanf("%s", p->ID);
while(strlen(p->ID) != 4)
{
printf("ID有误,请重新输入(4位):");
scanf("%s", p->ID);
}break;
case 3:printf("请选择1.覆盖以前的消费2.续加上现在的消费:");
y = display_discount(p->integer);
printf("折扣: %.1lf折\n", y);
flag = true;
}
}
if (!flag)
{
printf("\n该客户不存在!\n");
}
}
system("pause");
}
void Amend(cnode *head, char name[])