printdata.c

来自「学生信息查询系统C语言实现 包含的功能有: 1、 系统功能选择菜单:提供了5」· C语言 代码 · 共 58 行

C
58
字号
/*数据显示 */ 
/*该函数并未对结构体进行实际的排序,只是对它们的下标排序,然后再输出结果*/
void printdata()
{
 int t;                /*累加变量*/
 int i,j;              /*循环变量*/
 int temp;             /*交换时数据的暂存变量*/
 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(strcmp(student[flag[i]].Class,student[flag[j]].Class)<0)     /*不在同一个班级*/
	 {                           
	  temp=flag[j];                      /*交换记录*/
	  flag[j]=flag[i];
	  flag[i]=temp;
	 }

 /*按平均分降序排序*/
 for(i=0;i<k;i++)
     for(j=0;j<k;j++)
        if(student[flag[i]].Average>student[flag[j]].Average&&strcmp(student[flag[i]].Class,student[flag[j]].Class)==0) /*在同一个班级且平均分不一样*/
	  {
	   temp=flag[j];                     /*交换记录*/
	   flag[j]=flag[i];
	   flag[i]=temp;
	  }

  /*输出数据*/
 for(i=0;i<=k-1;i++)
    {
     clrscr();

     for(i=3;i<75;i++)
        {
	 gotoxy(i,2);
	 printf("%c",196);
	 gotoxy(i,23);
	 printf("%c",196);
        }

     gotoxy(5,1);
     printf("No      Name       Class     Maths    English   Computer    Average\n");

     for(i=0;i<k;i++)
        {
	 gotoxy(5,3+i);
         printf("%d   %s",student[flag[i]].No,student[flag[i]].Name);
         for(t=strlen(student[flag[i]].Name)+1;t<16;t++)
            printf(" ");
	 printf("%s     %.2f     %.2f     %.2f     %f\n",student[flag[i]].Class,student[flag[i]].Maths,student[flag[i]].English,student[flag[i]].Computer,student[flag[i]].Average);
        }
   }
}

⌨️ 快捷键说明

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