客户消费积分管理系统.docx

上传人:b****6 文档编号:9254205 上传时间:2023-02-03 格式:DOCX 页数:24 大小:114.43KB
下载 相关 举报
客户消费积分管理系统.docx_第1页
第1页 / 共24页
客户消费积分管理系统.docx_第2页
第2页 / 共24页
客户消费积分管理系统.docx_第3页
第3页 / 共24页
客户消费积分管理系统.docx_第4页
第4页 / 共24页
客户消费积分管理系统.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

客户消费积分管理系统.docx

《客户消费积分管理系统.docx》由会员分享,可在线阅读,更多相关《客户消费积分管理系统.docx(24页珍藏版)》请在冰豆网上搜索。

客户消费积分管理系统.docx

客户消费积分管理系统

一、系统开发的背景1

二、系统分析与设计1

(一)系统功能要求1

(二)系统模块结构设计1

三、系统的设计与实现2

(一)添加客户:

GETELEM(CNODE*HEAD)2

(二)修改客户AMEND(CNODE*HEAD,CHARNAME[])5

(三)删除客户DELETE(CNODE*HEAD,CHARNAME[])7

(四)显示客户VOIDSHOWALL(CNODE*HEAD)9

四、系统测试10

(一)测试VOIDNAIN()函数10

(二)部分调用函数的测试11

五、总结12

六、附件(代码)12

客户消费积分管理系统

一、系统开发的背景

为了能够快速根据客户的消费积分计算打折后的价格,以及优惠后的价格,给客户以心理上的刺激,激发客户的消费欲望。

并且减轻收银员的工作负担;因此,我特别编写了一套有关客户消费积分管理的系统,来方便在日常生活中的使用。

二、系统分析与设计

(一)系统功能要求

针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行

不同程度的打折优惠。

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

2、能够根据消费情况进行客户积分的计算;

3、根据积分情况实行不同程度的打折优惠;

(二)系统模块结构设计

通过对系统功能的分析,客户消费积分管理系统功能如图

(1)所示。

r>

客户消费积

通过上图的功能分析,首先定义了一个数据域,来存储客户的基本信息;

要的是运用While语句和switch语句的套用来实现,此外,就是要用到rS除函数

函数来存储客户的信息分配内存。

把整个系统主要划分为一:

-

1、添加客户信息:

该模块主要实现,客户基本信息(姓名、消费卡号、

消费金额)的添加,借助函数Getelem(cnode*head)来实现;

2、修改客户信息:

该模块主要实现,对消费者的基本信息的修改功能,

借助函数Amend(cnode*head,charname[])来实现;

3、删除客户信息:

此模块的功能是,删除所要确定的客户信息,而达到

从整个系统清除的目的,借助函数Delete(cnode*head,charname[])来实现;

4、显示客户信息:

此模块的主要作用是显示消费者的相关信息,借助函数Showall(cnode*head)来实现。

三、系统的设计与实现

(一)添加客户:

Getelem(cnode*head)

分析:

首先选择的添加客户的指令,然后输入客户的基本信息。

客户的姓名,客户的ID消费卡号,如果输入的不正确则需要提示重输,还有就是客户的消费金额,这样才能计算后面的积分优惠折扣。

最后就显示该添加客户的信息。

流程图如图

(2)所示。

运行结果如图(a)所示。

客户姓名

图<

(2)-1模块分析图

消费卡ID号开始消费金额S丿J>

积分折扣

(2)添加客户信息流程图

该模块的具体代码如下所示输入客户姓名及ID号示准的输入输出库函数动态存储分配函数字符串函数

#include〃#include〃#include〃structcnode▼{

(正确)输出客户相关信息

(错误)重新输

ar门入客2户;相关客户姓名charID[4];〃doubleconsupe;//客户消费ble(正确产输出客户积分n也客^^相关信,

客户ID号

do

结束

};

doubledisplay_discount(doublepoints)〃客户积分折扣函数

{

doublediscount;

if(points==0)

{discount=0;}

elseif(points>0&&points<=50)

{discount=9.8;}

elseif(points>50&&points<=100)

{discount=9.5;}

elseif(points>100&&points<=200)

{discount=9.0;}

elseif(points>200&&points<=300)

{discount=8.0;}

elseif(points>300)

{discount=7.0;}

returndiscount;

}

voidInitstack(cnode*&head)

{

head=(cnode*)malloc(sizeof(cnode));//malloc函数开辟内存单元,分配cnode长度字节的

存储区

head->next=NULL;

}

