【C语言】学生成绩系统的代码实现

这是最近的某道作业题,分享一下

可能有点堆屎山,目前的试验没有发现bug(如有发现可以跟我反馈下),那么开始吧:

 

需要的头文件

#include<stdio.h>

成绩评定中,平均成绩有期末成绩占70%,平时成绩占30%,所以我们先输入期末成绩和平时成绩,在这里我选用了总共五门课程(所有科目满分都是100)

*在开始之前,这里放个 again: 后面说是什么时候用

again:
	int arr1[5] = { 0 };
	int arr2[5] = { 0 };
	int i,j;
	printf("请依次输入 信号与系统 高等数学 电路分析 概率论 大学英语 五科期末成绩:");
	scanf("%d %d %d %d %d", &arr1[0], &arr1[1], &arr1[2], &arr1[3], &arr1[4]);
	printf("请依次输入 信号与系统 高等数学 电路分析 概率论 大学英语 五科平时成绩:");
	scanf("%d %d %d %d %d", &arr2[0], &arr2[1], &arr2[2], &arr2[3], &arr2[4]);

//这里使用数组是为了后面评定奖学金资格需要

接下来我们计算下平均成绩

float q = (arr1[0] + arr1[1] + arr1[2] + arr1[3] + arr1[4]) * 0.7;
float p = (arr2[0] + arr2[1] + arr2[2] + arr2[3] + arr2[4]) * 0.3;
float x_ = (q + p) / 5;
printf("您五科期末成绩的平均分为:%.2f\n", x_);

下一个目标是成绩评级:

当平均成绩大于90时,评级为A

当平均成绩在60~90之间时,评级为B

当平均成绩小于60时,评级为C

因为后面评定奖学金资格时还需要用到评级,为了方便,这里创建一个函数

int rating(int x_)
{
	if (x_ >= 90 && x_ <= 100)
		return 4;
	else if (x_ >= 60 && x_ <= 89)
		return 3;
	else if (x_ >= 0 && x_ <= 59)
		return 2;
	else
		return 1;

}

运用此函数进行评级

switch (rating(x_))
{
case 4:
{
	printf("等级:A\n");
	break;
}
case 3:
{
	printf("等级:B\n");
	break;
}
case 2:
{
	printf("等级:C\n");
	break;
}
case 1:
{
	printf("平均值发生错误!您疑似成绩造假,请重新输入!\n");
	goto again;
	break;
}
}

*这里的goto则连接到上面所说的again那里

最后则是进行竞选奖学金资格的评定,将会用到上面的数组和函数rating的结果

判定条件为:

当有三科及以上的成绩分数不小于95分,并且评级为A时,可以评定特等奖学金

当有三科及以上的成绩分数不小于85分,并且评级为A时,可以评定一等奖学金

当有两科及以上的成绩分数不小于85分,并且评级为B时,可以评定二等奖学金

当有两科及以上的成绩分数不小于80分,并且评级为B时,可以评定三等奖学金

在这里我创建了个函数来判定期末成绩部分的要求:

int bur(int *arr)
{
	int a = 0, b = 0, c = 0, j;
	for (j = 5; j > 0; j--)
	{
		if (*arr >= 95)
		{
			a++;
		}
		else if (*arr >= 85 && *arr < 95)
		{
			b++;
		}
		else if (*arr >= 80 && *arr < 85)
		{
			c++;
		}
		arr++;
	}
	if (a >= 3)
		return 4;
	else if (a + b >= 3)
		return 3;
	else if (a + b == 2)
		return 2;
	else if (a + b + c >= 2 && a + b < 2)
		return 1;
	else
		return 0;

}

最后根据得出的结果来输出评定内容就可以了

	int jx = bur(arr1);
	if (rating(x_) == 4 && jx == 4)
	{
		printf("可竞选特等奖学金");
	}
	else if (rating(x_) == 4 && jx == 3 || jx == 4)
		printf("可竞选一等奖学金");
	else if (rating(x_) == 3 && jx == 2 || jx == 3 || jx == 4)
		printf("可竞选二等奖学金");
	else if (rating(x_) == 3 || jx == 1)
		printf("可竞选三等奖学金");

End

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值