课程设计客户积分管理系统Word文档下载推荐.docx

上传人:b****5 文档编号:17971226 上传时间:2022-12-12 格式:DOCX 页数:25 大小:492.49KB
下载 相关 举报
课程设计客户积分管理系统Word文档下载推荐.docx_第1页
第1页 / 共25页
课程设计客户积分管理系统Word文档下载推荐.docx_第2页
第2页 / 共25页
课程设计客户积分管理系统Word文档下载推荐.docx_第3页
第3页 / 共25页
课程设计客户积分管理系统Word文档下载推荐.docx_第4页
第4页 / 共25页
课程设计客户积分管理系统Word文档下载推荐.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

课程设计客户积分管理系统Word文档下载推荐.docx

《课程设计客户积分管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《课程设计客户积分管理系统Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。

课程设计客户积分管理系统Word文档下载推荐.docx

完成课程设计题目《客户积分管理系统》

进度安排及主要内容:

第一周:

调研;

需求分析及总体设计;

规范化数据结构模型;

设计数据结构。

第二周:

详细设计及测试;

使用具体语言实现算法;

调试程序;

编写课程设计报告。

成绩:

指导教师(签字)

年月日

一、概述

在我们的生活中,很多超市、酒店等都有vip卡,可以通过记录客户每次的消费情况计以积分,并根据不同的消费情况还会给予客户不同程度的优惠,以此方式来激励客户进行更多的消费,而商家需要一个可以做客户积分管理的系统来帮助其完成计入积分、计算折扣等操作。

在这样的理念下,本程序实现了一个小型的客户积分管理系统,可针对客户的消费情况,进行客户管理,并且根据客户的消费积分对客户实行不同的优惠。

二、需求分析

题目要实现一个客户积分管理系统,因其经常需要进行增删客户,故经考虑,应选取链式结构作为其存储结构,从而减少增删过程中频繁进行大量数据移动。

三、技术方案

在Windows7平台下,利用MicrosoftVisualStudio2010,以C++为主体,在数据结构的理论指导下,通过使用链表这种存储结构,实现对客户积分信息的管理,实现了一个简易的客户积分管理系统,可以通过客户积分对客户进行不同的折扣优惠和相关信息的管理。

四、总体设计

在使用系统过程中,我们需要根据客户的情况对客户进行一系列的操作:

添加客户、查找客户、删除客户、修改客户等,其对应着链表的增加节点、查找特定节点、删除节点、修改节点信息等,我们通过对链表节点的操作来实现对客户信息的管理,从而进行一系列的操作。

五、详细设计

1客户积分管理系统的功能模块

程序主要分为六大功能模块:

添加客户、查找客户、删除客户、修改客户、显示所有客户、统计客户,通过这六大模块可对客户积分进行管理。

图-1

2程序的业务流程

图-2

3具体功能实现

3.1主菜单界面

在控制台上显示所能进行的操作及对应的编号(如图-3),并提示输入根据输入的内容调用对应的功能。

图-3

3.2添加客户信息

给链表添加节点从而实现添加客户信息,节点信息包括姓名、ID、消费金额以及对应折扣。

当在主菜单界面输入1时,进入该功能函数,依次要求输入姓名、身份证号(并且对身份证号码进行校验,当不符合身份证号编码规则时提示重新输入)、消费金额。

当输入完成后,页面显示折扣。

后再次进入主菜单并提示输入一个数字选择后续操作。

运行过程如图-4所示。

3.3查找客户信息

通过对链表节点的遍历并进行节点ID匹配进行查找对应客户,当查找成功时,输出客户信息;

反之,输出“不存在该客户!

”。

之后进入主菜单界面并提示输入一个数字选择后续操作。

运行情况如图-5所示。

3.4修改客户信息

通过ID找到对应客户修改其信息,在消费情况上可选择覆盖以前消费或者续加此次消费,然后显示出修改后的客户信息;

若系统中没有该ID,则提示“不存在该客户!

