现在的位置: 首页 > 综合 > 正文

【c语言】简单学生信息管理系统

2014年08月29日 ⁄ 综合 ⁄ 共 1646字 ⁄ 字号 评论关闭

1.有10个学生,每个学生的数据包括学好、姓名、4门课的成绩、总成绩和平均成绩。从键盘输入10个学生的数据(包括学好、姓名以及4门课的成绩),要求打印出每位学生的学号、姓名、4门课的成绩、总成绩和平均成绩,最后打印出来最高分的学生的数据(包括学号、姓名、4门课的成绩、总成绩和平均成绩)以及4门课的总平均成绩。具体要求:
(1)根据学生信息定义一个结构体类型,再定义一个该结构体类型的数组。
(2)定义一个input函数用于从键盘上输入10个学生的数据
(3)定义一个average函数用于求每个学生总成绩、平均成绩和所有学生的总平均成绩。
(4)定义一个maximum函数用于找出最高分的学生的数据。

(5)在主函数中输出每位学生的学号、姓名。4门课的成绩、总成绩和平均成绩,最后再输出最高分的学生的数据和总平均成绩。

个人认为写的比较好的程序:

#include <stdio.h>

struct student
{
	char name[10];
	int score[4];
	int total;
	float average;
};
//定义全局变量
struct student stus[5];
float a = 0;

void input();
void output();
float average(int );
void maximum();

int main(void)
{
	input();
	output();

//	system("PAUSE");

	return 0;
}


void input()
{
	printf("please input\nNO.\tname\tscore1\tscore2\tscore3\tscore4\n");
	for(int i=0; i<5; i++)
	{
		printf("%d\t", 101+i);
		scanf("%s\t%d\t%d\t%d\t%d", &stus[i].name, &stus[i].score[0], &stus[i].score[1], &stus[i].score[2],
			&stus[i].score[3]);
		stus[i].total = stus[i].score[0] + stus[i].score[1] + stus[i].score[2] + stus[i].score[3];
		stus[i].average = average(i);
//		printf("%f", stus[i].average);
		a += stus[i].average;
	}
	a /= 5;
}
float average(int i)
{
	return ((float)stus[i].total/4);
}
void output()
{
	printf("\n\nNO.\tname\tscore1\tscore2\tscore3\tscore4\ttotal\taverage\n");
	for(int i=0; i<5; i++)
	{
		printf("%d\t%s\t%d\t%d\t%d\t%d\t%d\t%6.2f\n", 101+i, stus[i].name, stus[i].score[0], 
			stus[i].score[1], stus[i].score[2], stus[i].score[3], stus[i].total, stus[i].average);
	}
	printf("The highest score:\n");
	maximum();
	printf("\nThe total average is : %6.2f\n", a);
}
void maximum()
{
	int k=0;
	for(int i=1; i<5; i++)
	{
		if(stus[k].average < stus[i].average)
			k = i;
	}
	printf("%d\t%s\t%d\t%d\t%d\t%d\t%d\t%6.2f", 101+k, stus[k].name, stus[k].score[0], stus[k].score[1], stus[k].score[2], stus[k].score[3],
			stus[k].total, stus[k].average);
}

抱歉!评论已关闭.