客户消费积分管理系统 C++版有代码

{
head = (cnode *)malloc(sizeof(cnode));
head->next = NULL;
}
void Getelem(cnode *head)
{
cnode *p;
double y;
p = (cnode *)malloc(sizeof(cnode));
printf("请输入姓名:");
change(h,j);
break;
case 5:printf("请输入消费者的消费号:");
scanf("%d",&j);
increase(h,j);
break;
case 6:printf("请输入消费者的消费号:");
scanf("%d",&j);
discountsum(h,j);
break;
default:printf("输入错误。\n");
char ID[4];
double consume;
double integer;
cnode *next;
};
void Count(cnode *head)
{
cnode *p;
int i = 0;t == NULL)
{
printf("\n没有客户!");
}
else
printf("折扣:%.1lf折\n", y);
}
system("pause");
}
void Delete(cnode *head, char name[])
{
cnode *p;
int x;
double y;
p = head;
if (p->next == NULL)
{
printf("\n没有客户!");
{
discount = 0;
}
else if (pionts>0 && pionts<=50)
{
discount = 9.8;
}
else if (pionts>50 && pionts<=100)
{
discount = 9.5;
}
else if (pionts>100 && pionts<=200)
{
while (p->next != NULL)
{
p = p->next;
i++;
}
}
printf("\n现有客户数量为%d位.\n", i);
system("pause");
}
double display_discount(double pionts)
{
double discount;
if (pionts == 0)
3:能够根据消费情况进行客户积分的计算;
4:根据积分情况实行不同程度的打折优惠;
三、流程图
四、数据结构设计
本程序运用链表对客户信息进行存储,首先对结点进行定义,结点中的数据域分别定义了消费者的消费号、身份证、消费价格、积分,其中身份证和消费价格用了字符型数组进行定义,然后定义了客户消费信息链表,每添加一个客户,先分配内存,再添加消费者的信息,之后将链表中最后一个指针指向该新的消费者,删除时,需先找到该消费者前面的消费者,直接将其指针指向删除消费者的下一个消费者,修改信息时,先找到该消费者,选择修改的内容,再进行修改,添加消费价格时,先找到该消费者,根据情况对增加或减少消费价格,并根据价格计算积分,打折时,根据消费者打折的要求,进行打折。
}
}
八、系统运行结果样例
此程序运行在visual C++ 6.0环境下
屏幕截图:
九、结束语
C++的课程设计的目的是,通过设计掌握c++课程以及数据结构学习中掌握的基本理论和算法综合运用解决实际问题。他是理论与实践相结合的重要过程。设计要求学生对数据结构以及,c++语言的熟练运用,同时需要我们发现细小问题的眼光以及解决问题的能力,要求我们掌握更多的课外知识。便于我们程序的编写。
}
else
{
while (p->next != NULL)
{
p = p->next;
printf("姓名: %s\n", p->name);
printf("ID: %s\n", p->ID);
printf("消费: %.2lf", p->consume);
printf("积分: %lf\n", p->integer);
printf("删除成功!");
}
else
{
printf("删除失败!");
}
}
}
printf("\n");
system("pause");
}
void Showall(cnode *head)
{
cnode *p;
double y;
p = head;
if (p->next == NULL)
{
printf("没有客户!\n");
{
p = p->next;
if (!strcmp(name, p->name))
{
printf("姓名: %s\n", p->name);
printf("ID: %s\n", p->ID);
printf("消费: %.2lf", p->consume);
printf("积分: %lf\n", p->integer);
{
discount = 9.0;
}
else if (pionts>200 && pionts<=300)
{
discount = 8.0;
}
else if (pionts > 300)
{
discount = 7.0;
}
return discount;
}
void Initstack(cnode * &head)
3:并且计算机计算的速度快,准确,减轻收银员的工作负担。
本系统用到的主要数据结构为数组和文件。
一个数组对应一个客户,里面用3个字符串分别存储着用户的客户号、姓名和消费情况。
然后将数组写入文件,提取相应信息。
二、系统主要功能
1:采用一定的存储结构进行客户信息的存储;
2:对客户的信息可以进行修改、删除、添加;
}
}
printf("姓名:%s\n", p->name);
printf("ID:%s\n", p->ID);
printf("消费额:%.2lf\n", p->consume);
p->integer = p->consume/100;
printf("积分:%lf\n", p->integer);
y = display_discount(p->integer);
scanf("%d", &x);
switch(x)
{
case 1: printf("请输入修改后的消费:");
scanf("%lf", &p->consume);break;
case 2: printf("请输入续加金额:");
scanf("%lf", &z);
p->consume += z;break;
case 1:create(h);
break;
case 2:ListInsert(h);
break;
case 3:printf("请输入删除的位置:");
scanf("%d",&j);
Listdelete(h,j);
break;
case 4:printf("请输入修改的位置:");
scanf("%d",&j);
case 2:printf("请输入修改后的ID:");
scanf("%s", p->ID);
while(strlen(p->ID) != 4)
{
printf("ID有误,请重新输入(4位):");
scanf("%s", p->ID);
}break;
case 3:printf("请选择1.覆盖以前的消费2.续加上现在的消费:");
y = display_discount(p->integer);
printf("折扣: %.1lf折\n", y);
flag = true;
}
}
if (!flag)
{
printf("\n该客户不存在!\n");
}
}
system("pause");
}
void Amend(cnode *head, char name[])
合集下载

客户消费积分管理系统-数据结构设计报告

客户消费积分管理系统-数据结构设计报告

广州XX学院课程设计报告课程数据结构与算法题目李CC 专业计算机科学与技术指导教师 XX 班级计科XX 学号 22姓名李XX2020年1月3日《数据结构与算法》课程设计任务书银行排队系统的设计与实现一、设计要求1.问题描述针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。

