回 帖 发 新 帖 刷新版面

主题:课程设计 请高手帮帮忙

1 腰间建立考试成绩表及其名次,可以采用顺序存储结果,排序的方法不限.采用成绩降序

排列和名次升序派力,即从第一条记录开始,名次为1,依次处理后面的每个记录.若成绩相等.则其名次与前面的同学相同,否则,其名次为前面同学的名次+1

回复列表 (共2个回复)

沙发


typedef struct node
{int score;/*分数域*/
char name[M+1];/*姓名域*/
int place;/*名次域*/
}stdent;
/*参与源程序*/
/*排名次的算法的c语言描述形式为:*/
/*考试成绩排名源程序*/
   #incelude<stdlid.h>
   #incelude<stdio.h>
   #define N 30
   #define M 10/*同学姓名的最大长度*/
   typedef struct node
   {int score;/*分数域*/
    char name [M+1];/*姓名域*/
    int place;/**名次域/
}student /*结构命名*/
/*对有n个元素的数组R按域score进行排将序,然后根据分数进行排名,即给名次域place赋值,然后按名次1,2,3....排序打印输出*/
 void ranklist(student R[],int n)
 {int i,pp=1;
 p(R,n);/*对数组R按score域排将域序,可任意选用排序方法*/
 R[1].place=1;/*第一名*/
....
 }
px(student R[],int n)/*直接插入排序算法(降序);*/
   (/*对n个元素R[1],...R[n],用直接插入法排降序*/
  int i,j;
..... 
 }
 
writefile()/*将记录写入文件中*/
{char x[10],a; int sc; FILR*fp;
fo=fopen("j:\exppm3.txt","ab");
while(1)
{printf("请输入学生姓名和成绩");
  scanf(%s %d,x,&sc);
  fprintf();
  printf("是否继续输入?");
a=getchar();  a=getchar();
if(toupper(a)!='Y') break;
}
fclose(fp);
fp=fopen("j:\exppm3.txt"."r");
whole(!feof(fp))
  {printf("\n输出学生姓名和成绩");
   fscang(fp,"%s %d\n",x,&sc); frintf("\n%s %d",x,sc);
}
/*读取文件中的成绩信息,放到数组R中,n记录元素个数*/
fclosr(fp); getch();
}
 

creare(int *n,student R[])
   {FILE *fp; char ky[M+1], a; inr i,sc;
fp=fopen("j:\exppm3.txt","r");
 *n=0; i=0;
  if(!fp)
  {printf("\n数据文件无法打开?");
  printf("是否妖输入学生数据?");
  a=fetchar();
  if(toupper(a)=='Y')
    writefile();
   else return;
 }
  else
  {rewind(fp);
   while(!feof(fp))
    {i=i+1;
  fscanf(fp,"%s %d\n",ky,&sc);
   srtncpy((R[i].name),ky,10);
   R[i].secor=sc; R[i].name[11]='\0';
}
 *n=1;

  fclose(fp);
}
void main()
 {ine   i,n=0;  student R[N];
  create(&n,R)    /*读取成绩信息,放到数组R中*/

自己写左D 有省略号吾识点写  望高手帮帮忙

板凳

名称:粘与队列子系统
要求:存储结构(顺序)
      MAXSIZE  10
      元素为int型
      实现栈与队列的基本运算(进栈、出栈、进队、出队)
      显示菜单

我来回复

您尚未登录,请登录后再回复。点此登录或注册