前言
此系统为博主大一上学期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(