为什么程序不对,求指导
#include"stdio.h"#include"string.h"
#define null 0
int t=0;
int menu();//菜单
void lr();//录入信息
void xg();//修改
void cx();//查询
void cx_sbh();//设备号查询
void cx_mc();//设备名称查询
void tj();//统计
void bf();//报废信息
void bf_dj();//报废登记
void bf_tj();//报废统计
typedef struct shebei
{
char id[10];
char name[15];
char kind[15];
char over[15];
int yesno;
char time[10];
char price[10];
}shebei;
shebei sb[200];
void lr()//录入信息
{
while(1)
{
printf(">>>>>>>>>>提示:输入0则返回主菜单!\n");
printf("\n请你输入设备ID号:");
scanf("%s",sb[t].id);
if(strcmp(sb[t].id,"0")==0) main();
printf("\n请输入设备名称:");
scanf("%s",sb[t].name);
printf("\n请输入设备种类:");
scanf("%s",sb[t].kind);
printf("\n请输入报废日期:");
scanf("%s",sb[t].over);
printf("\n请输入设备是否报废,1、没报废,0、报废:");
scanf("%d",&sb[t].yesno);
printf("\n请输入设备购买时间:");
scanf("%s",sb[t].time);
printf("\n请输入设备价格:");
scanf("%s",sb[t].price);
printf(">>>>>>>>>>提示:已经完成一条记录的添加。\n");
t++;
}
}
void xg()//修改
{
char find[20];
int x;
t=0;
printf("请输入要修改的设备ID号:");
scanf("%s",find);
while(1)
{
if(strcmp(sb[t].id,find)==0) //如果找到的话返回的是符合要求
{
break;
}
else t++;
}
while(1)
{
printf("确认修改请输入任意数字否则输入0重新输入设备原id:");
scanf("%d",&x);
if(x==0) break;
else
{
printf("请输入新设备号(原来是 %s ):",sb[t].id);
scanf("%s",sb[t].id);
printf("请输入新设备名称(原来是 %s ):",sb[t].name);
scanf("%s",sb[t].name);
printf("请输入新设备设备种类名称(原来是 %s ):",sb[t].kind);
scanf("%s",sb[t].kind);
printf("请输入新设备报废日期名称(原来是 %s ):",sb[t].over);
scanf("%s",sb[t].over);
printf("请输入新设备是否报废,1、没报废,0、报废(原来是 %d):",sb[t].yesno);
scanf("%d",&sb[t].yesno);
printf("请输入新设备购买时间(原来是 %s ):",sb[t].time);
scanf("%s",sb[t].time);
printf("请输入新设备价格(原来是 %s ):",sb[t].price);
scanf("%s",sb[t].price);
printf("\n>>>>>>>>>>提示:该项记录资料已经成功修改!\n");
printf("退回主菜单请输入0\n");
printf("继续操作请输入1\n");
scanf("%d",&x);
switch(x)
{
case 0:void main();break;
case 1:xg();break;
default:printf("输入无效,自动返回主菜单\n");main();break;
}
}
}
}
void cx()//查询
{
int choice;
do
{
printf("\t\t\t----------------------------------\n");
printf("\t\t\t* [1]----按设备号查找 *\n");
printf("\t\t\t* [2]----按设备名称查找 *\n");
printf("\t\t\t* [0]----退出 *\n");
printf("\t\t\t*·*·*·*·*·*·*·*·*·*·*·*|\n");
scanf("%d",&choice);
getchar();
switch(choice)
{
case 0:menu();break;
case 1:cx_sbh();break;
case 2:cx_mc();break;
default:printf("输入无效请重新输入\n");cx(); break;
}
}
while(choice!=0);
}
void cx_sbh()//设备号查询
{
int choice;
char find[20];
int t=0;
printf("请输入您要查询的设备号\n");
scanf ("%s",find);
getchar();
do
{
if(strcmp(sb[t].id,find)==0&&sb[t].yesno==1) //1表示设备没报废
{
printf("设备号 设备名称 设备种类 报废日期 是否报废 购买时间 价格\n");
printf("\n%-13s%-11s%-7s%-10s%-13d%-10s%-5s\n",sb[t].id,sb[t].name,sb[t].kind,sb[t].over,sb[t].yesno,sb[t].time,sb[t].price);
t++;
}
else
t++;
}
while (t<100);
printf("键入数字1返回主菜单\n");
printf("键入数字任意键返回上层菜单\n");
scanf("%d",&choice);
if (choice==1)
main();
else cx();
}
void cx_mc()//设备名称查询
{
int choice;
char ming[20];
t=0;
printf("\n输入你要查询的设备名称:");
scanf("%s",ming);
do
{
if(strcmp(sb[t].name,ming)==0&&sb[t].yesno==1) //1表示设备没报废
{
printf("设备号 设备名称 设备种类 报废日期 是否报废 购买时间 价格\n");
printf("\n%-13s%-11s%-7s%-10s%-13d%-10s%-5s\n",sb[t].id,sb[t].name,sb[t].kind,sb[t].over,sb[t].yesno,sb[t].time,sb[t].price);
t++;
}
else
t++;
}
while (t<100);
printf("键入数字1返回主菜单\n");
printf("键入数字任意键返回上层菜单\n");
scanf("%d",&choice);
if (choice==1)
main();
else cx();
}
void tj()//统计
{
t=0;
int choice;
char tong[20];
printf("\n输入你要统计的设备种类:");
scanf("%s",tong);
do
{
if(strcmp(sb[t].kind,tong)==0&&sb[t].yesno==1) //1表示设备没报废
{
printf("设备号 设备名称 设备种类 报废日期 是否报废 购买时间 价格\n");
printf("\n%-13s%-11s%-7s%-10s%-13d%-10s%-5s\n",sb[t].id,sb[t].name,sb[t].kind,sb[t].over,sb[t].yesno,sb[t].time,sb[t].price);
t++;
}
else
t++;
}
while (t<100);
printf("键入数字1返回主菜单\n");
printf("键入数字任意键返回上层菜单\n");
scanf("%d",&choice);
if (choice==1)
main() ;
}
void bf() //报废信息
{ int choice;
do
{
printf("\t\t\t----------------------------------\n");
printf("\t\t\t* [1]----登记报废信息 *\n");
printf("\t\t\t* [2]----报废设备统计 *\n");
printf("\t\t\t* [0]----退出 *\n");
printf("\t\t\t*·*·*·*·*·*·*·*·*·*·*·*|\n");
scanf("%d",&choice);
getchar();
switch(choice)
{
case 0:menu();break;
case 1:bf_dj();break;
case 2:bf_tj();break;
default:printf("输入无效请重新输入\n");bf(); break;
}
}
while(choice!=0);
}
void bf_dj()//报废登记
{
char find[20];
t=0;
printf("请输入要登记的设备ID号:");
scanf("%s",find);
while(1)
{
if(strcmp(sb[t].id,find)==0) //如果找到的话返回的是符合要求
{
break;
}
else t++;
}
int x;
while(1)
{
printf("完成登记请输入0否则输入任意数再进行修改:");
scanf("%d",&x);
if(x==0) break;
{
printf("请输入新设备是否报废1、没报废,0、报废(原来是 %d ):",sb[t].yesno);
scanf("%d",&sb[t].yesno);
printf("\n>>>>>>>>>>提示:该项记录资料已经成功登记!\n");
scanf("%d",&x);
switch(x)
{
case 0:main();break;
case 1:bf();break;
default:printf("输入无效,自动返回主菜单\n");main();break;
}
}
}
}
void bf_tj()//报废统计
{
int choice;
char find[20];
t=0;
printf("\n输入你要统计的报废设备种类:");
scanf("%s",find);
do
{
if(strcmp(sb[t].kind,find)==0&&sb[t].yesno==0) //0表示设备报废
{
printf("设备号 设备名称 设备种类 报废日期 是否报废 购买时间 价格\n");
printf("\n%-13s%-11s%-7s%-10s%-13d%-10s%-5s\n",sb[t].id,sb[t].name,sb[t].kind,sb[t].over,sb[t].yesno,sb[t].time,sb[t].price);
t++;
}
else
t++;
}
while (t<3);
printf("键入数字1返回主菜单\n");
printf("键入数字任意键返回上层菜单\n");
scanf("%d",&choice);
if (choice==1)
main();
}
int menu()
{
int choice;
printf("\n\n\n");
printf("\t\t\t--------------------------------\n");
printf("\t\t\t+ 实验设备管理系统 |\n");
printf("\t\t\t--------------------------------\n");
printf("\t\t\t+ [1]----录入设备信息 |\n");
printf("\t\t\t+ [2]----修改设备信息 |\n");
printf("\t\t\t+ [3]----查询设备信息 |\n");
printf("\t\t\t+ [4]----统计设备信息 |\n");
printf("\t\t\t+ [5]----报废设备信息 |\n");
printf("\t\t\t+ [0]----*-EXIT-* |\n");
printf("\t\t\t+*·*·*·*·*·*·*·*·*·*·|\n");
printf("\t\t\t--------------------------------\n");
printf("请输入你要操作的序号:");
scanf("%d", &choice);
return choice;
}
void main()
{
int choice;
choice=-1;
choice=menu(choice);
do{
switch (choice)
{
case 0: printf("\n>>>>>>>>>>提示:已经退出系统,ByeBye!\n"); break;
case 1: lr(); break;
case 2: xg(); break;
case 3: cx(); break;
case 4: tj(); break;
case 5: bf(); break;
default: printf("\n>>>>>>>>>>提示:输入错误!\n"); break;
}
}
while(choice!=0);
}