#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "string.h"
#define N 50
#define FILENAME "chanpin.txt"
struct date
{
int month;
int day;
int year;
};
struct chanpin
{
int number1; /*产品编号*/
char name1[10]; /*产品姓名*/
int number2; /*产品类型编号*/
char name2[10]; /*产品规格*/
char name3[10]; /*计量单位*/
int d2; /*产品数量*/
int d3; /*参考价格*/
struct date jhrq; /*进货日期*/
struct date yxrq; /*有效日期*/
};
/*******************************************************
功能:显示菜单
参数:无
返回值:无
*******************************************************/
void displayMenu()
{
printf("\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
printf("+ 产品信息管理系统2.0 +\n");
printf("+ +\n");
printf("+ 1. 输入信息 +\n");
printf("+ 2. 产品信息的修改 +\n");
printf("+ 3. 产品信息的删除 +\n");
printf("+ 4. 根据产品名称查询产品信息。 +\n");
printf("+ 5. 显示全部产品记录 +\n");
printf("+ 6. 按参考价格从小到大显示记录 +\n");
printf("+ 7. 显示全部过期产品信息 +\n");
printf("+ 8. 保存到文件 +\n");
printf("+ 9. 从文件读 +\n");
printf("+ 10.程序结束 +\n");
printf("+ +\n");
printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
}
/*******************************************************
功能:登陆函数,验证口令
参数:
参数1:n
类型: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:chanpin[]
类型:CHANPIN []
说明:用来存储从文件读到的产品信息
返回值:i
类型:int
说明:表示实际读取到的个数
*******************************************************/
int readFromFile(struct chanpin stu[])
{
FILE *fp;
int i=0;
if((fp=fopen(FILENAME,"rb"))==NULL) /*打开文件*/
{
printf("cannot open file\n");
exit(0);
}
while(fread(&stu[i],sizeof(struct chanpin),1,fp)==1)
{
i++;
}
fclose(fp);
return i;
}
int unique(struct chanpin stu[],int length,int stuNumber,int cur)
{
int flag=1,i;
for(i=0;i<length;i++)
{
if(stu[i].number1==stuNumber&&i!=cur)
{
flag=0;
break;
}
}
return flag;
}
int scan(struct chanpin stu[],int n)
{
int i=n;
int endFlag=0;
printf("编号(0退出)\n:");
while(i<N)
{
while(1)
{
int flag;
printf("编号\n:");
scanf("%d",&stu[i].number1);
if(stu[i].number1==0)
{
endFlag=1;
break;
}
flag=unique(stu,i,stu[i].number1,i);
if(flag) break;
printf("该编号已经存在,请重新输入!\n");
}
if(endFlag==1)
break;
printf("名称\n:");
scanf("%s",stu[i].name1);
printf("类型编号\n:");
scanf("%d",&stu[i].number2);
printf("产品规格\n:");
scanf("%s",stu[i].name2);
printf("计量单位\n:");
scanf("%s",stu[i].name3);
printf("产品数量\n:");
scanf("%d",&stu[i].d2);
printf("参考价格\n:");
scanf("%d",&stu[i].d3);
printf("进货日期\n:");
scanf("%d-%d-%d",&stu[i].jhrq.year,&stu[i].jhrq.month,&stu[i].jhrq.day);
printf("有效日期\n:");
scanf("%d-%d-%d",&stu[i].yxrq.year,&stu[i].yxrq.month,&stu[i].yxrq.day);
i++;
}
return i;
}
/*******************************************************
功能:将结构体数组中的产品信息显示到屏幕
参数:
参数1:chanpin[]
类型:chanpin stu[]
明:用来存储产品信息的数组
参数2:N
类型:int
说明:表示实际数组的长度
返回值:无
*******************************************************/
void print(struct chanpin stu[],int n)
{
int i=0;
if (n>0)
printf("%-4s %-10s %-4s %-4s %-4s %-4s %-4s %-4s %-4s","产品编号","名称","类型编号","产品规格","计量单位",
"产品数量","参考价格","进货日期","有效期\n\n");
for(i=0;i<n;i++)
{
printf("%-4d %6s %10d %9s %9s %8d %8d %9d-%d-%d %6d-%d-%d",stu[i].number1,stu[i].name1,stu[i].number2,
stu[i].name2,stu[i].name3,stu[i].d2,stu[i].d3,stu[i].jhrq.year,stu[i].jhrq.month,stu[i].jhrq.day,
stu[i].yxrq.year,stu[i].yxrq.month,stu[i].yxrq.day);
printf("\n");
}
printf("\n\n");
}
/*******************************************************
功能:根据名称从数组中查找产品
参数:
参数1:chanpin[]
类型:chanpin stu[]
说明:用来存储产品信息的数组
参数2:N
类型:int
说明:表示实际数组的长度
参数3:stuName
类型:char
说明:表示要查找的产品的名称
返回值:无
*******************************************************/
void chazhao(struct chanpin stu[],int length,char stuName[])
{
int i=0;
int found=0;
for(i=0;i<length;i++)
{
if(strcmp(stuName,stu[i].name1)==0)
{ found++;
if(found==1)
{
printf("找到啦\n");
printf("%-4s %-10s %-4s %-4s %-4s %-4s %-4s %-4s %-4s","产品编号","名称","类型编号","产品规格","计量单位",
"产品数量","参考价格","进货日期","有效期\n\n");
}
printf("%-4d %6s %10d %9s %9s %8d %8d %9d-%d-%d %6d-%d-%d",stu[i].number1,stu[i].name1,stu[i].number2,
stu[i].name2,stu[i].name3,stu[i].d2,stu[i].d3,stu[i].jhrq.year,stu[i].jhrq.month,stu[i].jhrq.day,
stu[i].yxrq.year,stu[i].yxrq.month,stu[i].yxrq.day);
}
}
if(found==0)
printf("\n指定的名称不存在!\n");
}
void writeToFile(struct chanpin stu[],int n)
{
FILE *fp=NULL;
int i=0;
fp=fopen(FILENAME,"wb");
if(fp==NULL)
{
printf("打开文件出错!\n");
exit(0);
}
for(i=0;i<n;i++)
fwrite(&stu[i],sizeof(struct chanpin),1,fp);
fclose(fp);
}
/*******************************************************
功能:根据编号修改数组中编号
参数:
参数1:chanpin
类型:stu []
说明:用来存储产品信息的数组出
参数2:length
类型:int
说明:表示实际数组的长度
参数3:stuNumber
类型:int
说明:表示要修改的产品的编号
返回值:无
*******************************************************/
void editInfoByNumber(struct chanpin stu[],int length,int stuNumber)
{
int i=0;
int choice,flag;
for(i=0;i<length;i++)
{
if(stuNumber==stu[i].number1)
{
printf("找到啦!它的下标是:%d\n", i);
printf("%-4s %-10s %-4s %-4s %-4s %-4s %-4s %-4s %-4s","产品编号","名称","类型编号","产品规格","计量单位",
"产品数量","参考价格","进货日期","有效期\n\n");
printf("%-4d %6s %10d %9s %9s %8d %8d %9d-%d-%d %6d-%d-%d",stu[i].number1,stu[i].name1,stu[i].number2,
stu[i].name2,stu[i].name3,stu[i].d2,stu[i].d3,stu[i].jhrq.year,stu[i].jhrq.month,stu[i].jhrq.day,
stu[i].yxrq.year,stu[i].yxrq.month,stu[i].yxrq.day);
do{
printf("\n");
printf("***********************\n");
printf(" 1:编号 \n");
printf(" 2:名称 \n");
printf(" 3:类型编号\n");
printf(" 4:产品规格\n");
printf(" 5:计量单位\n");
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
期末大作业基于C语言实现的产品管理系统源码+超详细注释.zip 【1】项目代码完整且功能都验证ok,确保稳定可靠运行后才上传。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答。 【2】项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 【3】项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 【4】如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能,欢迎交流学习。 【备注】 项目下载解压后,项目名字和项目路径不要用中文,否则可能会出现解析不了的错误,建议解压重命名为因为名字后再运行!有问题私信沟通,祝顺利! 期末大作业基于C语言实现的产品管理系统源码+超详细注释.zip期末大作业基于C语言实现的产品管理系统源码+超详细注释.zip期末大作业基于C语言实现的产品管理系统源码+超详细注释.zip期末大作业基于C语言实现的产品管理系统源码+超详细注释.zip期末大作业基于C语言实现的产品管理系统源码+超详细注释.zip 期末大作业基于C语言实现的产品管理系统源码+超详细注释.zip 期末大作业基于C语言实现的产品管理系统源码+超详细注释.zip期末大作业基于C语言实现的产品管理系统源码+超详细注释.zip期末大作业基于C语言实现的产品管理系统源码+超详细注释.zip期末大作业基于C语言实现的产品管理系统源码+超详细注释.zip期末大作业基于C语言实现的产品管理系统源码+超详细注释.zip 期末大作业基于C语言实现的产品管理系统源码+超详细注释.zip
资源推荐
资源详情
资源评论
收起资源包目录
期末大作业基于C语言实现的产品管理系统源码+超详细注释.zip (2个子文件)
产品管理.c 15KB
产品管理.zip 3KB
共 2 条
- 1
资源评论
.whl
- 粉丝: 3907
- 资源: 4858
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功