C语言高手帮忙编一个仓库物资管理系统

仓库物资管理系统
仓库物资管理涉及三方面的记录:库存记录、入库记录和出库记录。
假设仓库中存放的物资为家用电器,库存记录应包括以下信息:电器名称、品牌名称(或生产厂家)、型号、库存数量、价值。
入库记录应包括以下信息:电器名称、品牌名称、型号、入库数量、单价、入库时间(年.月.日)、送货人姓名。
出库记录应包括以下信息:电器名称、品牌名称、型号、出库数量、出库时间(年.月.日)、提货人姓名。
系统的主要功能包括:
1. 创建库存记录文件,根据提示输入若干电器的信息,并将信息保存至一个文件中。
2. 物资入库管理,创建一个入库记录文件,每次有物资入库,则按入库记录要求输入各项信息,并将该次的入库信息添加到文件中,同时修改相应的库存记录文件。
3. 物资出库管理,创建一个出库记录文件,每次有物资出库,则按出库记录要求输入各项信息,并将该次的出库信息添加到文件中,同时修改相应的库存记录文件。注意:物资出库时要检查出库数量的合法性(即出库数量必须小于库存数量)。
4. 按不同条件进行查询操作,输出满足条件的物资信息。
(1) 输入电器名称,在库存记录文件中查找相应的物资信息并输出。
(2) 输入品牌名称,在库存记录文件中查找该品牌的所有电器信息并输出。
(3) 输入一个日期(年.月.日),输出该天的入库记录和出库记录。
(4) 输入电器名称和型号,输出该电器的所有入库记录和出库记录。
5. 按不同条件对物资信息进行统计工作。
(1) 输入电器名称,在库存记录文件中统计该电器的现有库存总量。
(2) 输入电器名称,在入库记录文件中统计该电器的入库次数。
(3) 输入一个日期(年.月),在出库记录文件中统计该月的出库记录次数。
(4) 设置一个库存数量警戒值,输出库存数量小于该警戒值的所有库存电器的信息。

