-
一、问题描述本系统主要实现超市商品信息的管理,管理者可以将超市商品的信息的录入到系统中,如果有需要,还可以后序继续添加商品信息、删除商品信息、修改商品信息,并且可以显示出所有的商品信息。有多种查找商品信息的方式,可以按商品编号、商品名称、商品的生产厂家去查找商品信息。销售完商品之后,把销售信息录入系统中,可以查看当月的销售情况,还可以查看商品是否需要补货以及商品是否快要过期。很好的帮助管理者管理超市商品的信息。二、功能要求超市商品基本信息包括:商品编号(任意两种商品的编号不可以重复)、商品名称、商品厂家名称、商品类型、商品进货价格、商品生产日期、商品库存数量、商品保质期。商品销售信息中包括:商品编号(必须在商品基本信息中查得到)、商品名称、商品销售价格、销售数量、销售日期。系统的主要功能包括:(1) 创建商品信息文件。根据提示输入商品的各项信息,按商品编号对商品信息进行排序, 并将排序后的商品信息存储到一个二进制文件中。(2) 增加商品信息。在原有商品信息文件的基础上增加新的商品信息,要求:增加后的商品信 息仍按编号排序,并继续保存至文件中。(3) 删除商品信息。提示用户输入要进行删除操作的商品编号,如果在文件中有该商品信息存在,则将该编号所对应的商品信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。(4) 修改商品信息。提示用户输入要进行修改操作的商品编号,如果在文件中有该商品信息存在,则将提示用户输入该编号对应的要修改的选项,结果保存至原文件,并提示用户选择是否继续进行修改操作。(5) 显示所有商品信息。显示商品的编号,商品名称,商品生产厂商,商品类型,商品生产日期、商品保质期,商品进货价以及商品库存。(6) 查询操作①按商品编号查询,输入一个编号,输出对应的商品信息。②按商品名称查询,包括精确查询(输入全名)、模糊查询(输入部分名称)。③按商品厂家查询,输入商品厂家名称,输出此厂家的所有商品信息。(7) 销售商品提示用户输入要进行销售操作的商品编号,如果在商品基本信息文件中有该商品信息存在则提示用户输入要销售的数量,检查输入数量是否大于库存数量,如果输入 数量大于库存数量,则让用户重新输入,然后将该编号所对应的商品库存数量减去销售数量后,再重新存入商品库数量中,并将相应信息写入商品销售信息,完成销售操作,否则输出提示信息,并提示用户选择是否继续进行销售操作。(8) 商品信息统计①显示所有商品销售信息。②统计当月各商品销售的数量和成交额。③当某商品库存数量小于 20 时,进行库存警示,提示进行补货处理。④计算各商品距离过期日期的天数,当天数少于 30 天的进行销售警示
代码
shop.h
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<time.h>
#define MAX_NAME 20
#define MAX_KIND 20
#define MAX_ID 20
#define MAX_FACTORY 20
// 商品基本信息
typedef struct Product {
char id[MAX_ID]; //编号
char name[MAX_NAME]; //名称
char factory[MAX_FACTORY]; //厂家
char kind[MAX_KIND];//类型
int purchase;//进货价
int year;//生产日期
int month;
int day;
int expirdate; //保质期
int stockquantity;
struct Product* next;
} Product;
//商品销售信息
typedef struct salepro {
char id[MAX_ID]; //编号
char name[MAX_NAME]; //名称
int saleprice;//销售价格
int salequantity; //销售数量
int year;//销售日期
int month;
int day;
struct salepro* next;
}salepro;
// 函数声明
void mainmenu();//主菜单
int submenu1(); //二级菜单1
int submenu2(); //二级菜单2
void createProduct(Product** head);//创建商品信息
void addProduct(Product** head);//添加商品信息
void displayProducts(Product* head); //显示商品信息
void searchProductById(Product* head);//按商品编号查询
void searchProductByName(Product* head); //按商品名称精确查询
void searchProductByFactory(Product* head); //按生产厂商查询
void updateProduct(Product* head); //更新商品信息
void deleteProduct(Product** head, char id[]); //删除商品信息
void freeProducts(Product* head);//释放商品基本信息
void saveToFile(Product* head, const char* filename); //保存商品基本信息
void loadFromFile(Prod