栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言实现仓库物资管理系统

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言实现仓库物资管理系统

前言

此系统为博主大一上学期C语言课程设计的大作业,由于当时初步接触C语言,现在来看程序写的太烂了,简直不忍直视……但是还是想通过博客的形式记录下来,也可以给刚接触学习C语言的人一些参考吧!

系统功能设计

仓库初始化

查询库存

*按电器名查询
*按品牌名查询
*按送货人查询
*按提货人查询
*按电器名称由大到小顺序输出所有库存
*按库存数量由高到低输出所有库存

物资存入

物资取出

统计物资

*入库电器总价值
*出库电器总利润
*统计某月每种电器的出库数目
*统计某月每种品牌的电器的出库数目

代码

#include
#include
#include
//------------------------------------------------------结构体区域
typedef struct
{
 char name[20];//电器名称
 char brandName[20];    //品牌名称
 int num;   //库存数量
 int unitPrice;//单价
 int year;
 int month;
 int day;
 char manName[20];
}stock;   //库存
stock s[10000],t[10000],x[10000],y[10000],in[10000],out[10000],no[10000],no1[10000],no2[10000]; //全局变量
//-------------------------------------------------------函数声明区域
void menu(void);//主菜单函数
void write(void);//创建仓库函数
void find(void);//查询库存函数
void findPart(void);//部分查询函数
void findOne(void);  //按电器名查询
void findTwo(void);  //按品牌名查询
void findThree(void); //按提货人查询
void findFour(void);  //按送货人查询
void findFive(void);  //按电器名称大小顺序输出所有库存
void findSix(void);  //按库存数量由高到低输出所有库存
void deposit(void);//存入仓库函数
void takeout(void);//取出仓库函数
void tongji(void);//统计函数
void tongji1(void);//第一种统计函数
void tongji2(void);//第二种统计函数
void tongji3(void);//第三种统计函数
void tongji4(void);//第四种统计函数
int readFile(void);//读取库存记录文件中所有结构体的数目
int readFile1(void);//读取入库记录文件中所有结构体的数目
int readFile2(void);//读取出库记录文件中所有结构体的数目
void end(void);//结束退出函数
//-------------------------------------------------------主函数
int main()
{
 menu();
 return 0;
}
void menu(void)
{
 int n,l=0;
 printf("============================================================n");
 printf("  n");
 printf(" -----*****欢 迎 使 用 仓 库 物 资 管 理 系 统 ! *****----- n");
 printf("  n");
 printf("============================================================n");
 printf("  n");
 printf(" 您可以进行以下操作:      n");
 printf("  n");
 printf("     1.  仓库初始化    n");
 printf("  n");
 printf("     2.  查询库存     n");
 printf("  n");
 printf("     3.  物资存入     n");
 printf("  n");
 printf("     4.  物资取出     n");
 printf("  n");
 printf("     5.  统计物资     n");
 printf("  n");
 printf("     0.  退出系统     n");
 printf("  n");
 printf("  n");
 printf("============================================================n");
 printf("现在请选择您要进行的操作:(请输入操作前的数字)");
 while(scanf("%d",&n)!=EOF)
  {
    switch(n)
 {
  case 1:system("CLS");write();break;
  case 2:system("CLS");find();break;
  case 3:system("CLS");deposit();break;
  case 4:system("CLS");takeout();break;
  case 5:system("CLS");tongji();break;
  case 0:system("CLS");end();exit(0);
  default :printf("没有此选项!n 请重新输入!n");
    }
  }







}
void write(void)    //right
{
 FILE *fp;
 int i,n;
 fp=fopen("库存记录.dat","wb");
 rewind(fp);
 printf("============================================================n");
 printf("请输入仓库中电器信息的组数!n    ps:相同电器但是不同品牌电器算多种!n");
 scanf("%d",&n);
 for(i=0;i例:2016 12 01n");
 scanf("%d%d%d",&s[i].year,&s[i].month,&s[i].day);
 printf("请输入存货人:");
 scanf("%s",s[i].manName);
 }
 fwrite(s,sizeof(stock),n,fp);
 fclose(fp);
 printf("当前库存记录:(请仔细核对)n");
 for(i=0;in");
 ch=getchar();
 }while(ch=='y'||ch=='Y');
 printf("将返回上一级菜单!n 请按回车键确认!n");
 getchar();getchar();
 system("CLS");
 findPart();
}
void findTwo(void)
{
 char brandName[10],ch='y';
 int i,k,n,bn;
 bn=readFile();
 do
 {
 system("CLS");
 printf("============================================================n");
 printf("请输入要查询的品牌名称:n");
 getchar();
 gets(brandName);
 k=-1;
 for(i=0;in");
 ch=getchar();
 }while(ch=='y'||ch=='Y');
 printf("将返回上一级菜单!n 请按回车键确认!n");
 getchar();getchar();
 system("CLS");
 findPart();
}
void findThree(void)      // 按送货人查询 入库
{
 char manName[10],ch='y';
 int i,k,n,bn1;
 bn1=readFile1();
 FILE *fp1;
 fp1=fopen("入库记录.dat","rb+");
 if(fp1==NULL)
 {
 printf("该仓库中未添加任何电器!n");
 exit(0);
 }
 fread(&y,sizeof(stock),bn1,fp1);
 fclose(fp1);
 do
 {
 system("CLS");
 printf("============================================================n");
 printf("请输入要查询的存货人:n");
 getchar();
 gets(manName);
 k=-1;
 for(i=0;in");
 ch=getchar();
 }while(ch=='y'||ch=='Y');
 printf("将返回上一级菜单!n 请按回车键确认!n");
 getchar();getchar();
 system("CLS");
 findPart();
}
void findFour(void)     //按提货人查询  出库
{
 char manName[10],ch='y';
 int i,k,n,bn2;
 bn2=readFile2();
 FILE *fp2;
 fp2=fopen("出库记录.dat","rb+");
 if(fp2==NULL)
 {
 printf("该仓库中未提出任何电器!n");
 exit(0);
 }
 fread(&x,sizeof(stock),bn2,fp2);
 fclose(fp2);
 do
 {
 system("CLS");
 printf("============================================================n");
 printf("请输入要查询的提货人:n");
 getchar();
 gets(manName);
 k=-1;
 for(i=0;in");
 ch=getchar();
 }while(ch=='y'||ch=='Y');
 printf("将返回上一级菜单!n 请按回车键确认!n");
 getchar();getchar();
 system("CLS");
 findPart();


}
void findFive(void)    //电器名称大小顺序输出所有库存
{
 int bn;
 bn=readFile();
 printf("============================================================n");
 FILE *fp;
 fp=fopen("库存记录.dat","rb+");
 if(fp==NULL)
 {
 printf("该仓库中无库存!n");
 exit(0);
 }
 fread(&s,sizeof(stock),bn,fp);
 int i,j;
 for(i=0;i 例:2016 12 01n");
 scanf("%d%d%d",&jia.year,&jia.month,&jia.day);
 printf("请输入送货人:");
 scanf("%s",jia.manName);
 fwrite(&jia,sizeof(stock),1,fp1);
 fwrite(&jia,sizeof(stock),1,fp);
 fclose(fp1);fclose(fp);
 printf("是否继续输入?n");
 getchar();
 ch=getchar();
 }while(ch=='y'||ch=='Y');
 printf("将返回上一级菜单!n 请按回车键确认!n");
 getchar();

 system("CLS");
 menu();
}
void takeout(void)   //出库
{
 stock jian;
 printf("==============================================================n");
 int bn,bn2,i,j;
 char ch='y';
 FILE *fp,*fp2;
 bn=readFile();
 bn2=readFile2();

 printf("请输入要提出仓库的电器信息:n");
 do
 {
 fp=fopen("库存记录.dat","rb+");
 if(fp==NULL)
 {
  printf("无法打开此文件!n");
  exit(0);
 }
 for(i=0;i 例:2016 12 01n");
 scanf("%d%d%d",&jian.year,&jian.month,&jian.day);
 printf("请输入提货人:");
 scanf("%s",jian.manName);
 getchar();
 fwrite(&jian,sizeof(stock),1,fp2);
 fclose(fp2);
 for(i=0;in");
 getchar();
 ch=getchar();
 }while(ch=='y'||ch=='Y');
 printf("将返回上一级菜单!n 请按回车键确认!n");
 getchar();

 system("CLS");
 menu();

}
void tongji(void)
{
 int n;
 system("CLS");
 printf("==============================================================n");
 printf("1. 入库电器总价值n");
 printf("2. 出库电器总利润n");
 printf("3.统计该月每种电器的出库数目n");
 printf("4.统计该月每种品牌的电器的出库数目n");
 printf("0. 返回主菜单n");
 printf("请选择要进行的操作:(0到4)n");
 scanf("%d",&n);
 getchar();
 while(n!=0&&n!=1&&n!=2&&n!=3&&n!=4)
 {

 printf("没有此选项!n 请重新输入!n");
 scanf("%d",&n);
    getchar();
  }
  switch(n)
 {
  case 1:tongji3();break;//第三种统计函数
  case 2:tongji4();break;//第四种统计函数
  case 3:tongji1();break;//第一种统计函数
  case 4:tongji2();break;//第二种统计函数
  case 0:system("CLS");menu();break;
 }
}
void tongji2(void)//第二种统计函数
{
   FILE *fp;
  int bn1,i,year,month,k=0;
  bn1=readFile1();
  system("CLS");
  printf("==============================================================n");
 fp=fopen("出库记录.dat","rb+");
 if(fp==NULL)
 {
 printf("无法打开此文件!n");
 exit(0);
 }
 for(i=0;i

运行截图

总结

两年前写的程序了,大体运行了一下,存在一点小bug,还有一些设计不合理的地方以及没有解决非法输入的问题。

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/62150.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号