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

上传人:hw****26 文档编号:2249244 上传时间:2019-05-03 格式:DOC 页数:18 大小:380.50KB
下载 相关 举报
数据结构课程设计--客户消费积分系统.doc_第1页
第1页 / 共18页
数据结构课程设计--客户消费积分系统.doc_第2页
第2页 / 共18页
数据结构课程设计--客户消费积分系统.doc_第3页
第3页 / 共18页
数据结构课程设计--客户消费积分系统.doc_第4页
第4页 / 共18页
数据结构课程设计--客户消费积分系统.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

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

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

3、后置条件:、线性表不变Get前置条件:线性表已存在输入:元素的序号 i 功能:在线性表中去序号为 i 的元素输出:如果序号合法,返回序号为 i 的元素值,否则抛出异常后置条件:、线性表不变Insert前置条件:线性表已存在4输入:插入位置 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. 各模块之间的调用关系以及算法设计5添加客户信息客户消费积分管理系统查找客户信息删除客户信息更改客户信息显示客户信息统计客户总数客户消费积分管理系统功能3、详细设计 添加客户信息伪代码:1.初始化工作指针 P,申请空的结点空间;2.输入姓名,输入身份证号;3.若省份证号不等于 18,输出输入有误,否则输入消费金额,并调用函数进行折扣计算

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

7、 ,定义折扣;2 判断指针 P 是否为空,若为空输出没有客户,否则 p 后移;3 判断身份证号是否相同,若相同输出姓名、身份证号、消费、折扣、积分;4 选择是否删除,选 1 返回删除成功,选 2,返回删除失败;显示客户信息:1 初始化工作指针 p ,定义折扣;2 判断指针 P 是否为空,若为空输出没有客户,否则 p 后移;63 输出每位姓名、身份证号、消费、折扣、积分统计客户信息:1 初始化工作指针 p ,累加器 i 初始化;2 判断指针 P 是否为空,若为空输出没有客户,否则 p 后移;3 累加器 i 加 1;4 输出现有客户数量 i 位;计算折扣函数:1. 定义折扣 discount2.

8、若积分为 0,则折扣为 0;若积分大于 0 小于 50,则折扣为 9;若积分大于等于 50,于100,则折扣为 8,;若积分大于等于 100,小于等于 150,则折扣为 7;若积分大于等于150,小于等于 200,则折扣为 7;若积分大于等于 150,小于等于 200,则折扣为 6.5若积分大于等于 200,小于等于 300,则折扣为 6,;若积分大于 300,折扣为 6.4、测试与分析 添加客户信息:7查找客户信息:修改客户信息:8删除客户信息:显示客户:9统计客户:退出:105、总结: 在本次课程设计当中,我对许多以往掌握不够熟练或者是使用较少而易忽略的知识点有了一定的掌握,而且通过本次试

9、验提高了我的实际操作能力,在编写代码的过程当中,我通过查阅有关的资料和分析实例,从中学到了很多能够不断优化自己代码,可以提高代码利用率的知识,并且更加合理的构建了各个知识点之间的联系,充分的利用了循环和选择性语句,在存储过程中,对文件的部分知识也有了一个深层次的了解和掌握,对于如何修改文件信息以及保存有了一定的概念和运用。 当然,在代码的编写过程中,也遇到了许多问题,我通过自身的努力去改正它们,在这个过程中我也学到了很多东西,在代码的调试过程中,我碰到了许多以前所没有碰到过的错误,但通过同学的帮助解决了这些困难,并且自身得到了一定的提高。通过本学期的学习我对数据结构有了更深的了解,数据结构重在思想,通过学习数据结构的思想和 C+结合来编写程序,虽然现在编程仍有许多困难,但以后的学习中,我会更加努力,希望能够不断的提高自己!6、附录:源程序#includeusing namespace std;struct cnodechar name20;char ID20;double consume;double integer;struct cnode *next;void Initstack(cnode * &head)

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

当前位置:首页 > 教育教学资料库 > 课程笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。