(包过版)基于C语言链表实现小超市商品管理系统

话不多说,直接上代码,大学生最懂大学生

这是用.h文件对我们的函数定义和结构体定义进行一个汇总

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>
#pragma once

//要求使用文件、链表,系统以菜单方式工作。
//某商店每天有进货、售货、统计销售额、计算毛利率、查看商品剩余量等业务。设计一个菜单,实现下述功能
//创建商品档案。每一个商品信息包括编号、品名、进价、售价、进货量、销售量、销售额、剩余数、毛利;考虑商品信息的存储。
//编辑商品信息。例如向商品档案添加新商品,修改商品信息,删除原有商品、处理原有商品的新进货量、新销售量、报废量;
//统计销售情况。在此项中统计每种商品的销售额、剩余数、毛利(毛利 = 销售额 - 进价 * 销售量);
//查询商品信息。如:根据商品名、剩余数(小于5或大于20)进行查询;
//显示商品信息。显示方式有3种:即按原来商品顺序显示、按销售额高到低的顺序显示、按毛利高到低的顺序显示。由于商品较多,所以要求分屏显示。
//退出系统

typedef int DataType;

//编号、品名、进价、售价、进货量、销售量、销售额、剩余数、毛利
typedef struct Good
{
   
	char name[11];
	char BianHao[11];
	DataType JinJia;
	DataType ShouJia;
	DataType Input;
	DataType OutPut;
	DataType Selling;
	DataType KuCun;
	float Profit;
	struct Good* next;
}Good;



void Init(Good** L);
void InPut(Good** L,int n);

//编辑商品信息
void GoodAdd(Good** L);
void GoodChange(Good** L);
void GoodDelete(Good** L);
void GoodNewInput(Good** L, Good* node);
void GoodNewOutput(Good** L,Good*node);
void GoodUseLessness(Good** L);

//统计销售情况
void GoodSelling(Good** L);
void GoodKucun(Good** L);
void GoodProfit(Good** L);

//查询商品信息
Good* NameSearch(Good** L,char* s);
Good* KucunSearch(Good** L,int m,int n);//n为库存

//显示商品信息
void GoodShow(Good** L);
Good* GoodProfitShow(Good** L);
Good* GoodSellingShow(Good** L);

bool GoodIsEmpty(Good** L);

Good* SortList(Good** L);

void ScorePreserve(Good** L);
void ScoreDocfin(Good** L);

下面是主函数部分,也就是菜单部分

#define _CRT_SECURE_NO_WARNINGS 1
#include"shop.h"

//要求使用文件、链表,系统以菜单方式工作。
//某商店每天有进货、售货、统计销售额、计算毛利率、查看商品剩余量等业务。设计一个菜单,实现下述功能
//创建商品档案。每一个商品信息包括编号、品名、进价、售价、进货量、销售量、销售额、剩余数、毛利;考虑商品信息的存储。
//编辑商品信息。例如向商品档案添加新商品,修改商品信息,删除原有商品、处理原有商品的新进货量、新销售量、报废量;
//统计销售情况。在此项中统计每种商品的销售额、剩余数、毛利(毛利 = 销售额 - 进价 * 销售量);
//查询商品信息。如:根据商品名、剩余数(小于5或大于20)进行查询;
//显示商品信息。显示方式有3种:即按原来商品顺序显示、按销售额高到低的顺序显示、按毛利高到低的顺序显示。由于商品较多,所以要求分屏显示。
//退出系统

//printf("请选择操作:1-修改商品价格 2-增加商品库存 3-增加新商品种类 4-显示所有商品信息 5-新建文本文件保存今日库存 6-退出 ");
//printf("请选择操作:1-卖商品 2-查询某种商品信息 3-显示所有商品信息 4-退出 ");
//printf("请选择操作:1-采购商品 2-查询某种商品信息 3-显示所有商品信息 4-退出 ");

//void test1()
//{
   
//	FILE* fp = fopen("score.txt", "w");
//	fprintf(fp, "%s", "");
//	fclose(fp);
//}

int main()
{
   
	//test1();
	Good* head = (Good*)malloc(sizeof(Good));
	head->next = NULL;
	int m;
	do {
   
		printf("请选择你要进行的操作:\n");
		printf("-------------------------\n");
		printf("------1.创建商品档案-----\n");
		printf("------2.编辑商品信息-----\n");
		printf("------3.统计销售情况-----\n");
		printf("------4.查询商品信息-----\n");
		printf("------5.显示商品信息-----\n");
		printf("------6.保存商品信息-----\n");
		printf("------7.读取文件信息-----\n");
		printf("------0.退出菜单---------\n");
		printf("-------------------------\n");
		scanf("%d", &m);
		switch (m)
		{
   
		case 1:
		{
   
			printf("请输入您要创建的商品档案个数:");
			Init(&head);
			int n;
			scanf("%d", &n);
			InPut(&head, n);
			break;
		}
		case 2:
		{
   
			if (!GoodIsEmpty(&head))
			{
   
				printf("未录入任何商品,请重新选择。\n");
				continue;
			}
			int a;
			do
			{
   
				printf("请选择你要进行的操作:\n");
				printf("-------------------------------\n");
				printf("------1.添加新商品-------------\n");
				printf("------2.修改商品信息-----------\n");
				printf("------3.删除原有商品-----------\n");
				printf("------0.退出编辑---------------\n");
				printf("-------------------------------\n");
				scanf("%d", &a);
				switch (a)
				{
   
				case 1:
				{
   
					GoodAdd(&head);
					break;
				}
				case 2:
				{
   
					if (!GoodIsEmpty(&head))
					{
   
						printf("未录入任何商品,请重新选择。\n");
						continue;
					}
					GoodChange(&head);
					break;
				}
				case 3:
				{
   
					if (!GoodIsEmpty(&head))
					{
   
						printf("未录入任何商品,无法删除,请重新选择。\n");
						continue;
					}
					GoodDelete(&head);
					break;
				}
				}
			} while (a);
			if (a == 0)
			{
   
				printf("退出编辑\n");
			}
			break;
		}
		case 3:
		{
   
			if (!GoodIsEmpty(&head))
			{
   
				printf("未录入任何商品,请重新选择。\n");
				continue;
			}
			GoodSelling(&head);
			GoodKucun(&head);
			GoodProfit(&head);
			break;
		}
		case 4:
		{
   
			if (
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值