客户消费积分管理系统 C++版有代码
- 格式:doc
- 大小:95.00 KB
- 文档页数:18
广州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所示。
客户消费积分管理系统的设计与实现客户消费积分管理系统摘要:客户消费积分管理系统开发的总体目标是实现酒吧会员卡的积分和打折管理。
主要是通过对客户积分卡积分的统计,再通过不同层段的积分有不同的折扣。
本系统根据客户及商品的数据需求,采用了线性表的链式存储结构,主要功能包括数据的录入、插入、删除、修改、以及数据的显示,对客户积分的管理,对客户购物时依据积分的数目进行不同打折处理。
关键词: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类主要是进行对单链表的各种操作:❖初始化头节点为空的链表。
❖求单链表的长度。
❖清空单链表。
❖判断链表是否为空。
数据结构课程设计客户消费积分系统【数据结构课程设计】客户消费积分系统一、引言客户消费积分系统是一种用于记录和管理客户消费行为,并根据消费行为给予相应积分的系统。
本文将详细介绍该系统的设计和实现。
二、系统需求分析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框架进行页面布局和样式设计,实现了友好的用户界面。
购物卡管理系统(一)系统主要功能模块:(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对不起!您的输入有误!请重新输入。
学生个人消费管理系统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所示。
客户消费积分管理系统的设计与实现-课程设计编号课程设计报告2015~2016学年第一学期客户消费积分管理系统的设计与实现The Design and Implementation of a Client IntegralManagement System实习类别课程设计学生姓名李志莹专业软件工程学号 140521329指导教师刘丹、何巍学院计算机科学技术学院二〇一五年十二月一、概述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类主要是进行对单链表的各种操作:❖初始化头节点为空的链表。
积分管理系统操作手册一、系统概述积分管理系统是一种用于管理和追踪积分积累、兑换和使用的工具。
该系统可以用于各种场景,例如会员积分管理、消费者积分奖励、员工积分激励等。
本操作手册为您介绍如何操作积分管理系统,包括积分设置、积分发放、积分兑换等功能。
二、登录系统1. 打开Web浏览器,输入积分管理系统的网址。
2. 输入用户名和密码进行登录。
3. 确认身份后,系统将跳转至主界面。
三、积分设置1. 进入系统后,点击“积分设置”菜单。
2. 设置积分规则,包括积分获取方式、积分消费规则、积分有效期等。
3. 确认设置无误后,保存并生效。
四、积分发放1. 点击“积分发放”菜单,选择“手动发放”或“自动发放”。
2. 手动发放:填写发放对象、积分数量和发放原因,点击确定按钮进行发放。
3. 自动发放:设置自动发放条件和时间,系统将根据条件自动发放积分。
五、积分查询1. 点击“积分查询”菜单,输入查询条件,如会员ID、姓名等。
2. 系统将显示该会员的积分信息,包括当前积分总量、积分收支记录等。
六、积分兑换1. 点击“积分兑换”菜单,选择需要兑换的商品或服务。
2. 输入兑换数量,系统将根据规则扣除相应积分,并生成兑换记录。
七、积分活动1. 点击“积分活动”菜单,创建新的积分活动。
2. 设置活动的时间、参与条件和奖励规则。
3. 发布活动后,用户可以参与并获取相应的积分奖励。
八、数据报表1. 点击“数据报表”菜单,选择需要查看的报表类型,如积分流水、积分排行榜等。
2. 系统将生成相应的报表,用户可以查看和导出报表数据。
九、系统设置1. 点击“系统设置”菜单,进行系统参数的配置,如积分清零时间、积分有效期提醒等。
2. 确认设置后,保存并生效。
十、安全退出1. 在使用完毕后,点击右上角的“退出”按钮,安全退出系统。
以上便是积分管理系统的操作手册。
通过该手册的介绍和指导,您可以更好地使用积分管理系统,有效地管理和追踪积分积累、兑换和使用。
积分管理系统操作手册第一部分:系统简介积分管理系统是一种用于积分管理、积分兑换、积分统计和积分奖励的管理系统。
本系统旨在方便用户进行积分管理和使用,提高用户忠诚度和积极性。
系统能够实现自动化积分记录、余额查询以及积分奖励活动的管理。
本操作手册将详细介绍系统的操作流程和功能使用方法。
第二部分:系统登录和用户权限1. 用户登录:用户首先需要进入系统的登录界面,在此输入用户名和密码,按照系统提示完成验证操作,即可登录系统。
2. 用户权限:系统可根据用户的角色和权限进行设置,包括管理员、普通用户、高级用户等。
管理员具有最高权限,可以管理所有用户的积分和相关操作;普通用户只能进行基本的积分兑换和查询;高级用户可以参与积分奖励活动等操作。
第三部分:积分管理1. 积分记录:系统能够自动记录用户的积分获取、消费以及积分转移等操作。
用户可以在用户中心查看自己的积分明细。
2. 积分兑换:用户可以根据自己的积分余额,在系统内进行积分兑换商品或服务。
3. 积分转移:系统支持用户之间的积分转移,在一定时间内,用户可以自由地将积分转移给其他用户。
4. 积分统计:系统能够对用户的积分获取和消费进行统计分析,以及用户的积分使用情况等。
第四部分:积分奖励管理1. 积分奖励活动:系统支持各类积分奖励活动的设置和管理,包括积分抽奖活动、积分充值返利、积分商城优惠等。
2. 活动设置:管理员可以在系统后台进行各类积分奖励活动的设置,包括活动时间、参与条件和奖励规则等。
3. 参与活动:用户可以根据系统提示,参与积分奖励活动,获得相应的积分奖励。
第五部分:系统维护和管理1. 用户管理:管理员具有对用户的增删改查权限,可以对用户的积分进行管理和维护。
2. 数据备份:系统支持对用户的积分数据进行定期备份,确保数据安全和可靠性。
3. 系统升级:系统会定期进行版本更新,管理员需确保系统安全稳定地进行升级操作。
第六部分:常见问题和故障处理1. 用户忘记密码:系统提供了密码找回功能,用户可以按照提示进行密码找回操作。
数学与计算机学院课程设计说明书课程名称: 软件工程课程代码: 8404131 题目: 会员积分卡管理系统年级/专业/班: 09软件工程4班学生姓名:学号:开始时间: 2011 年 05 月 23 日完成时间: 2011 年 06 月 06 日课程设计成绩:指导教师签名:年月日课程设计任务书学院名称:数学与计算机学院课程代码:___8404131_______ 专业:软件工程年级:09一、设计题目二、主要内容三、具体要求及应提交的材料本课程设计要求学生运用软件工程的思想,严格按照软件生命周期各阶段的目的和任务,完成对系统的分析、设计、编码、及测试。
1.完成系统的需求分析2.完成系统的设计:针对分析阶段提出的软件要求,给出实现的方案和具体细节的说明。
(1)导出系统的数据流程图和功能模块图。
(2)设计数据库。
使用Microsoft Access创建数据库。
确定数据库中数据表的组成。
确定数据表中字段的构成、主键字段和有关字段的约束条件等。
依靠数据表中主键字段建立数据表之间的关系,并由此建立数据表之间的参照完整性约束。
(3)根据功能确定软件模块组成及调用关系。
(4)确定每个模块的数据结构及算法。
3.编码建造模块,在可视化编程环境下,按照软件设计要求制作界面和完成对模块的编码,由此使软件设计具体化为软件作品。
4. 测试编写合适的测试用例完成系统的测试工作并分析结果。
5.编写课程设计报告应提交材料:1.上交源程序:学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中);2.课程设计报告的打印稿和电子稿;四、主要技术路线提示1.认真阅读相关知识,完成系统的功能分析和系统设计。
2.选用VC++作为开发环境。
五、进度安排六、参考资料[1] 张海藩. 软件工程导论. 北京:清华大学出版社,2004[2] 陈明. 实用软件工程基础. 北京:清华大学出版社,2003[3] 殷人昆. 实用软件工程. 北京:清华大学出版社,2003指导教师签名日期年月日系主任审核日期年月日目录1.前言 (1)1.1. 编写目的 (1)1.2. 用户特点 (1)2. 需求分析 (1)2.1. 功能分析 (1)2.2. 方案分析 (7)3. 概要设计 (7)3.1. 数据结构 (8)3.2. 逻辑结构与物理结构 (9)3.3. 功能模块划分 (10)3.3.1.结构框图 (11)3.3.2.程序流图 (12)3.3.3.模块功能分析及外部设计 (12)3.4.抽象数据类定义 (12)4. 详细设计 (12)4.1. 数据类型定义 (12)4.2. 主要模块内部设计 (13)4.2.1.模块1设计 (13)4.2.1.1.模块算法 (13)4.2.1.2.流程图 (13)4.3.1.3.伪代码 (13)4.2.2. 模块2设计 (13)5.实现与调试分析 (14)5.1.实现环境 (14)5.2.语言选择 (14)5.3.调试分析 (14)6.测试分析 (15)6.1.测试用例 (15)6.2.测试结果 (16)6.3.性能分析 (17)7.用户手册 (18)总结 (18)参考文献 (18)附录源程序文件名清单:1.前言社会生活的现代化,使得市场的走向发生巨大变化,随着市场竞争的日益激烈,如何吸引消费者以及使其成为长期客户是企业需要考虑的问题。
第1章设计题目的内容、任务及具体要求1.1 设计题目的内容明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力.1.2 设计题目的任务主要利用c语言的文件操作能力设计开发一个小型的管理信息系统。
至少具备如下功能:个人消费记录登记,消费信息查询和分类统计。
操作界面要符合用户的一般习惯,图形或文本界面皆可1.3设计具体的要求可以对记录的信息进行添加,修改;能对历史记录进行查询与删除;要求功能界面设计美观,清晰,方便操作.1).进一步掌握运用C进行程序设计的能力;2).进一步理解和运用面向过程程序设计的思想和方法;3).初步掌握开发一个小型实用系统的基本方法;4).学会调试一个较长程序的基本方法;5).学会利用互联网查找相关的知识并学习;第2章总体设计思路2.1数据录入模块设计本模块的设计主要包括三个函数,mainmenu(……), Record (……), Recordxinxi(……)函数。
mainmenu(……)函数主要是对录入数据时录入时录入方法的选择操作。
函数在屏幕上显示选择主菜单,以供操作者进行录入选择。
Record (……)函数的主要实现程序的初始建库,把数据写如到文件中。
其主要过程是一二进制写入文件打开文件,然后调用Recordxinxi(……)函数,将需要录入的数据从键盘输入到计算机内,然后写入到文件。
2.2查询模块设计本模块主要设计Seekxinxi(……)函数、print(……)函数。
Seekxinxi(……)函数主要是程序查询菜单的显示、输出你要查询的信息。
查询菜单包括输入日期查询、输入名称查询、输入消费类别查询、查询所有历史记录信息。
他首先在屏幕显示查询选择菜单,然后利用一个switch()选择语句来根据输入的信息以读的方式打开文件,进行读取。
#include<iostream.h>#include<math.h>#include<string.h>void mainmenu();void run();struct consum //定义一个结构体存储各月消费;{char times[8];//定义时间;double meal; //定义吃饭;double phone; //定义电话费;double book; //定义买书费;double tour; //定义旅游费;double other; //定义其他费用;double work; //定义俭学勤工费;double total;}stu[4]={{"1",-300,-50,-30,-200,-100,100,},{"2",-350,-60,-40,-250,-150,120},{"3",-300,-60,-40,-200,-100,130},{"4",-400,-65,-45,-275,-160,125}};//为结构体变量赋初值;;void main(){int k=1;while(1){mainmenu();run();int t;cout<<"是否继续?是1,否0"<<endl;cin>>t;if(t==0)break;}}void mainmenu(){cout<<"--------欢迎使用大学生消费管理系统主菜单--------"<<endl;cout<<"\t"<<"浏览消费记录,请选择:1"<<endl;cout<<" 录入消费记录,请选择:2"<<endl;cout<<" 查询消费记录,请选择:3"<<endl;cout<<" 删除消费记录,请选择:4"<<endl;cout<<" 排序消费记录,请选择:5"<<endl;cout<<" 统计消费记录,请选择:6"<<endl;cout<<"\t"<<"退出,请选择:0"<<endl;}void run(){int a,k=1; //定义变量a由用户在键盘输入,执行屏幕上的操作序号;cout<<"请输入要执行操作的序号:";cin>>a;if(0<=a&&a<=6)if(a==2){cout<<"请输入要录入的消费信息:包括月份,吃饭费用,电话费用,买书费用,旅游费用,其他费用以及勤工收入,支出为负值,收入为正值:"<<endl;cin>>stu[4+k].times>>stu[4+k].meal>>stu[4+k].phone>>stu[4+k].book>>stu[4+k].tour>>st u[4+k].other>>stu[4+k].work;cout<<"月份"<<'\t'<<"吃饭"<<'\t'<<"电话"<<'\t'<<"买书"<<'\t'<<"旅游"<<'\t'<<"其他"<<'\t'<<"勤工"<<endl;cout<<stu[4+k].times<<'\t'<<stu[4+k].meal<<'\t'<<stu[4+k].phone<<'\t'<<stu[4+k].book<<'\t'<<stu[4+k].tour<<'\t'<<stu[4+k].other<<'\t'<<stu[4+k].work;k++;cout<<endl;}else if(a==4){cout<<"请输入要删除的月份序号,1为一月份,2为二月份,3为三月份,4为四月份:";int m;cin>>m;cout<<"月份"<<'\t'<<"吃饭"<<'\t'<<"电话"<<'\t'<<"买书"<<'\t'<<"旅游"<<'\t'<<"其他"<<'\t'<<"勤工"<<"\t"<<"总支出"<<endl;for(int i=0;i<4;i++)if(i==m-1);elsecout<<stu[i].times<<'\t'<<stu[i].meal<<'\t'<<stu[i].phone<<'\t'<<stu[i].book<<'\t'<<stu[i].tour<<'\t'<<stu[i].other<<'\t'<<stu[i].work<<endl;}elseswitch(a) //使用switch语句,输出符合用户要求的内容;{case 0: break; //退出程序,即什么也不执行;case 1:{cout<<"月份"<<'\t'<<"吃饭"<<'\t'<<"电话"<<'\t'<<"买书"<<'\t'<<"旅游"<<'\t'<<"其他"<<'\t'<<"勤工"<<endl;for(int i=0;i<=2+k;i++)cout<<stu[i].times<<'\t'<<stu[i].meal<<'\t'<<stu[i].phone<<'\t'<<stu[i].book<<'\t'<<stu[i].tour<<'\t'<<stu[i].other<<'\t'<<stu[i].work<<endl;}break; //输出初值;-case 3:cout<<"请输入要查询的月份序号,1为一月份,2为二月份,3为三月份,4为四月份:";int b; //定义变量b,执行要查询月份的序号;cin>>b;switch(b) //使用switch嵌套语句,查询各个月份的消费记录;{case 1:cout<<"月份"<<'\t'<<"吃饭"<<'\t'<<"电话"<<'\t'<<"买书"<<'\t'<<"旅游"<<'\t'<<"其他"<<'\t'<<"勤工"<<endl;cout<<" 1"<<'\t'<<"-300"<<'\t'<<"-50"<<'\t'<<"-30"<<'\t'<<"-200"<<'\t'<<"-100"<<'\t'<<"100"<<endl;break; //查询一月份的消费记录;case 2:cout<<"月份"<<'\t'<<"吃饭"<<'\t'<<"电话"<<'\t'<<"买书"<<'\t'<<"旅游"<<'\t'<<"其他"<<'\t'<<"勤工"<<endl;cout<<" 2"<<'\t'<<"-350"<<'\t'<<"-60"<<'\t'<<"-40"<<'\t'<<"-250"<<'\t'<<"-150"<<'\t'<<"120"<<endl;break; //查询二月份的消费记录;case 3:cout<<"月份"<<'\t'<<"吃饭"<<'\t'<<"电话"<<'\t'<<"买书"<<'\t'<<"旅游"<<'\t'<<"其他"<<'\t'<<"勤工"<<endl;cout<<" 3"<<'\t'<<"-300"<<'\t'<<"-60"<<'\t'<<"-40"<<'\t'<<"-200"<<'\t'<<"-100"<<'\t'<<"130"<<endl;break; //查询三月份的消费记录;case 4:cout<<"月份"<<'\t'<<"吃饭"<<'\t'<<"电话"<<'\t'<<"买书"<<'\t'<<"旅游"<<'\t'<<"其他"<<'\t'<<"勤工"<<endl;cout<<" 4"<<'\t'<<"-400"<<'\t'<<"-65"<<'\t'<<"-45"<<'\t'<<"-275"<<'\t'<<"-160"<<'\t'<<"125"<<endl;break; //查询四月份的消费记录;}break;case 5:{cout<<"总支出排序前的结果是:"<<endl;cout<<"月份"<<'\t'<<"吃饭"<<'\t'<<"电话"<<'\t'<<"买书"<<'\t'<<"旅游"<<'\t'<<"其他"<<'\t'<<"勤工"<<"\t"<<"总支出"<<endl;for(int i=0;i<3+k;i++){stu[i].total=stu[i].meal+stu[i].phone+stu[i].book+stu[i].tour+stu[i].other+stu[i].work;cout<<stu[i].times<<'\t'<<stu[i].meal<<'\t'<<stu[i].phone<<'\t'<<stu[i].book<<'\t'<<stu[i].tour<<'\t'<<stu[i].other<<'\t'<<stu[i].work<<"\t"<<stu[i].total<<endl;}for(i=0;i<2+k;i++)for(int j=0;j<2+k-i;j++)if(fabs(stu[j].total)>fabs(stu[j+1].total)){double t=stu[j].total;stu[j].total=stu[j+1].total;stu[j+1].total=t;}cout<<"总支出排序后的结果是:"<<endl;cout<<"月份"<<'\t'<<"吃饭"<<'\t'<<"电话"<<'\t'<<"买书"<<'\t'<<"旅游"<<'\t'<<"其他"<<'\t'<<"勤工"<<"\t"<<"总支出"<<endl;for(i=0;i<3+k;i++)cout<<stu[i].times<<'\t'<<stu[i].meal<<'\t'<<stu[i].phone<<'\t'<<stu[i].book<<'\t'<<stu[i].tour<<'\t'<<stu[i].other<<'\t'<<stu[i].work<<"\t"<<stu[i].total<<endl;}break;case 6:{ cout<<"请输入要统计消费的名称,1为吃饭费用,2为电话费用,3为买书费用,4为旅游费用,5为其他费用,6为勤工收入:";int c;double sum=0;cin>>c;if(c==1){for(int j=0;j<=2+k;j++)sum+=stu[j].meal;cout<<"sum="<<sum<<endl;}if (c==2){for(int c=0;c<=2+k;c++)sum+=stu[k].phone;cout<<"sum="<<sum<<endl;}if(c==3){for(int k=0;k<=2+k;k++)sum+=stu[k].book;cout<<"sum="<<sum<<endl;}if(c==4){for(int k=0;k<=2+k;k++)sum+=stu[k].tour;cout<<"sum="<<sum<<endl;}if(c==5){for(int k=0;k<=2+k;k++)sum+=stu[k].other;cout<<"sum="<<sum<<endl;}if(c==6){for(int k=0;k<=2+k;k++)sum+=stu[k].work;cout<<"sum="<<sum<<endl;}}break;}}。