#include <stdafx.h>
#include<stdio.h>
#include<string.h>
#define SIZE 2//SIZE为仓库电器种类
struct goods
{
char name[10];
char brand[10];
char style[10];
int num;
float money;
}stu[SIZE];//库存结构
struct date
{
int year;
int month;
int day;
};//日期结构
struct entrance
{
char name[10];
char brand[10];
char style[10];
int num;
float money;
struct date time;
char stuf[10];
}stu_2[SIZE];//入库结构
struct exit
{
char name[10];
char brand[10];
char style[10];
int num;
struct date time;
char stuf[10];
}stu_3[SIZE];//出库结构
void main()
{
void save_1();
void save_2();
void save_3();
void change_1();
void change_2();
void found_1();
void found_2();
int i;
printf("please input the information:\n");
for(i=0;i<SIZE;i++)
{
scanf("%s%s%s%d%d",stu[i].name,stu[i].brand,stu[i].style,&stu[i].num,&stu[i].money);
} //输入库存
save_1(); //利用函数将库存保存
FILE *fp;
fp=fopen("stu_list.txt","rb");
for(i=0;i<SIZE;i++)
{
fread(&stu[i],sizeof(struct goods),1,fp);
printf("%s %s %s %d %d",stu[i].name,stu[i].brand,stu[i].style,stu[i].num,stu[i].money);
printf("\n");
} //读出信息
fclose(fp);
printf("请输入物资入库信息:\n");//输入入库信息
for(i=0;i<SIZE;i++)
scanf("%s%s%s%d%f%d%d%d%s",stu_2[i].name,stu_2[i].brand,stu_2[i].style,&stu_2[i].num,&stu_2[i].money,&stu_2[i].time.year,&stu_2[i].time.month,&stu_2[i].time.day,stu_2[i].stuf);
save_2(); //创建入库文件
change_1();
printf("请输入出库信息\n");
scanf("%s%s%s%d%d%d%d%s",stu_3[i].name,stu_3[i].brand,stu_3[i].style,&stu_3[i].num,&stu_3[i].time.year,&stu_3[i].time.month,&stu_3[i].time.day,stu_3[i].stuf);
for(i=0;i<SIZE;i++)
{
if(stu_3[i].num>stu[i].num)
{
printf("the error number!please input again!\n");
break;
}
else
{
save_3();
change_2();
}
}
found_1();
found_2();
}
void save_1()
{
FILE *fp;
int i;
if((fp=fopen("stu_list.txt","wb"))==NULL)
{
printf("connot open the file\n");
return;
}
for(i=0;i<SIZE;i++)
{
if(fwrite(&stu[i],sizeof(struct goods),1,fp)!=1)
printf("file write error\n");
}
fclose(fp);
}
void save_2()
{
FILE *fp;
int i;
if((fp=fopen("stu_list_2.txt","wb"))==NULL)
{
printf("connot open the file\n");
return;
}
for(i=0;i<SIZE;i++)
{
if(fwrite(&stu_2[i],sizeof(struct entrance),1,fp)!=1)
printf("file write error\n");
}
fclose(fp);
}
void change_1()
{
int i;
for(i=0;i<SIZE;i++)
{
if(strcmp(stu[i].name,stu_2[i].name)==0&&strcmp(stu[i].brand,stu_2[i].brand)==0&&strcmp(stu[i].style,stu_2[i].style)==0)
{
stu[i].num=stu[i].num+stu_2[i].num;
}
}
save_1();
}
void save_3()
{
FILE *fp;
int i;
if((fp=fopen("stu_list_3.txt","wb"))==NULL)
{
printf("connot open the file\n");
return;
}
for(i=0;i<SIZE;i++)
{
if(fwrite(&stu_3[i],sizeof(struct exit),1,fp)!=1)
printf("file write error\n");
}
fclose(fp);
}
void change_2()
{
int i;
for(i=0;i<SIZE;i++)
{
if(strcmp(stu[i].name,stu_3[i].name)==0&&strcmp(stu[i].brand,stu_3[i].brand)==0&&strcmp(stu[i].style,stu_3[i].style)==0)
{
stu[i].num=stu[i].num-stu_3[i].num;
}
}
save_1();
}
void found_1()
{
FILE *fp;
int i;
int sum=0;
char name[10];
char brand[10];
printf("please input the name and brand:\n");//4.1 4.2 5.1
scanf("%s%s",name,brand);

if((fp=fopen("stu.list.txt","rb"))==NULL)
{
printf("connot open the file!\n");
return;
}
for(i=0;i<SIZE;i++)
{
if(fread(&stu[i],sizeof(struct goods),1,fp)!=1)
{
if(strcmp(name[10],stu[i].name[10])==0)
{
printf("the information of the good:\n");
printf("%s %s %s %d %d",stu[i].name,stu[i].brand,stu[i].style,stu[i].num,stu[i].money);
sum=sum+stu[i].num;
}
if(strcmp(brand[10],stu[i].brand[10])==0)
{
printf("the information of the good:\n");
printf("%s %s %s %d %d",stu[i].name,stu[i].brand,stu[i].style,stu[i].num,stu[i].money);

}
}
}
printf("the number of this %s is %d.\n",name[10],sum);
}
void found_2()
{
FILE *fp;
int i;
int j;
int sum=0;
int year_1,year_2,month_1,month_2,day_1;
char name_1[10],name_2[10],style_1[10];
if((fp=fopen("stu_list_2.txt","rb"))==NULL)
{
printf("connot open the file!\n");
return;
}
if((fp=fopen("stu_list_3.txt","rb"))==NULL)
{
printf("connot open the file!\n");
return;
}
printf("please input year_1,month_1,day_1,then find the exit and entrance:\n");
scanf("%d%d%d",&year_1,&month_1,&day_1);
printf("please input the name and style,then find the good's entrance and exit");
scanf("%s%s",name_1,style_1);
printf("please input the name of the good,then output the number or its entrance:\n");
scanf("%s",name_2);
printf("please input year_2 and month_2,then output the number of exit in this month:\n");
scanf("%d%d",&year_2,&month_2);
printf("please input the red number,then output all the informations of the goods:\n");
scanf("%d",&j);
for(i=0;i<SIZE;i++)
{
if((fread(&stu_2[i],sizeof(struct entrance),1,fp)!=1)&&(fread(&stu_3[i],sizeof(struct exit),1,fp)!=1))//读出入库和出库信息
{
if((stu_2[i].time.year==year_1)&&(stu_2[i].time.month==month_1)&&(stu_2[i].time.day==day_1))//入库信息4.3
{
printf("%s%s%s%d%f%d%d%d%s",stu_2[i].name,stu_2[i].brand,stu_2[i].style,stu_2[i].num,stu_2[i].money,stu_2[i].time.year,stu_2[i].time.month,stu_2[i].time.day,stu_2[i].stuf);
}
if((stu_3[i].time.year==year_1)&&(stu_3[i].time.month==month_1)&&(stu_3[i].time.day==day_1))//出库信息4.3
{
printf("%s%s%s%d%d%d%d%s",stu_3[i].name,stu_3[i].brand,stu_3[i].style,stu_3[i].num,stu_3[i].time.year,stu_3[i].time.month,stu_3[i].time.day,stu_3[i].stuf);
}
}
}
for(i=0;i<SIZE;i++)//4.4
{
if((fread(&stu_2[i],sizeof(struct entrance),1,fp)!=1)&&(fread(&stu_3[i],sizeof(struct exit),1,fp)!=1))//读出入库和出库信息
{
if((strcmp(stu_2[i].name,name_1))==0&&(strcmp(stu_2[i].style,style_1))==0)
{
printf("%s%s%s%d%f%d%d%d%s",stu_2[i].name,stu_2[i].brand,stu_2[i].style,stu_2[i].num,stu_2[i].money,stu_2[i].time.year,stu_2[i].time.month,stu_2[i].time.day,stu_2[i].stuf);
}
if((strcmp(stu_3[i].name,name_1))==0&&(strcmp(stu_3[i].style,style_1))==0)
{
printf("%s%s%s%d%d%d%d%s",stu_3[i].name,stu_3[i].brand,stu_3[i].style,stu_3[i].num,stu_3[i].time.year,stu_3[i].time.month,stu_3[i].time.day,stu_3[i].stuf);
}
}
}
for(i=0;i<SIZE;i++)//5.3
{
if((fread(&stu_3[i],sizeof(struct exit),1,fp)!=1))
if(stu_3[i].time.year==year_2&&stu_3[i].time.month==month_2)
{
sum=sum+stu_3[i].num;
}
}
printf("the time of exit is %d.\n",sum);
for(i=0;i<SIZE;i++)
{
if((fread(&stu[i],sizeof(struct goods),1,fp)!=1))
{
if(stu[i].num<j)
{
printf("th information of the good are:\n");
printf("%s%s%s%d%f",stu[i].name,stu[i].brand,stu[i].style,stu[i].num,stu[i].money);
}
}
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-09-01
我有一个简化版的仓库物资管理系统,是我大二课程设计是做的,不过只有出库入库记录,商品统计的功能,你要吗

求一个只用c语言编写的仓库管理系统
void searchnum(dlnode *L);void searchname(dlnode *L);void display(dlnode *L) ;void main(){int x;dlnode *L;if(!(L=(dlnode *)malloc(sizeof(dlnode)))

跪求高手用C语言写一个简单的仓库管理系统
1,简单起见,可采用控制台程序实现;2,程序大概可划分为:输入模块、排序模块、输出模块等;3,输入模块:设计一种数据结构,用来存储图书名字;可以是指针数组,可以是链表、。。。4,排序模块:选择一种排序算法,比如冒泡,快速排序等,上网查一下。5,输出模块打印最终的排序结果;如果上述你都能实...

C语言 仓库库存货物管理系统
1、仓库要素管理:多仓库、多货主、 多包装单位、立体货位 商品属性管理:生产日期、生产批号、颜色、尺寸、序列号、条形码 2、订单管理:入出库单录入\/导入、 单据审核、单据查询、订单执行情况追踪 3、入库管理:进货检验、允许分批入库、自动码放指令、允许自由混放、高度容错 4、出库管理:多种拣货...

c语言写的仓库管理系统调试0错,运行就报错,
1、缺少main函数 2、scanf("%s", name)这里不需要取地址符号 3、xslx函数中的m没有初始化 4、showtype函数中fp没有初始化

用C语言写一个仓库管理系统实现增加、修改、删除、添加等功能_百度知 ...
用结构体数组就可以实现增删改查的功能

电脑C语言编程,求高手帮忙
1.include<stdio.h> void main(){ int n[8],maxn=0,minn=0,detn;float score[8],max,min,aver=0.0,det,detm;printf("输入裁判号及分数:\\n");scanf("%d%f",&n[0],&score[0]);max=min=score[0];for(int i=1;i<8;i++){ scanf("%d%f",&n[i],&score[i]);if(max<...

C语言课程设计。C语言高手帮忙编个程序呗。编号发到邮箱 527876815@qq...
include<string.h> include <stdlib.h> define N 10 struct majors { int num;char majorsname[12];char teachername[15];char clas[20];int a,b,c;double pjf;};void main(){ void shuru(struct majors stu[N]);void chuli(struct majors stu[N]);void xiugai(struct majors stu[N]);...

跪求C语言编程高手帮忙编个小程序,大一年级的
printf("字符串中共有:%d字符\\n大写字母:%d个\\n小写字母:%d个\\n数字:%d个\\n空格:%d个\\n其他字符:%d\\n",tot,a,b,c,d,e);for(i=0;i<tot-1;i++){ iPos = i;for(j=i+1;j<tot;j++)if(ch[j]<ch[iPos])iPos=j;iTemp = ch[i];ch[i] = ch[iPos];ch[iPos]=iTemp...

请各位C语言高手帮忙解决下面的问题。
printf("请输入15个数:\\n");for(i=0; i<15; i++){ scanf("%d", a+i);} printf("\\n请输入要查找的数:\\n");scanf("%d", &target);ret = binary_find(a, target, 0, 14);if(-1 != ret){ printf("\\n%d找到了, 它是a[%d]\\n", target, ret);} else { printf("\\...

C语言高手帮忙啊!
c,n);printf("平移后三角形面积为:%f",triangle(a,b,c));} \/*旋转*\/ include include define DIM 4 define N 1 define NUM 3 define PI 3.1415926 typedef struct POINT { int x,y,z;}POINT;void trans(double matrix[DIM][DIM], double x, double y, double z) \/\/矩阵平移 ...

相似回答