1、 - 1 - 数据结构课程设计数据结构课程设计 设计题目:设计题目:家庭成员消费管理小家庭成员消费管理小程序程序 第 - 2 - 页 共 19 页 家庭成员消费管理小程家庭成员消费管理小程序 序 一 设计题目: 家庭成员消费管理小程序 a.问题描述: 对于一个简单的几口之家,设计一个小程序,对每个成员的衣食住行玩 各单项消费和总消费进行管理 b.要求: 1. 输入记录且计算成员的总消费. 2. 打印消费表。 3. 按姓名查找某个成员的消费记录 4. 按总消费降序排序输出全家成员消费表 5.退出该系统 . 二总体设计 根据上面的需求分析,可以将这个系统分为以下模块:输入模块,查找模块,显 示模块
2、. 第 - 3 - 页 共 19 页 家庭成员消费管理系统 数据输入 数据显示 数据查找 数据排序 退出 二 详细设计 1. 主函数: 主函数一般设计得比较简单,只提供输入,处理和输出部分的函数调用, 其中各功能模块用菜单方式选择. 流程图: 显示一系列功能模块 N 输入 n,判断 n 是否是 0-4 Y 根据 n 的值调用各功能模块函数 程序: int menu() printf(“=欢迎使用=n“); printf(“nn*成员消费表的管理程序 *n“); printf(“nn*1. 建 立 成 员 消 费 登 记 表 ( 有 序 数 据 库 *n“); printf(“*2.打印成员消费
3、登记表(按消费降序排列) *n“); printf(“*3.将成 员消费 表按 编号 排序 *n“); printf(“*4.按成员姓名查询记录 *n“); printf(“*0.退 出 *n“); void main() int n,flag; 第 - 4 - 页 共 19 页 char a; menu() ; do printf(“请选择你需要操作的步骤(0-4):n“); scanf(“%d“, if(n=0 /*输入头结点的特殊数据*/ r=head; /*r是指向表的尾指针*/ p=input_record(); /*在成员消费登记表中输入一个成 员记录*/ while(p!=NUL
4、L) /*在总消费建立从高到低的有序列 */ if(r-mem.totalp-mem.total) /*输入当前记录的消费大于表中记 录消费*/ r-next=p; r=p; /*将该记录插入表尾,否则*/ else q=findnode(head,*p); /*在消费表中查找合适的位置*/ if(q!=NULL) /*在消费表中的合适位置插入该结 点*/ p-next=q-next; q-next=p; p=input_record(); /*在成员消费登记表中输入下一个 记录*/ return(head); /*返回成员消费登记表的头指针*/ /* HSORT_CREAT */ 第 - 6
5、 - 页 共 19 页 linklist *input_record() /*成员消费表的建立函数成员 记录输入函数*/ linklist *p; member x; int i,m; x.total=0; p=NULL; printf(“请输入需要创建信息的家庭成员人数(1-10):n“); scanf(“%d“, for (i=0;imem.name,x.name); /*给成员姓名赋值*/ for(i=1;imem.costi=x.costi; /*给成员各项消费赋值*/ p-mem.total=x.total; /*给成员总消费赋值*/ p-next=NULL; /*将新结点的指针域置空*/ return(p);