voidGetelem(cnode*head)〃添加客户函数

{enode*p;

doubley;

p=(cnode*)malloc(sizeof(cnode));

printf("请输入姓名:

");

scanf("%s",&p->name);

printf("请输入ID(4位):

”);

scanf("%s",&p->ID);

while(strlen(p->ID)!

=4)

{

printf("ID有误,请重新输入(4位):

");

scanf("%s",p->ID);

}

printf("请输入消费金额:

");

scanf("%lf",&p->consume);

p->integer=p->consume/100;

y=display_discount(p->integer);

printf("折扣:

%llf折\n",y);

p->next=head->next;

head->next=p;

system("pasue");}voidmain(){enode*head;intchoice;charname[10];Initstack(head);do

{

printf("\n");

printf(”

$

客户消费积分管理系统

$\n");

printf(”

\n”);

printf("\n

****************************");

printf("\n

*

*");

printf("\n

*

<<

王采单>>

*");

printf("\n

*

1.

添加客户

*");

printf("\n

*

2.

查找客户

*");

printf("\n

*

3.

修改客户

*");

printf("\n

*

4.

删除客户

*");

printf("\n

*

5.

显示客户

*");

printf("\n

*

6.

统计客户

*");

printf("\n

*

7.

退出*")

>;

printf("\n

****************************");

printf("\n请输入您的选择(1,2,3,4,5,6,7):

");

Getelem(head);break;

system("cls");〃程序运行后自动清屏

}while(choice<=7);}

*C:

\Users\Administralor\Deslctop\^程设计\Debug善户港爰阳分M^t-exe'

$客户梢费和分管理系统5

图(a)

(二)修改客户Amend(cnode*head,charname[])

分析:

首先要确定该客户消费积分系统有没有客户,在有客户的条件下对所在客户的相关信息进行修改。

第一步要输入所要修改客户的姓名,第二步是选择修改客户的姓名、ID消费卡号、还是消费金额。

然而对消费金额的修改有可以选择是续加金额和覆盖原有的金额两种操作。

最后结果显示在屏幕上。

流程图如图(3)所示。

运行结果如图(b)所示。

开始

如图(3)修改客户信息流程图

该模块的具体代码如下所示:

voidAmend(cnode*head

p=head;-

修改客户函数,没有客户

修改客户的相关信

结束

 

if(p->next==NULL){printf("\n没有

}

结束else

{

while(p->next!

=NULL)

{p=p->next;

if(strcmp(name,p->name)==0)

{printf(”姓名:

%s\n",p->name);

printf("ID:

%s\n",p->ID);

printf("消费:

%.2lf',p->consume);

printf("积分:

%lf',p->integer);

y=display_discount(p->integer);

printf("折扣:

%.llf折\n",y);

}

}

printf("\n请选择您要修改的资料:

1.姓名2.ID3.消费金额\n");

scanf("%d",&choose);

switch(choose)

{

case1:

printf("请输入修改后的姓名:

");

scanf("%s",p->name);break;

case2:

printf("请输入修改后的ID:

");

scanf("%s",p->ID);break;

while(strlen(p->ID)!

=4)

{printf("ID有误,请重输(4位):

");

scanf("%s",p->ID);

}break;

case3:

printf("请选择:

1覆盖以前的消费.2续加上现在的消费.");scanf("%d",&x);

switch(x)

{case1:

printf(”请输入修改后的消费:

”);

scanf("%lf",&p->consume);break;

case2:

printf("请输入续加金额:

");

scanf("%lf",&z);

p->consume+=z;break;

}

}

printf("姓名:

%s\n",p->name);

printf("ID:

%s\n",p->ID);

printf("消费额:

%.2lf",p->consume);

p->integer=p->consume/100;

printf(”积分:

%lf",p->integer);

y=display_discount(p->integer);

printf("折扣:

%.llf折\n",y);

}

system("pasue");

}

1眄[

槨入要均改的客户姓名叨谒

消费:

351.40和分’3.514000折扣,

请输入您的选择(1.2,3,4,5,6,7):

3

请输入修改后的姓名:

王海

请选择您要修改的资料;「姓名2-ID3•消费金额

■*C:

\Users\Admini&tr^\Deslcto\Debugex"

单户户户户户户待蓉客客客主加找改除示计岀<<響修删显幫1234567

 

图(b)

(三)删除客户Delete(cnode*head,charname[])

分析:

首先也是要确定该客户消费积分系统有没有客户,在有客户的条件下对所在客户的相关信息进行删除。

第一步要输入所要删除的客户的姓名,第二步是就是对所选定的客户进行删除,在删除结束时,会出现是否删除成功的提示语,以便进行慎重的删除操作。

流程图如图(4)所示。

运行结果如图(c)所示。

开始

图(4)删|除客户信息流程图

该模块的具体代码如下所示:

voidDelete(有客户*head,charname[])〃‘没有除户户函数

{

enode*p;T

结束

intx;要删除的客户

y.

是否删除成功

结束

dOuble

p=head;

if(p->next==NULL)

{

printf("\n没有客户!

");

}

else

{while(p->next!

=NULL)

{head=p;

p=p->next;

if(strcmp(name,p->name)==0)

{

printf("姓名:

%s\n",p->name);

printf("ID:

%s\n",p->ID);

printf("消费:

%.2lf',p->consume);

printf("积分:

%lf',p->integer);

y=display_discount(p->integer);

printf("折扣:

%.llf折\n",y);}

printf("确认删除?

1确认2取消请选择:

");

scanf("%d",&x);

if(x==1)

{head->next=p->next;

printf("删除成功!

");

}

else

{printf("删除失败!

");

}

}

}

printf("\n”);

system("pause");

}

-*C:

\Users\Administrator\DesktopY,^握设计\Debug\氢亠渭査取分■慝^fc.exe"

$客户消费积分管理系统5

ZAMWA/ZZZZZZZZZAfrfWA/ZfWA/ZZZZZZZZEZ

>>

-Rpl.户户户户户

-S-MB各客客客主加找改除示计岀

显蠻■■•■■•■1234567

请输入您的选择(1,2,3,4,5,6.7)z4

除的客户姓名二米兰

ID;569S

消4563.00积分:

45,630000折扣;10折

认删除?

丄确认2取消请选择:

1

图(c)

(四)显示客户voidShowall(cnode*head)

分析:

首先还是要确定该客户消费积分系统有没有客户,在有客户的条

件下对所有客户的相关信息进行显示。

最终将所有客户的相关信息显示在屏

幕上。

流程图如图(5)所示。

运行结果如图(d)所示。

图(5)显示客

该模块的具体代码如下所示:

voidShowall(cnode*head)〃{enode*p;

doubley;

p=head;

if(p->next==NULL){printf(”没有客户!

");}

else

{while(p->next!

=NULL){p=p->next;

printf(”printf("IDprintf("

姓名:

:

%s\n",p->l

消费:

%.2lf",p

结束

printf(”积分:

%lf",p->integer);

y=display_discount(p->integer);

printf("折扣:

%.llf折\n”,y);}

}system("pause");}

*C:

\Users\Administraior\Desktop\课程设汁Ebug'客户消議用分秦统,exe

fWWWWVWFWWfWVWWWWWWVYWWfWWWWVWWWWWVW

s客户消费和分管理系统5

户户户户户艺蓉客宀各客客客主加找改除示计岀<<星嗑毘嚅

1234567

请输入您的选择(1.2-3-4-5,6,7),5

名:

技Ik局

;9876

8000-00积分:

S0.000000折扣’1时斤

€:

李虎

:

5874

费:

564.00和分:

5.640000折扣]10折

图(d)

四、系统测试

(一)测试voidnain()函数

测试该函数使用的测试方法,测试的具体步骤,测试用例的选取,测试的结果。

首先,通过编译,运行两步的操作,排除了该程序中的基本语法错误,链接进一步的检查了程序的正确性与合法性,完全排除了程序中的逻辑错误,使得程序可以正确的运行出来。

然后检验程序的可实用性,通过操作者自己输入一些对客户操作要求,来完成检验这一步。

最后,还要看显示的结果是否正确可靠。

这样,一个客户消费积分系统的程序就完成了。

所以,下图(6)就是主函数测试的结果。

'C:

\Users\Admin^trdtor\De5ldo穴昱腫没计\Debug悟户1洛鹫环分杲乾exe"

rsmjwwiwrvwinuwwrirwrvirvrinjwwrirwrwrvrinjwwrirwrwrvrinjwirvrinj*

$客户消费积分管理系统$

fVfWiPimrtfWirKirfVfWiFVWtfWrWVfWiFVNtfWrWVfWiFVYVtfWrWVrtalWYVtfW

“户户户户户

-a-脅客客容客客主加找改除示计岀<<灌痛甩囉123456?

请输入您的选择(1,2.3,4,5,6,?

);

图(6)主函数测试结果

(二)部分调用函数的测试

如图(4)是查找函数的测试,如图

5)是统计函数的测试。

*C:

\User5',Adniinistrat

I\!

\U$er$\Adfninistrjtor\Deiklop\^fi^t\Dcbd习分谿,诳

rk-rjPsAjrjri.rjrvmzzzrvtvnmrrur%wmvrurv他mnvruww

fi.WMUi'vA.VaMUi'vA.VUiVAWMUftrtW

AMvnrnnYWWAMvrvTVNWftMvnnwiwwnifvrvinmwMvrv

 

J)

#

单户户户口,户户

、王加我改滕一

<(.is.t_.f-H.fi^^

12345&7

i青瞒入您的选择(1.2,33,5,6,7)■6

2■

ass-

iiilrtLFE思ftt专芍.也=冃

进蹲》》»修籍户Bi報户

 

 

如图(4)查找函数的测试结果

如图(5)是统计函数的测试结果

五、总结

系统完成了对一个消费商店内部,进行的一次优惠打折活动,根据顾

客在本商店所进行的消费情况,对相关消费客户的信息进行了增加、删除和修改等的操作。

并且运用switch语句完成用户自行选择的要求,使得程序变得更加友善和谐,让用户根据每一步的提示来完成所需的操作,进而达到对有关消费客户的操作,并且与此次活动的优惠积分规定相一致,来计算顾客所得的积分及其相应的折扣。

并且完成了对消费客户信息的增加,删除,添改功能。

此外充分利用C语言的语法结构(顺序机构、循环结构及其选择机构),对整个程序进行了合理编写与调试。

尽量做到程序的简单、合理明白,加一些适当的注释说明部分。

系统不足:

这个系统的不足在于他不能的将客户的信息资料存储于磁

盘中,只能在完整的一次操作中,不退出此界面一直能有效正确的执行命

令。

但是退出一次之后,重新操作时,以前的客户信息就不再存在了。

因此,

这是还有待于我不断改进完善的地方。

我的收获:

在此次的C++课程设计中,通过设计掌握了C++课程及其数

据结构在以后学习C课程中的重要性。

数据机构中的基本理论和算法的综合应用是解决实际问题的重要手段。

在做这次课程设计中最让我得到提高的是自己的独立思考及实践能力,在完成此项设计的过程中,我利用各种和C有

关的工具书、相关的网络信息完成了一个关于客户消费积分管理系统的程序,

让我从中更多的了解了C这门语言及其有关知识,更让我对最初学C态度有了一个强烈转变——C中的奥秒就在于自己的不断探索与积累。

六、附件(代码)

{

charname[20];〃客户姓名charID[4];〃客户ID号doubleconsume;//客户消费

doubleinteger;//客户积分

enode*next;

};

voidCount(cnode*head)〃统计客户函数

{cnode*p;

inti=0;

p=head;

if(p->next==NULL)

{

printf("\n没有客户r);

}

else

{

while(p->next!

=NULL)

{

p=p->next;

i++;

}

}

printf("\n现有客户数量为%4位\门",i);

客户积分折扣函数

system("pause");

doubledisplay_discount(doublepoints)//{

doublediscount;if(points==0)

{discount=0;}elseif(points>0&&points<=50)

{discount=9.8;}

elseif(points>50&&points<=100)

{discount=9.5;}

elseif(points>100&&points<=200){discount=9.0;}

elseif(points>200&&points<=300)

{discount=8.0;}

elseif(points>300)

{discount=7.0;}

returndiscount;

}

voidInitstack(cnode*&head)

{

head=(cnode*)malloc(sizeof(cnode));//malloc函数开辟内存单元,分配cnode长度字节的

存储区

head-〉next=NULL;

}

voidGetelem(cnode*head)〃添加客户函数

{enode*p;

doubley;

p=(cnode*)malloc(sizeof(cnode));

printf(”请输入姓名:

");

scanf("%s",&p->name);

printf("请输入ID(4位):

”);

scanf("%s",&p->ID);

while(strlen(p->ID)!

=4)

{

printf("ID有误,请重新输入(4位):

");

scanf("%s",p->ID);

}

printf("请输入消费金额:

");

scanf("%lf",&p->consume);

p->integer=p->consume/100;

y=display_discount(p->integer);

printf("折扣:

%llf折\n",y);

p->next=head->next;

head->next=p;

system("pasue");

}

voidSearch(cnode*head,charname[])〃查找客户函数

{en

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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