数据结构课程设计客户消费积分系统

上传人:鲁** 文档编号:498842739 上传时间:2023-07-03 格式:DOC 页数:17 大小:572KB
返回 下载 相关 举报
数据结构课程设计客户消费积分系统_第1页
第1页 / 共17页
数据结构课程设计客户消费积分系统_第2页
第2页 / 共17页
数据结构课程设计客户消费积分系统_第3页
第3页 / 共17页
数据结构课程设计客户消费积分系统_第4页
第4页 / 共17页
数据结构课程设计客户消费积分系统_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《数据结构课程设计客户消费积分系统》由会员分享,可在线阅读,更多相关《数据结构课程设计客户消费积分系统(17页珍藏版)》请在金锄头文库上搜索。

1、课程设计报告设计题目:客户消费积分系统学院、系:电子与信息工程学院专业班级:学生姓名:指导教师:成 绩:2013年 1月 8日目录1、需求分析 21.1问题描述 31.2基本要求32、概要设计32.1数据结构.42.2程序模块.42.3各模块之间的调用关系以及算法设计 .43、详细设计.54、测试与分析.65、总结 .10&附录 .111、需求分析:11 问题描述1、采用动态分配顺序表存储客户信息,并用文件保存和读写数据2、能对客户信息进行添加、查询、修改、删除等基本操作3、根据客户消费额,合理计算出客户消费所得积分4、根据客户积分值,实行不同情况的优惠(即计算折扣)12 基本要求 进行添加客

2、户时要注意不能超过所定义数组的最大容量, 查找时输入的身份证号 要求为 18 位,本程序能对客户信息进行添加、查询、修改、删除等基本操作, 根据客户消费额, 合理计算出客户消费所得积分, 根据客户积分值, 实行不同情 况的优惠。2、概要设计 :1. 数据结构 线性表的抽象数据类型定义InitList 前置条件:线性表不存在 输入:无功能:线性表的初始化输出:无 后置条件:一个空的线性表DestroyList 前置条件:线性表已存在 输入:无功能:销毁线性表输出:无 后置条件:释放线性表所占的内存空间Length 前置条件:线性表已存在 输入:无功能:求线性表的长度 输出:线性表中元素个数 后置

3、条件:、线性表不变Get 前置条件:线性表已存在 输入:元素的序号 i 功能:在线性表中去序号为 i 的元素 输出:如果序号合法,返回序号为 i 的元素值,否则抛出异常 后置条件:、线性表不变Insert前置条件:线性表已存在输入:插入位置 i ,插入元素 x功能:在线性表的第 i 个位置,插入元素 X 输出:若插入不成功,抛出异常 后置条件:若插入成功,表中增加了一个元素 Delete前置条件:线性表已存在 输入:删除位置 i 功能:删除线性表的第 i 个元素 输出:若删除成功,返回被删除元素,否则抛出异常 后置条件:若删除成功,表中减少了一个元素 Print前置条件:线性表已存在 输入:无

4、 功能:按位置的先后次序依次输出线性表中的元素 输出:线性表中的各个元素 后置条件:线性表不变2. 程序模块 主函数 main()动态获取表空间,初始化链表,打开文件将客户数据加载入表中,进行表操 作,操作结束将表数据保存到文件,文件关闭。2.1 添加客户信息 遍历当前单链表,若待添加的用户编号已存在,则返回用户已存在的提示 信息;若待添加的用户不存在, 则将该客户信息添加到顺序表最后, 并将单链表 表长度加 1。2.2 删除客户信息 遍历当前顺序表,若要删除的用户标号不存在,则返回提示信息;否则提 示用户是否确定删除,确定即删除。删除操作即将待删除记录的后面记录依次向前移动 1 步。2.3

5、更改客户信息 遍历当前单链表,若待更改的用户编号不存在,则返回用户不存在的提示信息; 若待添加的用户存在,则提示输入新的信息。2.4 查找客户信息 输入待查找用户的身份证号,若存在则返回用户的信息2.5 显示客户信息 遍历整个单链表,显示当前所有客户2.6 统计客户 遍历单链表,统计当前链表中所有客户的总数3. 各模块之间的调用关系以及算法设计3、详细设计添加客户信息伪代码:1初始化工作指针 P,申请空的结点空间;2输入姓名,输入身份证号;3若省份证号不等于18,输出输入有误,否则输入消费金额,并调用函数进行折扣计算;查找客户信息:1. 初始化工作指针P,工作指针P指向头结点,并定义折扣;2判

