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

📄 search.c

📁 学生信息查询系统C语言实现 包含的功能有: 1、 系统功能选择菜单:提供了5个功能 A、 按“班级+平均成绩”显示原始数据 B、 输入学号
💻 C
字号:
/*顺序查找*/
int seqsearch(int key)
{
 int index=0;

 while(index<k)
      {
       if(key==student[index].No)
          return index;
       index++;
      }

 return -1;
}

/*折半查找*/
int binarysearch(int key)
{
 int i,j;
 int temp;
 int left;
 int right;
 int middle;
 int flag[Maxsize];    /*存储欲排序结构体下标*/

 for(i=0;i<k;i++)      /*初始化数组*/
     flag[i]=i;

 /*按学号升序排序*/
 for(i=0;i<k;i++)
     for(j=0;j<k;j++)
        if(student[flag[i]].No<student[flag[j]].No)
	  {
	   temp=flag[j];                     /*交换记录*/
	   flag[j]=flag[i];
	   flag[i]=temp;
	  }

 left=0;
 right=k-1;

 while(left<=right)
      {
       middle=(left+right)/2;

       if(key<student[flag[middle]].No)
          right=middle-1;
       else
	   if(key>student[flag[middle]].No)
             left=middle+1;
       else
	   if(key==student[flag[middle]].No)
	     return flag[middle];
      }

 return -1;
}

/*=========================================================================*/
/*模糊查找                                                                 */
/*=========================================================================*/
void instring()
{
 char string[20];
 int x,y;
 int i;     /*循环变量*/
 int t;     /*子函数返回值暂存变量*/
 int f=0;   /*记录查找次数*/

 while(!f)
      {
       clrscr();
       gotoxy(30,8);
       printf("Illegibility Searching");

       for(i=5;i<75;i++)
          {
	   gotoxy(i,10);
           printf("%c",196);
          }

       gotoxy(8,12);
       printf("Please give one part of the student's name you want to seach:");

       gotoxy(8,14);
       printf("For example you can press one part of the name:");
       printf("%s",student[0].Name);

       gotoxy(8,16);
       printf("Press the string:");
       gotoxy(wherex()+1,wherey());
       scanf("%s",string);           /*输入所要查找的字符串*/

       clrscr();

       gotoxy(25,4);
       printf("Illegibility searching result");

       for(i=19;i<60;i++)
          {
	   gotoxy(i,5);
           printf("%c",003);
          }

       gotoxy(23,6);
       printf("No           Name           ");
       x=wherex();
       y=wherey();
       printf("Class\n");

       for(i=10;i<70;i++)
          {
	   gotoxy(i,7);
           printf("%c",196);
           gotoxy(i,23);
           printf("%c",196);
          }

      while(1)
           {
            for(i=0;i<k;i++)
               {
                t=inde(student[i].Name,string);

                if(t==1)           /*查找成功,输出数据*/
                  {
                   f++;
		   gotoxy(23,f+8);
		   printf("%d        %s",student[i].No,student[i].Name);
                   gotoxy(x,y+f+2);
                   printf("%s",student[i].Class);
                  }
                }
             getch();
             break;
            }

      if(f==0)
        {
	 gotoxy(20,15);
         printf("Searching failure!");   /*查找失败*/
         getch();
         continue;
        }
    }
}

⌨️ 快捷键说明

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