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

📄 student.cpp

📁 学生管理系统,包含结构体.计算了学生的成绩,比例和改变数据后的结果
💻 CPP
字号:
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#include"conio.h"
  struct stud
  {
    char name[20];
	char sex[20];
    int a[7];
	
  };

  struct stud sr[100];
   int i,j,tmp;
   int length=0;
   int boy=0;
   int sum=0;
   int girl=0;
   char nv[20]="女",nan[20]="男";
   char cl;
   void hunyin()
{

  printf("学生成绩管理系统\n");
  printf("请选择: 1,输入,2,输出,3,排序,4,编辑修改,5,查询,6,删除.7,统计,8,退出\n");
	
}
void shuru()
{ 
     do
	{	
		   printf("请输入第%d位同学的姓名:\n",i+1);
		   scanf("%s",sr[i].name);
		   getchar();
           printf("请输入第%d位同学的性别,年龄,学号,C成绩,S成绩,H成绩:\n",i+1);
		   scanf("%s%d%d%d%d%d",sr[i].sex,&sr[i].a[0],&sr[i].a[1],&sr[i].a[2],&sr[i].a[3],&sr[i].a[4]);
	   
		sr[i].a[5]=sr[i].a[2]+sr[i].a[3]+sr[i].a[4];
		sr[i].a[6]=(sr[i].a[5])/3;
		i++;
		length++;
		printf("是否继续输入?y/n\n");
		getchar();
	}
	while(getchar()!='n');
       
}

void shuchu()
{
	printf("\t\t学生成绩表\n");
	printf("姓名\t性别\t年龄\t学号\tC成绩\tHTMl\tSQL\t总分\t平均分\t\n");
	for(i=0;i<length;i++)
	{
		printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n",sr[i].name,sr[i].sex,sr[i].a[0],sr[i].a[1],sr[i].a[2],sr[i].a[3],sr[i].a[4],sr[i].a[5],sr[i].a[6]);
		
	}
	 

}
void xm()
{
	struct stud tmp;
	for(int i=0;i<length-1;i++)
		 for(j=i+1;j<length;j++)
			if(strcmp(sr[i].name,sr[j].name)==-1)
          {   
			   tmp=sr[i];
			   sr[i]=sr[j];
			   sr[j]=tmp;
          }

}
void xuehao()
{
	struct stud tmp;
	for(int i=0;i<length-1;i++)
		 for(j=i+1;j<length;j++)
			 if(sr[i].a[1]>sr[j].a[1])

		  {   
			   tmp=sr[i];
			   sr[i]=sr[j];
			   sr[j]=tmp;
          }

}



void nl()
{
	struct stud tmp;
	for(int i=0;i<length-1;i++)
		 for(j=i+1;j<length;j++)
           if(sr[i].a[0]<sr[j].a[0])
		   {
               tmp=sr[i];
			   sr[i]=sr[j];
			   sr[j]=tmp;
           }

}
void ccj()
{
   struct stud tmp;
  for(int i=0;i<length-1;i++)
		 for(j=i+1;j<length;j++)
           if(sr[i].a[2]<sr[j].a[2])
		   {
               tmp=sr[i];
			   sr[i]=sr[j];
			   sr[j]=tmp;
		   }
}
void scj()
{
   struct stud tmp;
  for(int i=0;i<length-1;i++)
		 for(j=i+1;j<length;j++)
           if(sr[i].a[3]<sr[j].a[3])
		   {
			   tmp=sr[i];
			   sr[i]=sr[j];
			   sr[j]=tmp;
            }
}
void hcj()
{
   struct stud tmp;
  for(int i=0;i<length-1;i++)
		 for(j=i+1;j<length;j++)
           if(sr[i].a[4]<sr[j].a[4])
		   {
			   tmp=sr[i];
			   sr[i]=sr[j];
			   sr[j]=tmp;
		   }
}
void pjun()
{
	struct stud tmp;
    for(int i=0;i<length-1;i++)
		 for(j=i+1;j<length;j++)
           if(sr[i].a[6]<sr[j].a[6])
		   {
			   tmp=sr[i];
			   sr[i]=sr[j];
			   sr[j]=tmp;
		   }
	    
}



void paishuchu()
{
	char c;
	printf("欢迎来到排序模块\n");
	printf("请选择排序方式:1.按姓名排序,2.按学号排序,3.按年龄排序,4.按c成绩排序,5.按s成绩排序,6.按h成绩排序,7.按平均分排序,8,回上级菜单\n");
    scanf("%c",&c);
	while(c!='8')
	  {
		   c=getchar();
        switch(c)
		{
		case '1':system("cls");
			    printf("按姓名排序是:\n");
		        xm();
				shuchu();
				printf("按任意键返回排序模块\n");
		         getch();
		        system("cls");
				paishuchu();
				break;
		   
		case '2': printf("按学号排序是:\n");
		         xuehao();
				 shuchu();
				 printf("任意键返回排序模块\n");
		         getch();
		         system("cls");
				 paishuchu();
				 break;
		case '3': printf("按年龄排序是:\n");
		          nl();
				  shuchu();
				 printf("任意键返回排序模块\n");
		         getch();
		         system("cls");
				 paishuchu();
				 break;
		case '4': printf("按c成绩排序是:\n");
		          ccj();
				  shuchu();
				  printf("任意键返回排序模块\n");
		         getch();
		         system("cls");
				  paishuchu();
				 break;
		case '5': printf("按s成绩排序是:\n");
		         scj();
				 shuchu();
				 printf("按任意键返回排序模块\n");
		         getch();
		        system("cls");
				paishuchu();
				break;
		
		case '6': printf("按h成绩排序是:\n");
		         hcj();
				 shuchu();
				 printf("按任意键返回排序模块\n");
		         getch();
		        system("cls");
				paishuchu();
				break;
		case '7': printf("按平均分排序是:\n");
		         pjun();
				 shuchu();
				 printf("按任意键返回排序模块\n");
		         getch();
		        system("cls");
				paishuchu();
				break;
		case '8': system("cls");
			      hunyin();
				  break;
	  }
	     
     }
		
	printf("\n");

}