2.需求分析(1)采用一定存储结构进行客户信息存储;(2)对客户的信息可以进行修改、删除、添加;(3)能够根据消费情况进行客户积分的累加;(4)根据积分情况,对客户实行不同程度的打折优惠;(5)演示程序以用户和计算机的对话方式进行。

二、概要设计1.主界面设计为了实现“客户消费积分管理系统”的各项功能,首先设计一个含有多个菜单项的主控菜单子程序,以链接系统的各项子功能,方便用户使用本系统。

本系统主控菜单运行界面如下图1所示。

2.存储结构设计本系统采用链表存储客户消费积分管理系统中的客户信息。

3.系统功能设计本系统分为以下7个功能模块。

(1)添加客户:添加客户需要输入客户的姓名、身份证号码、电话号码、消费金额,在输入消费金额后系统会自动计算出该用户获得的积分,并且输出对应折扣到该客户信息中。

(2)查找客户:查找需要输入客户相应的身份证号码。

(3)修改客户:可以单独选择修改客户的姓名、身份证号码、电话号码、消费金额,也可以一次性全都修改。

(4)删除客户:查找到需要删除的客户即可一键删除。

(5)显示客户:显示外部文件保存的所有客户的信息。

(6)统计客户:统计客户总数。

(0)保存退出:保存所有修改删除操作到文件中。

三、模块设计1.模块设计本程序包含3个模块:主程序模块、菜单选择模块和链表操作模块。

调用关系如图所示。

2.系统子程序及功能设计本系统共设置13个函数,包括主函数。

各函数名及功能说明如下。

(1) int menu_select()//菜单函数(2) void Getelem (cnode *head) //添加客户函数以头节点为参数(3) void Search(cnode *head,char ID[])//查找函数(4) void Amend(cnode *head,char ID[])//修改客户函数(5) void Delete(cnode *head,char ID[])//删除客户函数(6) void Showall(cnode *head) //显示所有客户函数(7) void count(cnode *head) //显示所有客户总数(8) double display_discount(double points) /*计算客户折扣函数,接受一个double 型的数作为参数,输出对应的折扣*/(10) cnode *creslink()//以创建新链表的方式读取文件数据(11) void WritetoText(cnode *head) //将所有记录写入文件(12) void main()//主函数3.函数主要调用关系图四、详细设计1.数据类型定义(1)数组的结构体定义typedef struct cnode{char name[20]; //名字char ID[20]; //身份证6位char tnumber[20];//电话double consume; //消费金额double integer; //积分double discount; //折扣struct cnode *next;}cnode;(2)初始化链表void Initstack(cnode *head)/*初始化链表*/{head= (cnode*)malloc(sizeof(cnode)); //开辟节点空间head->next=NULL;}//头指针指向下一空节点(3) 全局变量的定义double display_discount(double integer);//定义折扣函数int customer_number = 0;//初始客户数量系统主要子程序详细设计(1)添加客户函数void Getelem (cnode *head) //添加客户函数以头节点为参数{ cnode *p;double y;p=(cnode*)malloc(sizeof(cnode));/*申请空的节点空间*/printf("\n请输入姓名:");scanf("%s",&p->name);printf("请输入身份证号:");scanf("%s",&p->ID);printf("请输入电话号码:");scanf("%s",&p->tnumber);printf("请输入消费金额:");scanf("%lf",&p->consume);p->integer=p->consume/10;printf("对应积分:%lf\n",p->integer);y=display_discount(p->integer); //调用函数计算折扣printf("折扣:%.1lf折",y);printf("\n");p->discount=y;printf("添加客户成功!\n\n");customer_number++;p->next=head->next;head->next=p;}(2)查找客户函数void Search(cnode *head,char ID[])//查找{cnode *p;double y;p=head;if(p->next==NULL)printf("没有客户!\n");else{while(p->next!=NULL){p=p->next;if(strcmp(ID,p->ID)==0){ //判断身份证号是否相同printf("姓名:%s\n",p->name);printf("身份证号:%s\n",p->ID);printf("电话号码:%s\n",p->tnumber);printf("消费:%.2lf\n",p->consume);printf("积分:%lf\n",p->integer);y=display_discount(p->integer);printf("折扣:%.1lf折\n",y);p->discount=y;}}}}(3)修改客户函数void Amend(cnode *head,char ID[])//修改客户函数{ cnode *p;double y;int choose1;p=head;if(p->next==NULL)printf("没有客户!\n");else{while(p->next!=NULL){p=p->next;if(strcmp(ID,p->ID)==0){ //判断身份证号是否相同printf("\n姓名:%s\n",p->name);printf("身份证号:%s\n",p->ID);printf("电话号码:%s\n",p->tnumber);printf("消费:%.2lf\n",p->consume);printf("积分:%lf\n",p->integer);y=display_discount(p->integer);printf("折扣:%.1lf折\n\n",y);p->discount=y;}}printf("1.姓名 2.身份证号 3.电话号码 4.消费金额 5.修改全部\n"); printf("请选择你要修改的选项:");scanf("%d",&choose1);if(choose1==1){printf("\n请输入修改后姓名:");scanf("%s",&p->name);printf("修改成功!\n");}if(choose1==2){printf("\n请输入修改后的身份证号:");scanf("%s",&p->ID);printf("修改成功!\n");}if(choose1==3){printf("\n请输入修改后电话:");scanf("%s",&p->tnumber);printf("修改成功!\n");}if(choose1==4){printf("\n请输入修改后的消费:");scanf("%lf",&p->consume);p->integer=p->consume/10;printf("积分:%lf\n",p->integer);y=display_discount(p->integer);printf("折扣:%.1lf折\n\n",y);printf("修改成功!\n");}if(choose1==5){printf("\n请输入姓名:");scanf("%s",&p->name);printf("请输入身份证号:");scanf("%s",&p->ID);printf("请输入电话号码:");scanf("%s",&p->tnumber);printf("请输入消费金额:");scanf("%lf",&p->consume);p->integer=p->consume/10;printf("对应积分:%lf\n",p->integer);y=display_discount(p->integer); //调用函数计算折扣printf("折扣:%.1lf折",y);printf("\n");p->discount=y; }}}(4)删除客户函数void Delete(cnode *head,char ID[])//删除客户函数{ cnode *p,*q;char ch[2];int j=0,i=0;double y;p=head;if(p->next==NULL)printf("没有客户!\n");else{while(p->next!=NULL){q=p;p=p->next;j++;if(strcmp(ID,p->ID)==0) { printf("\n姓名:%s\n",p->name);printf("身份证号:%s\n",p->ID);printf("电话号码:%s\n",p->tnumber);printf("消费:%.2lf\n",p->consume);printf("积分:%lf\n",p->integer);y=display_discount(p->integer);printf("折扣:%.1lf折\n\n",y);q->next=p->next;}}printf("已找到该客户,是否删除?(y/n)");scanf("%s",ch);if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要进行删除*/{for(i=j;i<=customer_number;i++){q=q->next;}customer_number--;printf("删除成功!");}else{printf("删除失败!");}}}(5)显示客户函数void Showall(cnode *head) //显示所有客户函数{ cnode *p;double y;p=head;if(p->next==NULL)printf("没有客户!\n");else{while(p->next!=NULL){p=p->next;printf("姓名:%s\n",p->name);printf("身份证号:%s\n",p->ID);printf("电话号码:%s\n",p->tnumber);printf("消费:%.2lf\n",p->consume);printf("积分:%lf\n",p->integer);y=display_discount(p->integer);printf("折扣:%.1lf折\n\n",y);}}}(6)计算客户相应折扣double display_discount(double points) {double discount;if(points == 0)discount = 0;if(points > 0&&points <= 20)discount = 9.5;if(points > 20&&points <= 30)discount = 9;if(points > 30&&points <= 50)discount = 8.5;if(points > 50&&points <= 80)discount = 8;if(points > 80&&points <= 90)discount = 7.5;else if(points > 90)discount = 7;return discount;}五、测试分析系统运行主界面如图1所示。

