




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计(论文)任务书 软件 学院 软件工程+交通运输 专业 2013-2 班 一、课程设计(论文)题目 客户消费积分管理系统的设计与实现 二、课程设计(论文)工作自 2015 年 1 月 5 日起至 2015 年 1月 9 日止。三、课程设计(论文) 地点: 创新大楼机房 四、课程设计(论文)内容要求:1课程设计的目的为了配合数据结构课程的教学,使学生能更深刻的领会数据结构课程的重要性,特开设此课程设计;编写一些在特定数据结构上的算法,通过上机调试,更好的掌握各种数据结构及其特点,培养学生综合运用所学理论知识解决复杂实际问题的实践能力、研究性学习能力和团队合作能力。2课程设计的任务及要求1)
2、基本要求(1)课程设计前必须选定课程设计题目,并认真进行需求分析与系统设计; (2)上机调试之前要认真准备实验程序及调试时所需的测试数据;(3)独立思考,独立完成,严禁抄袭,调试过程要规范,认真记录调试结果; (4)上机结束后认真规范撰写课设报告,对设计进行总结和讨论。2)课程设计论文编写要求(1)要按照书稿的规格撰写打印课设论文(2)论文包括任务书、目录、绪论、正文、总结、参考文献、附录等(3)正文中要有问题描述、抽象数据类型的定义、数据的存储结构、设计的求解算法、算法的实现、调试分析与测试结果(4)课设论文装订按学校的统一要求完成3)课设考核从以下几方面来考查:(1)考勤和态度; (2)任
3、务的难易程度及设计思路;(3)动手调试能力;(4)论文撰写的水平、格式的规范性。4)参考文献1 严蔚敏, 吴伟民. 数据结构(c语言版)m. 北京:清华大学出版社, 2007年.2 严蔚敏, 吴伟民. 数据结构题集(c语言版)m. 北京:清华大学出版社, 2007年.3 谭浩强. c语言程序设计m. 北京:清华大学出版社,2006年.5)课程设计进度安排内容 天数地点构思及收集资料 1图书馆程序设计与调试 3计算机房撰写论文 1图书馆6)任务及具体要求客户消费积分管理系统的设计与实现(1)采用一定的存储结构进行信息的存储;(2)对客户的信息可以进行修改,删除,添加;(3)能够根据消费情况进行积
4、分的累加;(4)根据积分情况,对客户实行不同程度的打折优惠;学生签名: 2015年1 月 9 日课设周的星期一课程设计(论文)评审意见(1)考勤和态度 :优()、良()、中()、一般()、差()(2)任务难易及设计思路 :优()、良()、中()、一般()、差()(3)动手调试能力评价 :优()、良()、中()、一般()、差()(4)论文撰写水平及规范性评价:优()、良()、中()、一般()、差()评阅人: 职称: 讲师 2015年1 月 9 日目录各个章节使用标题格式,然后利用菜单插入-引用-索引和目录 自动生成目录一级目录黑体4号,二级目录宋体小4,三级目录楷体小4 ,都是黑色的。1.绪 论
5、21.1需求分析21.1.1基本功能需求21.1.2非功能需求21.2系统功能要求22.概要设计设计33.详细设计53.1添加客户:void getelem(cnode*head)53.2查找客户voidsearch(cnode*head,char name)93.3修改客户void amend(cnode*head,char name)113.4删除客户:void delete(cnode*head,char name)133.5统计客户积分:count(cnode*head,char name)164.调试分析与结果185.总结26.参考文献37.附 录4华东交通大学课程设计1. 绪 论1
6、.1 需求分析1.1.1 基本功能需求本设计应该同时完成以下功能: 添加用户 查找用户 修改用户 删除用户充分满足对于管理系统的要求。1.1.2 非功能需求有简洁、易用、易懂、友好的用户界面。操作人群应该是能操作电脑的人都能使用该系统1.2 系统功能要求针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。 采用一定的存储结构进行客户信息的存储; 对客户的信息可以进行修改、删除、添加; 能够根据消费情况进行客户积分的累加; 根据积分情况,对客户实行不同程度的打折优惠;2. 概要设计设计通过对系统功能的分析,客户消费积分管理系统功能如图2-1所示。客户消费积分管理系统
7、修改函数显示函数查找函数添加函数删除函数图2-1客户消费管理系用统图由图可知,建立一个客户消费积分管理系统,首先要定义一个抽象数据类型来储存客户的基本信息,其中包括客户的姓名,卡号,消费价格以及打折情况。我们用malloc函数来分配内存空间存储客户的基本信息。在这个系统中,我们主要用到五个模块:1、 添加客户信息:在这个函数中我们可以添加客户的信息,会员卡号,我们还可以在这个函数中记录客户的消费金额,打折情况。这些功能主要借助void getelem(cnode*head)函数来完成。2、 修改客户信息:我们首先通过姓名查找到所要修改客户的信息,然后我们就可以修改该客户的姓名,会员卡号,消费金
8、额,这些我们都是通过void amend(cnode*head,char name)函数来实现的3、 查找客户信息:我们也是通过查找客户的姓名来查客户的消费信息的,查到之后我们可以看到客户的消费的金额,积分,以及享受的折扣情况,这个我们主要通过void search(cnode*head,char name)函数来完成的。4、 删除客户信息:就是把指定的客户信息全部删除,这个我们是通过void delete(cnode*head,char name)完成的 5、 显示客户信息:就是把所有的客户信息全部显示出来我们是通过void showall(cnode*head)函数来显示所有的客户信息的抽
9、象数据类型的定义为:typedef struct cnodechar name20;/客户姓名char id4;/客户id号double consume;/客户消费double integer;/客户积分struct cnode *next;cnode;3. 详细设计3.1 添加客户:void getelem(cnode*head)分析:首先选择的添加客户的指令,然后输入客户的基本信息。客户的姓名,客户的id消费卡号,如果输入的不正确则需要提示重输,还有就是客户的消费金额,这样才能计算后面的积分优惠折扣。最后就显示该添加客户的信息。模块图如图(2)所示,流程图如图(3)所示。添加客户信息打折情
10、况会员卡号消费金额客户姓名图3-1 模块图开始输入姓名输入卡号正确错误输入消费金额重新输入卡号显示打折情况,并结束图3-2流程图该模块的具体代码如下所示:#include/标准的输入输出库函数#include/动态存储分配函数#include/字符串函数typedef struct cnodechar name20;/客户姓名char id4;/客户id号double consume;/客户消费double integer;/客户积分struct cnode *next;cnode;double display_discount(double points)/客户积分折扣函数double di
11、scount;if(points10&points50&points100&points200&points30)discount=6; return discount;void initstack(cnode*head)head=(cnode*)malloc(sizeof(cnode);/malloc函数开辟内存单元,分配cnode长度字节的存储区head-next=null;void getelem(cnode*head)/添加客户函数cnode*p;double y;p=(cnode*)malloc(sizeof(cnode);printf(请输入姓名:);scanf(%s,&p-nam
12、e);printf(请输入id(6位):);scanf(%s,&p-id);while(strlen(p-id)!=6)printf(id有误,请重新输入(6位):);scanf(%s,p-id);printf(请输入消费金额:);scanf(%lf,&p-consume);p-integer=p-consume/10;y=display_discount(p-integer);printf(折扣:%.2f折n,y);p-next=head-next;head-next=p;/主函数void main()cnode*head;int choice,a;char name10;initstack
13、(&head);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 * 8.退出 *);printf(n *);printf(n 请输入您的选择(1,2,3,4,5,6,7,8):);for(a
14、=1;a+)scanf(%d,&choice);switch(choice)case 1: getelem(&head);break;case 8: exit(1);break;default:printf(输入错误!);运行结果如图3-3所示图3-3运行结果3.2 查找客户voidsearch(cnode*head,char name)分析:首先要确定系统有没有该客户,如果没有就返回没有客户!假如有就返回可会的详细信息,并显示在屏幕上。该函数的流程图如图3-4所示开始输入要查找的客户姓名存在不存在结束打印没有该客户!打印该客户的详细信息图3-4查找客户流程图该模块的代码实现如下所示:void
15、 search(cnode*head,char name)/查找客户函数 cnode*p;double y;int flag=0;p=head;if(p-next=null)printf(n没有客户!);elsewhile(p-next!=null)p=p-next;if(strcmp(name,p-name)=0)y=display_discount(p-integer);printf(姓名:%sn,p-name);printf(id:%sn,p-id);printf(消费:%.2fn,p-consume);printf(积分:%.2fn,p-integer);printf(折扣:%.2f折
16、n,y);flag=1;if(!flag)printf(该客户不存在!n);运行结果如图3-5所示:图3-53.3 修改客户void amend(cnode*head,char name)分析:首先要确定系统里有没有该客户,在有客户的条件下对所在客户的相关信息进行修改。可以修改的客户信息有客户的姓名,会员卡号以及消费金额,最后再把客户的详细信息显示在屏幕上。流程图如图(7)所示开始输入查找的客户存在不存在显示客户信息,并提示可以修改的信息没有该客户显示客户信息结束根据提示修改信息图3-6修改客户信息流程图该模块的具体实现代码如下:void amend(cnode*head,char name)
17、/修改客户函数cnode*p;double y,z;int choose, x;p=head;if(p-next=null)printf(n没有客户!);elsewhile(p-next!=null)p=p-next;if(strcmp(name,p-name)=0)printf(姓名:%sn,p-name); printf(id:%sn,p-id); printf(消费:%.2fn,p-consume); printf(积分:%.2fn,p-integer); y=display_discount(p-integer); printf(折扣:%.2f折n,y);printf(n请选择您要修改
18、的资料:1.姓名 2.会员卡号3.消费金额n);scanf(%d,&choose);switch(choose)case 1: printf(请输入修改后的姓名:); scanf(%s,p-name);break;case 2: printf(请输入修改后的会员卡号:); scanf(%s,p-id);break; while(strlen(p-id)!=6) printf(卡号有误,请重输(6位):); scanf(%s,p-id); break;case 3: printf(请选择:1覆盖以前的消费. 2续加上现在的消费.); scanf(%d,&x);switch(x)case 1:pr
19、intf(请输入修改后的消费:); scanf(%d,&p-consume);break;case 2:printf(请输入续加金额:);scanf(%d,&z);p-consume+=z;break;printf(姓名:%sn,p-name);printf(id:%sn,p-id);printf(消费额:%.2fn,p-consume);p-integer=p-consume/100;printf(积分:%.2fn,p-integer);y=display_discount(p-integer);printf(折扣:%.2f折n,y);运行结果如图3-7所示:图3-73.4 删除客户:voi
20、d delete(cnode*head,char name)分析:首先也是要确定系统里有没有该客户,在有客户的条件下对所在客户的相关信息进行删除。首先输入所要删除的客户的姓名,然后就是对所选定的客户进行删除,在删除结束时,会出现是否删除成功的提示语,以便进行慎重的删除操作。流程图如图3-8所示开始输入要删除的客户存在不存在客户不存在显示客户信息是否确认删除结束删除失败否是结束删除成功图3-8删除客户流程图该模块的具体实现代码如下:void delete(cnode*head,char name)/删除客户函数cnode*p;int x;double y;p=head;if(p-next=nul
21、l)printf(n没有客户!);elsewhile(p-next!=null)head=p;p=p-next;if(strcmp(name,p-name)=0) printf(姓名:%sn,p-name); printf(会员卡号:%sn,p-id); printf(消费:%.2fn,p-consume); printf(积分:%.2fn,p-integer); y=display_discount(p-integer); printf(折扣:%.2f折n,y); printf(确认删除? 1确认 2取消 请选择:);else printf(n没有客户!);scanf(%d,&x);if(x
22、=1)head-next=p-next;printf(删除成功!);elseprintf(删除失败!);printf(n);运行结果如图(10)图3-93.5 统计客户积分:count(cnode*head,char name)分析:首先还是要确定该客户消费积分系统有没有客户,在有客户的条件下把客户的积分累加。最终将所有客户的相关信息显示在屏幕上。流程图如图3-10开始输入客户姓名客户不存在输入消费金额结束显示积分图3-10积分累加流程图该模块的的具体实现代码如下:count(cnode*head,char name)/统计客户积分函数 cnode*p;int y;int flag=0;p=h
23、ead;if(p-next=null)printf(n没有客户!);elsewhile(p-next!=null)p=p-next;if(strcmp(name,p-name)=0)printf(请输入消费金额:);scanf(%lf,&p-consume);p-integer+=p-consume/10;printf(姓名:%sn,p-name);printf(会员卡号:%sn,p-id);printf(消费:%.2fn,p-consume);printf(积分:%.2fn,p-integer);flag=1;if(!flag)printf(该客户不存在!n);运行结果如图3-11图3-11
24、174. 调试分析与结果4-1添加客户函数4-2查找客户函数4-3删除客户函数 34-4显示客户函数4-5统计客户积分4-6显示所有客户函数5. 总结系统完成了对一个消费商店内部,进行的一次优惠打折活动,根据顾客在本商店所进行的消费情况,对相关消费客户的信息进行了增加、删除和修改等的操作。并且运用switch语句完成用户自行选择的要求,使得程序变得更加友善和谐,让用户根据每一步的提示来完成所需的操作,进而达到对有关消费客户的操作,并且与此次活动的优惠积分规定相一致,来计算顾客所得的积分及其相应的折扣。并且完成了对消费客户信息的增加,删除,添改功能。此外充分利用c语言的语法结构(顺序机构、循环结
25、构及其选择机构),对整个程序进行了合理编写与调试。尽量做到程序的简单、合理明白,加一些适当的注释说明部分。系统不足:这个系统的不足在于他不能的将客户的信息资料存储于磁盘中,只能在完整的一次操作中,不退出此界面一直能有效正确的执行命令。但是退出一次之后,重新操作时,以前的客户信息就不再存在了。因此,这是还有待于我不断改进完善的地方。我的收获:在此次的c+课程设计中,通过设计掌握了c+课程及其数据结构在以后学习c课程中的重要性。数据机构中的基本理论和算法的综合应用是解决实际问题的重要手段。在做这次课程设计中最让我得到提高的是自己的独立思考及实践能力,在完成此项设计的过程中,我利用各种和c有关的工具
26、书、相关的网络信息完成了一个关于客户消费积分管理系统的程序,让我从中更多的了解了c这门语言及其有关知识,更让我对最初学c态度有了一个强烈转变c中的奥秒就在于自己的不断探索与积累。6. 参考文献1 严蔚敏, 吴伟民. 数据结构(c语言版)m. 北京: 清华大学出版社, 2007.2 (美)凯尼格 .c陷阱与陷阱m. 北京:社人民邮电出版社,2008.3 谭浩强.c语言程序设计m. 北京: 清华大学出版社,2008.4 谢欣,刘觉夫,王更生.c+程序设计m. 北京:北京邮电大学出版社,2010.5刘振安,刘燕君.c语言解惑m. 北京:机械工业出版社,2007.7. 附 录#include/标准的输
27、入输出库函数#include/动态存储分配函数#include/字符串函数typedef struct cnodechar name20;/客户姓名char id6;/客户id号double consume;/客户消费double integer;/客户积分struct cnode *next;cnode;count(cnode*head,char name)/统计客户积分函数 cnode*p;int y;int flag=0;p=head;if(p-next=null)printf(n没有客户!);elsewhile(p-next!=null)p=p-next;if(strcmp(name,
28、p-name)=0)printf(请输入消费金额:);scanf(%lf,&p-consume);p-integer+=p-consume/10;printf(姓名:%sn,p-name);printf(会员卡号:%sn,p-id);printf(消费:%.2fn,p-consume);printf(积分:%.2fn,p-integer);flag=1;if(!flag)printf(该客户不存在!n);double display_discount(double points)/客户积分折扣函数double discount;if(points10&points50&points100&po
29、ints200&points30)discount=6; return discount;void initstack(cnode*head)head=(cnode*)malloc(sizeof(cnode);/malloc函数开辟内存单元,分配cnode长度字节的存储区head-next=null;void getelem(cnode*head)/添加客户函数cnode*p;double y;p=(cnode*)malloc(sizeof(cnode);printf(请输入姓名:);scanf(%s,&p-name);printf(请输入会员卡号(6位):);scanf(%s,&p-id);
30、while(strlen(p-id)!=6)printf(卡号有误,请重新输入(6位):);scanf(%s,p-id);printf(请输入消费金额:);scanf(%lf,&p-consume);p-integer=p-consume/10;y=display_discount(p-integer);printf(折扣:%.2f折n,y);p-next=head-next;head-next=p;void search(cnode*head,char name)/查找客户函数 cnode*p;double y;int flag=0;p=head;if(p-next=null)printf(
31、n没有客户!);elsewhile(p-next!=null)p=p-next;if(strcmp(name,p-name)=0)y=display_discount(p-integer);printf(姓名:%sn,p-name);printf(会员卡号:%sn,p-id);printf(消费:%.2fn,p-consume);printf(积分:%.2fn,p-integer);printf(折扣:%.2f折n,y);flag=1;if(!flag)printf(该客户不存在!n);void amend(cnode*head,char name)/修改客户函数cnode*p;double
32、y,z;int choose, x;p=head;if(p-next=null)printf(n没有客户!);elsewhile(p-next!=null)p=p-next;if(strcmp(name,p-name)=0)printf(姓名:%sn,p-name); printf(会员卡号:%sn,p-id); printf(消费:%.2fn,p-consume); printf(积分:%.2fn,p-integer); y=display_discount(p-integer); printf(折扣:%.2f折n,y);printf(n请选择您要修改的资料:1.姓名 2.会员卡号3.消费金
33、额n);scanf(%d,&choose);switch(choose)case 1: printf(请输入修改后的姓名:); scanf(%s,p-name);break;case 2: printf(请输入修改后的会员卡号:); scanf(%s,p-id);break; while(strlen(p-id)!=6) printf(卡号有误,请重输(6位):); scanf(%s,p-id); break;case 3: printf(请选择:1覆盖以前的消费. 2续加上现在的消费.); scanf(%d,&x);switch(x)case 1:printf(请输入修改后的消费:); sc
34、anf(%d,&p-consume);break;case 2:printf(请输入续加金额:);scanf(%d,&z);p-consume+=z;break;printf(姓名:%sn,p-name);printf(会员卡号:%sn,p-id);printf(消费额:%.2fn,p-consume);p-integer=p-consume/100;printf(积分:%.2fn,p-integer);y=display_discount(p-integer);printf(折扣:%.2f折n,y);void delete(cnode*head,char name)/删除客户函数cnode*
35、p;int x;double y;p=head;if(p-next=null)printf(n没有客户!);elsewhile(p-next!=null)head=p;p=p-next;if(strcmp(name,p-name)=0) printf(姓名:%sn,p-name); printf(会员卡号:%sn,p-id); printf(消费:%.2fn,p-consume); printf(积分:%.2fn,p-integer); y=display_discount(p-integer); printf(折扣:%.2f折n,y); printf(确认删除? 1确认 2取消 请选择:);
36、else printf(n没有客户!);scanf(%d,&x);if(x=1)head-next=p-next;printf(删除成功!);elseprintf(删除失败!);printf(n);void showall(cnode*head)/显示客户函数cnode*p;double y;p=head;if(p-next=null)printf(没有客户!);elsewhile(p-next!=null)p=p-next;y=display_discount(p-integer); printf(姓名:%sn,p-name); printf(id:%sn,p-id); printf(消费:%.2fn,p-consume); printf(积分:%.2fn,p-integer); y=display_discount(p-integer); printf(折扣:%.2f折n,y);/主函数void main()cnode*head;int choice,a;char name10;initstack(&head);printf(n);printf( $ 客户消费积分管理系统 $n);printf(n *);printf(n * *);printf(n * *);printf(n * 1.添加客户
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年新教材高中化学 专题4 硫与环境保护 3 防治二氧化硫对环境的污染(1)教学实录 苏教版必修1
- 2024秋五年级英语上册 Unit 3 What would you like part B 第一课时教学实录 人教PEP
- 安全隐患报告奖励制度
- 2024-2025学年高中物理 第4章 2 共点力平衡条件的应用 3 平衡的稳定性(选学)教学实录 教科版必修1
- 浙教版八年级数学上册教学计划(含进度表)
- 35crmo最大淬火直径
- matlab中停止运行代码的逻辑
- 教学工作全面具体安排计划
- 关注社会责任的年度活动计划
- 2025年受体激动阻断药项目发展计划
- 项目立项申请说明(共6篇)
- 供应商自我申报表
- 特种设备作业人员体检表(叉车)
- 委托付款三方协议中英文版
- 含有逻辑谬论的句子
- 个人简历word模板免费4篇
- LNG汽车天然气发动机结构及工作原理
- 2023江苏省高考英语词汇表(3500-有序号-新增与变化)
- 新版PEP小学英语三到六年级各单元重点单词与句型汇总复习进程
- 稿件修改说明(模板)
- 终末期肾病常规血液透析导入治疗临床路径
评论
0/150
提交评论