资源预览内容
第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
第9页 / 共22页
第10页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数据结构课程设计设计题目:家庭成员消费管理小程序姓 名:学学 年 班号:20101613310010院:信级:二零一零级级:通信一班日 期:2012年12月19日家庭成员消费管理小程序设计题目:家庭成员消费管理小程序a问题描述:对于一个简单的几口之家,设计一个小程序,对每个成员的衣食住行玩 各单项消费和总消费进行管理b.要求:1. 输入记录且计算成员的总消费.2. 打印消费表。3. 按姓名查找某个成员的消费记录4. 按总消费降序排序输出全家成员消费表5退出该系统二总体设计 根据上面的需求分析,可以将这个系统分为以下模块:输入模块,查找模块,显 示模块.家庭成员消费管理系统数据输入数据显7示数据查j找数据排i序_序退出1详细设计1.主函数:主函数一般设计得比较简单,只提供输入,处理和输出部分的函数调用, 其中各功能模块用菜单方式选择.流程图:显示系列功冃匕模块1r输入n,判断n是否是0-4.Y根据n的值调用各功能模块函数程序:int menu()pri ntf(二二二二二二二二二二二二二二二二二二二二二二欢迎使用二二二二二二二二二二二=n); printf(nn* 成员消费表的管理程序 *n);printf(nn*1.建立成员消费登记表(有序数据库 *n);printf (“*2.打印成员消费登记表(按消费降序排列)-vJ% J% J% J% J% J% J% J% J% J% J% J% J% J% J% J% J% J* IIprintf(*3.-v II将成员消费表按编号排pri ntf(*4.按 成 员 姓 名 查 询 记*n)printf(*0退*n) void main()int n,flag;char a;menu();do prin tf(请选择你需要操作的步骤(0-4):n); scanf(%d, &n);if (n=0&nmem. total=999;r=head;p=inp ut_ record();员记录*/whil e(p!二NULL)*/if (r-mem. tot alp-mem. tot al) 录消费*/r-next二p; r=p;/*建立成员消费表的头结点*/*输入头结点的特殊数据*/*r是指向表的尾指针*/*在成员消费登记表中输入一个成/*在总消费建立从高到低的有序列/*输入当前记录的消费大于表中记/*将该记录插入表尾,否则*/else q二findnode(head,*p); if(q!二NULL)点*/p-next二q-next;q-next二p;p=inp ut_ record();记录*/re tu rn(head);/* HSORT_CREAT */linklist *input_record()记录输入函数*/linklist *p; member x; int i,m;x.total=0; p二NULL;/*在消费表中查找合适的位置*/*在消费表中的合适位置插入该结/*在成员消费登记表中输入下一个/*返回成员消费登记表的头指针*/*成员消费表的建立函数成员printf(请输入需要创建信息的家庭成员人数(1-10):n); scanf(%d, &m);for (i=0;im;i+)printf(ntt编号:); scanf(%s,x. num); printf(tt姓名:); scanf(%s,x. name); for (i=1;imem. num,x. num); st rcpy(p-mem. name,x. name); for (i=1;imem. costi=x. costi; p-mem. total=x. total; p-next二NULL; return(p);/* INPUT_RECORD */*输入成员的编号*/*输入成员姓名*/*输入成员的各项消费*/*计算部分*/*生成新的记录结点*/*给成员编号赋值*/*给成员姓名赋值*/*给成员各项消费赋值*/*给成员总消费赋值*/*将新结点的指针域置空*/*函数返回新结点的指针*/linklist *findnode(head,x)/*在成员消费表中查找给定结点的前驱结点的位置*/linklist *head;member x;linklist *p;p=head;while(p-next!二NULL)&(p-next-mem. totalx. total)p=p-next;retu rn(p);/* FINDNODE */2.查找模块:需求分析:该模块的功能是根据输入的成员的姓名查找对应的记录,找到以后,显示相 应的成员信息.程序: void search。 linklist *p,*key_search();char x10 ;int i; prin tf(t 查询模块n);printf(ntt输入要查询的成员姓名:n); scanf(%s,x);p=key_search(hsor t,x); if(p!二NULL) printf(nnntt 查询成功n);pri ntf (%d%8s%8s,pmem. num,pmem. name);for (i=1;i二NUM;i+)printf (%-6.1f,p-mem. costi);pri ntf (%-7.1fn,p-mem. tot al);linklist *key_search(hsort,x)linklist *hsort;char x10; linklist *p二hsort;while (p!=NULL)&(strcmp(p-mem. name,x) !=0) p=p-next;if (p-mem. name=x)retu rn(p);elseprin tf(nt要查找的成员不存在n); return (NULL);3打印信息模块:需求分析:a. 该模块的功能是打印显示所有成员记录信息.程序:void printlist(linklist *hsort)/*成员消费管理系统打印成员消费登记表函数*/linklist *p; int n=1,i;prin tf(nnttt 输出成员消费表n);printf(n序号编号姓名);for (i=1;inext;while(p!=NULL) pri ntf (%d.%-8s%-8s,n,p-mem. num,p-mem. name);for (i=1;imem. costi);pri ntf (%-7.1fn,p-mem. tot al);p=p-
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号