有没有哪位程序员大佬可以帮我编下下图代码?

如题所述

第1个回答  2020-01-02

您好,这是我以前编写的,你可以参考


include

include

include

include

struct data

int amount; // 数量 

char name[20]; // 名称 

int num; // 编号 

}food[100];


int S=0; //货物数


//入库函数


void input() 

int i=0; 

char c; 

while(1) 

system(“cls”); 

printf(” 物品%d\n”,++S); 

printf(“请输入物品编号:”); 

scanf(“%d”,&food[i].num); 

printf(“请输入物品名称:”); 

scanf(“%s”,&food[i].name); 

printf(“请输入物品数量:”); 

scanf(“%d”,&food[i].amount); 

printf(“是否继续入库(Y/N):”); 

scanf(” %c”,&c); 

i++; 

if(c==’N’||c==’n’) break; 

}


//出库函数


void output() 

int a,b,c,i,j; 

char d; 

char _name[20]; 

while(1) 

system(“cls”); 

printf(“\t\t1、按编号出库\n”); 

printf(“\t\t2、按名称出库\n”); 

printf(“\t\t0、返回\n”); 

printf(“\t\t请选择:”); 

scanf(“%d”,&a); 

if(a==1) 

printf(“请输入出货货物的编号:”); 

scanf(“%d”,&b); 

printf(“\n”); 

for(i=0;i<\S;i++) 

if(b==food[i].num) j=i; 

if(food[j].amount>0) 

printf(“请输入出货量:”); 

scanf(“%d”,&c); 

if(c>\food[j].amount) 

printf(“货物不足\n”); 

else 

food[j].amount-=c; 

printf(“编号%d货物成功出货!\n货物剩余%d\n”,food[j].num,food[j].amount); 

else 

printf(“此货物为零\n”); 

if(a==2) 

printf(“请输入出货货物的名称:”); 

scanf(“%s”,_name); 

printf(“\n”); 

for(i=0;i<\S;i++) 

if(strcmp(food[i].name,_name)==0) j=i; 

if(food[j].amount>\0) 

printf(“请输入出货量:”); 

scanf(“%d”,&c); 

if(c>\food[j].amount) 

printf(“货物不足\n”); 

else 

food[j].amount-=c; 

printf(“编号%d货物成功出货!\n货物剩余%d\n”,food[j].num,food[j].amount); 

else 

printf(“此货物为零\n”); 

else if(a==0) break; 

printf(“是否继续出库(Y/N):”); 

scanf(” %c”,&d); 

if(d==’N’||d==’n’) break; 

}


//货物出库和入库

void current() 

int a; 

system(“cls”); 

printf(“\t\t1、货物入库\n”); 

printf(“\t\t2、货物出库\n”); 

printf(“\t\t0、返回\n”); 

printf(“\t\t请选择:”); 

scanf(“%d”,&a); 

if(a==1) 

input(); 

else if(a==2) 

output(); 

}


//查找函数

void search() 

int i,a,b; 

char c; 

char _name[20]; 

while(1) 

system(“cls”); 

printf(“\t\t1、按编号查找\n”); 

printf(“\t\t2、按名称查找\n”); 

printf(“\t\t0、返回\n”); 

printf(“\t\t请选择:”); 

scanf(“%d”,&a); 

if(a==1) 

printf(“请输入需要查询货物的编号:”); 

scanf(“%d”,&b); 

printf(“\n”); 

for(i=0;i<\S;i++) 

if(b==food[i].num) break; 

if(i<\S) 

printf(“编号:%d\n名称:%s\n数量:%d\n”,food[i].num,food[i].name,food[i].amount); 

else 

printf(“未找到此编号\n”); 

printf(“是否继续查找(Y/N): “); 

scanf(” %c”,&c); 

if(c==’N’||c==’n’) break; 

else if(a==2) 

printf(“请输入需要查询货物的名称:”); 

scanf(“%s”,&_name); 

printf(“\n”); 

for(i=0;i<\S;i++) 

if(strcmp(_name,food[i].name)==0) break; 

if(i<\S) 