6、断P是否为空,若为空,输出无用户,否则P后移直到身份证号相同;3 若相同调用函数计算折扣; 更改客户信息:1. 初始化工作指针p,定义折扣和续加金额;2. 判断指针P是否为空,若为空输出没有客户,否则p后移;3. 判断身份证号是否相同,若相同输出姓名、身份证号、消费、折扣、积分;4. 输入要修改的项目;4.1选择1,输入修改后的姓名 4.2选择2,输入修改后的身份证号 4.3选择3,覆盖以前消 费、续加上现在费用;5. 调用积分函数,计算折扣;删除客户信息:1.初始化工作指针p,定义折扣;2判断指针P是否为空,若为空输出没有客户,否则p后移;3判断身份证号是否相同,若相同输出姓名、身份证号、消

7、费、折扣、积分;4选择是否删除,选 1返回删除成功,选 2,返回删除失败; 显示客户信息:1初始化工作指针 p,定义折扣;2判断指针P是否为空,若为空输出没有客户,否则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,小于等

8、于200,则折扣为7;若积分大于等于 150,小于等于200,则折扣为6.5 若积分大于等于200,小于等于300,则折扣为6,;若积分大于300,折扣为6.4、测试与分析添加客户信息:客户帖节积分管理系统” *请输人您的应莘CL, Z, 3t 4, 5t 6?退出附客户*_D C+-FiDebugli xiaoton g .exe8般S丄晓1李号额工金SB姓屠.8 八人八汨 範S!駅王菜单*1i耐悟户*2查找客户*查找客户信息:修改客户信息:统计客户6退出删除客户豆示畧户萱找喜户修改客户客H梢费祀分菅琏系统证号t 肖费t 1234;12 -3HJf:S 折2104219Z08310H肖夷 1

9、234=12,:? *8 昂2.身份证号。3x瘠詡金颔。1:m英耳梵耳疋廉: Jt英耳疋耳耳幫斃鳶菱xaE)ta=3 请输入您想醪丐 生名:许R報筠 青输人核改后姓删除客户信息:显示客户: D C -Debugfi xiaotsrg.?ise土臬单 透加客门 沓找客口 修改客白 础除客口显示客白退岀请输入您的选择U 2, 3. 4, 5. 6)=5月身份证号:21B4Z31?2fl8310855费;H45积.分;口禺折汨洱廝 许時任身俯证号:21O4231?920831C844Vt位已和分:1氛旳折扣:8折 :统计客户:退出:5、总结: 在本次课程设计当中,我对许多以往掌握不够熟练或者是使用较

10、少而易忽略的 知识点有了一定的掌握,而且通过本次试验提高了我的实际操作能力,在编写代码的过 程当中,我通过查阅有关的资料和分析实例,从中学到了很多能够不断优化自己代码, 可以提高代码利用率的知识,并且更加合理的构建了各个知识点之间的联系,充分的利 用了循环和选择性语句,在存储过程中,对文件的部分知识也有了一个深层次的了解和 掌握,对于如何修改文件信息以及保存有了一定的概念和运用。当然,在代码的编写过程中,也遇到了许多问题,我通过自身的努力去改正它们,在这个过程中我也学到了很 多东西,在代码的调试过程中,我碰到了许多以前所没有碰到过的错误,但通过同学的 帮助解决了这些困难,并且自身得到了一定的提

11、高。通过本学期的学习我对数据结构有 了更深的了解,数据结构重在思想,通过学习数据结构的思想和C+结合来编写程序,虽然现在编程仍有许多困难,但以后的学习中,我会更加努力,希望能够不断的提高自 己!6、附录:源程序#in clude using n amespace std; struct cnodechar n ame20;char ID20; double con sume; double in teger; struct cnode *n ext;void In itstack(c node * &head)head= new cnode; head-next=NULL;void Getel

12、em (cnode *head);void Search(cnode *head,char ID);void Amend(cnode *head,char ID);void Delete(cnode *head,char ID);void Showall(cnode *head);void count(cnode *head);double display_discount(double integer); void main()cnode *head;int choice; char y20; Initstack(head);docout客户消费积分管理系统nncout*“ Jcoutn*n;coutn*、t t I、/,主菜单*n;coutn*1添加客户*n;coutn*2查找客户*n;coutn*3修改客户*n;coutn*4删除客户*n;coutn*5显示客户*n;coutn*6统计客户*n;coutn*7退出*n;coutn*n;cout*Jcoutn请输入您的选择 (1 ,2, 3,4,5,6coutchoice;if(choice=1)Getelem(head);else if(choice=2)couty;while(strlen(y)!=18)couty; Search(head,y);else if(choice=3)couty;while(strlen(

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号