版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计报告设计题目:客户消费积分系统学院、系:电子与信息工程学院专业班级:学生姓名:指导教师:成绩:2013年1月8日目录1、需求分析21.1 问题描述31.2 基本要求32、概要设计32.1 数据结构.42.2 程序模块.42.3 各模块之间的调用关系以及算法设计.43、详细设计.54、测试与分析.65、总结.106、附录.111、需求分析:1.1问题描述1、采用动态分配顺序表存储客户信息,并用文件保存和读写数据2、能对客户信息进行添加、查询、修改、删除等基本操作3、根据客户消费额,合理计算出客户消费所得积分4、根据客户积分值,实行不同情况的优惠(即计算折扣)1.2基本要求进行添加客户时要
2、注意不能超过所定义数组的最大容量,查找时输入的身份证号要求为18位,本程序能对客户信息进行添加、查询、修改、删除等基本操作,根据客户消费额,合理计算出客户消费所得积分,根据客户积分值,实行不同情况的优惠。2、概要设计:1 .数据结构线性表的抽象数据类型定义InitList前置条件:线性表不存在输入:无功能:线性表的初始化输出:无后置条件:一个空的线性表DestroyList前置条件:线性表已存在输入:无功能:销毁线性表输出:无后置条件:释放线性表所占的内存空间Length前置条件:线性表已存在输入:无功能:求线性表的长度输出:线性表中元素个数后置条件:、线性表不变Get前置条件:线性表已存在输
3、入:元素的序号i功能:在线性表中去序号为i的元素输出:如果序号合法,返回序号为i的元素值,否则抛出异常后置条件:、线性表不变Insert前置条件:线性表已存在输入:插入位置i,插入元素x功能:在线性表的第i个位置,插入元素X输出:若插入不成功,抛出异常后置条件:若插入成功,表中增加了一个元素Delete前置条件:线性表已存在输入:删除位置i功能:删除线性表的第i个元素输出:若删除成功,返回被删除元素,否则抛出异常后置条件:若删除成功,表中减少了一个元素Print前置条件:线性表已存在输入:无功能:按位置的先后次序依次输出线性表中的元素输出:线性表中的各个元素后置条件:线性表不变2 .程序模块主
4、函数main()动态获取表空间,初始化链表,打开文件将客户数据加载入表中,进行表操作,操作结束将表数据保存到文件,文件关闭。2.1 添加客户信息遍历当前单链表,若待添加的用户编号已存在,则返回用户已存在的提示信息;若待添加的用户不存在,则将该客户信息添加到顺序表最后,并将单链表表长度加1。2.2 删除客户信息遍历当前顺序表,若要删除的用户标号不存在,则返回提示信息;否则提示用户是否确定删除,确定即删除。删除操作即将待删除记录的后面记录依次向前移动1步。2.3 更改客户信息遍历当前单链表,若待更改的用户编号不存在,则返回用户不存在的提示信息;若待添加的用户存在,则提示输入新的信息。2.4 查找客
5、户信息输入待查找用户的身份证号,若存在则返回用户的信息2.5 显示客户信息遍历整个单链表,显示当前所有客户2.6 统计客户遍历单链表,统计当前链表中所有客户的总数3 .各模块之间的调用关系以及算法设计3、详细设计添加客户信息伪代码:1 .初始化工作指针巳申请空的结点空间;2 .输入姓名,输入身份证号;3 .若省份证号不等于18,输出输入有误,否则输入消费金额,并调用函数进行折扣计算;查找客户信息:1 .初始化工作指针P,工作指针P指向头结点,并定义折扣;2 .判断P是否为空,若为空,输出无用户,否则P后移直到身份证号相同;3 .若相同调用函数计算折扣;更改客户信息:1 .初始化工作指针p,定义
6、折扣和续加金额;2 .判断指针P是否为空,若为空输出没有客户,否则p后移;3 .判断身份证号是否相同,若相同输出姓名、身份证号、消费、折扣、积分;4 .输入要修改的项目;4.1 选才i1,输入修改后的姓名4.2选才i2,输入修改后的身份证号4.3选才i3,覆盖以前消费、续加上现在费用;5 .调用积分函数,计算折扣;删除客户信息:1 .初始化工作指针p,定义折扣;2判断指针P是否为空,若为空输出没有客户,否则p后移;3判断身份证号是否相同,若相同输出姓名、身份证号、消费、折扣、积分;4选择是否删除,选1返回删除成功,选2,返回删除失败;显示客户信息:1初始化工作指针p,定义折扣;2判断指针P是否
7、为空,若为空输出没有客户,否则p后移;3输出每位姓名、身份证号、消费、折扣、积分统计客户信息:1初始化工作指针p,累加器i初始化;2判断指针P是否为空,若为空输出没有客户,否则p后移;3累加器i加1;4输出现有客户数量i位;计算折扣函数:1.定义折扣discount2.若积分为0,则折扣为0;若积分大于0小于50,则折扣为9;若积分大于等于50,于100,则折扣为8,;若积分大于等于100,小于等于150,则折扣为7;若积分大于等于150,小于等于200,则折扣为7;若积分大于等于150,小于等于200,则折扣为6.5若积分大于等于200,小于等于300,则折扣为6,;若积分大于300,折扣为
8、6.4、测试与分析添加客户信息:,口九C+-浮口ebuglixiaotorgexe"6统计客户7退出请输.您的选择S,334,5,6:姓膏.eAi人入攒邢晶主信主闫主:李晓彤证号18位:金菽11890210423199208310833客户消费积分管理系统*主菜单* 1添加客户* 2_查找客户*查找客户信息:修改客户信息:删除客户信息:显示客户:"D:C-寿序'Debuglixiaotong.exer王采举1阑(口管二-2查找客户3修改客户4册除客二5显示客户?退出请输入您的选举卬2,3,4,5,6:5名姓姓姓证号:2104231992函31的66弟费正aHH42M
9、MMKitl晒5消基症号:210423199208310644346864:346,1245:12-45:1234积分=12.86折34口9口n*f斤旧斤7,3-才二4一统计客户:退出:5、总结:在本次课程设计当中,我对许多以往掌握不够熟练或者是使用较少而易忽略的知识点有了一定的掌握,而且通过本次试验提高了我的实际操作能力,在编写代码的过程当中,我通过查阅有关的资料和分析实例,从中学到了很多能够不断优化自己代码,可以提高代码利用率的知识,并且更加合理的构建了各个知识点之间的联系,充分的利用了循环和选择性语句,在存储过程中,对文件的部分知识也有了一个深层次的了解和掌握,对于如何修改文件信息以及保
10、存有了一定的概念和运用。当然,在代码的编写过程中,也遇到了许多问题,我通过自身的努力去改正它们,在这个过程中我也学到了很多东西,在代码的调试过程中,我碰到了许多以前所没有碰到过的错误,但通过同学的帮助解决了这些困难,并且自身得到了一定的提高。通过本学期的学习我对数据结构有了更深的了解,数据结构重在思想,通过学习数据结构的思想和C+结合来编写程序,虽然现在编程仍有许多困难,但以后的学习中,我会更加努力,希望能够不断的提高自己!6、附录:源程序#include<iostream>usingnamespacestd;structcnodecharname20;charID20;doubl
11、econsume;doubleinteger;structcnode*next;voidInitstack(cnode*&head)head=newcnode;head->next=NULL;)voidGetelem(cnode*head);voidSearch(cnode*head,cha门D口);voidAmend(cnode*head,charID);voidDelete(cnode*head,charID);voidShowall(cnode*head);voidcount(cnode*head);doubledisplay_discount(doubleinteger)
12、;voidmain()cnode*head;intchoice;chary20;Initstack(head);docout<<"n"cout<<"客户消费积分管理系统nn"cout<<"*”.;cout<<"n*n"cout<<"n*土菜单*n"cout<<"n*1添加客户*n"cout<<"n*2查找客户*n"cout<<"n*3修改客户*n"co
13、ut<<"n*4删除客户*n"cout<<"n*5显示客户*n"cout<<"n*6统计客户*n"cout<<"n*7退出*n"cout<<"n*n"cout<<"*“;;cout<<"n请输入您的选择(1,2,3,4,5,6)cin>>choice;if(choice=1)II.Getelem(head);)elseif(choice=2)cout<<"n请
14、输入您查找客户的身份证号cin>>y;while(strlen(y)!=18)(18位):”cout<<"身份证号码位数有误请重新输入cin>>y;)Search(head,y);)elseif(choice=3)(cout<<"n请输入您想修改客户的身份证号:cin>>y;while(strlen(y)!=18)((18位):”II.cout<<"身份证号码位数有误请重新输入cin>>y;)Amend(head,y);)elseif(choice=4)(cout<<&
15、quot;n"cout<<"请输入你想要删除的客户的身份证号:cin>>y;Delete(head,y);)elseif(choice=5)(cout<<"n"Showall(head);)elseif(choice=6)(cout<<"n"count(head);)elseif(choice=7)exit(1);while(choice<=7);)voidGetelem(cnode*head)(cnode*p;doubley;p=newcnode;/*申请空的节点空间*/cout
16、<<"请输入姓名:"cin>>p->name;cout<<"请输入身份证号(18位):";cin>>p->ID;while(strlen(p->ID)!=18)(cout<<"身份证号码位数有误请重新输入(18位):"cin>>p->ID;cout<<"请输入消费金额:"cin>>p->consume;p->integer=p->consume/100;y=display_dis
17、count(p->integer);cout<<"折扣:";cout<<y;cout<<"折n"p->next=head->next;head->next=p;voidSearch(cnode*head,charID)(cnode*p;doubley;p=head;if(p->next=NULL)cout<<"没有客户!n"else(while(p->next!=NULL)(p=p->next;if(strcmp(ID,p->ID)=0)(
18、cout<<"姓名:"cout<<p->name;cout<<"身份证号:"cout<<p->ID;cout<<"消费:"cout<<p->consume;cout<<"积分:"cout<<p->integer;y=display_discount(p->integer);cout<<"折扣:"cout<<y;cout<<"折
19、n")voidAmend(cnode*head,charID)(cnode*p;doubley,z;intchoose,x;p=head;if(p->next=NULL)cout<<"没有客户!n"else(while(p->next!=NULL)(p=p->next;if(strcmp(ID,p->ID)=0)(cout<<"姓名:"cout<<p->name;cout<<"身份证号:"cout<<p->ID;cout<&
20、lt;"消费"cout<<p->consume;cout<<"积分:"cout<<p->integer;y=display_discount(p->integer);cout<<"折扣:"cout<<y;cout<<"折n")cout<<"请选择你要修改的1、姓名。2、身份证号。3、消费金额。cin>>choose;if(choose=1)(cout<<"请输入修改后姓名
21、;"cin>>p->name;)if(choose=2)(cout<<"请输入修改后的身份证号.11.cin>>p->ID;while(strlen(p->ID)!=18)(cout<<"身份证号码位数有误请重新输入(18位):”;cin>>p->ID;if(choose=3)(cout<<"1.覆盖以前消费、2.续加上现在费用!!请选择:";cin>>x;if(x=1)(cout<<"请输入修改后的消费:"
22、;;cin>>p->consume;else(cout<<"请输入续加金额:";cin>>z;p->consume+=z;cout<<"姓名:"cout<<p->name;cout<<"身份证号:"cout<<p->ID;cout<<"消费:"cout<<p->consume;p->integer=p->consume/100;cout<<"积分
23、:";cout<<p->integer;y=display_discount(p->integer);cout<<"折扣:"cout<<y;cout<<"折n"voidDelete(cnode*head,charID)(cnode*p;intx;doubley;p=head;if(p->next=NULL)cout<<"没有客户!n"elsewhile(p->next!=NULL)head=p;p=p->next;if(strcmp(I
24、D,p->ID)=0)cout<<"姓名:"cout<<p->name;cout<<"身份证号:"cout<<p->ID;cout<<"消费:"cout<<p->consume;cout<<"积分:"cout<<p->integer;y=display_discount(p->integer);cout<<"折扣:"cout<<y;cout&
25、lt;<"折n")cout<<"你确认删除?1、确定。2、取消。请选择cin>>x;if(x=1)head->next=p->next;cout<<"删除成功!")elsecout<<"删除失败!")voidShowall(cnode*head)cnode*p;doubley;p=head;if(p->next=NULL)cout<<"没有客户!n"elsewhile(p->next!=NULL)p=p->ne
26、xt;cout<<"姓名:"cout<<p->name;cout<<"身份证号:"cout<<p->ID;cout<<"消费:"cout<<p->consume;cout<<"积分:"cout<<p->integer;y=display_discount(p->integer);cout<<"折扣:";cout<<y;cout<<"折n"voidcount(cnode*head)cnode*p;inti=0;p=head;if(p->next=NULL)cout<<"没有客户!n"elsewhile(p->next!=NULL)p=p->next;i+;cout<<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业园区交通标识标线施划方案
- 风电设备维护检修方案
- 量子同态加密关键理论及其应用研究
- 储能并网接入施工方案
- 商都县马铃薯农户生产效率及其影响因素研究
- 以栀子为例的多成分背景下序贯代谢后入脑成分抗阿尔茨海默病研究
- 2026年大型物件(装修材料)出入核查管理
- 刑事诉讼试题及详解
- 2026年智能无人飞行器制造行业分析报告及未来发展趋势报告
- 资源循环利用服务点建筑设计方案
- 2026年心理咨询师通关测试卷含完整答案详解(夺冠)
- 2026河南兴豫惠民职业技能培训学校有限公司市场化招聘15人笔试参考题库及答案解析
- (二模)苏北七市2026届高三第二次调研测试英语试卷(含答案及解析)
- DB31∕T 1624-2025 机器人智能化等级评价指南
- 2026年青年干部廉洁纪律要求应知应会知识库
- 北京市2024商务部中国国际电子商务中心招聘1人笔试历年参考题库典型考点附带答案详解
- 2026年国企采购管理专干考试题库及答案
- 小额贷款消费者权益保护制度
- 危险化学品储存安全技术
- DB44∕T 2633-2025 Ⅷ、Ⅸ级内河航道通航标准
- 矿长面试常见问题及答案
评论
0/150
提交评论