客户消费积分管理系统设计与实现教材(DOC49页)

客户消费积分管理系统设计与实现教材(DOC49页)

客户消费积分管理系统的设计与实现客户消费积分管理系统摘要:客户消费积分管理系统开发的总体目标是实现酒吧会员卡的积分和打折管理。

主要是通过对客户积分卡积分的统计,再通过不同层段的积分有不同的折扣。

本系统根据客户及商品的数据需求,采用了线性表的链式存储结构,主要功能包括数据的录入、插入、删除、修改、以及数据的显示,对客户积分的管理,对客户购物时依据积分的数目进行不同打折处理。

关键词:C++语言;客户积分管理系统;数据结构;链式存储结构;1前言当今世界由于人类文明进入了高速发展阶段,计算机技术已经取得了长足的发展,计算机已经普及到各大商城和小市场的管理当中,介于此,经过了网上的资料查阅和数据分析,开发了这个客户消费积分管理系统,对一些商品进行折扣的统计和管理。

设计一个程序用于管理客户的消费情况,从而根据客户的消费积分对客户实行不同程度的打折优惠。

对于客户消费积分管理系统利用线性表的链表存储方式,使用结构体指针将每一个用户联系起来。

程序中设计了①添加用户②查找用户③修改用户④删除用户⑤统计客户数量的功能,充分满足对于管理系统的要求。

2设计分析根据题目要求及本次课程设计的目的,采用结构体来存储每组数据,用单链表对每组数据进行相应的操作。

现把相应的设计思路及各个函数解析如下。

2.1数据结构设计分析2.1.1 存储客户信息的结构体客户资料有姓名、身份证号、客户编号、消费金额、客户积分等信息。

具体结构如下:struct Client//客户信息{string CCardNumber;//客户编号string CNumber;//客户身份证号float CBuy;//客户消费金额float CGrade;//客户积分string CName;//客户名称};2.1.2 存储商品信息的结构体首先用一个商品信息的结构体Production存储商品的价格、商品的固定积分、商品的名称,在用一个数组进行存储每一件商品,使用数组和for 循环能够便捷并容易的进行数据的操作。

客户消费积分管理系统的设计与实现课程设计范本

客户消费积分管理系统的设计与实现课程设计范本

客户消费积分管理系统的设计与实现课程设计编号课程设计报告~第一学期客户消费积分管理系统的设计与实现The Design and Implementation of a Client Integral ManagementSystem实习类别课程设计学生姓名李志莹专业软件工程学号指导教师刘丹、何巍学院计算机科学技术学院二〇一五年十二月一、概述1.1 设计主要完成的任务1.1.1 题目要求针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。

⑴采用一定的存储结构进行客户信息的存储;⑵对客户的信息能够进行修改、删除、添加;⑶能够根据消费情况进行客户积分的累加;⑷根据积分情况,对客户实行不同程度的打折优惠;1.2 解决的主要问题1.2.1 采用何种数据结构和编程语言实现客户抽象由于客户数目不定,因此采用链表结构实现客户的增删改查等基本操作,用C#窗体图形用户界面技术编写程序。

本程序要运用链表对客户信息进行存储,首先对结点进行定义,采用C#泛型思想和接口建立单链表类,并实现单链表的基本操作,代码主要参考的是《数据结构(C#语言版)》,可是在实际编写过程中略有调整。

