#include<stdio.h>
#include "stdlib.h"
#include "string.h"
#define N 10
struct information
{
int num1;//入库编号//
int rklx;//入库类型//
int num2;//入库产品编号//
int sj1[3];//生产日期//
float dj;//入库产品单价//
int sl;//入库产品数量//
int num3;//仓库编号//
char name[10];//经办人//
int sj2[3];//入库日期//
};struct information inf[N];
/*******************************************************
功能:登陆函数,验证口令
参数:
参数1:password
类型:char []
说明:用户输入口令
返回值:1或0
类型:int
说明:1表示通过验证;0表示没有通过
*******************************************************/
int login(char password[])
{
static char key[10]="123";
if(strcmp(password,key)==0)
return 1;
else
return 0;
}
/*******************************************************
功能:从文件读信息到结构体数组中
参数:
参数1:information
类型:inf[]
说明:用来存储从文件读到的管理信息
返回值:i
类型:int
说明:表示实际读取到的个数
*******************************************************/
int readFromFile(struct information inf[])
{
FILE *fp=NULL;
int i=0;
fp=fopen("FILENAME.txt","rb"); /*打开文件*/
if(fp!=NULL)
{
while(!feof(fp)) /*从文件中读入学生*/
{
if(i>=N)
break;
if(fread(inf+i,sizeof(struct information),1,fp))
i++;
}
fclose(fp);
}
return i;
}
/*******************************************************
功能:结构体数组中的管理信息输出到文件
参数:
参数1:information
类型:inf[]
说明:用来存储从文件读到的管理信息
参数2:length
类型:int
说明:表示实际数组的长度
返回值:无
*******************************************************/
void writeToFile(struct information inf[],int length)
{
FILE *fp=NULL;
int i=0;
fp=fopen("FILENAME.txt","wb");
if(fp==NULL)
{
printf("打开文件出错!\n");
exit(0);
}
for(i=0;i<length;i++)
fwrite(inf+i,sizeof(struct information),1,fp);
fclose(fp);
}
/*******************************************************
功能:根据入库编号删除记录
参数:
参数1:information
类型:inf[]
说明:用来存储管理信息的数组
参数2:length
类型:int
说明:表示实际数组的长度
参数3:delete_num1
类型:int
说明:表示要入库编号删除记录
返回值:length
删除后信息的个数
*******************************************************/
int delete_inf(struct information inf[],int delete_num1,int length)
{
int i,j;
char choice;
for(i=0;i<length;i++)
{
if(delete_num1==inf[i].num1)
{
printf("找到啦!它的下标是:%d\n", i);
printf("入库产品编号为: %d\n",inf[i].num2);
printf("入库编号为: %d\n",inf[i].num1);
printf("生产日期: %d年%d月%d日\n",inf[i].sj1[0],inf[i].sj1[1],inf[i].sj1[2]);
printf("入库日期为: %d年%d月%d日\n",inf[i].sj2[0],inf[i].sj2[1],inf[i].sj2[2]);
printf("仓库编号为: %d\n",inf[i].num3);
printf("经办人为: %s\n",inf[i].name);
printf("入库产品单价为: %2.1f\n",inf[i].dj);
printf("入库产品数量为: %d\n",inf[i].sl);
printf("\n\n");
break;
}
}
if(i<length)
{
printf("你确实要删除这个入库编号吗?(Y/N)\n");
getchar();
scanf("%c",&choice);
if(choice=='Y'||choice=='y')
{
for(j=i;j<length;j++)
inf[j]=inf[j+1];
length=length-1;
printf("删除成功!\n");
}
}
else
printf("\n指定的入库编号不存在!\n");
return length;
}
/**********************************************************
功能:打印的纪录
参数1:information
类型:inf[]
说明:用来存储管理信息的数组
参数2:length
类型:int
说明:表示实际数组的长度
返回值:无
**********************************************************/
void print(struct information inf[],int length)
{
int i;
for(i=0;i<length;i++)
{
printf("入库产品编号为: %d\n",inf[i].num2);
printf("入库编号为: %d\n",inf[i].num1);
printf("生产日期: %d年%d月%d日\n",inf[i].sj1[0],inf[i].sj1[1],inf[i].sj1[2]);
printf("入库日期为: %d年%d月%d日\n",inf[i].sj2[0],inf[i].sj2[1],inf[i].sj2[2]);
printf("仓库编号为: %d\n",inf[i].num3);
printf("经办人为: %s\n",inf[i].name);
printf("入库产品单价为: %2.1f\n",inf[i].dj);
printf("入库产品数量为: %d\n",inf[i].sl);
printf("\n\n");
}
}
/*******************************************************
功能:按入库产品编号从小到大显示记录
参数:
参数1:information
类型:inf[]
说明:用来存储管理信息的数组
参数2:length
类型:int
说明:表示实际数组的长度
返回值:无
*******************************************************/
void pailian(struct information inf[],int length)
{
struct information inf1[N];
int i,j,k;
for(i=0;i<length-1;i++)
{
k=i;
for(j=i+1;j<length;j++)
if(inf[k].num2>inf[j].num2)
k=j;
if(k!=i)
{
inf1[N+1]=inf[i];
inf[i]=inf[k];
inf[k]=inf1[N+1];
}
}
}
/*******************************************************
功能:判断入库编号是否唯一
参数:
参数1:information
类型:inf[]
说明:存储管理信息的数组
参数2:length
类型:int
说明:表示实际数组的长度
参数3:peoinf
类型:int
说明:要判断的入库编号
返回值:1或0(flag)
类型:int
说明:1表示入库编号唯一;0表示入库编号不唯一
*******************************************************/
int unique(struct information inf[],int length,int peoinf)
{
int flag=1,i;
for(i=0;i<length;i++)
{
if(inf[i].num1==peoinf)
{
flag=0;
break;
}
}
return (flag);
}
/*******************************************************
功能:统计所有生产入库产品的总金额
参数1:information
类型:inf[]
说明:用来存储管理信息的数组
参数2:length
类型:int
说明:表示实际数组的长度
参数3:t
类型:float
说明:所有生产入库产品的总金额
返回值:t
*******************************************************/
float add(struct information inf[],int length)
{
float t=0;
int i;
for(i=0;i<length;i++)
t+=inf[i].dj*inf[i].sl;
return(t);
}
/*******************************************************
功能:输入信息到结构体数组中
参数:
参数1:information
类型:inf[]
说明:用来存储管理信息的数组
参数2:length
类型:int
说明:表示实际数组的长度
返回值:i
类型:int
说明:表示增加信息后,实际数组的长度
*******************************************************/
int f1(struct information inf[],int Length)
{
int i=Length;
int endFlag=0;
int flag;
printf("请输入产品入库操作管理系统(以入库编号为0结束):\n");
while(i<N)
{
while(1)
{
printf("请输入入库编号: \n");
scanf("%d",&inf[i].num1);
if(inf[i].num1==0)
{
endFlag=1;
break;
}
flag=unique(inf,i,inf[i].num1);
if(flag) break;
printf("该信息已经存在,请重新输入!\n");
}
if(endFlag==1)break;
printf("请选择 入库类型: \n");
printf("++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
printf("* *\n");
printf("* 1: 采购入库 2: 生产入库 3: 入库产品 *\n");
printf("* *\n");
printf("++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
scanf("%d",&inf[i].rklx);
switch(inf[i].rklx)
{
case 1:printf(" 采购入库\n 客户编号为供应商");break;
case 2:printf("采购入库\n");break;
case 3:printf("采购入库\n 客户编号为退货入库");break;
default:printf("error\n");
}
printf("请输入 入库产品编号: \n");
scanf("%d",&inf[i].num2);
printf("请输入 生产日期: \n");
printf("生产年份为:\n");
scanf("%d",&inf[i].sj1[0]);
printf("生产月份为:\n");
scanf("%d",&inf[i].sj1[1]);
printf("生产日期为:\n");
scanf("%d",&inf[i].sj1[2]);
printf("请输入 入库产品单价: \n");
scanf("%f",&inf[i].dj);
printf("请输入 入库产品数量: \n");
scanf("%d",&inf[i].sl);
printf("请输入 仓库编号: \n");
scanf("%d",&inf[i].num3);
printf("请输入 经办人: \n");
scanf("%s",&inf[i].name);
printf("请输入 入库日期: \n");
printf("入库年份为:\n");
scanf("%d",&inf[i].sj2[0]);
printf("入库月份为:\n");
scanf("%d",&inf[i].sj2[1]);
printf("入库日期为:\n");
scanf("
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
C语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zip 【1】项目代码完整且功能都验证ok,确保稳定可靠运行后才上传。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答。 【2】项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 【3】项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 【4】如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能,欢迎交流学习。 【备注】 项目下载解压后,项目名字和项目路径不要用中文,否则可能会出现解析不了的错误,建议解压重命名为因为名字后再运行!有问题私信沟通,祝顺利! C语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zipC语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zipC语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zipC语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zipC语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zipC语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zipC语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zipC语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zip C语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zip C语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zip C语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zip
资源推荐
资源详情
资源评论
收起资源包目录
C语言课程作业-基于C语言编写的产品入库管理系统源码+详细注释.zip (1个子文件)
产品入库管理操作系统.c 16KB
共 1 条
- 1
资源评论
.whl
- 粉丝: 3823
- 资源: 4648
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功