写出上述代码
时间: 2023-07-03 13:27:25 浏览: 44
以下是上述代码的完整实现:
```c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct stock{
char num[10]; // 物资编号
char goods[10]; // 物资名称
double price; // 物资购入价格
double count; // 物资数量
char cosumer[10]; // 采购人
}s[6];
int main(){
FILE *fp;
int o,i,j,k,b,q;
double t,e;
char y[10],m[10],h[10],l[10],v[10],a[10],x[10],f[10],u[10],p[10];
char filename_y[20];
char filename_m[20];
char filename_j[20];
// 采购物资信息入库
printf("请输入您需要入库的物资信息:\n");
for(i=0;i<6;i++){
scanf("%s %s %lf %lf %s",&s[i].num,&s[i].goods,&s[i].price,&s[i].count,&s[i].cosumer);
}
printf("请输入您所需存放物资信息的文件名:");
scanf("%s",&filename_y);
if((fp=fopen(filename_y,"w+"))==NULL){
printf("无法打开此文件\n");
exit(0);
}
for(i=0;i<6;i++){
fprintf(fp,"%10s%10s%10.2lf%20lf%10s\n",s[i].num,s[i].goods,s[i].price,s[i].count,s[i].cosumer);
}
fclose(fp);
printf("保存物资信息成功!\n");
// 查询特定物资信息
printf("请输入您想要查询的物资信息:");
scanf("%s",&y);
for(i=0;i<6;i++){
if(strcmp(y,s[i].num)==0||strcmp(y,s[i].goods)==0){
printf("%10s%10s%10.2lf%20lf%10s\n",s[i].num,s[i].goods,s[i].price,s[i].count,s[i].cosumer);
}
}
// 查看所有物资信息
printf("是否需要查看库中所有的物资信息(回答yes or no):");
scanf("%s",&m);
if(strcmp(m,"yes")==0){
for(i=0;i<6;i++){
printf("%10s%10s%10.2lf%20lf%10s\n",s[i].num,s[i].goods,s[i].price,s[i].count,s[i].cosumer);
}
}
// 领取物资
printf("请输入您需要领取物资的名称或编号:");
scanf("%s",&h);
printf("请输入您需要领取的次数:");
scanf("%d",&k);
printf("请输入您领取的物资进行保存需要的文件名:");
scanf("%s",&filename_m);
if((fp=fopen(filename_m,"w+"))==NULL){
printf("无法打开此文件\n");
exit(0);
}
for(o=0;o<k;o++){
printf("请输入您需要领取物资的名称或编号:");
scanf("%s",&h);
for(i=0;i<6;i++){
if(strcmp(h,s[i].num)==0||strcmp(h,s[i].goods)==0){
printf("请输入领取的数量:");
scanf("%d",&j);
if(j<=s[i].count){
s[i].count=s[i].count-j;
printf("领取成功\n");
fprintf(fp,"%10s%10s%10.2lf%20lf%10s\n",s[i].num,s[i].goods,s[i].price,j,"领取者");
}
else{
printf("很抱歉,库存不足,领取失败。\n");
}
}
}
}
fclose(fp);
return 0;
}
```