ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:173.35KB ,
资源ID:19139223      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19139223.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计客户积分系统Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构课程设计客户积分系统Word格式文档下载.docx

1、具体规则:积分值大于2000,享受6折优惠;积分值大于500小于2000,享受7折优惠;积分值大于200小于500,享受8折优惠;积分值大于50小于200,享受9折优惠。1.3 数据结构设计Customer(客户)定义:typedef struct char no10; /客户编号 char name5; float points; /积分 float discount; /折扣Customer;顺序表定义:#define listinitsize 10#define listincrement 10typedef struct Customer * elem; int length; /当前

2、长度 int listsize; /当前分配的存储容量SqList;void InitSq(SqList &L) /动态分配顺序表存储空间 L.elem=(Customer*)malloc(listinitsize*sizeof(Customer); if(!L.elem) printf(Not able to allocate memory.n); exit(1); L.length=0; L.listsize=listinitsize;2 系统设计2.1 总体设计2.2 各功能模块的设计2.2.1 主函数main() 动态获取表空间,初始化顺序表,打开文件将客户数据加载入表中,进行表操作,

3、操作结束将表数据保存到文件,文件关闭。2.2.2 客户信息添加 遍历当前顺序表,若待添加的用户编号已存在,则返回用户已存在的提示信息;若待添加的用户不存在,则将该客户信息添加到顺序表最后,并将顺序表长度加1。2.2.3 客户信息删除 遍历当前顺序表,若要删除的用户标号不存在,则返回提示信息;否则提示用户是否确定删除,确定即删除。删除操作即将待删除记录的后面记录依次向前移动1步。2.2.4 客户信息更新遍历当前顺序表,若待更新的用户编号不存在,则返回用户不存在的提示信息;若待添加的用户存在,则提示输入新的信息。2.2.5 查找客户信息2.2.6 显示客户信息遍历顺序表,返回客户信息2.2.7 消

4、费积分清零遍历顺序表,将积分与折扣赋值为0;2.2.8 积分计算int points_cal(float consume) /积分计算规则 if(consume=0) cons=0;else if(consume=500) cons =consume/10; else if(consume=2000) cons =(consume-500)/8+50;=5000) cons =(consume-2000)/6+237; else cons =(consume-5000)/5+737;return cons;2.2.9 折扣计算double Discount(int discount) /折扣的

5、计算规则 if(m=0) discount=10;else if(m=50) discount =10; else if(m=200) discount =9;=500) discount =8;=2000) discount =7;else discount =6; return discount;3 系统调试1. 运行客户消费积分管理系统,主菜单如下:2.调用添加客户模块,添加客户信息3.测试删除模块4.测试更新模块其他模块测试类似。4 总 结本次课程设计,是我发现了很多不足,比如:1.软件设计阶段考虑不充分,导致编码时随机性大,方向性不明确;2.存储结构的选择分析不够充分,没有考虑其它可

6、行的存储实现(只用了动态数组);3.设计的系统安全性方面未能达到极高级别(后台文件可以随意更改); 此外,在系统调试阶段,我发还现了很多细节方面的不足,使我认识到设计一个系统并非想象中那么简单,而是需要考虑各个方面结果的。通过本次课程设计,我加深了对顺序存储结构的理解,更加熟悉了顺序表的基本操作,还有文件读写方面的知识得到了回顾。通过客户积分系统软件的设计,我基本熟悉了一般的软件开发流程,认识到前期设计的重要性与盲目编代码错误观点。总的来说,本次课程设计获益匪浅,既是对书本所学知识的回顾,更是对课本所学知识的运用。5 参考文献 1 严蔚敏,吴伟民.数据结构. M清华大学出版社,2005.2 何

7、钦铭,颜晖.C语言程序设计. M高等教育出版社,2008.附 录 源代码:#include #includestring.h /客户编号 char name5; /积分 float discount; /折扣 #define listinitsize 10 #define listincrement 10typedef struct /当前长度 int listsize; /当前分配的存储容量L) L.elem=(Customer *)malloc(listinitsize*sizeof(Customer); /动态分配顺序表存储空间 if(!exit(1); L.length=0;int m

8、ain(void) void Add(SqList &L);void Show(SqList &void Delete(SqList & void update(SqList &void Query(SqList &void Reset(SqList &SqList L;InitSq(L); char ch; Customer * newbase; FILE *fp; if(fp=fopen(1.txt,r)=NULL)File open error!n exit(0); Customer customer; int c=0,f; ch=fgetc(fp) ;rewind(fp); if(ch

9、=EOF) printf(文件为空! else fscanf(fp,%s%s%f%f,customer.no,customer.name,&customer.discount,&customer.points); while(!feof(fp) L.elemc=customer; c+; L.length+; if(L.length=L.listsize) newbase=(Customer *)realloc(L.elem,(L.listsize+listincrement)*sizeof(Customer); if(!newbase) L.elem=newbase; L.listsize+

10、=listincrement; printf(输入你要选择的操作:nt1-添加顾客信息nt2-删除顾客信息nt3-更新顾客信息nt4-查找顾客信息nt5-显示所有顾客信息nt6-清零所有客户的消费积分nt0-退出n*n请选择操作:scanf(%d,&f); while(f!=0) switch(f)case 1: Add(L);break;case 2:Delete(L);case 3:update(L);case 4:Query(L);case 5:Show(L);case 6:Reset(L);default:请输入正确的操作! break; if(fclose(fp)Can not cl

11、ose the file error!exit(0);w+ for(int i=0;i=L.length) printf(没有该顾客信息! char no110,xx; int cc=1;输入你要删除的顾客的编号:,no1);您确定要删除%s号客户的信息吗?n确定-Y,取消-N:xx); if(xx=Y|xx=y)i+) if(strcmp(L.elemi.no,no1)=0) for(int j=i;jj+) L.elemj=L.elemj+1; L.length-;顾客信息删除完毕! cc=0; if(cc=0) break;=L.length) printf(您所要删除的顾客信息不存在或

12、已删除! else if(xx=Nn) printf(您的删除操作已取消!int points_cal(float consume) /积分计算规则 int ss=0;=0) ss=0;=500) ss=consume/10;=2000) ss=(consume-500)/8+50;=5000) ss=(consume-2000)/6+237; else ss=(consume-5000)/5+737; return ss;double Discount(int m) /折扣的计算规则 double ee;=50) ee=10; else if(m=200) ee=9;=500) ee=8;=

13、2000) ee=7; else ee=6; return ee;void update(SqList & char no210;float sum;int i,x,y;输入您所要更新顾客的编号:,no2); for(i=0; if(strcmp(L.elemi.no,no2)=0) break;顾客信息不存在。 else 选择你要的操作:1-增加积分,2-减少积分:x); if(x=1) printf(输入本次一次性消费的金额:%fsum); L.elemi.points+=points_cal(sum); L.elemi.discount=Discount(L.elemi.points); else printf(输入本次使用的积分值:y); L.elemi.points-=y; L.elemi.discount=Discount(L.elemi.points);顾客更新后的信息:L)/清零所有客户的积分 L.elemi.points=0;L.elemi.discount=10;

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

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