有一个小型超市,出售N(N>=10)种商品,设计并实现一个系统,完成下列功能: 1. 保存及输出。超市中的各种商品信息保存在指定文件中,可以把它们输出显示。 2. 计算并排序。计算每类商品的总价值(sum,单精度)及平均价(aver,单精度,输出一位小数),将每类商品按平均价从大到小的顺序排序打印出来。 3. 统计。统计输出库存量低于100 的货号及类别。统计输出有两种以上(含两种)商品库存量低于100 的商品类别。 1.2 总体结构 本程序主要分为八个模块:主模块、信息输出修改模块、新建信息模块、排序模块、计算模块、统计模块1、统计模块2、打印模块。 1) 主模块:通过调用各分模块实现功能; 2) 信息输出修改模块:输出显示文件中商品信息内容,添加商品信息,删除商品信息,修改商品信息; 3) 新建商品信息模块:建立一个新结构体,为链表存信息用,并且将信息保存在指定的文件中; 4) 排序模块:把文件中顺序零乱的商品信息按单价的大小从高到低进行排序,放到链表里存储; 5) 计算模块:将所有商品的价格与库存量进行累加求和; 6) 打印模块:将商品信息按每类平均价格排序(从高到低)按顺序打印出来; 7) 统计模块1:统计库存量低于100 的货名及类别; 8) 统计模块2:统计商品库存量有2 种以上(含2 种)低于100 的商品类别。 附 录(程序清单) #include "stdio.h" /*输入,输出头文件*/ #include "stdlib.h" /*申请空间头文件*/ #include "string.h" /*对字符串加工头文件*/ #include "conio.h" /*清屏头文件*/ FILE *fp; int n=0; /*定义文件指针类型*/ int i,j,a[4],m; /*定义整数类型*/ float aver[4],sum[4],g[4],h; /*定义浮点类型*/ char c[5]="elec"; /*定义字符数组类型*/ char d[5]="comm"; /*定义字符数组类型*/ char e[5]="food"; /*定义字符数组类型*/ char f[5]="offi"; /*定义字符数组类型*/ struct good /*定义结构体*/ { int num; /*商品编号*/ char name[20]; /*商品名称*/ char kind[40]; /*商品类型*/ float price; /*商品价格*/ char unit[10]; /*商品单位*/ int quantity; /*商品数量*/ struct good *next; /*定义结构体指针类型*/ }*head,*p1,*p2; struct good *createlist() /*创建链表函数*/ { struct good *head1,*p1,*p2; /*定义结构体指针类型*/ if((fp=fopen("goods message.tx...