中日签订的不平等条约:求一道C语言编程题!!!

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/26 04:28:18
学生成绩管理系统
有5个学生,每个学生有2门课成绩,从键盘上输入以上数据(学生信息包括学号、姓名,以及2门课成绩),计算出每个学生的总成绩,并将学生数据(包括学生2门课的总成绩)按总分由高到低排序后保存到磁盘文件sort.txt中。
以上为题目,请哪位高手告知答案,
要求能在TurboC编译成功就行!
谢谢啦~~
一楼的答案我在Turboc上编译不成功啊,还有哪位高人帮忙解答一下,多谢了~~

非常相似,自己改去
此程序是从文件输入
格式为:
data.txt文件内容:
990101 89 69 85 84 76
990102 78 54 73 81 65
990103 57 55 78 87 76
990104 70 68 74 76 74
990105 79 63 62 51 67
990106 67 79 96 65 81
990107 84 63 59 60 55
990108 71 55 81 89 80
990109 92 92 52 53 52
990110 61 74 74 65 85
990111 65 51 79 71 57
990112 95 88 63 64 78

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define DATA_N 5
#define N 10

struct student
{
char num[6];
int score[5];
int sum;
}stu[N];

void save();

main()
{
struct student stu1;
int i;
int j;
char str[29];
char strscore[5];
char *p1,*p2;
FILE *fp;

if((fp=fopen("Data.txt","rb"))==0)
{
printf("cannot open file\n");
exit(-1);
}

for(j=0;j<N;j++)
{
fgets(str,28,fp);
p1=str;
p2=stu[j].num;

while( (*p1)!=' ')
{
*p2++ = *p1;
p1++;
}
*p2 = '\0';

stu[j].sum=0;

for(i=0;i<DATA_N;i++)
{
p2=strscore;
p1++;
while( (*p1)!=' ' && (*p1)!='\n' )
{
*p2++ = *p1;
p1++;
}
*p2 = '\0';
stu[j].score[i]=atoi(strscore);
stu[j].sum += stu[j].score[i];
}
}

for(i=0;i<=N-1;i++)
{
for(j=i+1;j<=N;j++)
if(stu[j].sum>stu[i].sum)
{
memcpy(&stu1,&stu[i],sizeof(student));
memcpy(&stu[i],&stu[j],sizeof(student));
memcpy(&stu[j],&stu1,sizeof(student));
}
}
printf("pai xu wei :\n");
for(i=0;i<N;i++)
printf("%s,%d\n",stu[i].num,stu[i].sum);
save();
return 0;
}

void save()
{
FILE *fp;
int i;
if((fp=fopen("result.txt","w"))==NULL)
{
printf("cannot open file\n");
exit(-1);
}
for(i=0;i<N;i++)
{
fprintf(fp,"%s %d %d %d %d %d %d\n",
stu[i].num,stu[i].score[0], stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score[4],stu[i].sum);
}
fclose(fp);
}