1.2.2 界面设计(1)主界面:功能按钮导航;(2)添加界面:添加新客户的信息;(3)删除界面:按客户ID删除已有客户。

(4)修改界面:按客户ID修改已有客户信息。

(5)查找界面:按客户ID查找已有客户。

(6)显示界面:遍历显示表中所有的客户的所有信息。

(7)消费界面:按客户ID对已有客户进行消费操作。

1.2.3 数据结构中单链表的C#实现对于单链表的操作,主要用到两个类,一个是Node类,一个是List类。

Node类主要是建立节点的类,这个类包含数据内容data和“指针”next用于指向下一个节点,实现单链表的连接。

List类主要是进行对单链表的各种操作:❖初始化头节点为空的链表。

❖求单链表的长度。

❖清空单链表。

❖判断链表是否为空。

C++客户积分管理系统v1.0代码指导

C++客户积分管理系统v1.0代码指导
#include<cstdio>
#include<iostream>
#include<iomanip>
#include "stdlib.h"
#include<string>
using namespace std;
bool isID(string &);
typedef struct cnode
{
char name[20];
cout<<" * 6统计客户*"<<endl;
cout<<" * 7退出*"<<endl;
cout<<" * *"<<endl;
cout<<" ******************************"<<endl;
cout<<"请输入您的选择(1,2,3,4,5,6):";
cout<<"版权所有@广州六中林靖彬";
else if(choice==6)
count(head); //统计
else if(choice==7)
exit(1);
}
while(choice<=7);
system("pause");
return 0;
}
void Getelem (cnode *head)
{
//添加客户函数以头节点为参数
cnode *p;
cout<<"消费:"<</*setprecision(2)<<*/p->consume<<endl;

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

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

数据结构课程设计客户消费积分系统【数据结构课程设计】客户消费积分系统一、引言客户消费积分系统是一种用于记录和管理客户消费行为,并根据消费行为给予相应积分的系统。

本文将详细介绍该系统的设计和实现。

二、系统需求分析1. 功能需求1.1 客户信息管理:包括客户基本信息、联系方式等。

1.2 商品信息管理:包括商品名称、价格、描述等。

1.3 积分规则管理:包括积分兑换比例、积分有效期等。

1.4 消费记录管理:记录客户的消费行为,包括购买商品、消费金额等。

1.5 积分计算与兑换:根据消费金额和积分规则计算客户应获得的积分,并支持积分的兑换。

1.6 统计分析:提供各类报表和统计分析功能,如客户消费排行榜、积分使用情况统计等。

2. 性能需求2.1 数据存储:系统需要能够高效地存储和管理客户信息、商品信息、积分规则和消费记录等数据。

2.2 数据查询:系统需要能够快速响应用户的查询请求,并支持多种查询条件。

2.3 并发处理:系统需要能够处理多个用户同时进行消费和积分兑换等操作,保证数据的一致性和安全性。

三、系统设计1. 数据结构设计1.1 客户信息存储:使用链表或数组存储客户信息,每个节点或元素包含客户的基本信息和联系方式。

1.2 商品信息存储:使用链表或数组存储商品信息,每个节点或元素包含商品的名称、价格和描述等。

1.3 积分规则存储:使用链表或数组存储积分规则,每个节点或元素包含积分兑换比例和积分有效期等。

1.4 消费记录存储:使用链表或数组存储消费记录,每个节点或元素包含客户的消费信息,包括购买商品、消费金额等。

2. 系统模块设计2.1 客户信息管理模块:实现客户信息的添加、修改、查询和删除等功能。

2.2 商品信息管理模块:实现商品信息的添加、修改、查询和删除等功能。

2.3 积分规则管理模块:实现积分规则的添加、修改、查询和删除等功能。

2.4 消费记录管理模块:实现消费记录的添加、查询和删除等功能。

2.5 积分计算与兑换模块:根据消费金额和积分规则计算客户应获得的积分,并支持积分的兑换。

客户消费积分管理系统课程设计报告

客户消费积分管理系统课程设计报告

客户消费积分管理系统课程设计报告一、概述随着信息时代的快速发展,客户消费积分管理系统成为了商家与用户之间的重要连接桥梁。

消费积分作为一种消费激励方式,能够有效地吸引客户进行消费,并增加客户的忠诚度。

设计一款高效、稳定、安全的客户消费积分管理系统至关重要。

本报告旨在对客户消费积分管理系统的课程设计进行详细介绍与分析。

二、系统需求分析1. 系统功能需求(1)会员管理:包括会员注册、登入、个人信息管理等功能。

(2)积分获取:消费积分的获取途径,如消费、签到、参与活动等。

(3)积分兑换:会员可将积分兑换成商品或折抠券等福利。

(4)积分统计:实时统计各类会员的积分情况,为商家提供数据支持。

(5)系统管理:系统管理员可以对会员信息、积分规则进行管理。

2. 系统非功能需求(1)安全性:保护会员个人信息安全,确保系统数据不被非法获取。

(2)稳定性:系统运行稳定,能够处理高并发的用户请求。

(3)易用性:界面友好,操作简便,提升用户体验。

三、系统设计1. 系统架构设计(1)前端设计:采用HTML、CSS、JavaScript等技术,实现用户界面的交互和展示。

(2)后端设计:采用Java语言,结合Spring框架搭建系统后台,实现业务逻辑的处理和数据存取。

(3)数据库设计:采用MySQL数据库,存储会员信息、积分记录等数据。

2. 数据库设计(1)会员表:存储会员基本信息,包括会员ID、用户名、密码、积分等字段。

(2)积分记录表:记录会员的积分获取和使用情况,包括积分变动类型、时间、积分数量等字段。

3. 系统模块设计(1)会员管理模块:实现会员注册、登入、个人信息管理等功能。

(2)积分管理模块:包括积分获取、兑换、统计等功能。

(3)系统管理模块:提供系统管理员对会员信息、积分规则的管理功能。

四、系统实现1. 前端实现前端采用HTML、CSS和JavaScript实现,使用Bootstrap框架进行页面布局和样式设计,实现了友好的用户界面。

C语言购物卡管理系统(链表)

购物卡管理系统(一)系统主要功能模块:(1)实现系统内制卡、发卡功能。

(2)实现系统内购物卡帐户及相关帐户管理。

(3)实现购物卡交易和合法性检查。

(4)实现购物卡交易积分功能。

(5)实现购物卡报表功能。

(6)数据以文件形式存储。

提示:制卡:指申请一个购物卡,但还没有使用。

发卡:指该卡已经起用。

实现卡交易:指从卡中消费掉一定金额。

(二)题目及要求的分析:根据题目要求,系统应该实现以下功能:(1)制卡:主要是新建出一张购物卡,并输入了顾客部分信息,如姓名、密码等,但卡没有激活,依然不可使用。

(2)发卡:激活新建的购物卡,用户能够使用卡进行各项活动。

(3)消费:进入帐户后,取走少于帐户金额的钱款进行消费,并在帐户少减少相应的金额,增加相应的积分。

(4)存款:进入帐户后,在金额项加上用户要存入的钱款。

(5)报表:显示顾客购物卡上记录的所有信息,除密码外。

(6)存储:购物卡内的信息以文件形式存储。

(7)退出:从系统中退出。

(8)菜单:提供良好的界面,方便用户的操作。

代码:#include <stdio.h>#include<ctype.h> /*调用字符函数*/#include<stdlib.h>#include<conio.h> /*通用输入输出库*/#include<string.h>#include<windows.h>int flag=5;struct card{char name[20];char number[20];float money;char key[10];float jifen;float mid;int power;struct card *next;};save(struct card *head);void list();void jihuo();struct card *chaxun();save(struct card *head){FILE *fp;struct card *q;q=head;if((fp=fopen("e:\\123.txt","ab+"))==NULL) {printf("无法打开\n");exit(0);while(q!=NULL){if(fwrite(q,sizeof(struct card),1,fp)!=1){printf("文件写入错误!");fclose(fp);return (head);}q=q->next;}fclose(fp);}struct card *save1(struct card *head){FILE *fp;struct card *q;q=head;if((fp=fopen("e:\\123.txt","wb"))==NULL) {printf("无法打开\n");exit(0);while(q!=NULL){if(fwrite(q,sizeof(struct card),1,fp)!=1){printf("文件写入错误!");fclose(fp);return (head);}q=q->next;}fclose(fp);}struct card *duqu()//读取数据{struct card *head = NULL;struct card *p1, *p2;FILE *fp;if((fp=fopen("e:\\123.txt","rb+"))==NULL) {printf("打开文件出错\n");exit(0);}while(!feof(fp)){if((p1=(struct card*)malloc(sizeof(struct card)))==NULL) {printf("something is wrong!\n");fclose(fp);exit(0);}if(fread(p1,sizeof(struct card),1,fp)!=1){free(p1);break;}if(head==NULL)head=p2=p1;else{p2->next=p1;p2=p1;}}fclose(fp);return (head);}struct card *createlist(){struct card *head,*p,*q;int i;char num[20];head=(struct card*)malloc(sizeof(struct card));head->next=NULL;head->money=0;head->jifen=0;system("cls");printf("\n\t\t********************注册购物卡*******************\n\n\n");do{printf("\n\n\t请输入要注册的卡号(六位数): ");scanf("%s",head->number);if(strlen(head->number)!=6){system("cls");printf("\n\n\n\n\n\n\n\n\n\n\t\t\t对不起您的输入有误,请重新输入!\n\n");Sleep(1000);system("cls");printf("\n\t\t********************注册购物卡*******************\n\n\n");continue;}printf("\n\n\t请输入您的名字: ");scanf("%s",head->name);printf("\n\n\t请输入您的密码: ");scanf("%s",head->key);head->power=99;}while(strlen(head->number)!=6);p=head;system("cls");printf("\n\t\t********************注册购物卡*******************\n\n\n");printf("您的购物卡为:\n\n");printf("\n\t姓名卡号余额积分\n\n");printf("\t%2s %16s %13.2f %13.2f",p->name,p->number,p->mo ney,p->jifen);getche();p->next=NULL;save(head);printf("\n\n\n\n\n\n\t\t\t");printf("购物卡注册成功!\n\n\n\n\t\t\t\t按任意键返回.....");getche();}void cost(struct card *q){struct card *p,*a;p=duqu();a=p;while(strcmp(q->number,p->number)!=0){p=p->next;}system("cls");printf("\n\t\t********************账户消费*******************\n\n\n");printf("\n\n\n\n\n\n");printf("\t\t\t请输入您的消费金额:");scanf("%f",&p->mid);(p->money)=(p->money)-(p->mid);(p->jifen)=(p->jifen)+(p->mid);printf("\n\n\t\t\t您的余额为:%.2f",p->money);printf("\n\n\n\n\n\t\t\t显示完毕,按任意键返回子菜单.....");getche();p=a;save1(p);}void cunkuan(struct card *q){struct card *p,*a;p=duqu();a=p;while(strcmp(q->number,p->number)!=0){p=p->next;}system("cls");printf("\n\t\t********************账户存款*******************\n\n\n");printf("\n\n\n\n\n\n");printf("\t\t\t请输入您的存款金额:");scanf("%f",&p->mid);(p->money)=(p->mid)+(p->money);printf("\n\n\t\t\t您的余额为:%.2f",p->money);printf("\n\n\n\n\n\t\t\t显示完毕,按任意键返回子菜单.....");getche();p=a;save1(p);}void xiugai(struct card *q){char key[10],num[10];struct card *p,*a;p=duqu();a=p;while(strcmp(q->number,p->number)!=0){p=p->next;}system("cls");printf("\n\t\t********************修改账户密码*******************\n\n\n");printf("\n\n\n\n");printf("\t\t\t请输入您的新密码:");scanf("%s",num);printf("\n\n\t\t\t请再次输入您的密码:");scanf("%s",key);if(strcmp(key,num)!=0){system("cls");printf("\n\t\t********************修改账户密码*******************\n\n\n");printf("\n\n\n\n\n\t\t对不起,两次输入的密码不一样,修改密码失败!");Sleep(1000);system("cls");}if(strcmp(key,num)==0){system("cls");printf("\n\t\t********************修改账户密码*******************\n\n\n");strcpy(p->key,num);printf("\n\n\n\n\n\n\t\t\t修改密码成功!");Sleep(1000);p=a;save1(p);}}void chaxun2(struct card *q){struct card *p,*a;p=duqu();a=p;while(strcmp(q->number,p->number)!=0){p=p->next;}system("cls");printf("\n\t\t********************账户查询*******************\n\n\n");printf("\t您的账户信息为:\n\n\n");printf("\n\t\t姓名卡号余额积分\n\n");printf("\t\t%2s %16s %13.2f %13.2f",p->name,p->number,p->mone y,p->jifen);printf("\n");getch();}struct card *chaxun(){int b,i=0;int flag=9;struct card *head;char num[10],key[10];struct card *p,*head1;head1=duqu();p=head1;system("cls");printf("\n\t\t********************账户登陆*******************\n\n\n");printf("\n\n\t请输入您的卡号(六位数): ");scanf("%s",num);while(p!=NULL){if(strcmp(num,p->number)!=0){p=p->next;if(p==NULL){system("cls");printf("\n\t\t********************账户登陆*******************\n\n\n");printf("\n\n\n\n\n\n\n\t\t\t没有该卡号信息,请重新输入!\n\n");Sleep(1000);system("cls");printf("\n\t\t********************账户登陆*******************\n\n\n");printf("\n\n\t请重新输入卡号(六位数): ");scanf("%s",num);p=head1;}continue;}if((p->power)==99){system("cls");printf("\n\t\t********************账户登陆*******************\n\n\n");printf("\n\n\n\n\n\n\n\t\t\t对不起,该卡未激活,请先激活!");getche();system("cls");main();}if(p->power==100){while(flag==9){printf("\n\n\t请输入密码(六位数): ");scanf("%s",key);if(strcmp(key,p->key)==0){flag=10;}if(strcmp(key,p->key)!=0){system("cls");printf("\n\t\t********************账户登陆*******************\n\n\n");printf("\n\n\n\n\n\n\n\t\t\t对不起,密码输入错误%d 次!",i+1);flag=9;i++;if(i==3){system("cls");printf("\n\n\n\n\n\n\n\t\t\t密码输入错误三次,系统自动返回主菜单!");Sleep(2000);system("cls");return;}}}if(flag==10)break;}}while(1){system("cls");printf("*****************************************\n");printf(" * *\n");printf(" * 账户查询*\n");printf(" * *\n");printf(" * —————————————————— *\n");printf(" * *\n");printf(" * 1:查询*\n");printf(" * *\n");printf(" * 2:存款*\n");printf(" * *\n");printf(" * 3:消费*\n");printf(" * *\n");printf(" * 4:修改密码*\n");printf(" * *\n");printf(" * 5:返回主菜单*\n");printf(" * *\n");printf("*****************************************\n");printf("\n");printf("\t\t请选择操作: ");scanf("%d",&b);switch(b){case 1:chaxun2(p); break;case 2:cunkuan(p);break;case 3:cost(p);break;case 4:xiugai(p);break;case 5:main();default:printf("对不起,您的输入有误,请重新输入!");}}}void jihuo(){char x;char num[10];struct card *p,*head1;head1=duqu();p=head1;system("cls");printf("\n\t\t********************激活购物卡*******************\n\n\n");printf("\t请输入您要激活的卡号(六位数): ");scanf("%s",num);while(p!=NULL){if(strcmp(num,p->number)!=0){p=p->next;}elsebreak;while(p==NULL){system("cls");printf("\n\t\t********************激活购物卡*******************\n\n\n");printf("\n\n\n\n\n\n\t\t\t没有该卡号信息,请重新输入卡号!\n\n");Sleep(1000);system("cls");printf("\n\t\t********************激活购物卡*******************\n\n\n");printf("\t请重新输入您申请的卡号(六位数): ");scanf("%s",num);p=head1;}}system("cls");printf("\n\t\t********************激活购物卡*******************\n\n\n");printf("您的购物卡为:\n\n");printf("\n\t姓名卡号余额积分\n\n");printf("\t%2s %16s %13.2f %13.2f",p->name,p->number,p->mo ney,p->jifen);printf("\n\n\n\n\n\t\t\t确认激活您的购物卡? \n\n\t\t\t <1> 是<2> 否");printf("\n\n\t\t\t请选择:");scanf(" %c",&x);switch(x){case '1':system("cls");printf("\n\t\t********************激活购物卡*******************\n\n\n");p->power=100;save1(head1);printf("\n\n\n\n\n\n\n\t\t\t");printf("激活成功,按任意键返回主菜单.....");getche();break;case '2':system("cls");printf("\n\t\t********************激活购物卡*******************\n\n\n");printf("\n\n\n\n\n\n\n\t\t\t");printf("您已放弃激活,按任意键返回主菜单.....");getche();break;default:system("cls");printf("\n\t\t********************激活购物卡*******************\n\n\n");printf("\n\n\n\n\n\n\n\t\t\t");printf("对不起,您的输入有误,请重新输入!");Sleep(2000);}}void list(){struct card *p1;p1=duqu();system("cls");printf("\n\t\t********************显示购物卡*******************\n\n\n");printf("所有购物卡信息为:\n\n\n");printf("\n\t姓名卡号余额积分\n\n");while(p1!=NULL){printf("\t %2s %16s %14.2f %14.2f",p1->name,p1->number,p1 ->money,p1->jifen);printf("\n");p1=p1->next;}}main(){int a;struct *head;printf("\n\n\n\n\n\n\n\n\t\t\t\t");printf(" 欢迎使用");printf("\n\n");printf("\t ******************购物卡管理系统*******************\n");Sleep(1000);system("cls");while(1){printf("\n");printf("*****************************************\n");printf(" * 购物卡管理系统*\n");printf("*****************************************\n");printf(" * 菜单*\n");printf(" * *\n");printf(" * 1:注册*\n");printf(" * *\n");printf(" * 2:激活*\n");printf(" **\n");printf(" * 3:帐户登录*\n");printf(" * *\n");printf(" * 4:名单*\n");printf(" * *\n");printf(" * 0:退出系统*\n");printf(" * *\n");printf("*****************************************\n");printf("\n");printf("\t\t请选择操作: ");scanf("%d",&a);switch(a){case 1:createlist(head);system("cls");break;case 2:jihuo();system("cls");break;case 3:chaxun();break;case 4:list();printf("\n\n\n\n\t\t\t显示完毕,按任意键返回主菜单....");getche();system("cls");break;case 0:system("cls");printf("\n\n\n\n\n\n\n\n\n\n\n\t\t\t");printf(" 感谢您的使用,再见!");printf("\n\n\n\n\n\t\t\t\t\t");Sleep(1000);exit(0);default:system("cls");printf("\n\n\n\t\t\t对不起!您的输入有误!请重新输入。

学生个人消费管理系统c语言

学生个人消费管理系统1. 简介学生个人消费管理系统是一款基于C语言开发的软件,旨在帮助学生管理和控制个人的消费情况。

该系统可以记录学生的收入和支出,并提供相应的统计分析功能,帮助学生更好地理解自己的消费习惯,合理规划财务。

2. 功能特点2.1 记录收入和支出学生个人消费管理系统可以记录学生每天或每月的收入和支出情况。

用户可以输入收入金额、支出金额以及相关的备注信息。

系统会自动将这些数据保存到数据库中,以便后续查询和分析。

2.2 统计分析功能该系统提供了强大的统计分析功能,可以根据用户输入的时间范围、类别等条件生成相应的报表。

用户可以通过这些报表了解自己在不同时间段内的收入和支出情况,以及各类别占比等信息。

这些统计结果以图表形式展示,直观明了。

2.3 预算管理学生个人消费管理系统还提供了预算管理功能,用户可以设定每月或每周的预算金额。

系统会根据用户设定的预算金额和实际消费情况进行比较,及时提醒用户是否超出预算。

这样可以帮助学生更好地控制消费,避免不必要的浪费。

2.4 数据备份与恢复为了防止数据丢失,学生个人消费管理系统支持数据的备份与恢复功能。

用户可以随时备份自己的数据到指定位置,并在需要时恢复到原来的状态。

这样即使系统出现故障或者用户误操作导致数据丢失,也可以通过备份文件进行恢复。

3. 系统设计3.1 数据库设计学生个人消费管理系统使用数据库来存储用户的收入和支出信息。

数据库中包含以下几个表:•用户表:用于存储用户的基本信息,如用户名、密码等。

•收入表:用于存储用户的收入信息,包括收入金额、时间、备注等。

•支出表:用于存储用户的支出信息,包括支出金额、时间、备注等。

3.2 用户界面设计学生个人消费管理系统采用图形界面设计,方便用户使用和操作。

主要界面包括以下几个部分:•登录界面:用户需要输入用户名和密码进行登录。

•主界面:显示用户当前的收入和支出情况,并提供相关功能按钮。

•记录界面:用于记录用户的收入和支出信息。

客户消费积分管理系统的设计与实现

数据结构课程设计题目:客户消费积分管理系统的设计与实现学生姓名:**学号: **********系别:计算机科学与技术专业:计算机科学与技术指导教师:高艳霞讲师起止日期:2012.3.11——2012.4.152012年 3月 9 日目录摘要 (I)关键词 (I)1 前言 (1)2 需求分析 (2)2.1 范围 (2)2.1.1 标识 (2)2.1.2 系统概述 (2)2.2 需求概述 (2)2.2.1 系统目标 (2)2.2.2 运行环境 (3)2.2.2.1 设备 (3)2.2.2.2 支持程序 (3)2.2.3 用户的特点 (3)2.3功能需求 (3)2.3.1 系统用例图 (3)2.3.2用户登陆 (6)2.4实体关系图 (7)3 概要设计 (9)3.1 范围 (9)3.1.1 标识 (9)3.1.2 系统概述 (9)3.2 系统结构 (9)3.3 客户积分管理系统界面设计 (9)4系统详细设计 (10)4.1 范围 (10)4.1.1 标识 (10)4.1.2 系统概述 (10)4.2 详细设计说明 (10)4.2.1 登录界面设计 (10)5 测试说明 (12)5.1 范围 (12)5.1.1 标识 (12)5.1.2 系统概述 (12)5.2 测试计划及预期结果 (12)5.3 具体测试情况 (15)7总结 (17)参考文献 (18)致谢 (18)客户消费积分管理系统的设计与实现的设计与开发摘要客户消费积分管理系统开发的总体目标是实现超市对会员卡的积分和打折管理。

主要是通过对客户积分卡积分的统计,再通过不同层段的积分有不同的折扣。

本系统根据客户及商品的数据需求,采用了线性表的链式存储结构,主要功能包括数据的录入、插入、删除、修改、以及数据的显示,对客户积分的管理,对客户购物时依据积分的数目进行不同打折处理。

关键词C++语言,客户积分管理系统,数据结构,链式存储结构1 前言随着WTO的步伐加快,国际化的竞争必然加剧,参与市场竞争,更多的要靠先进超前的经营管理观念和方法等的综合实力,高效而方便的管理师公司的重心,建立先进的管理系统,对推动公司战略实现,提高经营业绩具有重要战略意义。

客户消费积分管理系统-数据结构设计报告

广州XX学院课程设计报告课程数据结构与算法题目李CC 专业计算机科学与技术指导教师 XX 班级计科XX 学号 22姓名李XX2020年1月3日《数据结构与算法》课程设计任务书银行排队系统的设计与实现一、设计要求1.问题描述针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。

2.需求分析(1)采用一定存储结构进行客户信息存储;(2)对客户的信息可以进行修改、删除、添加;(3)能够根据消费情况进行客户积分的累加;(4)根据积分情况,对客户实行不同程度的打折优惠;(5)演示程序以用户和计算机的对话方式进行。

二、概要设计1.主界面设计为了实现“客户消费积分管理系统”的各项功能,首先设计一个含有多个菜单项的主控菜单子程序,以链接系统的各项子功能,方便用户使用本系统。

本系统主控菜单运行界面如下图1所示。

2.存储结构设计本系统采用链表存储客户消费积分管理系统中的客户信息。

3.系统功能设计本系统分为以下7个功能模块。

(1)添加客户:添加客户需要输入客户的姓名、身份证号码、电话号码、消费金额,在输入消费金额后系统会自动计算出该用户获得的积分,并且输出对应折扣到该客户信息中。

(2)查找客户:查找需要输入客户相应的身份证号码。

(3)修改客户:可以单独选择修改客户的姓名、身份证号码、电话号码、消费金额,也可以一次性全都修改。

(4)删除客户:查找到需要删除的客户即可一键删除。

(5)显示客户:显示外部文件保存的所有客户的信息。

(6)统计客户:统计客户总数。

(0)保存退出:保存所有修改删除操作到文件中。

三、模块设计1.模块设计本程序包含3个模块:主程序模块、菜单选择模块和链表操作模块。

调用关系如图所示。

2.系统子程序及功能设计本系统共设置13个函数,包括主函数。

各函数名及功能说明如下。

printf("\n");p->discount=y;printf("添加客户成功!\n\n");customer_number++;p->next=head->next;head->next=p;}(2)查找客户函数void Search(cnode *head,char ID[])lf\n",p->consume);printf("积分:%lf\n",p->integer);y=display_discount(p->integer);printf("折扣:%.1lf折\n",y);p->discount=y;}}}}(3)修改客户函数void Amend(cnode *head,char ID[])lf\n",p->consume);printf("积分:%lf\n",p->integer);y=display_discount(p->integer);printf("折扣:%.1lf折\n\n",y);p->discount=y;}}printf("1.姓名 2.身份证号 3.电话号码 4.消费金额 5.修改全部\n");printf("请选择你要修改的选项:");scanf("%d",&choose1);if(choose1==1){printf("\n请输入修改后姓名:");scanf("%s",&p->name);printf("修改成功!\n");}if(choose1==2){printf("\n请输入修改后的身份证号:");scanf("%s",&p->ID);printf("修改成功!\n");}if(choose1==3){printf("\n请输入修改后电话:");scanf("%s",&p->tnumber);printf("修改成功!\n");}if(choose1==4){printf("\n请输入修改后的消费:");scanf("%lf",&p->consume);p->integer=p->consume/10;printf("积分:%lf\n",p->integer);y=display_discount(p->integer);printf("折扣:%.1lf折\n\n",y);printf("修改成功!\n");}if(choose1==5){printf("\n请输入姓名:");scanf("%s",&p->name);printf("请输入身份证号:");scanf("%s",&p->ID);printf("请输入电话号码:");scanf("%s",&p->tnumber);printf("请输入消费金额:");scanf("%lf",&p->consume);p->integer=p->consume/10;printf("对应积分:%lf\n",p->integer);y=display_discount(p->integer); lf折",y);printf("\n");p->discount=y; }}}(4)删除客户函数void Delete(cnode *head,char ID[])lf\n",p->consume);printf("积分:%lf\n",p->integer);y=display_discount(p->integer);printf("折扣:%.1lf折\n\n",y);q->next=p->next;}}printf("已找到该客户,是否删除(y/n)");scanf("%s",ch);if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要进行删除*/{ for(i=j;i<=customer_number;i++){q=q->next;}customer_number--;printf("删除成功!");}else{printf("删除失败!");}}}(5)显示客户函数void Showall(cnode *head) lf\n",p->consume);printf("积分:%lf\n",p->integer);y=display_discount(p->integer);printf("折扣:%.1lf折\n\n",y);}}}(6)计算客户相应折扣double display_discount(double points) {double discount;if(points == 0)discount = 0;if(points > 0&&points <= 20)discount = ;if(points > 20&&points <= 30)discount = 9;if(points > 30&&points <= 50)discount = ;if(points > 50&&points <= 80)discount = 8;if(points > 80&&points <= 90)discount = ;else if(points > 90)discount = 7;return discount;}五、测试分析系统运行主界面如图1所示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档