上海电机计算机与软件学院 客户消费积分管理系统 问题描述:针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。 基本要求: 1 . 采用一定的存储结构进行客户信息的存储; 2 . 对客户的信息可以进行修改、删除、添加; 3 . 能够根据消费情况进行客户积分的计算; 4 . 根据积分情况实行不同程度的打折优惠; 实验分析 1 、概要设计 本系统用到的主要数据结构为数组和文件。 一个数组对应一个客户,里面用3个字符串分别存储着用户的客户号、姓名和消费情况。 然后将数组写入文件,查询时读取文件,提取相应信息。 2.功能模块详细设计 定义结点创建链表结点插入删除结点修改结点信息增添价格和计算积分计算打折后的价格主函数结束开始 4. 详细设计思想 程序总流程 本程序运用链表对客户信息进行存储,首先对结点进行定义,结点中的数据域分别定义了消费者的消费号、身份证、消费价格、积分,其中身份证和消费价格用了字符型数组进行定义,然后定义了客户消费信息链表,每添加一个客户,先分配内存,再添加消费者的信息,之后将链表中最后一个指针指向该新的消费者,删除时,需先找到该消费者前面的消费者,直接将其指针指向删除消费者的下一个消费者,修改信息时,先找到该消费者,选择修改的内容,再进行修改,添加消费价格时,先找到该消费者,根据情况对增加或减少消费价格,并根据价格计算积分,打折时,根据消费者打折的要求,进行打折。 详细设计和代码 4.2 源代码 #include #include #include #include typedef struct Dataytpe { int m; char Identity[18]; char Name[20]; float Price,Integral; }Datatype; //链表结点的定义 typedef struct Listnode { Datatype customer; struct Listnode *next; }Listnode,*Linklist; int i=1;//消费者编号 //创建链表 void create(Linklist &h){ float money; Linklist s,t; int j=1; char x; h=(Listnode *)malloc(sizeof(Listnode)); h->next=NULL;t=h; while(j){ s=(Listnode*)malloc(sizeof(Listnode)); printf("消费号为%d\n",i); s->customer.m=i; printf("请输入身份证号码:"); scanf("%c",&x); scanf("%s",s->customer.Identity); printf("\n"); printf("请输入姓名:"); scanf("%c",&x); scanf("%s",s->customer.Name); p...