void chaozhao()
{
   int no;
   printf("输入要查找的学生的学号:\n");
   scanf("%d",&no);
   for(int i=0;i<length;i++)
   {
   if(no==sr[i].a[1])
   {
	    printf("\t\t学生成绩表\n");
	    printf("姓名\t性别\t年龄\t学号\tC成绩\tH成绩\tS成绩\t总分\t平均分\t\n");
		printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n",sr[i].name,sr[i].sex,sr[i].a[0],sr[i].a[1],sr[i].a[2],sr[i].a[3],sr[i].a[4],sr[i].a[5],sr[i].a[6]);
		   break;
   }
   if(i==(length-1))
   {
	   printf("错误,按任意键返回\n");
	   getch();
	   return;
   }
   }
        
}

void xiougai()
{
   int no,tp;
   char cll;
   printf("请输入你要编辑修改的学生的学号:\n");
   scanf("%d",&no);
   for(int i=0;i<length;i++)
   {
   if(no==sr[i].a[1])
   {
	    printf("\t\t学生成绩表\n");
	    printf("姓名\t性别\t年龄\t学号\tC成绩\tH成绩\tS成绩\t总分\t平均分\t\n");
		printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n",sr[i].name,sr[i].sex,sr[i].a[0],sr[i].a[1],sr[i].a[2],sr[i].a[3],sr[i].a[4],sr[i].a[5],sr[i].a[6]);
		tp=sr[i].a[6];
		printf("请选择你要修改的部分:\n");
        printf("1.姓名.2.性别.3.年龄.4.学号.5.c成绩.6.h成绩.7.S成绩\n");
        getchar();
        cll=getchar();
		switch(cll)
		{
		case'1':printf("姓名修改成:");
			scanf("%s",sr[i].name);break;
        case'2':printf("性别修改成:");
			scanf("%s",sr[i].sex);break;
			if(strcmp(sr[i].sex,nv)==0)
			      girl++;
		    else if(strcmp(sr[i].sex,nan)==0)
                  boy++;
        case'3':printf("年龄修改成:");
			scanf("%d",&sr[i].a[0]);break;
			
        case'4':printf("学号修改成:");
			scanf("%d",&sr[i].a[1]);break;
		case'5':printf("C成绩修改成:");
			scanf("%d",&sr[i].a[2]);break;
		case'6':printf("H成绩修改成:");
			scanf("%d",&sr[i].a[3]);break;
		case'7':printf("S成绩修改成:");
			scanf("%d",&sr[i].a[4]);break;
		}
		  sr[i].a[5]=sr[i].a[2]+sr[i].a[3]+sr[i].a[4];
		  sr[i].a[6]=(sr[i].a[5])/3;
  }
   if(i==-1)
   {
	   printf("没找着,按任意键返回\n");
	   getch();
	   return;
   }

   }
      shuchu();
	  printf("\n修改成功!");
	  getchar();

}
void shanchu()
{
    int no,i;
	printf("输入要删除学生的学号:");
	scanf("%d",&no);
	for(i=0;i<length;i++)
	if(no==sr[i].a[1])
	{	
	 printf("删除:\n");
	 printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n",sr[i].name,sr[i].sex,sr[i].a[0],sr[i].a[1],sr[i].a[2],sr[i].a[3],sr[i].a[4],sr[i].a[5],sr[i].a[6]);
	   if(strcmp(sr[i].sex,nv)==0)
			girl--;
	   else if(strcmp(sr[i].sex,nan)==0)
            boy--;
	                     
	    for(int j=i;j<length-1;j++)
		  sr[j]=sr[j+1];
	      length--;
	    
	 printf("删除成功\n");
	 getch();
	   break;
	}

	shuchu();
    
}
void tongji()
{
	for(int i=0;i<length;i++)
		if(strcmp(sr[i].sex,nan)==0)
			boy++;
	printf("本班有%d个学生,其中男生%d个,女生%d个。\n",length,boy,length-boy);
}


void main()
{
	
	
	hunyin();
     
	while(cl!='8')
	{
		cl=getchar();
	switch(cl)
	{ 
	  case'1':
		  system("cls");
		  shuru();
		  printf("按任意键返回主界面\n");
		  getch();
		  system("cls");
		  hunyin();
		  break;
	  case'2':
		  system("cls");
		  shuchu();
		  printf("按任意键返回主界面\n");
		  getch();
		  system("cls");
		  hunyin();
		  break;
	  case'3':system("cls");
		      paishuchu();
		      break;
	  case'4':
		  system("cls");
		  xiougai();
		  printf("按任意键返回主界面\n");
		  getch();
		  system("cls");
		  hunyin();
		  break;
	  case'5':
		  system("cls");
		  chaozhao();
		  printf("按任意键返回主界面\n");
		  getch();
		  system("cls");
		  hunyin();
		  break;
	  case'6':
		  system("cls");
		  shanchu();
		  printf("按任意键返回主界面\n");
		  getch();
		  system("cls");
		  hunyin();
		  break;
	  case'7':
		  system("cls");
		  tongji();
		  printf("按任意键返回主界面\n");
		  getch();
		  system("cls");
		  hunyin();
		  break;
	  case'8':
		  hunyin();
		  break;

	  
	}
	}
    
}




⌨️ 快捷键说明

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