设计目的:通过课程设计使学生全面掌握C语言的语法及编程技巧
程序功能:1。完成班级学生信息的录入,学生信息包括:学号,姓名。四门课成绩。
2。求出每名学生总分
3。对学生成绩按总分进行排序
4。输出本班成绩表
我急求答案 谢谢各位了
[CODE]/*
*学生成绩管理
*/
#include <stdio.h>
#include <stdlib.h>
#define SIZE_NAME 10 /*中国人的名字应该不会超过5个字吧 ?不够再加*/
#define SIZE_CLASS 4
#define SIZE_STD 100 /*一个班不会超过100人吧?*/
struct data
{
long int id;
char name[SIZE_NAME];
int scor[SIZE_CLASS];
int totall;
};
typedef struct data Student;
Student student[SIZE_STD];
void scandata (int);
void compare (int);
void printdata (int);
int main()
{
int std_num; /*学生人数*/
scanf ("%d", &std_num);
scandata (std_num);
compare (std_num);
printdata (std_num);
return 0;
}
/*define scandata**********************************************************/
void scandata (int num)
{
int i, j;
for (i = 0; i <= num - 1; i++)
{
scanf ("%ld", &student[i].id);
scanf ("%s", student[i].name);
for (j = 0; j <= SIZE_CLASS - 1; j++)
{
scanf ("%d", &student[i].scor[j]);
student[i].totall += student[i].scor[j]; /*计算总成绩*/
}
}
return ;
}
/*define compare**********************************************************/
void compare (int num)
{
int i, j, hold;
for (i = 0; i <= num - 1; i++)
{
for (j = 0; j <= num - 2; j++)
{
if (student[j].totall > student[j + 1].totall)
{
hold = student[j + 1].totall;
student[j + 1].totall = student[j].totall;
student[j].totall = hold;
}
}
}
return ;
}
/*define printdata**********************************************************/
void printdata (int num)
{
int i;
for (i = num - 1; i >= 0; i--)
{
printf ("%ld ", student[i].id);
printf ("%s ", student[i].name);
printf ("%d\n", student[i].totall);
}
return ;
}[/CODE]
[此贴子已经被作者于2007-1-8 19:12:14编辑过]