主题:课程设计 请高手帮帮忙
unkindc
[专家分:0] 发布于 2007-07-02 20:44:00
1 腰间建立考试成绩表及其名次,可以采用顺序存储结果,排序的方法不限.采用成绩降序
排列和名次升序派力,即从第一条记录开始,名次为1,依次处理后面的每个记录.若成绩相等.则其名次与前面的同学相同,否则,其名次为前面同学的名次+1
回复列表 (共2个回复)
沙发
unkindc [专家分:0] 发布于 2007-07-02 20:47:00
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 有省略号吾识点写 望高手帮帮忙
板凳
zhaofengrui [专家分:0] 发布于 2007-10-12 12:34:00
名称:粘与队列子系统
要求:存储结构(顺序)
MAXSIZE 10
元素为int型
实现栈与队列的基本运算(进栈、出栈、进队、出队)
显示菜单
我来回复