C语言程序设计超市管理系统1.doc
程序设计——超市管理系统
学院:
专业:
班级:
姓名:
学号:
指导老师:
超市管理系统课程设计
1)需求分析:
设计题目:超市管理系统
设计要求:有一个小型超市,出售N(N>=10)种商品,设计并实现一个系统
系统功能需求分析:
1. 保存及输出:超市中的各种商品信息保存在指定文件中,可以把它们输出显示。
2. 计算并排序:计算每类商品的总价值(sum,单精度)及平均价(aver,单精度,输出一位小数),将每类商品按平均价从大到小的顺序排序打印出来。
3. 统计:统计输出库存量低于100的货号及类别。统计输出有两种以上(含两种)商品库存量低于100的商品类别。
2)概要设计:
系统总体设计框架:
主模块
主模块
信息输出修改模块
新建信息模块
排序模块
计算模块
统计模块1
统计模块2
打印模块
系统功能模块图:
主模块
主模块
信息输出修改模块
新建信息模块
排序模块
统计模块1
统计模块2
打印模块
添加商品
主模块
商品价格(从高到低)
删除某商品信息
修改某商品信息
主模块
信息输出
计算模块
商品信息
平均价
3)详细设计:
主要功能模块的算法设计思路:本程序主要分为八个模块:主模块、信息输出修改模块、新建信息模块、排序模块、计算模块、统计模块1、统计模块2、打印模块。
1) 主模块:通过调用各分模块实现功能;
2) 信息输出修改模块:输出显示文件中商品信息内容,添加商品信息,删除商品信息,修改商品信息;
3) 新建商品信息模块:建立一个新结构体,为链表存信息用,并且将信息保存在指定的文件中;
4) 排序模块:把文件中顺序零乱的商品信息按单价的大小从高到低进行排序,放到链表里存储;
5) 计算模块:将所有商品的价格与库存量进行累加求和;
6) 打印模块:将商品信息按每类平均价格排序(从高到低)按顺序打印出来;
7) 统计模块1:统计库存量低于100的货名及类别;
8) 统计模块2:统计商品库存量有2种以上(含2种)低于100的商品类别
工作流程图:
开始
开始
输出商品信息或修改商品信息
新建商品信息(删除原有信息)
统计商品信息
退出
输入商品信息(编号、名称、类型、价格、单位、数目)
结束输入
添加商品信息
修改某商品信息
删除某商品信息
确认或取消
输入商品单价和库存量
返回
输出(商品类型、平均价、总库存量)
排序(按价格从高到低)
4)主要源程序代码:
#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