课程设计报告

发布 2022-10-01 06:01:28 阅读 8842

课程设计(**)

题目: 客户消费积分管理系统

院 (系): 信息与控制工程系

专业班级。姓名。

学号。指导教师。

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语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...