C语言版商品库存管理系统方案_第1页
C语言版商品库存管理系统方案_第2页
C语言版商品库存管理系统方案_第3页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、商品信息显示主菜单创建链表输入商品信息添加商品信息输出商品信息查询商品信息按编号查询 按名称查询 修改商品信息 删除商品信息 保存商品信息到文件读取文件内商品信息 退出程序建议使用VS打开运行#pragma once #include<stdio.h> typedef struct information /char number20; / 编号 char sname20; /名称float price; /价格int count; / 数量 char dath20; /生产日期struct information *next;inf;void menu(inf *head); /

2、 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 fre

3、eh(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) /背景.wav&quo

4、t;), NULL,显示菜单SND_FILENAME | SND_ASYNC | SND_LOOP); system("color 3B");printf("tt*n");printf("tttt 欢迎进入商品库存管理系统 n");printf("tt*n");printf("tt|_ 基本信息 |n");printf("tt|1.商品信息录入| 2.添加商品信息|n");printf("tt|3.查找商品信息| 4.修改商品信息|n");printf(&

5、quot;tt|5.删除商品信息| 6.保存文件信息|n");printf("tt|7.读取文件信息| 8.显示商品信息|n");printf("tt|9.按价格从高到低进行排序|n");printf("tt|_0.释放链表。退出|");printf("nttt请输入你的选项(0-8 ) :n");printf("n");printf("t请输入你的选择 : n");*create()/创建链表printf("n");printf("t

6、t|=|n"); 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 *)

7、malloc(sizeof(struct information);if (p = NULL)printf(" 结点创建失败 .n"); exit(0);n");printf("请输入商品 : 编号,名称,价格,数量:生产日期printf("编号 :");scanf("%s", p->number); printf("名称 :");scanf("%s", p->sname); printf("价格 :");scanf("%f"

8、;, &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("

9、请输入:你想添加多少个商品信息 : 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(&quo

10、t;名称 :");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 = he

11、ad->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+;%sn",printf(”商品信息:编号:s,名称:s,价格:.2f数量:d生产日期:p->number, p->sname, p->price, p->count,p->dath);p = p->next;

12、printf(" 商品总数为: %d n", n);int a;printf("tt 查询信息 n");if (a = 1)chaxun_number(head);/break;if (a = 2)chaxun_sname(head);/break;if (a != 1 && a != 2)printf(" 输入错误!break;调用按编号查询的函数调用按名称查询的函数n");while (1)printf("t 1. printf("t 2. printf("按编号查询 n")

13、; 按名称查询 n"); 请输入你的选择: n");scanf("%d", &a); getchar();/按编号查询void chaxun_number(inf *head)char num20;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;prin

14、tf(" 已找到该商品信息 n");printf("货物信息:编号:s,名称:s,价格:.2f.数量:d,生产日期: %sn", p->number, p->sname, p->price, p->count,p->dath);if (i<0)printf("没有此商品信息! n");void chaxun_sname(inf *head)/按名称查询char a20;int i = -1;inf *p;p = head;printf(" 请输入要查找商品的名称 :n");sca

15、nf("%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

16、 xiugai(inf *head) / printf("t*n");printf("t请输入修改的方式:n");printf("t1.单个信息全部修改。n");printf("t2.单个信息逐个修改。n");printf("t*n");int a;printf(" 请输入选项: n"); scanf("%d", &a);if (a = 1)char no20;int i = -1;inf *p; p = head; printf(" 请

17、输入要修改商品的编号: n"); scanf("%s", no); while (p->next != NULL)p = p->next;if (strcmp(p->number, no) = 0)i = 1;printf("已找到该商品 n 请输入新的的编号,名称,价格,数量:生产日期: n");printf("编号 :");scanf("%s", p->number);printf("名称 :");scanf("%s", p->sn

18、ame);printf("价格 :");scanf("%f", &p->price);printf("数量 :");scanf("%d", &p->count);printf("生产日期: ");scanf("%s",p->dath);没有此商品信息! n");if (i<0) printf(" if (a = 2)inf *p = NULL;int b;char number220;char name2100;fl

19、oat price2;int count2;p = head->next;if (p = NULL)printf(" 没有商品信息,请先保存商品信息 !n"); printf("tt请输入要修改的内容 n");printf("tt 1.修改编号 2. 修改名称 n");printf("tt 3.修改价格 4. 修改数量 n");printf("tt 5.修改生产日期 n");printf("请选择 n");scanf("%d", &b);sw

20、itch (b)1case 1:printf("请输入原商品编号 :n");scanf("%s", &number2);while (p != NULL)if (strcmp(p->number, number2) = 0):n");printf(" 已找到该商品 n 请输入新的编号 scanf("%s", &p->number);p = p->next;printf(" 该商品信息已修改成功。 n");break;case 2:printf(" 请输

21、入原名称 :n");scanf("%s", &name2);while (p != NULL)if (strcmp(p->sname, name2) = 0)printf(" 请输入新的名称: n");scanf("%s", &p->sname);break;p = p->next;printf(" 该商品信息已修改成功。 n");break;case 3:printf("请输入该商品编号: ");scanf("%s",&n

22、umber2);printf("请输入原价格 :n");scanf("%f", &price2);while (p != NULL)if (strcmp(p->number, number2) = 0&&price2=p->price)printf(" 请输入新的价格: n");scanf("%f", &p->price);break;p = p->next;printf(" 该商品信息已修改成功。 n");break;case 4:pri

23、ntf("请输入该商品编号: ");scanf("%s",&number2);printf("请输入被修改的数量 :n");scanf("%d", &count2);while (p != NULL)if (count2 = p->count&&strcmp(p->number, number2) = 0)printf(" 请输入新的数量: n");scanf("%d", &p->count);break;p = p-

24、>next;printf("该商品信息已修改成功。 n");break;default:printf("修改内容有错误 !n");删除货物信息void shanchu(inf *head) /int a;printf("tt 1. 按编号删除 2. 按名称删除 n"printf("tt 请输入选项: n");scanf("%d", &a);switch (a)case 1:char number20;int i = -1;inf *p, *h;p = head;printf(&qu

25、ot; 请输入你要删除的商品的编号: n" scanf("%s", number);while (p->next != NULL)if (strcmp(number, p->next->number) = 0)i = 1;h = p->next;p->next = p->next->next;free(h);printf(" 已删除该商品信息。 n"); break;p = p->next;if (i<0) printf(" break;没有此商品信息! n");case

26、 2:char name20; int i = -1;inf *p, *h; p = head;printf(" 请输入你要删除的商品的名称: n"); scanf("%s", name);while (p->next != NULL)if (strcmp(name, p->next->sname) = 0)i = 1;h = p->next;p->next = p->next->next; free(h);printf(" 已删除该商品信息。 n"); break;p = p->nex

27、t; if (i<0) printf(" 没有此商品信息! n");break;void write_file(inf *head)inf *p;FILE *fp;/保存货物信息到文件p = head; if (fp = fopen("商品信息 .txt", "wb") = NULL)printf("Do not have this filen");exit(0);while (p->next != NULL)p = p->next;fwrite(p, sizeof(struct informat

28、ion), 1, fp); fclose(fp);读取文件内的货物信息inf *Read_file()/inf *p, *d, *head;FILE *fp;head = (inf *)malloc(sizeof(struct information); p = (inf *)malloc(sizeof(struct information);if (fp = fopen("商品信息 .txt", "rb") = NULL)printf(" 不能打开文件 !n"); exit(0);if (fread(head, sizeof(str

29、uct information), 1, fp)d = head;while (fread(p, sizeof(struct information), 1, fp) d->next = p; d = p;p = (inf *)malloc(sizeof(struct information);d ->next = NULL; fclose(fp); return (head);void freeh(inf *head) /释放空间 退出程序inf *p;p = (inf *)malloc(sizeof(struct information); p = head;while (head->next != NULL)head = head->next; free(p); p = head; free(p);void paixu(inf *head)inf *p=head,*q=NULL,*t=NULL,*subhead=NULL; int i, j, count = 0;while (p->next != NULL) count+; p = p->next;for (i = 0; i < count - 1; i+)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论