客户消费积分管理系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.根据积分情况实行不同程度的打折优惠;
实验分析
1、概要设计
本系统用到的主要数据结构为数组和文件。
一个数组对应一个客户,里面用3个字符串分别存储着用户的客户号、姓名和消费情况。
然后将数组写入文件,查询时读取文件,提取相应信息。
2.功能模块详细设计
4.详细设计思想
本程序运用链表对客户信息进行存储,首先对结点进行定义,结点中的数据域分别定义了消费者的消费号、身份证、消费价格、积分,其中身份证和消费价格用了字符型数组进行定义,然后定义了客户消费信息链表,每添加一个客户,先分配内存,再添加消费者的信息,之后将链表中最后一个指针指向该新的消费者,删除时,需先找到该消费者前面的消费者,直接将其指针指向删除消费者的下一个消费者,修改信息时,先找到该消费者,选择修改的内容,再进行修改,添加消费价格时,先找到该消费者,根据情况对增加或减少消费价格,并根据价格计算积分,打折时,根据消费者打折的要求,进行打折。
printf("\n");
printf("Please enter the Price:");
scanf("%f",&money);
printf("\n");
s->customer.Price=money;
t=h;
while(t->next){
t=t->next;
}
t->next=s;
t=s;
s->next=NULL;
else p->customer.Price=p->customer.Price-money;
p->customer.Integral=p->customer.Price;
printf("消费号为%d\n",m);
printf("身份证为%s\n",p->customer.Identity);
printf("消费者姓名为%s\n",p->customer.Name);
printf("插入成功!\n");
}
//删除
void Listdelete(Linklist&h,int m)
{
int j=1;
Linklist q=h,t;
if(m==1)
{
t=h;
h=h->next;
}
else
{
while(j<m-1&&q->next!=NULL)
{
q=q->next;
j++;
printf("\n");
i++;
}
t->next=NULL;
}
//插入
void ListInsert(Linklist&h)
{
int j=1;
float money;
char x;
Linklist s,t;
s=(Listnode *)malloc(sizeof(Listnode));
printf("消费号为%d\n",i++);
同时,需要我们发现细小问题的眼光及解决问题的能力,更要求我们多去掌握一些课外知识点,便于我们程序编写。
p->customer.Price=p->customer.Price/20*19;
printf("消费号为%d\n",m);
printf("身份证为%s\n",p->customer.Identity);
printf("消费者姓名为%s\n",p->customer.Name);
printf("实际价格为%f\n",p->customer.Price);
printf("请输入身份证号码:");
scanf("%c",&x);
scanf("%s",s->customer.Identity);
scanf("%c",&x);
printf("\n");
printf("Please enter the name:");
scanf("%s",s->customer.Name);
char s[18];
float n;
Linklist t=h;
printf("Change customer's Identity:1;Name:2;Price:3;Integral:4\n");
scanf("%d",&a);
printf("\n");
while(j<m&&t->next!=NULL)
printf("删除消费者信息,请选择3\n");
printf("修改消费者信息,请选择4\n");
printf("增添消费价格并计算总消费,请选择5\n");
printf("根据积分计算打折后消费总价格,请选择6\n");
printf("退出,请选择0\n");
scanf("%d",&j);
switch(j){
{
t=t->next;
j++;
}
printf("OK!\n");
switch(a){
case 1:printf("Please enter the Identity!");
scanf("%s",t->customer.Identity);
break;
case 2:printf("Please enter the Name!");
s->customer.m=i;
printf("请输入身份证号码:");
scanf("%c",&x);
scanf("%s",s->customer.Identity);
printf("\n");
printf("请输入姓名:");
scanf("%c",&x);
scanf("%s",s->customer.Name);
}Datatype;
//链表结点的定义
typedef struct Listnode
{
Datatype customer;
struct Listnode *next;
}Listnode,*Linklist;
int i=1;//消费者编号
//创建链表
void create(Linklist &h){
float money;
break;
default:printf("输入错误。\n");
}
}
system("pause");
return 0;
}
程序测试
运行程序,进入系统主菜单。用户可以选择输入、查找、删除、修改信息或退出系统,
设计体会
数据结构课程设计的目的是,通过设计掌握数据结构课程中学到的基本理论和算法并综合运用于解决实际问题中,它是理论与实践相结合的重要过程。设计要求学会如何对实际问题定义相关数据结构,并采用恰当的设计方法和算法解决问题,同时训练学生进行复杂程序设计的技能和培养良好的程序设计习惯。
Linklist s,t;
int j=1;
char x;
h=(Listnode *)malloc(sizeof(Listnode));
h->next=NULL;t=h;
while(j){
s=(Listnode*)malloc(sizeof(Listnode));
printf("消费号为%d\n",i);
scanf("%d",&j);
change(h,j);
break;
case 5:printf("请输入消费者的消费号:");
scanf("%d",&j);
increase(h,j);
break;
case 6:printf("请输入消费者的消费号:");
scanf("%d",&j);
discountsum(h,j);
详细设计和代码
4.2源代码
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<stdlib.h>
typedef struct Dataytpe
{
int m;
char Identity[18];
char Name[20];
float Price,Integral;
int j=1;
Linklist p;
p=h;
while(j<=m&&p->next!=NULL)
{
p=p->next;
j++;
}
p->customer.Integral=p->customer.Price;
if(p->customer.Integral>=500&&p->customer.Integral<=1000)
南京信息工程大学计算机与软件学院 网络工程(2)班
实验内容
客户消费积分管理系统
问题描述:针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。
基本要求:
1.采用一定的存储结构进行客户信息的存储;
2.对客户的信息可以进行修改、删除、添加;
3.能够根据消费情况进行客户积分的计算;
printf("实际价格为%f\n",p->customer.Price);
printf("积分为%f\n",p->customer.Integral);
}
//计算打折之后的价格(积分在500至1000之间,免费1/100;1000至5000之间,免费3/100;大于5000,免费1/20)
void discountsum(Linklist &h,int m){
printf("\n");
printf("请输入价格:");
scanf("%f",&money);
printf("\n");
s->customer.Price=money;
s->next=NULL;t->next=s;t=s;
printf("全部输完,请输入0,否则输入1...\n");
scanf("%d",&j);
scanf("%d",&j);
printf("\n");
while(n<m&&p->next!=NULL)
{
p=p->next;
n++;
}
printf("Please ente源自文库 the money:");
scanf("%f",&money);
printf("\n");
if(j) p->customer.Price=p->customer.Price+money;
scanf("%s",t->customer.Name);
break;
case 3:printf("Please enter the Price!\n");
scanf("%f",&n);
t->customer.Price=n;
break;
case 4:printf("Please enter the Integra!\n");
case 0:break;
case 1:create(h);
break;
case 2:ListInsert(h);
break;
case 3:printf("请输入删除的位置:");
scanf("%d",&j);
Listdelete(h,j);
break;
case 4:printf("请输入修改的位置:");
p->customer.Price=p->customer.Price/100*99;
else
if(p->customer.Integral>1000&&p->customer.Integral<=5000)
p->customer.Price=p->customer.Price/100*97;
else
}
if(q->next!=NULL&&j==m-1)
{
t=q->next;
q->next=t->next;
}
else
printf("位置参数不正确!\n");
}
i--;
free(t);
printf("删除成功!\n");
}
//修改
void change(Linklist&h,int m)
{
int a,j=1;
scanf("%f",&n);
t->customer.Integral=n;
break;
}
printf("修改成功!\n");
}
//计算价格,计算积分
void increase(Linklist &h,int m){
int n=1,j;
float money;
Linklist p=h->next;
printf("Money is increased?Yes,please enter1;No,please enter0...");
printf("积分为%f\n",p->customer.Integral);
printf("打折之后价格:%f\n",p->customer.Price);
}
int main(){
int j=1;
Linklist h;
while(j){
printf("创立消费者消费信息,请选择1\n");
printf("增添消费者信息,请选择2\n");
实验分析
1、概要设计
本系统用到的主要数据结构为数组和文件。
一个数组对应一个客户,里面用3个字符串分别存储着用户的客户号、姓名和消费情况。
然后将数组写入文件,查询时读取文件,提取相应信息。
2.功能模块详细设计
4.详细设计思想
本程序运用链表对客户信息进行存储,首先对结点进行定义,结点中的数据域分别定义了消费者的消费号、身份证、消费价格、积分,其中身份证和消费价格用了字符型数组进行定义,然后定义了客户消费信息链表,每添加一个客户,先分配内存,再添加消费者的信息,之后将链表中最后一个指针指向该新的消费者,删除时,需先找到该消费者前面的消费者,直接将其指针指向删除消费者的下一个消费者,修改信息时,先找到该消费者,选择修改的内容,再进行修改,添加消费价格时,先找到该消费者,根据情况对增加或减少消费价格,并根据价格计算积分,打折时,根据消费者打折的要求,进行打折。
printf("\n");
printf("Please enter the Price:");
scanf("%f",&money);
printf("\n");
s->customer.Price=money;
t=h;
while(t->next){
t=t->next;
}
t->next=s;
t=s;
s->next=NULL;
else p->customer.Price=p->customer.Price-money;
p->customer.Integral=p->customer.Price;
printf("消费号为%d\n",m);
printf("身份证为%s\n",p->customer.Identity);
printf("消费者姓名为%s\n",p->customer.Name);
printf("插入成功!\n");
}
//删除
void Listdelete(Linklist&h,int m)
{
int j=1;
Linklist q=h,t;
if(m==1)
{
t=h;
h=h->next;
}
else
{
while(j<m-1&&q->next!=NULL)
{
q=q->next;
j++;
printf("\n");
i++;
}
t->next=NULL;
}
//插入
void ListInsert(Linklist&h)
{
int j=1;
float money;
char x;
Linklist s,t;
s=(Listnode *)malloc(sizeof(Listnode));
printf("消费号为%d\n",i++);
同时,需要我们发现细小问题的眼光及解决问题的能力,更要求我们多去掌握一些课外知识点,便于我们程序编写。
p->customer.Price=p->customer.Price/20*19;
printf("消费号为%d\n",m);
printf("身份证为%s\n",p->customer.Identity);
printf("消费者姓名为%s\n",p->customer.Name);
printf("实际价格为%f\n",p->customer.Price);
printf("请输入身份证号码:");
scanf("%c",&x);
scanf("%s",s->customer.Identity);
scanf("%c",&x);
printf("\n");
printf("Please enter the name:");
scanf("%s",s->customer.Name);
char s[18];
float n;
Linklist t=h;
printf("Change customer's Identity:1;Name:2;Price:3;Integral:4\n");
scanf("%d",&a);
printf("\n");
while(j<m&&t->next!=NULL)
printf("删除消费者信息,请选择3\n");
printf("修改消费者信息,请选择4\n");
printf("增添消费价格并计算总消费,请选择5\n");
printf("根据积分计算打折后消费总价格,请选择6\n");
printf("退出,请选择0\n");
scanf("%d",&j);
switch(j){
{
t=t->next;
j++;
}
printf("OK!\n");
switch(a){
case 1:printf("Please enter the Identity!");
scanf("%s",t->customer.Identity);
break;
case 2:printf("Please enter the Name!");
s->customer.m=i;
printf("请输入身份证号码:");
scanf("%c",&x);
scanf("%s",s->customer.Identity);
printf("\n");
printf("请输入姓名:");
scanf("%c",&x);
scanf("%s",s->customer.Name);
}Datatype;
//链表结点的定义
typedef struct Listnode
{
Datatype customer;
struct Listnode *next;
}Listnode,*Linklist;
int i=1;//消费者编号
//创建链表
void create(Linklist &h){
float money;
break;
default:printf("输入错误。\n");
}
}
system("pause");
return 0;
}
程序测试
运行程序,进入系统主菜单。用户可以选择输入、查找、删除、修改信息或退出系统,
设计体会
数据结构课程设计的目的是,通过设计掌握数据结构课程中学到的基本理论和算法并综合运用于解决实际问题中,它是理论与实践相结合的重要过程。设计要求学会如何对实际问题定义相关数据结构,并采用恰当的设计方法和算法解决问题,同时训练学生进行复杂程序设计的技能和培养良好的程序设计习惯。
Linklist s,t;
int j=1;
char x;
h=(Listnode *)malloc(sizeof(Listnode));
h->next=NULL;t=h;
while(j){
s=(Listnode*)malloc(sizeof(Listnode));
printf("消费号为%d\n",i);
scanf("%d",&j);
change(h,j);
break;
case 5:printf("请输入消费者的消费号:");
scanf("%d",&j);
increase(h,j);
break;
case 6:printf("请输入消费者的消费号:");
scanf("%d",&j);
discountsum(h,j);
详细设计和代码
4.2源代码
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<stdlib.h>
typedef struct Dataytpe
{
int m;
char Identity[18];
char Name[20];
float Price,Integral;
int j=1;
Linklist p;
p=h;
while(j<=m&&p->next!=NULL)
{
p=p->next;
j++;
}
p->customer.Integral=p->customer.Price;
if(p->customer.Integral>=500&&p->customer.Integral<=1000)
南京信息工程大学计算机与软件学院 网络工程(2)班
实验内容
客户消费积分管理系统
问题描述:针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。
基本要求:
1.采用一定的存储结构进行客户信息的存储;
2.对客户的信息可以进行修改、删除、添加;
3.能够根据消费情况进行客户积分的计算;
printf("实际价格为%f\n",p->customer.Price);
printf("积分为%f\n",p->customer.Integral);
}
//计算打折之后的价格(积分在500至1000之间,免费1/100;1000至5000之间,免费3/100;大于5000,免费1/20)
void discountsum(Linklist &h,int m){
printf("\n");
printf("请输入价格:");
scanf("%f",&money);
printf("\n");
s->customer.Price=money;
s->next=NULL;t->next=s;t=s;
printf("全部输完,请输入0,否则输入1...\n");
scanf("%d",&j);
scanf("%d",&j);
printf("\n");
while(n<m&&p->next!=NULL)
{
p=p->next;
n++;
}
printf("Please ente源自文库 the money:");
scanf("%f",&money);
printf("\n");
if(j) p->customer.Price=p->customer.Price+money;
scanf("%s",t->customer.Name);
break;
case 3:printf("Please enter the Price!\n");
scanf("%f",&n);
t->customer.Price=n;
break;
case 4:printf("Please enter the Integra!\n");
case 0:break;
case 1:create(h);
break;
case 2:ListInsert(h);
break;
case 3:printf("请输入删除的位置:");
scanf("%d",&j);
Listdelete(h,j);
break;
case 4:printf("请输入修改的位置:");
p->customer.Price=p->customer.Price/100*99;
else
if(p->customer.Integral>1000&&p->customer.Integral<=5000)
p->customer.Price=p->customer.Price/100*97;
else
}
if(q->next!=NULL&&j==m-1)
{
t=q->next;
q->next=t->next;
}
else
printf("位置参数不正确!\n");
}
i--;
free(t);
printf("删除成功!\n");
}
//修改
void change(Linklist&h,int m)
{
int a,j=1;
scanf("%f",&n);
t->customer.Integral=n;
break;
}
printf("修改成功!\n");
}
//计算价格,计算积分
void increase(Linklist &h,int m){
int n=1,j;
float money;
Linklist p=h->next;
printf("Money is increased?Yes,please enter1;No,please enter0...");
printf("积分为%f\n",p->customer.Integral);
printf("打折之后价格:%f\n",p->customer.Price);
}
int main(){
int j=1;
Linklist h;
while(j){
printf("创立消费者消费信息,请选择1\n");
printf("增添消费者信息,请选择2\n");