#include"head.h"
void look()
{
system("cls");
FILE * fp;
shop t;
printf("欢迎使用特定商品信息查询功能\n\n");
printf("请选择查询方式:(按回车结束)\n");
printf("1 按编号查询\n");
printf("2 按商品名查询(支持模糊查询)\n");
printf("3 返回主菜单\n");
int a;
scanf("%d",&a);
if(a==3)return ;
else if(a==1){
printf("请输入你想查询商品的编号: (按回车结束)\n");
int b;
scanf("%d",&b);
fp=look1(b);
if(fp==NULL){printf("未查询到有相关信息的商品,请确认后重新输入(按回车返回上一层)\n");getchar();getchar();
look();
return ;}
if(fp!=NULL)
fread(&t,sizeof(shop),1,fp);fseek(fp,((-1)*sizeof(shop)),SEEK_CUR);
printf("****************商品信息****************\n");
printf("商品编号: %d\n",t.no);
printf("商品名称: %s\n",t.name);
printf("商品单价: %lf\n",t.price);
printf("商品数量: %d\n",t.num);
printf("****************************************\n\n");
printf("请选择下一步操作: (按回车结束)\n");
printf("1 继续特定商品信息查询\n");
printf("2 返回主菜单\n");
int c;
scanf("%d",&c);
if(c==2) {fclose(fp); return ;}
else {
fclose(fp);
look();
return;
}
}
else if(a==2){
printf("请输入您想查询商品的名称(支持模糊查询)\n");
char d[24];int e;
scanf("%s",d);
e=look2(d);
if(e==0){
printf("未查询到有相关信息的商品,请确认后重新输入(按回车返回上一层)\n");
getchar();getchar();
look();
return ;
}
else
printf("共查询到%d件有关商品:\n",e);
look3(d);getchar();
printf("请选择下一步操作: (按回车结束)\n");
printf("1 继续特定商品信息查询\n");
printf("2 返回主菜单\n");
int f;
scanf("%d",&f);
if(f==2) { _fcloseall(); return ;}
else {
_fcloseall();
look();
return;
}
}
}
FILE * look1(int a){
FILE * fp;
shop t;
fp=fopen("shop.dat","rb+");
if(fp==NULL)
{
printf("对不起,尚未录入任何商品信息\n");
printf("按回车键返回上一层\n");
getchar();
}
else{
while(!feof(fp)){
fread(&t,sizeof(shop),1,fp);
if(a==t.no){
if(t.flag==0){{if(feof(fp))break;continue;}}
fseek(fp,((-1)*sizeof(shop)),SEEK_CUR);
return fp;
}
}
return NULL;
}
return NULL;
}
int look2(char a[24])
{
FILE * fp;
shop t;
int b=0,c=0,d=0,l;
l=strlen(a);
fp=fopen("shop.dat","rb+");
while(!feof(fp))
{
fread(&t,sizeof(shop),1,fp);
if(t.flag==0) continue;
for(c=0;c<24;c++){
for(d=0;d<l;d++)
if(a[d]!=t.name[c+d]){
break;
}
if(d==l){b++;break;}
}
}
return b;
}
void look3(char a[24])
{
FILE * fp;
shop t;
int b=0,c=0,d=0,l;
l=strlen(a);
fp=fopen("shop.dat","rb+");
while(!feof(fp))
{
fread(&t,sizeof(shop),1,fp);
if(t.flag==0) continue;
for(c=0;c<24;c++){
for(d=0;d<l;d++)
if(a[d]!=t.name[c+d]){
break;
}
if(d==l){
fseek(fp,((-1)*sizeof(shop)),SEEK_CUR);fread(&t,sizeof(shop),1,fp);
printf("****************商品信息****************\n");
printf("商品编号: %d\n",t.no);
printf("商品名称: %s\n",t.name);
printf("商品单价: %lf\n",t.price);
printf("商品数量: %d\n",t.num);
printf("****************************************\n\n");
}
}
}
return ;
}
FILE * look4(int a)
{
FILE * fp;
shop t;
fp=fopen("shop.dat","rb+");
while(!feof(fp)){
fread(&t,sizeof(shop),1,fp);
if(t.flag==0) {if(feof(fp))break;continue;}
if(t.no==a){
fseek(fp,((-1)*sizeof(shop)),SEEK_CUR);
return fp;
}
}
return NULL;
}