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

📄 sort.c

📁 学生信息管理系统
💻 C
字号:
#include<stdio.h>
#define size 20
struct student
{int num;
char name[10];
int a[6];
float ave;
}stu[size],b;
void sort(int flag) /*从主函数传入行参值*/
{int i,j,k,g,c,d,e,f;
FILE *fp1,*fp2;
k=1;
stu[i].ave=1.0;
 fp1=fopen("student.txt","r");
 for(i=0;i<size;i++)
{fread(&stu[i],sizeof(struct student),1,fp1);}/*读入student.txt*/
 if(flag==1)
 {loop1:printf("\n\n\n\n\n\n\n\n");
 printf("-------------------------------------------------------------------------------\n");
printf("*******************************************************************************\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                           1---------UP                                      *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                           2---------DOWM                                    *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*******************************************************************************\n");
printf("-------------------------------------------------------------------------------\n");
 printf("input your choice:");
 scanf("%d",&g);
 clrscr();
if(g==1)
{for(i=0;i<size;i++)
 for(j=i+1;j<size;j++)
 if(stu[i].num>stu[j].num)
 {b=stu[i];
  stu[i]=stu[j];
  stu[j]=b;}} /*按学号升序排列*/
else if(g==2)
{for(i=0;i<size;i++)
 for(j=i+1;j<size;j++)
  if(stu[i].num<stu[j].num)
 {b=stu[i];
  stu[i]=stu[j];
  stu[j]=b;} }/*按学号降序排列*/
  else
  {printf("ERROR,Please input again:");
 goto loop1;}
  fclose(fp1);
 }
 if(flag==2)
{loop2:printf("\n\n\n\n\n\n\n\n");
 printf("-------------------------------------------------------------------------------\n");
printf("*******************************************************************************\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                           1---------UP                                      *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                           2---------DOWM                                    *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*******************************************************************************\n");
printf("-------------------------------------------------------------------------------\n");
 printf("input your choice:");
 scanf("%d",&c);
 clrscr();
if(c==1)
{for(i=0;i<size;i++)
 for(j=i+1;j<size;j++)
  if(stu[i].a[0]>stu[j].a[0])
 {b=stu[i];
  stu[i]=stu[j];
  stu[j]=b;}} /*按英语成绩升序排列*/
else if(c==2)
{for(i=0;i<size;i++)
 for(j=i+1;j<size;j++)
  if(stu[i].a[0]<stu[j].a[0])
  {b=stu[i];
  stu[i]=stu[j];
  stu[j]=b;} } /*按英语成绩降序排列*/
  else
  {printf("ERROR,Please input again:");
 goto loop2;}
  fclose(fp1);
 }
 if(flag==3)
{loop3:printf("\n\n\n\n\n\n\n\n");
 printf("-------------------------------------------------------------------------------\n");
printf("*******************************************************************************\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                           1---------UP                                      *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                           2---------DOWM                                    *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*******************************************************************************\n");
printf("-------------------------------------------------------------------------------\n");
printf("input your choice:");
scanf("%d",&d);
clrscr();
if(d==1)
{for(i=0;i<size;i++)
 for(j=i+1;j<size;j++)
 if(stu[i].a[2]>stu[j].a[2])
 {b=stu[i];
  stu[i]=stu[j];
  stu[j]=b;}} /*按物理成绩升序排列*/
else if(d==2)
{for(i=0;i<size;i++)
 for(j=i+1;j<size;j++)
 if(stu[i].a[2]<stu[j].a[2])
 {b=stu[i];
  stu[i]=stu[j];
  stu[j]=b;}}  /*按物理成绩降序排列*/
 else
  {printf("ERROR,Please input again:");
 goto loop3;}
 fclose(fp1);
 }
if(flag==4)
{loop4:printf("\n\n\n\n\n\n\n\n");
 printf("-------------------------------------------------------------------------------\n");
printf("*******************************************************************************\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                           1---------UP                                      *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                           2---------DOWM                                    *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*******************************************************************************\n");
printf("-------------------------------------------------------------------------------\n");
 printf("input your choice:");
 scanf("%d",&e);
 clrscr();
if(e==1)
{
for(i=0;i<size;i++)
 for(j=i+1;j<size;j++)
  if(stu[i].a[4]>stu[j].a[4])
 {b=stu[i];
  stu[i]=stu[j];
  stu[j]=b;}} /*按数学成绩升序排列*/
 else if(e==2)
{for(i=0;i<size;i++)
 for(j=i+1;j<size;j++)
  if(stu[i].a[4]<stu[j].a[4])
 {b=stu[i];
  stu[i]=stu[j];
  stu[j]=b;}}  /*按数学成绩降序排列*/
 else
  {printf("ERROR,Please input again:");
 goto loop4;}
  fclose(fp1);
 }
if(flag==5)
{loop5:printf("\n\n\n\n\n\n\n\n");
 printf("-------------------------------------------------------------------------------\n");
printf("*******************************************************************************\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                           1---------UP                                      *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                           2---------DOWM                                    *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*                                                                             *\n");
printf("*******************************************************************************\n");
printf("-------------------------------------------------------------------------------\n");
scanf("%d",&f);
clrscr();
if(f==1)
{for(i=0;i<size;i++)
 for(j=i+1;j<size;j++)
  if(stu[i].ave>stu[j].ave)
 {b=stu[i];
  stu[i]=stu[j];
  stu[j]=b;}} /*按平均分升序排列*/
else if(f==2)
  {for(i=0;i<size;i++)
 for(j=i+1;j<size;j++)
  if(stu[i].ave<stu[j].ave)
 {b=stu[i];
  stu[i]=stu[j];
  stu[j]=b;}} /*按平均分降序排列*/
else
  {printf("ERROR,Please input again:");
 goto loop5;}
  fclose(fp1);
 }
   fp2=fopen("score.txt","w");/*把排好序的学生信息写入score.txt*/
 for(i=0;i<size;i++)
 {fwrite(&stu[i],sizeof(struct student),1,fp2);}
 fclose(fp2);
if((fp2=fopen("score.txt","r"))==NULL)
 {printf("cannot open file\n");
 return;
 }
for(i=0;i<size;i++)
  fread(&stu[i],sizeof(struct student),1,fp2);
  printf("\n\n\n\n\n\n");
  printf("Students message:\n");
  printf("-----------------------------------------------------------------------------\n");
printf("Place  NUM  NAME    Eng  score-Eng  Phy  score-Phy  Mat  score-Mat  Ave\n");
for(i=0;i<size;i++)
  {printf("  %-5d%3d  %-8s%-9d%-7d%-10d%-6d%-10d%-5d%6.2f\n",k++,stu[i].num,stu[i].name,stu[i].a[0],
  stu[i].a[1],stu[i].a[2],stu[i].a[3],stu[i].a[4],stu[i].a[5],stu[i].ave); }
printf("-------------------------------------------------------------------------------\n");
/*输出排好序的学生的信息*/
fclose(fp1);
printf("1-------------Exit                   2----------------Back\n");
}







⌨️ 快捷键说明

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