C语言版商品库存管理系统方案
- 格式:doc
- 大小:20.80 KB
- 文档页数:15
建议使用VS打开运行#pragma once#include<stdio.h>typedef struct information //商品信息{char number[20]; //编号char sname[20]; //名称float price; //价格int count; //数量char dath[20]; //生产日期struct information *next;}inf;void menu(inf *head); //显示主菜单inf *create(); //创建链表void Input(inf *head); //输入商品信息void tianjia(inf *head); //添加商品信息void output(inf *head); //输出商品信息void chaxun(inf *head); //查询商品信息void chaxun_number(inf *head); //按编号查询void chaxun_sname(inf *head); //按名称查询void xiugai(inf *head); //修改商品信息void shanchu(inf *head); //删除商品信息void write_file(inf *head); //保存商品信息到文件void paixu(inf *head);inf *Read__file(); //读取文件内商品信息void freeh(inf *head); //退出程序#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>#include <malloc.h>#include <windows.h>#include <mmsystem.h>#pragma comment(lib, "WINMM.lib")#include"标头.h"void menu(inf *head) //显示菜单{PlaySound(TEXT("sounds\\背景.wav"), NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);system("color 3B");printf("\t\t*****************************************************\n"); printf("\t\t\t\t欢迎进入商品库存管理系统\n");printf("\t\t*****************************************************\n"); printf("\n");printf("\t\t|====================================================|\n"); printf("\t\t|______________________基本信息______________________|\n"); printf("\t\t| 1.商品信息录入 | 2.添加商品信息 |\n"); printf("\t\t| 3.查找商品信息 | 4.修改商品信息 |\n"); printf("\t\t| 5.删除商品信息 | 6.保存文件信息 |\n"); printf("\t\t| 7.读取文件信息 | 8.显示商品信息 |\n"); printf("\t\t| 9.按价格从高到低进行排序 |\n"); printf("\t\t|_________________0.释放链表。
退出___________________|"); printf("\n\t\t\t请输入你的选项(0---8):\n");printf("\n");printf("\t请输入你的选择: \n");}inf *create() //创建链表{inf *p;p = (inf *)malloc(sizeof(struct information));if (p == NULL){printf("链表创建失败.\n");exit(0);}p->next = NULL;return (p);}void Input(inf *head) //录入货物信息{inf *p;int i,n;printf("请输入:你想录入多少个商品信息: \n ");scanf("%d", &n);for (i = 1; i <= n; i++){p = (inf *)malloc(sizeof(struct information));if (p == NULL){printf("结点创建失败.\n");exit(0);}printf("请输入商品:编号,名称,价格,数量:生产日期\n"); printf("编号:");scanf("%s", p->number);printf("名称:");scanf("%s", p->sname);printf("价格:");scanf("%f", &p->price);printf("数量:");scanf("%d", &p->count);printf("生产日期:");scanf("%s",p->dath);p->next = NULL;while (head->next != NULL)head = head->next;head->next = p;}}void tianjia( inf *head) //添加货物信息{inf *p;int i,n;printf("请输入:你想添加多少个商品信息: \n");scanf("%d", &n);for (i = 1; i <= n; i++){p = (inf *)malloc(sizeof(struct information));if (p == NULL){printf("链表结点创建失败。
\n");exit(0);}printf("请输入商品:编号,名称,价格,数量:\n");printf("编号:");scanf("%s", p->number);printf("名称:");scanf("%s", p->sname);printf("价格:");scanf("%f", &p->price);printf("数量:");scanf("%d", &p->count);printf("生产日期:");scanf("%s",p->dath);p->next = NULL;while (head->next != NULL)head = head->next;head->next = p;}}void output(inf *head) //输出货物信息{int n = 0;inf *p;p = head->next;if (p == NULL){printf("链表为空,请先输入信息!\n");return;}while (p != NULL){n++;printf("商品信息:编号: %s,名称:%s,价格:%.2f 数量:%d 生产日期:%s\n", p->number, p->sname, p->price, p->count,p->dath);p = p->next;}printf("商品总数为:%d \n", n);}void chaxun(inf *head) //查询货物信息函数{int a;printf("\t\t查询信息\n");while (1){printf("\t 1.按编号查询\n");printf("\t 2.按名称查询\n");printf("请输入你的选择:\n");scanf("%d", &a);if (a == 1){chaxun_number(head);//调用按编号查询的函数break;}if (a == 2){chaxun_sname(head);//调用按名称查询的函数break;}if (a != 1 && a != 2){printf("输入错误!\n");break;}getchar();}}void chaxun_number(inf *head) //按编号查询{char num[20];inf *p;int i = -1;p = head;printf("请输入你要查询的商品的编号:");scanf("%s", num);while (p->next != NULL){p = p->next;if (strcmp(p->number, num) == 0){i = 1;printf("已找到该商品信息\n");printf("货物信息:编号:%s,名称:%s,价格:%.2f.数量:%d,生产日期:%s\n", p->number, p->sname, p->price, p->count,p->dath);}}if (i<0)printf("没有此商品信息!\n");}void chaxun_sname(inf *head) //按名称查询{char a[20];int i = -1;inf *p;p = head;printf(" 请输入要查找商品的名称 :\n");scanf("%s", a);while (p->next != NULL){p = p->next;if (strcmp(p->sname, a) == 0){i = 1;printf("已找到该商品信息\n");printf("商品信息:编号:%s,名称:%s,价格:%.2f.数量:%d,生产日期\n", p->number, p->sname, p->price, p->count,p->dath);}}if (i<0)printf("没有此商品!\n");}void xiugai(inf *head) //修改货物信息{printf("\t********************\n");printf("\t 请输入修改的方式:\n");printf("\t1.单个信息全部修改。