《2022年客户消费积分管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《2022年客户消费积分管理系统课程设计.docx(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选学习资料 - - - - - - - - - 数据结构课程设计报告设计题目:专业软件工程名师归纳总结 班级0902 班第 1 页,共 9 页学生周雷学号09430225 指导老师张雪- - - - - - -精选学习资料 - - - - - - - - - 21.客户消费积分治理系统问题描述:针对客户的消费情形,进行客户治理,依据客户的消费积分对客户实施不同程 度的打折优惠;1.采纳肯定储备结构进行客户信息储备;2.对客户信息可以修改、删除、添加;3.能够依据消费情形进行客户积分运算;4.依据积分情形实行不同程度的打折优惠;1.本程序对于客户消费积分治理系统利用线性表的链表储备方式,使用结
2、构体指针将每一个用户联系起来;使用结构体指针的链表动态链接形式将便于客户的封装,节约空间,便于 插入和删除;2.程序中设计了添加用户查找用户修改用户删除用户统计客户数量的功能;3.添加用户:函数 void Getelem cnode *head; 添加用户中,采纳结构体将每个用户的信 息封装, 其中包括用户姓名 name、用户省份证号 ID 、用户消费金额 consume、积分 integer 的信息;输入一个客户信息后再开创新的节点连接;开一个空间加一个用户可以节约空间,解决实现开创的空间不够的问题;4.void Searchcnode *head,char ID; 查找用户利用指针一个一个
3、用户比对信息知道,直 到找到正确信息并显示;5void Amendcnode *head,char ID; 查找并显示然后修改;6void Deletecnode *head,char ID; 查找显示并删除;7void Showallcnode *head; 遍历链表并显示客户;8void countcnode *head;遍历统计客户数量显示 9double display_discountdouble integer;运算客户折扣, 每次显示用户信息调用一次保证 客户为最新打折信息;主函数 主菜单添加用户查找用户修改用户删除用户统计客户数量退出;各个函数通 过调用头结点连接;4功能模块具
4、体设计、运行结果;客户消费积分打折操作系统添查删修显统加找除改示计添查删修修统名师归纳总结 加找除改改计第 2 页,共 9 页客客客客信客户户户户息户- - - - - - -精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 9 页精选学习资料 - - - - - - - - - 源代码:#include stdio.h #include stdlib.h #include string.h typedef struct cnode char name20; char ID20; double consume; double intege
5、r; struct cnode *next;cnode; void Initstackcnode * &head/* 初始化链表 */ head= cnode*mallocsizeofcnode; /开创节点空间 head-next=NULL; void Getelem cnode *head; void Searchcnode *head,char ID; void Amendcnode *head,char ID; void Deletecnode *head,char ID; void Showallcnode *head; void countcnode *head; double d
6、isplay_discountdouble integer; void main cnode *head; int choice; char y20; Initstackhead; do printfn; printf 客户消费 积分治理系统 nn; printf *; printfn * *n; printfn * 主菜单 *n; printfn * 1 添加客户 *n; printfn * 2 查找客户 *n; printfn * 3 修改客户 *n; printfn * 4 删除客户 *n; printfn * 5 显示客户 *n; printfn * 6 统计客户 *n; printf
7、n * 7 退出 *n; printfn * *n; printf *; printfn 请输入您的挑选 1,2,3,4, 5,6:; scanf%d,&choice; ifchoice=1 名师归纳总结 Getelemhead; /添加第 4 页,共 9 页- - - - - - -精选学习资料 - - - - - - - - - else ifchoice=2 printfn 请输入您查找客户的身份证号:; scanf%s,y; whilestrleny.=18 printf 身份证号码位数有误请重新输入 18 位:; scanf%s,y; Searchhead,y; /查找 else i
8、fchoice=3 printfn 请输入您想修改客户的身份证号:; scanf%s,y; whilestrleny.=18 printf 身份证号码位数有误请重新输入 18 位:; scanf%s,y; Amendhead,y; /修改 else ifchoice=4 printfn; printf 请输入你想要删除的客户的身份证号:; scanf%s,y; Deletehead,y; /删除 else ifchoice=5 printfn; Showallhead; /显示 else ifchoice=6 printfn; counthead; /统计 else ifchoice=7 ex
9、it1;whilechoicename; printf 请输入身份证号 18 位 :; scanf%s,&p-ID; whilestrlenp-ID.=18 printf 身份证号码位数有误请重新输入 18 位:; scanf%s,&p-ID; printf 请输入消费金额:; scanf%lf,&p-consume; p-integer=p-consume/100; y=display_discountp-integer; printf 折扣 :; printf%.1lf,y; /调用函数运算折扣名师归纳总结 - - - - - - -第 5 页,共 9 页精选学习资料 - - - - -
10、- - - - printf 折n; p-next=head-next; head-next=p; void Searchcnode *head,char ID cnode *p; double y; p=head; ifp-next=NULL printf 没有客户 .n; else whilep-next.=NULL p=p-next; ifstrcmpID,p-ID=0 printf 姓名: ; /判定身份证号是否相同printf%sn,p-name; printf 身份证号: ; printf%sn,p-ID; printf 消费: ; printf%.2lfn,p-consume;
11、printf 积分 :; printf%lfn,p-integer; y=display_discountp-integer; printf 折扣 :; printf%.1lf,y; printf 折 n; void Amendcnode *head,char ID /修改客户函数 cnode *p; double y,z; int choose,x; p=head; ifp-next=NULL printf 没有客户 .n; else whilep-next.=NULL p=p-next; ifstrcmpID,p-ID=0 printf 姓名: ; /判定身份证号是否相同printf%sn
12、,p-name; printf 身份证号: ; printf%sn,p-ID; printf 消费: ; printf%.2lfn,p-consume; printf 积分 :; printf%lfn,p-integer; 名师归纳总结 - - - - - - -第 6 页,共 9 页精选学习资料 - - - - - - - - - y=display_discountp-integer; printf 折扣 :; printf%.1lf,y; printf 折 n; printf 请挑选你要修改的 scanf%d,&choose; ifchoose=1 1、姓名; 2、身份证号; 3、消费金
13、额; ; printf 请输入修改后姓名 ; scanf%s,&p-name; ifchoose=2 printf 请输入修改后的身份证号 :; scanf%s,&p-ID; whilestrlenp-ID.=18 printf 身份证号码位数有误请重新输入 18 位:; scanf%s,&p-ID; ifchoose=3 printf1. 掩盖以前消费、2.续加上现在费用.请挑选 :; scanf%d,&x; ifx=1 printf 请输入修改后的消费 :; scanf%lf,&p-consume; else printf 请输入续加金额 :; scanf%lf,&z; p-consume
14、+=z; printf 姓名: ; printf%sn,p-name; printf 身份证号: ; printf%sn,p-ID; printf 消费: ; printf%.2lfn,p-consume; p-integer=p-consume/100; printf 积分 :; printf%lfn,p-integer; y=display_discountp-integer; printf 折扣 :; printf%.1lf,y; printf 折 n; void Deletecnode *head,char ID /删除客户函数 cnode *p; int x; double y; p
15、=head; ifp-next=NULL 名师归纳总结 - - - - - - -第 7 页,共 9 页精选学习资料 - - - - - - - - - printf 没有客户 .n; else whilep-next.=NULL head=p; p=p-next; ifstrcmpID,p-ID=0 printf 姓名: ; /判定身份证号是否相同printf%sn,p-name; printf 身份证号: ; printf%sn,p-ID; printf 消费: ; printf%.2lfn,p-consume; printf 积分 :; printf%lfn,p-integer; y=d
16、isplay_discountp-integer; printf 折扣 :; printf%.1lf,y; printf 折 n; printf 你确认删除? 1、确定; 2、取消;请请挑选 :; scanf%d,&x; ifx=1 head-next=p-next; printf 删除胜利 .; else printf 删除失败 .; void Showallcnode *head /显示全部客户函数 cnode *p; double y; p=head; ifp-next=NULL printf 没有客户 .n; else whilep-next.=NULL p=p-next; print
17、f 姓名: ; printf%sn,p-name; printf 身份证号: ; printf%sn,p-ID; printf 消费: ; printf%.2lfn,p-consume; printf 积分 :; printf%lfn,p-integer; y=display_discountp-integer; printf 折扣 :; 名师归纳总结 - - - - - - -第 8 页,共 9 页精选学习资料 - - - - - - - - - printf%.1lf,y; printf 折n; void countcnode *head /显示全部客户函数 cnode *p; int i
18、=0; p=head; ifp-next=NULL printf 没有客户 .n; else whilep-next.=NULL p=p-next; i+; printf 现有客户数量为 %d 位 .,i; double display_discountdouble points / 运算客户折扣函数,接受一个 double 型的数作为 参数,输出对应的折扣double discount; ifpoints = 0 discount = 0; ifpoints 0&points 50&points 100&points 150&points 200&points 300 discount = 7; return discount; 名师归纳总结 - - - - - - -第 9 页,共 9 页