ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:613.88KB ,
资源ID:8622220      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8622220.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(客户消费积分管理系统.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

客户消费积分管理系统.docx

1、客户消费积分管理系统软件综合课程设计 客户消费积分管理系统小学生数据习题库系统 二一四 年 六 月客户消费积分管理系统一、问题陈述针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。基本要求:1. 采用一定的存储结构进行客户信息的存储;2. 对客户的信息可以进行修改、删除、添加;3. 能够根据消费情况进行客户积分的计算;4. 根据积分情况实行不同程度的打折优惠;2、需求分析要求:(1)用C+语言实现程序设计;(2)利用线性表的链表存储方式进行相关信息处理;(3)根据系统的功能要求设计函数;(4)画出功能模块的设计图;(5)系统的各个功能模块要求用函数的形式实现;(

2、6)良好的人机互交环境,程序要有注释。任务:(1)设计添加用户函数,采用结构体将每个用户的信息封装,其中包括用户姓名name、用户省份证号ID、用户消费金额consume、积分integer的信息。输入一个客户信息后再开辟新的节点连接。(2)设计各个功能函数,实现对于客户,消费金额,消费积分的管理。(3)画出功能模块的设计图;(4)编写代码;(5)程序分析与调试。三、概要设计(1)本程序对于客户消费积分管理系统利用线性表的链表存储方式,使用结构体指针将每一个用户联系起来。使用结构体指针的链表动态链接形式将便于客户的封装,节省空间,便于插入和删除。(2)程序中设计了添加用户查找用户修改用户删除用

3、户统计客户数量的功能。(3)添加用户:函数void Getelem (C *head);添加用户中,采用结构体将每个用户的信息封装,其中包括用户姓名name、用户省份证号ID、用户消费金额consume、积分integer的信息。输入一个客户信息后再开辟新的节点连接。开一个空间加一个用户可以节省空间,解决实现开辟的空间不够的问题。(4)void Search(C *head,char ID);查找用户利用指针一个一个用户比对信息知道,直到找到正确信息并显示。(5)void Amend(C *head,char ID);查找并显示然后修改。(6)void Delete(C *head,char

4、ID);查找显示并删除。(7)void Showall(C *head);遍历链表并显示客户。(8)void count(C *head);遍历统计客户数量显示。(9)double display_discount(double integer);计算客户折扣,每次显示用户信息调用一次保证客户为最新打折信息。四、详细设计(1)功能模块详细设计(2)详细设计思想本程序运用链表对客户信息进行存储,首先对结点进行定义,结点中的数据域分别定义了消费者的消费号、身份证、消费价格、积分,其中身份证和消费价格用了字符型数组进行定义,然后定义了客户消费信息链表,每添加一个客户,先分配内存,再添加消费者的信息,

5、之后将链表中最后一个指针指向该新的消费者,删除时,需先找到该消费者前面的消费者,直接将其指针指向删除消费者的下一个消费者,修改信息时,先找到该消费者,选择修改的内容,再进行修改,添加消费的价格时,先找到该消费者,根据情况对增加或减少消费价格,并根据价格计算积分,打折时,根据消费者打折的要求,进行打折。5、程序代码#include #include #include #include class C /定义一个C类public: char name20; char ID20; double consume; double integer; C *next;void Initstack(C * &

6、head)/*初始化链表*/ head= (C*)malloc(sizeof(C); /开辟节点空间 head-next=NULL;class A /定义一个A类,封装功能函数public: void Getelem (C *head); void Search(C *head,char ID); void Amend(C *head,char ID); void Delete(C *head,char ID); void Showall(C *head); void count(C *head); double display_discount(double integer); void c

7、reateFile(C* head);int main() A a; C *head; int choice; char y20; Initstack(head); do coutendl; cout 客户消费 积分管理系统 endl; cout *endl; cout * *endl; cout * 主菜单 *endl; cout * 1 添加客户 *endl; cout * 2 查找客户 *endl; cout * 3 修改客户 *endl; cout * 4 删除客户 *endl; cout * 5 显示客户 *endl; cout * 6 统计客户 *endl; cout * 7 退出

8、 *endl; cout * *endl; cout *endl; cout 请输入您的选择(1,2,3,4,5,6):choice; if(choice=1) a.Getelem(head); /添加 else if(choice=2) couty; while(strlen(y)!=18) couty; a.Search(head,y); /查找 else if(choice=3) couty; while(strlen(y)!=18) couty; a.Amend(head,y); /修改 else if(choice=4) coutendl; couty; a.Delete(head,

9、y); /删除 else if(choice=5) coutendl; a.Showall(head); /显示 else if(choice=6) coutendl; a.count(head); /统计 else if(choice=7) exit(1); while(choicenext != NULL) p = p-next; fprintf(fw,用户名:%s,身份证号:%s,消费金额:%lf,积分:%lfn, p-name,p-ID,p-consume,p-integer); fclose(fw);void A:Getelem (C *head) C *p; double y; p

10、=(C*)malloc(sizeof(C);/*申请空的节点空间*/ coutp-name; coutp-ID; while(strlen(p-ID)!=18) cout p-ID; coutp-consume; p-integer=p-consume; y=display_discount(p-integer); /调用函数计算折扣 cout折扣:ynext=head-next; head-next=p; createFile(head);void A: Search(C *head,char ID) C *p; double y; p=head; if(p-next=NULL) coutn

11、ext!=NULL) p=p-next; if(strcmp(ID,p-ID)=0) /判断身份证号是否相同 cout姓名:name; cout身份证号:ID; cout消费:consume; cout积分:integer; y=display_discount(p-integer); cout折扣:ynext=NULL) coutnext!=NULL) p=p-next; if(strcmp(ID,p-ID)=0) /判断身份证号是否相同 cout姓名:name; cout身份证号:ID; cout消费:consume; cout积分:integer; y=display_discount(

12、p-integer); cout折扣:y折; coutchoose; if(choose=1) coutp-name; if(choose=2) coutp-ID; while(strlen(p-ID)!=18) coutp-ID; if(choose=3) coutx; if(x=1) coutp-consume; else coutz; p-consume+=z; cout姓名:name; cout身份证号:ID; cout消费:consume; cout积分:integer; y=display_discount(p-integer); cout折扣:ynext=NULL) coutne