后程序进入主菜单并提示输入一个数字选择后续操作。

如图-6所示。

图-4

图-5

图-6

3.5删除客户信息

通过ID找到对应客户,然后输出其信息,经过确认之后删除其信息。

3.6显示所有客户

遍历输出所有节点信息,在链表不为空的情况下

while(p->

next!

=NULL)

{

p=p->

next;

cout<

<

"

姓名:

"

p->

name<

endl;

身份证号:

ID<

消费:

setprecision

(2)<

consume<

积分:

integer<

y=display_discount(p->

integer);

折扣:

y<

折"

}

如图-7所示

图-7

3.7统计客户数目

遍历链表对客户进行计数,而后输出客户数目。

当客户数目不为空时

i++;

cout<

现有客户数量为"

i<

位!

之后进入主菜单页面并提示输入一个数字选择后续操作。

六、软件测试

1测试方案

依次测试程序的相关功能,对每个功能都进行多次测试,并记录测试结果。

对每个功能的各输入项进行不同格式的输入,检测其是否可以按预期运行,测试程序的健壮性和可行性。

2测试用例及测试结果

2.1添加客户

首先输入姓名,之后输入身份证号码,当输入的身份证号不足18位或者不符合身份证号编码规则时,提示所输入的格式不正确,并要求重新输入,如图-8所示。

当身份证号码输入正确后,要求输入消费金额,之后输出并进入主菜单界面,如图-9所示。

图-8

图-9

其余测试属于及测试情况如表-1所示

表-1添加客户信息测试数据及测试情况

测试项

测试数据内容

程序反应

姓名

为空

需要重新输入

Adad

读入成功

Daads1331

ID

411141241

要求重新输入

411233aaaaaaaaaaaaa1

411209************

41121019900989112S

41120919870987789X

消费情况

1

9.8折

3000

13232

9.2折

143233

7折

6000

9.5折

9000

17000

9折

24000

8折

2.2查找客户

当链表为空时,弹出界面如图-10,提示“没有客户!

图-10

当身份证号输入不正确时,提示输入格式不正确,并要求重新输入。

当身份证号输入正确并且链表不为空时,遍历进行ID的字符串匹配,当不存在该ID时,系统提示不存在该客户;

当查询成功时,输出对应客户的相关信息,如图-7所示。

图-11

2.3修改客户

当链表为空时,提示没有客户。

当链表不为空时,提示输入要修改的客户的ID,若没有此客户,则提示不存在此客户!

反之,输出该客户信息,并提示输入选择所要修改的信息项,然后输入修改之后的内容,之后输出修改后的客户信息,如图-12所示

图-12

2.4删除客户

当链表不为空时,提示输入要删除的客户ID,进行ID匹配,若找不到提示不存在该客户,反之,显示对应客户信息,并提示是都确认删除,进行“确定”、“取消”的选择,操作之后进入主菜单,如图-13所示。

图-13

2.5显示客户

当链表为空时,提示没有客户,反之依次输出所有客户信息。

之后进入主菜单界面。

2.6统计客户

链表为空时,显示“没有客户”,反之提示客户数目。

七、总结

在程序刚开始时,由于节点中包括string类型,利用malloc开辟空间,但未调用相应的构造函数,string对象未进行实例化,从而引发内存使用问题导致程序不能正常运行,在上网查资料和认真思考之后,改malloc为使用new从而解决问题。

New和malloc都具有按需开辟空间的功能,但new同时调用构造函数对相关对象进行实例化。

第一次使用Visio,刚开始画出的图出现这样那样的问题,经过几次制作之后慢慢找到了一些感觉,发现Visio是一个很强大的工具。

附录1

参考文献

[1]StephenPrata.C++PrimerPlus第6版[M].北京:

人民邮电出版社,2012.

[2]stpeace聊聊malloc和new的区别---当malloc和string相遇时,容易出错.

[3]ThomasH.CormenCharlesE.LeisersonRonaldL.RivestCliffordStein.算法导论第3版[M].北京:

机械工业出版社,2013.

[4]谭浩强.C++程序设计[M].北京:

清华大学出版社,2011.

附录2

程序主要代码

/**客户消费积分管理系统的设计与实现

*针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。

*1、采用一定的存储结构进行客户信息的存储;

*2、对客户的信息可以进行修改、删除、添加;

*3、能够根据消费情况进行客户积分的累加

*4、根据积分情况,对客户实行不同程度的打折优惠;

**/

#include<

iostream>

iomanip>

#include"

stdlib.h"

string>

usingnamespacestd;

boolisID(string&

);

typedefstructcnode

{

charname[20];

stringID;

doubleconsume;

doubleinteger;

structcnode*next;

}cnode;

voidInitstack(cnode*&

head)/*初始化链表*/

head=newcnode();

//开辟节点空间

head->

next=NULL;

voidGetelem(cnode*head);

voidSearch(cnode*head,string&

ID);

voidAmend(cnode*head,string&

voidDelete(cnode*head,string&

voidShowall(cnode*head);

voidcount(cnode*head);

doubledisplay_discount(doubleinteger);

intmain()

cnode*head;

intchoice;

stringy;

Initstack(head);

do

{

客户消费积分管理系统"

******************************"

**"

*主菜单*"

*1添加客户*"

*2查找客户*"

*3修改客户*"

*4删除客户*"

*5显示客户*"

*6统计客户*"

*7退出*"

请输入您的选择(1,2,3,4,5,6):

;

cin>

>

choice;

if(choice==1)

Getelem(head);

//添加

elseif(choice==2)

请输入您查找客户的身份证号:

y;

isID(y);

Search(head,y);

//查找

}

elseif(choice==3)

请输入您想修改客户的身份证号:

Amend(head,y);

}//修改

elseif(choice==4)

请输入你想要删除的客户的身份证号:

Delete(head,y);

}//删除

elseif(choice==5)

Showall(head);

//显示

elseif(choice==6)

count(head);

//统计

elseif(choice==7)

exit

(1);

while(choice<

=7);

system("

pause"

return0;

voidGetelem(cnode*head)

//添加客户函数以头节点为参数

cnode*p;

doubley;

p=newcnode;

p->

next=newcnode;

/*申请空的节点空间*/

ID="

请输入姓名:

name;

请输入身份证号(18位):

ID;

isID(p->

请输入消费金额:

consume;

integer=p->

consume/100;

//调用函数计算折扣

折扣:

/*<

setprecision

(1)*/<

y<

next=head->

next=p;

ID)

cnode*p=newcnode;

p=head;

if(p->

next==NULL)

没有客户!

else

while(p->

if(ID==p->

ID)//判断身份证号是否相同

{

/*setprecision

(2)<

*/p->

积分:

折扣"

/*setprecision

(1)<

*/y<

return;

不存在该客户!

/*

修改客户函数

通过ID获取信息

可以修改身份证号、姓名、消费金额

修改消费金额有覆盖原有金额及续加两种方式

*/

ID){

doubley,z;

intchoose,x;

setprecision

(2)*/<

请选择你要修改的1、姓名。

2、身份证号。

3、消费金额。

choose;

if(choose==1)

请输入修改后姓名;

if(choose==2)

请输入修改后的身份证号:

if(choose==3)

1.覆盖以前消费、2.续加上现在费用!

请选择:

x;

if(x==1)

请输入修改后的消费:

else{

printf("

请输入续加金额:

z;

consume+=z;

consume/100.0;

//删除客户函数

intx;

head=p;

ID)

{//判断身份证号是否相同

你确认删除?

1、确定。

2、取消。

next=p->

("

删除成功!

删除失败!

return;

}

voidShowall(cnode*head)//显示所有客户函数

voidcount(cnode*head)

inti=0;

doubledisplay_discount(doublepoints)

//计算客户折扣函数,接受一个double型的数作为参数,输出对应的折扣

doublediscount;

if(points==0)

discount=0;

if(points>

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1