您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 客户消费积分管理系统-课程设计
1客户消费积分管理系统的设计与实现客户消费积分管理系统摘要:客户消费积分管理系统开发的总体目标是实现酒吧会员卡的积分和打折管理。主要是通过对客户积分卡积分的统计,再通过不同层段的积分有不同的折扣。本系统根据客户及商品的数据需求,采用了线性表的链式存储结构,主要功能包括数据的录入、插入、删除、修改、以及数据的显示,对客户积分的管理,对客户购物时依据积分的数目进行不同打折处理。关键词:C++语言;客户积分管理系统;数据结构;链式存储结构;1前言当今世界由于人类文明进入了高速发展阶段,计算机技术已经取得了长足的发展,计算机已经普及到各大商城和小市场的管理当中,介于此,经过了网上的资料查阅和数据分析,开发了这个客户消费积分管理系统,对一些商品进行折扣的统计和管理。设计一个程序用于管理客户的消费情况,从而根据客户的消费积分对客户实行不同程度的打折优惠。对于客户消费积分管理系统利用线性表的链表存储方式,使用结构体指针将每一个用户联系起来。程序中设计了①添加用户②查找用户③修改用户④删除用户⑤统计客户数量的功能,充分满足对于管理系统的要求。2设计分析2根据题目要求及本次课程设计的目的,采用结构体来存储每组数据,用单链表对每组数据进行相应的操作。现把相应的设计思路及各个函数解析如下。2.1数据结构设计分析2.1.1存储客户信息的结构体客户资料有姓名、身份证号、客户编号、消费金额、客户积分等信息。具体结构如下:structClient//客户信息{stringCCardNumber;//客户编号stringCNumber;//客户身份证号floatCBuy;//客户消费金额floatCGrade;//客户积分stringCName;//客户名称};2.1.2存储商品信息的结构体首先用一个商品信息的结构体Production存储商品的价格、商品的固定积分、商品的名称,在用一个数组进行存储每一件商品,使用数组和for循环能够便捷并容易的进行数据的操作。另外再用一个商品消费的记录ProCli,用来记录每个客户消费商品的记录具体结构如下:structProduction//商品信息{floatPPrice;//商品价格intPGrade;//商品积分stringPName;//商品名称};structPN/产品消费的信息记录{stringProName[16];//记录消费了的产品的名称intmount[16];//记录该产品的消费数量};3structProCli{stringCardnum;//客户的名称PNCPN;//消费产品和数量}2.2各个函数分析2.2.1主函数函数原型:intmain()main()函数主要是整个系统的控制端,主要功能是控制整个程序的运行。从主函数开始调用各相关函数来达到相应的功能。由于有多个不同的选项,所以用一个switch()语句控制每个函数调用,控制起来方便、明了。关键代码如下:switch(work){case1:cout继续请输入1,返回请输入2endl;cinwork;if(work==1){cout请输入要查询客户的名称或编号或身份证号:;cinstr;locateElem_L(client,str);}elseif(work==2){system(cls);face();}else{cout输入错误!endl;system(cls);4face();}break;case2:cout删除请输入1,增加请输入2,返回请输入3:;cinwork;if(work==1)deleteElem_L(client,procli);elseif(work==2){cout请输入客户编号endl;cinclients.CCardNumber;cout请输入客户身份证号endl;cinclients.CNumber;cout请输入客户名称endl;cinclients.CName;cout请输入客户消费金额endl;cinclients.CBuy;cout请输入客户积分endl;cinclients.CGrade;insertElem_L(client,procli,clients);}elseif(work==3){system(cls);face();}else{cout输入错误!endl;system(cls);5face();}break;case3:cout现在进行客户信息修改:继续请输入1,返回请输入2endl;cinwork;if(work==1){cout请输入要修改的客户的名称或编号或身份证号:;cinstr;recompose(client,str);}elseif(work==2){system(cls);face();}else{cout输入错误!endl;system(cls);face();}break;case4:trverseLnode(client);break;case5:purchase(client,procli);break;6case6:cout继续请输入1,返回请输入2endl;cinwork;if(work==1){cout查询的客户消费资料,请输入客户名称:;cinstr;locateElem_P(procli,str);}elseif(work==2){system(cls);face();}else{cout输入错误!endl;system(cls);face();}break;case7:system(cls);face();break;case8:cout是否确定退出,是,请输入\'yes\',否,请输入\'no\'!:;cinstr;if(str==yes){cout是否确定保存,是,请输入\'yes\',否,请输入\'no\'!:;7cinstr1;if(str1==yes){printer(client);printer(procli);cout已经保存成功endl;}cout已成功退出!endl;return0;}elseif(str==no)break;}2.2.2读文件函数函数原型:无把存储在文件中的客户信息、产品信息及产品消费信息读入到链表中去,为各操作做准备,也就相当于打开系统时,加载数据一样。在读文件中时,主要用到C++里的文件流操作,从文件(客户信息)client.txt和(客户消费信息保存文件)clientproduction.txt两个文件中读取信息,分别存放到链表client和procli中。client.txt文件是每一行存放一个客户的信息,是按客户编号、客户身份证号、客户名称、客户消费金额、客户积分存放的。而clientproduction.txt文件是客户姓名、产品名称、产品的消费数量的顺序存储的。在读取客户信息时,判断客户编号和客户省份证号是否为“NULL”来确定客户是否全部读完。代码如下:initList_L(client);clientp=client;ifstreamenter;8enter.open(client.txt,ios::in);do{hi=newLNode;hi-next=clientp-next;enterhi-data.CCardNumber;enterhi-data.CNumber;enterhi-data.CBuy;enterhi-data.CGrade;enterhi-data.CName;clientp-next=hi;clientp=clientp-next;//coutclientp-data.CCardNumberclientp-data.CNumberclientp-data.CNameendl;}while((clientp-data.CCardNumber!=NULL)&&(clientp-data.CNumber!=NULL));2.2.3菜单函数函数原型:voidface()在主函数调用此函数,展示整个系统可供用户选择的功能选项,清晰明了,使用户对系统的操作更容易掌握。显示各个选项,把后台功能显示在显示器上,给用户以提醒。2.2.4显示函数函数原型:voidtrverseLnode(LinkListL)此函数用来显示所有客户的信息,包括姓名、身份证号、客户编号、消费金额、客户积分等信息,当客户想查看所有客户信息时,可以使用此功能。不过说白了,也就是把链表中的东西打印出来。代码如下:voidtrverseLnode(LinkListL)//遍历链表{9Lnode*p;cout客户编号身份证号客户名称消费金额客户积分endl;for(p=L-next;p!=NULL;p=p-next){if(p-data.CCardNumber!=NULL){coutp-data.CCardNumberp-data.CNumberp-data.CNamep-data.CBuyp-data.CGradeendl;}}coutendl;}2.2.5查询函数函数原型:boollocateElem_L(LinkListL,stringe)boollocateElem_P(LinkListPL,stringe)查询函数设计了两个,进行两种功能的查询,一是查询客户信息,包括姓名、身份证号、客户编号、消费金额、客户积分等信息,二是查询客户消费信息记录,用户可以看到客户的消费情况作出商业上的调整,选择相应的查询功能,系统会给出不同的信息提示,要求用户输入一些相应的信息,比如客户姓名等,为实现这两种不同的查询功能,编写了以下查询函数。(1)客户信息查询:boollocateElem_L(LinkListL,stringe)//按值查找{LNode*p=L-next;while(p)10{if(p-data.CCardNumber==e)break;elseif(p-data.CNumber==e)break;elseif(p-data.CName==e)break;p=p-next;}if(p){cout客户编号身份证号客户名称消费金额客户积分endl;coutp-data.CCardNumberp-data.CNumberp-data.CNamep-data.CBuyp-data.CGradeendl;returntrue;}else{cout不存在此客户!endl;returnfalse;}}(2)客户消费情况查询:boollocateElem_P(LinkListPL,stringe)//按值查找||遍历查询{inti,j;boolflag=false;LPode*p=L-next;while(p)11{if(p-data.Cardnum==e)break;p=p-next;}if(p){cout客户名称产品名称消费数量endl;if(p-data.CPN.mount[0]0)flag=true;for(i=0,j=0;p-data.CPN.mount[j]0;i++,j++){coutep-data.CPN.ProName[i]p-data.CPN.mount[j]endl;}if(flag)cout无消费记录!endl;returntrue;}else{cout不存在此客户!endl;returnfalse;}}2.2.6购买产品的函数函数原型:voidpurchase(LinkListL,LinkListPPI)在此函数中,用户只需按照系统所提示的每一步操作,即可完成产品的购买,12并且
本文标题:客户消费积分管理系统-课程设计
链接地址:https://www.777doc.com/doc-7031367 .html