13、xt!=NULL) head=p; p=p-next; if(strcmp(ID,p-ID)=0) /判断身份证号是否相同 cout姓名:name; cout身份证号:ID; cout消费:consume; cout积分:integer; y=display_discount(p-integer); cout折扣:y折; coutx; if(x=1) head-next=p-next; cout删除成功!; else coutnext=NULL) coutnext!=NULL) p=p-next; cout姓名:name; cout身份证号:ID; cout消费:consume; cout积分

14、:integer; y=display_discount(p-integer); cout折扣:ynext=NULL) coutnext!=NULL) p=p-next; i+; cout现有客户数量:endl; couti 0&points 50&points 100&points 150&points 200&points 300) discount = 7; return discount;6、运行结果与测试(1)程序运行主窗口(2)添加客户(3)查找客户(4)修改客户(5)删除客户(6)显示客户(7)统计客户小学生数学习题库系统1、问题陈述(包括系统总体框图及功能描述)利用栈求表达式的

15、值,可供小学生作业,并能给出分数。要求:建立试题库文件,随机产生n个题目;题目涉及加减乘除,带括弧的混合运算;随时可以退出;保留历史分数,能回顾历史,给出与历史分数比较后的评价。此课题是研究表达式求值的问题,以帮助小学生完成测试。为了达到这个功能,实际我们要做的就是出题,和计算分数给出评价的工作。整体设计都是以这个要求为轴心进行的。为了直观和方便,现画出软件整体设计模块图。整体设计模块图可以清晰的看出软件的几大模块。整个系统的操作流程图可以看出操作的整体流程,如下图 (输入1) (输入2) (输入0)二、程序代码#include#include#include#include#include#

16、define MAXLEN 100typedef struct shiti int bianhao; char timu20;xuanti;typedef struct char op; int level;opt;typedef struct /定义操作符栈 opt stMAXLEN; int top;op_stack;typedef struct /定义值栈 double DMAXLEN; int top;D_stack;opt peek(op_stack *s) /定义看栈顶函数 opt error=$,-2; if(s-top=0) return s-sts-top; else ret

17、urn error;int IsEmpty(op_stack *s) /定义判断栈空的函数 if(s-topsts-top.op;char push(op_stack *s,opt c) /定义入栈函数 s-top+; s-sts-top=c; return c.op;opt pop(op_stack *s) /定义出栈函数 opt i; opt error=$,-2; if(s-top=0) i=s-sts-top; s-sts-top.op=0; s-top-; return i; else return error;void clear(op_stack *s) /定义初始化栈 s-to

18、p=-1;/-define the value stack-double Dpeek(D_stack *s) /定义看栈顶函数 if(s-top=0) return s-Ds-top; else return 0;int DIsEmpty(D_stack *s) /定义判断栈空的函数 if(s-topDs-top);double Dpush(D_stack *s,double c) /定义入栈函数 s-top+; s-Ds-top=c; return c;double Dpop(D_stack *s) /定义出栈函数 double i; if(s-top=0) i=s-Ds-top; s-Ds

19、-top=0; s-top-; return i; else return 0;void Dclear(D_stack *s) /定义初始化栈 s-top=-1;void createNumberFile(int n) FILE* fw=fopen(题目个数.txt,wt); if (fw = NULL) printf(文件写入失败!n); exit(0); fprintf(fw,%d,n); fclose(fw); int readNumberFile() FILE* fr=fopen(题目个数.txt,rt); if (fr = NULL) printf(文件读取失败!n); exit(0

20、); char numBuf5; fgets(numBuf,5,fr); int n=atoi(numBuf); fclose(fr); return n;void createQuestionFile() FILE* fw=fopen(试题库.txt,wt); if (fw = NULL) printf(文件写入失败!n); exit(0); int num; printf(请输入出题个数:); scanf(%d,&num); fflush(stdin); createNumberFile(num); printf(请出%d道题目放入试题库:n,num); char wtBuf20; for(int i=1;i=num;i+) printf(第%d题:,i); gets(wtBuf); fprintf(fw,%d:%sn, i

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1