客户消费积分管理系统-数据结构设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;
}