假設收集到了M個學生的N門課程的成績資訊(M不少于5,N不少于3),要求用C語言撰寫一個簡單的成績管理系統,對學生個人資訊進行管理,可以計算每位同學各科的總成績,以及每門課程的平均成績。
具體要求
(1)在主函式中正確輸入每個學生的學號及各科成績(輸入可以根據不同的情況采用不同的輸入方法)。
要求:輸入時有必要的提示資訊。
(2)設計求每個學生各科總成績的子函式,將總成績保存在陣列中。
(3)設計求每門課程的平均成績的子函式,并將每科平均成績保存在陣列中。
uj5u.com熱心網友回復:
一段代碼供參考
#include <stdio.h>
#include <string.h>
#define M 5
#define N 3
typedef struct student
{
int studID;
char name[20];
float score1;
float score2;
float score3;
}STU;
//輸入
void InputSTU(STU *arr, int n)
{
int i;
for (i=0; i<n; i++)
{
printf("輸入第%d個學生的學號 姓名 科目一 科目二 科目三成績:\n", i+1);
scanf("%d%s%f%f%f", &arr[i].studID, arr[i].name, &arr[i].score1, &arr[i].score2,
&arr[i].score3);
}
printf("輸入完成,按任意鍵繼續...\n");
getchar();
}
//總分
void TotalScore(STU *arr, float *TotalArr, int n)
{
int i;
for (i=0; i<n; i++)
{
TotalArr[i] = arr[i].score1 + arr[i].score2 + arr[i].score3;
}
printf("計算完成,按任意鍵繼續...\n");
getchar();
}
//平均分
void AverageScore(STU *arr, float *AverageArr, int n)
{
int i;
float sum1 = 0, sum2 = 0, sum3 = 0;
for (i=0; i<n; i++)
{
sum1 += arr[i].score1;
sum2 += arr[i].score2;
sum3 += arr[i].score3;
}
AverageArr[0] = sum1 / M;
AverageArr[1] = sum2 / M;
AverageArr[2] = sum3 / M;
printf("計算完成,按任意鍵繼續...\n");
getchar();
}
int main()
{
int i;
STU stud[M];
float Total[M] = {0};
float Average[N] = {0};
InputSTU(stud, M);
TotalScore(stud, Total, M);
printf("\n學號\t姓名\t科目一\t科目二\t科目三\t總分\n");
for (i=0; i<M; i++)
{
printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stud[i].studID, stud[i].name,
stud[i].score1, stud[i].score2, stud[i].score3, Total[i]);
}
AverageScore(stud, Average, M);
for (i=0; i<N; i++)
{
printf("科目%d平均分:%.2f\n", i+1, Average[i]);
}
getchar();
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/49204.html
標籤:C++ 語言
上一篇:誰能告訴我這是怎么回事
