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

📄 search.cpp

📁 学生管理系统是本人用c语言写的一个DOC界面的简单学生管理系统
💻 CPP
字号:
//查找学生档案

#include"head.h"

void search(struct student *p)
{
	char name[10]={'a'};
	int i=0 ;
    int nchoice=10;
	do
	{  
		system("cls");
		printmenu();
		fflush(stdin);
		printf("请选择查询方式:\n");
		scanf("%d",&nchoice);
		switch(nchoice)
		{
		case 1:
			i=search_number(p);            //按学号查询
			getch();
			break ;
		case 2:
		    i=search_name(p);              //按姓名查询
			getch(); 
			break ;
		case 3:
			search_mm(p);                  //模糊查询
			getch(); 
			break ;
		case 4: 
		    search_average(p);             //查询平均分不及格的学员
			getch(); 
			break;
		case 0: 
			break;
		default:
			printf("输入错误,请从新输入!\n");
			getch(); 
		}
	}while(nchoice!=0);

	

}
//查询的主菜单
void printmenu()
	{
	 printf("\n\n\n\n\t\t\t        查询子页面\n\n");
	 printf("\t\t   ≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌\n\n");
     printf("\t\t\t    1.按学号查询\n\n");
     printf("\t\t\t    2.按姓名查询\n\n");
	 printf("\t\t\t    3.模糊查询\n\n");
	 printf("\t\t\t    4.查询平均分不及格的学员\n\n");
	 printf("\t\t\t    0.返回\n\n");
     printf("\t\t   ≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌≌\n\n");
	 printf("\t\t\t   请选择(0 ~ 4)\n");
	}


//查找函数
int search_m(char st1[], char st2[])
{
     int i=0, j=0, k=0, m=0;
	 for(i=0;i < strlen(st1);i++)
	 {
		  for(j=k;j<strlen(st2);j++)
			  {
				if(st1[i] != st2[j])
					{  
					   break;
					}
				else
					{   
					    k=j+1;
		            	m++;
						break;
					}
			  }
  
	 }
  if (m ==(int)strlen(st2))
	  return 1;
  else
       return 0;  //不包含
}


//模糊查询
void search_mm( struct student * q)

{
	char name[10]={' '};
	int n=0;        //记录是否找到
	printf("请输要查找的学生姓名或学号:\n");
	getchar();
	gets(name);
	struct student * head=q ;
    while (head !=NULL)
	{     
			if((search_m((*head).name,name)==1)||(search_m((*head).Stnumber,name)==1))
			{
			 n=n+1;
			 printf("姓名    学号      数学成绩      语文成绩      英语成绩      平均成绩\n");
			 printf("%s\t",(*head).name);
			 printf("%s         "  ,(*head).Stnumber);
			 for(int j=0;j<3;j++)
			 {
			   printf("%-3.1f           ",(*head).grade[j]);
			 }
			 printf("%-3.1f\n",(*head).average);
			}
    head=(*head).next;
			
	}
   if(n==0)
	printf("没有该学生!\n");

}

//按姓名查询
int search_name( struct student * q)
{
    char name[10]={' '};
	int n=0;        //记录是否找到
	printf("请输要查找的学生姓名:\n");
	getchar();
	gets(name);
	struct student * head=q ;
    while (head !=NULL)
	{     
			if(strcmp(head->name,name)==0)
			{
			 n=n+1;
			 printf("姓名      学号       数学成绩       语文成绩      英语成绩      平均成绩\n");
			 printf("%s\t",(*head).name);
			 printf("%s         "  ,(*head).Stnumber);
			 for(int j=0;j<3;j++)
			 {
			   printf("%-3.1f           ",(*head).grade[j]);
			 }
			 printf("%-3.1f\n",(*head).average);
			}
    head=(*head).next;
			
	}
   if(n==0)
   {
	   printf("没有该学生!\n");
	   getch();
       return 0;
   }
   else 
	   return n;
}

//按学号查询
int search_number( struct student * q)
{
 
    char number[10]={' '};
	int n=0;        //记录是否找到
	printf("请输要查找的学生学号:\n");
	getchar();
	gets(number);
	struct student * head=q ;
    while (head !=NULL)
	{     
			if(strcmp(head->Stnumber,number)==0)
			{
			 n=n+1;
			 printf("姓名     学号     数学成绩     语文成绩     英语成绩     平均成绩\n");
			 printf("%s\t",(*head).name);
			 printf("%s         "  ,(*head).Stnumber);
			 for(int j=0;j<3;j++)
			 {
			   printf("%-3.1f          ",(*head).grade[j]);
			 }
			 printf("%-3.1f\n",(*head).average);
			}
    head=(*head).next;
			
	}
    if(n==0)
   {
	   printf("没有该学生!\n");
	   getch();
       return 0;
   }
   else 
	   return 1;
}

//查询平均分不及格的学员
void search_average(struct student * q)
{
	int i=0, n=0;
    struct student *head=q;
    while(head!=NULL)
	 {
		  if(head->average<60)
			  {
			    n=n+1;
				 printf("姓名      学号       数学成绩       语文成绩       英语成绩       平均成绩\n");
				 printf("%s\t",head->name);
				printf("%s           "  ,head->Stnumber);
				for(i=0;i<3;i++)
					{
				  printf("%-3.1f           ",head->grade[i]);
					}
 				  printf("%-3.1f\n",head->average);
				 
			  }
		  head=head->next;
	 }
	if(n==0)
		{
		printf("没有平均分不及格的学员!\n");
	    getch();
	   }
}

⌨️ 快捷键说明

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