课程设计(**)
题目: 客户消费积分管理系统
院 (系): 信息与控制工程系
专业班级。姓名。
学号。指导教师。
2024年 9 月 17 日。
西安建筑科技大学课程设计(**)任务书。
专业班级: 学生姓名: 指导教师(签名。
计算机科学与技术专业。
数据结构课程设计。客。户。
消。费。积。分。
系。统。
摘要。课程设计是学生在校期间的一个重要的学习环节,是学习深化和提高的一个重要过程。该课实现了课程设计的整个流程工作。
客户消费积分管理系统的设计采用的开发环境是windows 2000/xp ,开发工具是visual c ++6.0,开发语言是c 语言并且使用画图工具来画图。系统主要用于管理客户的消费情况,从而根据客户的消费积分对客户实行不同的打折优惠。
客户消费积分管理系统利用线性表的链表储存方式,使用结构体指针将每个用户联系起来,该设计的主要功能实现了增加客户,删除和修改客户等,充分满足了系统的要求。
该课设实现了教师、学生的及时沟通,同时大大提高了学生自身水平。
关键词:visual c ++数据结构,链表。
目录。一、需求分析 2
二、概要设计 3
三、详细设计 5
四、调试分析 8
4.1主菜单 8
4.2添加客户 8
4.3查找客户 9
4.4删除客户 9
4.5修改客户 10
4.5.1选择修改姓名 10
4.5.2选择修改**号码 11
4.5.3选择修改消费金额 11
a.选择覆盖以前的消费 11
b.选择续加上现在的费用 12
4.6积分查询 12
五、课设总结 14
参考文献 15
一、需求分析。
主要叙述软件必须具备的功能和要求。
本系统主要包括增加,查找和删除,同时根据客户的消费情况进行积分,从而进行打折优惠。根据课程设计要求,实现相应功能;程序需要做到实用性、安全性;界面简单美观,操作方便。
以下为客户消费积分管理系统的功能图:
图1 客户消费积分管理系统功能图。
2、概要设计。
主要说明对软件中有关信息设计的数据结构;画出整个软件的系统结构图,说明各个模块的功能。
程序运用链表对客户信息进行存储,首先对结点进行定义,结点中的数据域分别定义了消费者的消费号、**号码、消费**、积分。
typedef struct cnode{
char name[20];/姓名,长度为20的字符串数组*/
char tel[20];/**号码,长度为20的字符串数组*/
int consumption;/*消费号*/
double consume;/*消费金额*/
double integer;/*折扣*/
struct cnode *next;
cnode;
其中身份证和消费**用了字符型数组进行定义,然后定义了客户消费信息链表,每添加一个客户,先分配内存,再添加消费者的信息,之后将链表中最后一个指针指向该新的消费者,删除时,需先找到该消费者前面的消费者,直接将其指针指向删除消费者的下一个消费者,修改信息时,先找到该消费者,选择修改的内容,再进行修改,添加消费**时,先找到该消费者,根据情况对增加或减少消费**,并根据**计算积分,打折时,根据消费者打折的要求,进行打折。
以下为该系统的函数目录:
1)添加客户void getelem(cnode *head):首先选择添加客户的指令,然后添加客户的基本信息,姓名,**号码,消费号,消费金额等,若提示消费号输入有误,则重新输入,然后显示客户消费的折扣信息。添加下一个客户信息后在开辟新的节点连接。
如添加一个客户:定义指针p用于申请空的节点空间,p = cnode*)malloc(sizeof(cnode))利用函数输入姓名,**号码,消费号,消费金额。
2)查找客户void search(cnode *head, int consumption):选择查找客户的指令,按照要求输入客户消费号,显示客户信息。
3)删除客户void delete(cnode *head, int consumption):选择删除客户的指令,按照要求输入客户消费号,显示有无此客户,之后显示删除成功。
4)修改客户void change(cnode *head, int consumption):选择修改客户的指令,按照要求输入客户消费号,显示有无此客户,选择修改姓名,**,消费金额,消费金额选择覆盖和续加,之后显示修改成功。
5)积分查询void showall(cnode *head):选择积分查询的指令,遍历链表并显示客户的姓名,**号码,消费号,消费金额,积分以及折扣。
6)统计客户void count(cnode *head):选择统计客户的指令,显示共有多少客户。
7)double display_discount(double integer);
/计算客户折扣,每次显示客户信息调用一次保证为客户最新打折信息。根据每个客户的积分情况不同,用if 和else 语句打印出不同的折扣信息。
8)void showinfo(cnode* p);/遍历链表并显示客户。
9)void initstack(cnode** head)/*初始化链表*/
3、详细设计。
主要写出所设计数据结构的详细定义和组成;各个模块的算法流程图或伪码表示。
这个设计的基本函数成员有姓名、**号码、消费号、消费金额以及折扣。主要运用了while 语句来实现。
(1) void getelem(cnode *head);
/采用类将每个用户的信息封装,其中包括姓名(name),消费号(consumption),**号码(tel),消费金额(consume),积分(integer)输入一个客户信息后在开辟一个新的结点连接。(流程图如下)。
图2 添加函数流程图。
2)void search(cnode *head, int consumption);
/查找用户,用每一个节点的消费号何待查信息进行对比,直到找到正确信息并显示。(流程图如下)。
图3 查找函数流程图。
3)void delete(cnode *head, int consumption);
/找到显示并删除。先判断链表是否为空,若为空则显示没有客户;若不为空,则用每一个结点信息和待查结点信息进行对比。找到该结点后,进行删除。
以下程序用来实现删除该客户(结点)的功能。cout <<你确定删除?1,确定。
2,取消。请选择:”;流程图如下)。
图4 删除函数流程图。
(4)void change(cnode *head, int consumption);/查找并显示然后修改。先判断链表是否为空,若为空则显示没有客户;若不为空,则用每一个结点信息和待查结点信息进行对比。找到该结点后,进行修改。
(流程图如下)。
图5 修改函数流程图。
5)void showall(cnode *head);
/遍历链表并显示客户。(流程图如下)
图6 积分查询流程图。
6)void count(cnode *head);
/遍历统计客户数量显示。用一个计数变量i遍历链表实现计数功能。
流程图如下)
图7 统计函数流程图。
四、调试分析。
包括: ①测试数据; ②测试输出的结果;③时间复杂度分析;④算法的改进设想。
主菜单:添加客户:
查找客户:删除客户:
没有此消费号(客户):
删除客户成功:
修改客户:选择修改姓名 :
选择修改**号码:
选择修改消费金额:
、选择覆盖以前的消费:
选择续加上现在的费用:
积分查询:
统计客户:退出:
五、课设总结。
包括: ①课程设计过程的收获;②遇到的问题,解决问题过程的思考(存在问题?问题如何解决?
);程序调试能力的思考; ④对数据结构这门课程的思考; ⑤在课程设计过程中对《数据结构》课程的认识等内容。
通过这次课程设计,我基本掌握了数据结构课程中学到的基本理论和算法,并综合运用于解决实际问题中。采用一些恰当的设计方法和算法,训练了自身的技能,培养了良好的程序设计习惯。同时,我发现,课程设计不仅需要我们发现细小问题的眼光及解决问题的能力,更要求我们多去掌握一些课外知识点,以便于我们程序编写。
课程设计报告格式 课程设计
洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...
课程设计总结,课程设计报告
课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动...
课程设计 课程设计报告格式
学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...