客户消费积分管理系统-数据结构设计报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

广州XX学院

课程设计报告

课程数据结构与算法

题目李CC 专业计算机科学与技术

指导教师 XX 班级计科XX 学号 22姓名李XX

2020年1月3日

《数据结构与算法》课程设计任务书

银行排队系统的设计与实现

一、设计要求

1.问题描述

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

2.需求分析

(1)采用一定存储结构进行客户信息存储;

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

(3)能够根据消费情况进行客户积分的累加;

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

(5)演示程序以用户和计算机的对话方式进行。

二、概要设计

1.主界面设计

为了实现“客户消费积分管理系统”的各项功能,首先设计一个含有多个菜单项的主控菜单子程序,以链接系统的各项子功能,方便用户使用本系统。本系统主控菜单运行界面如下图1所示。

2.存储结构设计

本系统采用链表存储客户消费积分管理系统中的客户信息。

3.系统功能设计

本系统分为以下7个功能模块。

(1)添加客户:添加客户需要输入客户的姓名、身份证号码、电话号码、消费金额,在输入消费金额后系统会自动计算出该用户获得的积分,并且输出对应折扣到该客户信息中。

(2)查找客户:查找需要输入客户相应的身份证号码。

(3)修改客户:可以单独选择修改客户的姓名、身份证号码、电话号码、消费金额,也可以一次性全都修改。

(4)删除客户:查找到需要删除的客户即可一键删除。

(5)显示客户:显示外部文件保存的所有客户的信息。

(6)统计客户:统计客户总数。

(0)保存退出:保存所有修改删除操作到文件中。

三、模块设计

1.模块设计

本程序包含3个模块:主程序模块、菜单选择模块和链表操作模块。调用关系如图所示。

2.系统子程序及功能设计

本系统共设置13个函数,包括主函数。各函数名及功能说明如下。

(1) int menu_select()//菜单函数

(2) void Getelem (cnode *head) //添加客户函数以头节点为参数

(3) void Search(cnode *head,char ID[])//查找函数

(4) void Amend(cnode *head,char ID[])//修改客户函数

(5) void Delete(cnode *head,char ID[])//删除客户函数

(6) void Showall(cnode *head) //显示所有客户函数

(7) void count(cnode *head) //显示所有客户总数

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

(10) cnode *creslink()//以创建新链表的方式读取文件数据

(11) void WritetoText(cnode *head) //将所有记录写入文件

(12) void main()//主函数

3.函数主要调用关系图

四、详细设计

1.数据类型定义

(1)数组的结构体定义

typedef struct cnode{

char name[20]; //名字

char ID[20]; //身份证6位

char tnumber[20];//电话

double consume; //消费金额

double integer; //积分

double discount; //折扣

struct cnode *next;}cnode;

(2)初始化链表

void Initstack(cnode *head)/*初始化链表*/{

head= (cnode*)malloc(sizeof(cnode)); //开辟节点空间

head->next=NULL;

}//头指针指向下一空节点

(3) 全局变量的定义

double display_discount(double integer);//定义折扣函数

int customer_number = 0;//初始客户数量

系统主要子程序详细设计

(1)添加客户函数

void Getelem (cnode *head) //添加客户函数以头节点为参数{ cnode *p;

double y;

p=(cnode*)malloc(sizeof(cnode));/*申请空的节点空间*/

printf("\n请输入姓名:");

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

printf("请输入身份证号:");

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

printf("请输入电话号码:");

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

printf("请输入消费金额:");

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

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

printf("对应积分:%lf\n",p->integer);

y=display_discount(p->integer); //调用函数计算折扣

printf("折扣:%.1lf折",y);

printf("\n");

p->discount=y;

printf("添加客户成功!\n\n");

customer_number++;

p->next=head->next;

head->next=p;

}

相关文档
最新文档