printf(“编号:%d\n名称:%s\n数量:%d\n”,food[i].num,food[i].name,food[i].amount); 

else 

printf(“未找到此名称\n”); 

printf(“是否继续查找(Y/N): “); 

scanf(” %c”,&c); 

if(c==’N’||c==’n’) break; 

else if(a==0) break;


}

1

}


//显示函数

void show() 

int i; 

char c; 

system(“cls”); 

printf(“\t编号\t名称\t数量\n”); 

for(i=0; i<\S; i++) 

printf(“\t%d\t%s\t%d”,food[i].num,food[i].name,food[i].amount); 

printf(“\n\n”); 

printf(“按回车键返回!”); 

c=getchar(); 

c=getchar(); 

}


char file[20]; //文件名,全局变量


//打开文件


void open() 

FILE *fp; 

int i; 

char c; 

system(“cls”); 

printf(“输入打开的文件名:\n”); 

scanf(“%s”,file); 

if((fp=fopen(file,”rb”))==NULL) 

printf(“cannot open infile\n”); 

if(fread(&S,sizeof(int),1,fp)!=1) 

if(feof(fp)) 

fclose(fp); 

return ; 

printf(“文件读取错误!\n”); 

for(i=0;i<\S;i++) 

if(fread(&food[i],sizeof(struct data),1,fp)!=1) 

if(feof(fp)) 

fclose(fp); 

return ; 

printf(“文件读取错误!\n”); 

fclose(fp); 

printf(“文件打开成功!\n\n”); 

printf(“按回车键返回!”); 

c=getchar(); 

c=getchar(); 

}


//输出到文件


void save() 

FILE *fp; 

int i,a; 

char c; 

system(“cls”); 

printf(“1、储存\n”); 

printf(“2、另存为\n”); 

printf(“0、返回\n”); 

printf(“请选择:”); 

scanf(“%d”,&a); 

if(a==1) 

if((fp=fopen(file,”wb”))==NULL) 

printf(“cannot open file\n”); 

if(fwrite(&S,sizeof(int),1,fp)!=1) 

printf(“写入文件错误!\n”); 

for(i=0;i<\S;i++) 

if(fwrite(&food[i],sizeof(struct data),1,fp)!=1) 

printf(“写入文件错误!\n”); 

fclose(fp); 

printf(“保存成功!\n\n”); 

printf(“按回车键返回!”); 

c=getchar(); 

c=getchar(); 

else if(a==2) 

printf(“\n文件名:”); 

scanf(“%s”,file); 

if((fp=fopen(file,”wb”))==NULL) 

printf(“cannot open file\n”); 

if(fwrite(&S,sizeof(int),1,fp)!=1) 

printf(“写入文件错误!\n”); 

for(i=0;i<\S;i++) 

if(fwrite(&food[i],sizeof(struct data),1,fp)!=1) 

printf(“写入文件错误!\n”); 

fclose(fp); 

printf(“保存成功!\n\n”); 

printf(“按回车键返回!”); 

c=getchar(); 

c=getchar(); 

}


int main() 

int a; 

///主菜单 

while(1) 

system(“cls”); 

printf(“\t\t\t\t* * * * * * * * * * * * * * * * \n”); 

printf(“\t\t\t\t* 1、货物出库和入库 * \n”); 

printf(“\t\t\t\t* 2、查找货物表 * \n”); 

printf(“\t\t\t\t* 3、显示仓库货物表 * \n”); 

printf(“\t\t\t\t* 4、输出到文件 * \n”); 

printf(“\t\t\t\t* 5、打开文件 * \n”); 

printf(“\t\t\t\t* 0、退出 * \n”); 

printf(“\t\t\t\t* * * * * * * * * * * * * * * * \n”); 

printf(“\t\t\t\t请选择:”); 

scanf(“%d”,&a); 

switch(a) 

case 1: current();break; 

case 2: search();break; 

case 3: show();break; 

case 4: save();break; 

case 5: open();break; 

case 0: exit(0); 

return 0; 

}

————————————————

采纳哦~

相似回答