C语言课程设计——仓库物资管理系统

这篇博客记录了博主大一上学期的C语言课程设计项目——仓库物资管理系统。系统包括仓库初始化、查询库存、物资存取和统计等功能。尽管代码在现在看来存在问题,但适合初学者参考。
摘要由CSDN通过智能技术生成

前言

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

系统功能设计

  • 仓库初始化
  • 查询库存
    *按电器名查询
    *按品牌名查询
    *按送货人查询
    *按提货人查询
    *按电器名称由大到小顺序输出所有库存
    *按库存数量由高到低输出所有库存
  • 物资存入
  • 物资取出
  • 统计物资
    *入库电器总价值
    *出库电器总利润
    *统计某月每种电器的出库数目
    *统计某月每种品牌的电器的出库数目

代码

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//------------------------------------------------------结构体区域
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<n;i++)
	{
   
		printf("开始写入第%d组\n",i+1);
		printf("请输入电器名称:");
		scanf("%s",s[i].name);
		printf("请输入电器品牌名称:");
		scanf("%s",s[i].brandName);
		printf("请输入电器数量:");
		scanf("%d",&s[i].num);
		printf("请输入电器单价:");
		scanf("%d",&s[i].unitPrice);
		printf("请输入存货时间: <年月日之间用空格隔开>例:2016 12 01\n");
		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;i<n;i++)
    {
   
      printf("%s\n%s\n%d\n%d\n%d.%d.%d\n%s\n",s[i].name,s[i].brandName,s[i].num,s[i].unitPrice,s[i].year,s[i].month,s[i].day,s[i].manName);
    }

	printf("电器信息写入完成!\n  请按回车键返回主界面!\n");
	getchar();getchar();
	system("CLS");
	menu();
}
void findOne(void)
{
   
	char name[10],ch='y';
	int i,k,n,bn;
	bn=readFile();
	do
	{
   
		system(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值