编写一个适用于VS2019的程序程序,存储学生的学号,姓名,语文,数学,英语成绩,并统计各科成绩的平均值,优秀率,及格率,以及成绩排名
时间: 2024-06-03 15:11:24 浏览: 70
编写一个程序用来对学生评定成绩
非常感谢您的提问,我来为您解答。
首先,需要明确您的问题,您需要编写一个适用于VS2019的程序程序来实现存储学生的学号、姓名、语文、数学、英语成绩,并统计各科成绩的平均值、优秀率、及格率和成绩排名。因此,您可以按照以下步骤实现:
步骤一:创建一个结构体,用于存储学生信息。
struct Student
{
char no[20]; //学号
char name[20]; //姓名
float chinese; //语文成绩
float math; //数学成绩
float english; //英语成绩
float total; //总成绩
int rank; //排名
};
步骤二:编写一个函数,用于输入学生信息。
void InputStudent(Student& stu)
{
printf("请输入学号:");
scanf("%s", stu.no);
printf("请输入姓名:");
scanf("%s", stu.name);
printf("请输入语文成绩:");
scanf("%f", &stu.chinese);
printf("请输入数学成绩:");
scanf("%f", &stu.math);
printf("请输入英语成绩:");
scanf("%f", &stu.english);
stu.total = stu.chinese + stu.math + stu.english;
}
步骤三:编写一个函数,用于输出学生信息。
void OutputStudent(Student& stu)
{
printf("%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%d\n", stu.no, stu.name, stu.chinese, stu.math, stu.english, stu.total, stu.rank);
}
步骤四:编写一个函数,用于计算各科成绩的平均值、优秀率、及格率。
void CountScore(Student stu[], int n)
{
int excellent = 0; //优秀人数
int fail = 0; //不及格人数
float chinese_total = 0; //语文总分
float math_total = 0; //数学总分
float english_total = 0; //英语总分
float total_total = 0; //总分总分
for(int i=0; i<n; i++)
{
chinese_total += stu[i].chinese;
math_total += stu[i].math;
english_total += stu[i].english;
total_total += stu[i].total;
if(stu[i].chinese >= 90 && stu[i].math >= 90 && stu[i].english >= 90)
{
excellent++;
}
if(stu[i].chinese < 60 || stu[i].math < 60 || stu[i].english < 60)
{
fail++;
}
}
printf("语文平均分:%.2f\n", chinese_total/n);
printf("数学平均分:%.2f\n", math_total/n);
printf("英语平均分:%.2f\n", english_total/n);
printf("总成绩平均分:%.2f\n", total_total/n);
printf("优秀率:%.2f%%\n", (float)excellent/n*100);
printf("及格率:%.2f%%\n", (float)(n-fail)/n*100);
}
步骤五:编写一个函数,用于计算学生成绩排名。
void RankScore(Student stu[], int n)
{
for(int i=0; i<n; i++)
{
stu[i].rank = 1;
for(int j=0; j<n; j++)
{
if(stu[j].total > stu[i].total)
{
stu[i].rank++;
}
}
}
}
步骤六:编写主函数,实现学生信息输入、输出、平均值计算、优秀率计算、及格率计算和成绩排名计算。
int main()
{
int n; //学生数量
printf("请输入学生数量:");
scanf("%d", &n);
Student* stu = new Student[n];
//输入学生信息
for(int i=0; i<n; i++)
{
printf("请输入第%d个学生的信息:\n", i+1);
InputStudent(stu[i]);
}
//计算平均值、优秀率、及格率
CountScore(stu, n);
//计算成绩排名
RankScore(stu, n);
//输出学生信息
printf("学号\t姓名\t语文\t数学\t英语\t总成绩\t排名\n");
for(int i=0; i<n; i++)
{
OutputStudent(stu[i]);
}
delete[] stu;
return 0;
}
以上就是编写一个适用于VS2019的程序程序,存储学生的学号,姓名,语文,数学,英语成绩,并统计各科成绩的平均值,优秀率,及格率,以及成绩排名的全部步骤,希望能够对您有所帮助。谢谢!
阅读全文