⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 search.c

📁 包含8个文件:type.h, borrow.c, createfile.c, MainMenuControl.C, reader.c, readfile.c, search.c, writefile.
💻 C
字号:
/*2.建立关于书号,书名,
(1)书号查询算法。*/
int BinSearch(BnoIdxFile bif,char key[])
{
	int low,high,mid;
	low=1;
	high=bif.len;
	while(low<=high){
		mid=(low+high)/2;
		if(strcmp(key,bif.BnoIdx[mid].bno)==0)
			return bif.BnoIdx[mid].RecNo;
		else if(strcmp(key,bif.BnoIdx[mid].bno)<0)
						high=mid-1;
		else low=mid+1;
		}
	return 0;
	}//BinSearch
/*(2)按书名查询算法:*/
int BnameFind(LHFile1 lhf1,char key[])
{
	int i,k=0;
	for(i=1;i<=lhf1.len;i++)
	{
		if(strcmp(key,lhf1.LHFrec1[i].bname)==0)
			{k=lhf1.LHfrec1[i].lhead;break;
				}
		}
		return k;
}
/*(3)按作者查询算法:*/
int BauthFind(LHFile2 lhf2,char key[])
{	int i,k=0;
	for(i=1;i<=lhf2.len2;i++)
	{	if(strcmp(key,lhf2.LHFrec2[i].author)==0)
			{
				k=lhf2.LHFrec2[i].lhead;break;
			}
 	}
 	return k;
}
/*(4)按出版社查询算法*/
int BnameFind(LHFile3 lhf3,char key[])
{	int i,k=0;
	for(i=1;i<=lhf3.len3;i++)
	{	if(strcmp(key,lhf3.LHFrec3[i].press)==0)
			{
				k=lhf3.LHFrec3[i].lhead;break;
			}
 	}
 	return k;
}
/*(5)输出一条图书住数据库记录:*/
void ShowRec(BookDbaseFile df,int i)
{
	printf("BookNumber	BookName	AuthorName	PressName	SortNumber\n");
	printf("=========================================================\n");
	printf("%-6s%20s",df.BookDbase[i].bno,df.BookDbase[i].bname);
	printf("%8s%10s",df.BookDbase[i].author,df.BookDbase[i].press);
	printf("%-6s\n",df.BookDbase[i].sortno);
	printf("=========================================\n");
}
/*(6)图书查询控制程序:*/
void SearchBook(BookDbaseFile df,BnoIdxFile bif,LHFile1 f1,LHFile2 f2,LHFile3 f3)
{	char sh[4],sm[20],zz[8],cbs[10];
	int i,j,k,choose=1;
	while(choose>=1&&choose<=5)
	{	printf("ChildBookSearchSystem\n");
		printf("-------------------------\n");
		printf("1.BookNumber	2.BookName\n");
		printf("3.Author	4.Press\n");
		printf("5.Exit\n");
		printf("-------------------------\n");
		printf("Please choose:\n");
		scanf("%d",&choose);
		switch(choose)
		{
			case 1:
					printf("Input BookNumber:\n");scanf("%s",sh);
					k=BinSearch(bif,sh);
					if(k==0){
						printf("There is no book that you searched,please check the input\n");
						break;
						}
						ShowRec(df,k);
						break;
			case 2:
					printf("Input BookNumber:\n");scanf("%s",sm);
					k=BnameFind(f1,sm);
					if(k==0){
						printf("There is no book that you searched,please check the input\n");
						break;
						}
						for(i=k;i;i=df.BookDbase[i].namenext)
							ShowRec(df,i);
						break;
			case 3:
					printf("Input AuthorName:\n");scanf("%s",zz);
					k=BauthFind(f2,zz);
					if(k==0){
						printf("There is no book that you searched,please check the input\n");
						break;
						}
						for(i=k;i;i=df.BookDbase[i].authnext)
							ShowRec(df,i);
						break;
			case 4:
					printf("Input PressName:\n");scanf("%s",cbs);
					k=BnameFind(f3,cbs);
					if(k==0){
						printf("There is no book that you searched,please check the input\n");
						break;
					}
					for(i=k;i;i=df.BookDbase[i].prenext)
							ShowRec(df,i);
						break;
			case 5:return;
			}
		}	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -