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

下载本文档

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

文档简介

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); /显示主菜单 inf *create(); /创建链表 void Input(inf *head); /输入商品信息 void tianjia(inf *head);

2、 /添加商品信息 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(); /读取文件内商品信

3、息 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 *

4、head) /显示菜单 PlaySound(TEXT("sounds背景.wav"), NULL, SND_FILENAME | SND_ASYNC | SND_LOOP); system("color 3B"); printf("tt*n"); printf("tttt欢迎进入商品库存管理系统n"); printf("tt*n"); printf("n"); printf("tt|=|n"); printf("tt|_基本信息_|n"

5、); printf("tt| 1.商品信息录入 | 2.添加商品信息 |n"); printf("tt| 3.查找商品信息 | 4.修改商品信息 |n"); printf("tt| 5.删除商品信息 | 6.保存文件信息 |n"); printf("tt| 7.读取文件信息 | 8.显示商品信息 |n"); printf("tt| 9.按价格从高到低进行排序 |n"); printf("tt|_0.释放链表。退出_|"); printf("nttt请输入你的选项(0

6、-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("请输入:你想录入多少个商品信

7、息: 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("名称:"

8、); 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->nex

9、t; 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("请输入商品:编号,名称,价格,数

10、量:n"); printf("编号:"); scanf("%s", p->number); printf("名称:"); scanf("%s", p->sname); printf("价格:"); scanf("%f", &p->price); printf("数量:"); scanf("%d", &p->count); printf("生产日期:"); scanf(

11、"%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,价格:

12、%.2f 数量:%d 生产日期:%sn", p->number, p->sname, p->price, p->count,p->dath); p = p->next; printf("商品总数为:%d n", n);void chaxun(inf *head) /查询货物信息 函数 int a; printf("tt查询信息n"); while (1) printf("t 1.按编号查询n"); printf("t 2.按名称查询n"); printf("请

13、输入你的选择: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 num20; inf *p; int i = -1; p = head

14、; 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,生产日期:%sn", p->number, p->sname, p->price, p->count,p->

15、dath); if (i<0) printf("没有此商品信息!n");void chaxun_sname(inf *head) /按名称查询 char a20; 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");

16、 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.单个信息全部修改。n"); printf("

17、;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("请输入要修改商品的编号:n"); scanf("%s", no); while (p->next != NULL) p = p->next; if (strcmp(p->number, no)

18、 = 0) i = 1; printf("已找到该商品n请输入新的的编号,名称,价格,数量:生产日期:n"); printf("编号:"); scanf("%s", p->number); printf("名称:"); scanf("%s", p->sname); printf("价格:"); scanf("%f", &p->price); printf("数量:"); scanf("%d"

19、, &p->count); printf("生产日期:"); scanf("%s",p->dath); if (i<0) printf("没有此商品信息!n"); if (a = 2) inf *p = NULL; int b; char number220; char name2100; float price2; int count2; p = head->next; if (p = NULL) printf("没有商品信息,请先保存商品信息!n"); printf("

20、tt 请输入要修改的内容n"); printf("tt 1.修改编号 2.修改名称n"); printf("tt 3.修改价格 4.修改数量n"); printf("tt 5.修改生产日期n"); printf("请选择 n"); scanf("%d", &b); switch (b) case 1: printf("请输入原商品编号:n"); scanf("%s", &number2); while (p != NULL) if

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

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

23、strcmp(p->number, number2) = 0&&price2=p->price) printf("请输入新的价格:n"); scanf("%f", &p->price); break; p = p->next; printf("该商品信息已修改成功。n"); break; case 4: printf("请输入该商品编号:"); scanf("%s",&number2); printf("请输入被修改的数量:n&q

24、uot;); scanf("%d", &count2); while (p != NULL) if (count2 = p->count&&strcmp(p->number, number2) = 0) printf("请输入新的数量:n"); scanf("%d", &p->count); break; p = p->next; printf("该商品信息已修改成功。n"); break; default: printf("修改内容有错误!n&qu

25、ot;); 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("请输入你要删除的商品的编号:n"); scanf("%s", number); while (p->nex

26、t != 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("没有此商品信息!n"); break; case 2: char name20; int i = -1; inf *p, *h; p = head; printf("请输入

27、你要删除的商品的名称: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->next; if (i<0) printf("没有此商品信息!n"); break; void wri

28、te_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 information), 1, fp); fclose(fp);inf *Read_file() /读取文件内的货物信息

29、 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(struct information), 1, fp) d = head; while (fread(p

30、, 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

温馨提示

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

评论

0/150

提交评论