求一道c++编程题的解答 5

编制一个统计学生考试分数的管理程序,设学生成绩以一个学生一个记录的形式存储,每位学生记录包含的信息有:姓名,学号和数学、英语、计算机三门功课的成绩。基本要求:(1)从键盘... 编制一个统计学生考试分数的管理程序,设学生成绩以一个学生一个记录的形式存储,每位学生记录包含的信息有:姓名,学号和数学、英语、计算机三门功课的成绩。
基本要求:
(1) 从键盘输入20个学生的各项信息;
(2) 求出各门课程的总分,平均分;
(3) 按姓名寻找其记录并显示,如输入“张三”,即可输出该同学的学号和三门功课的成绩;
(4) 按学号寻找其记录并显示,如输入“09001”,即可输出该同学的姓名和三门功课的成绩;
(5) 浏览全部学生的各项信息;
(6) 按总分由高到低显示学生信息等。
功能实现:
(1) 上述各功能请分别用函数实现;
(2) 输入输出要有必要的提示说明;
(3) 学生记录用结构体数组实现。如:
struct record
{
char name[20]; /* 姓名 */
char code[20]; /* 学号 */
int mathmark; /* 数学课程成绩 */
int englishmark; /* 英语课程成绩 */
int compmark; /* 计算机课程成绩 */
}stu[20];
展开
 我来答
程序小兵
2010-07-05 · TA获得超过710个赞
知道小有建树答主
回答量:530
采纳率:0%
帮助的人:177万
展开全部
N久前作的:希望对你有帮助:

给你一个学生成绩管理的系统,有成绩的录入,分数的排序,删除,修改等功能。
struct __stu{
int stuNum;
char name[20];
int ScoreMath;
};
__stu stu[50];
int numberSTU = 0;

void printinfo(void)
{
printf("1 成绩录入\n");
printf("2 成绩显示\n");
printf("3 成绩修改\n");
printf("4 成绩统计\n");
printf("5 成绩排序\n");
printf("6 显示菜单\n");
printf("7 退出\n");
}

void inputinfo(int n)
{
printf("第%d个学生的学号:",n);
scanf("%d",&stu[n-1].stuNum);
getchar();

printf("第%d个学生的姓名:",n);
gets(stu[n-1].name);

printf("第%d个学生数学成绩:",n);
scanf("%d",&stu[n-1].ScoreMath);
getchar();

}

void displayinfo(int n)
{
int i = 0;
printf("学号\t\t姓名\t\t分数\n");
for (i = 0; i < n; i++)
{
printf("%d\t\t%s\t\t%d\n",stu[i].stuNum,stu[i].name,stu[i].ScoreMath);
}

}

void countNum(int n)
{
int i = 0;
int tempNum = 0;
for (i =0 ; i < n; i++)
{
if(stu[i].ScoreMath < 60)
{
tempNum++;
}
}

printf("及格的人数为 :%d\n不及格的人数为 :%d\n",n-tempNum,tempNum);
}

void modify(int stuNumber)
{
int i = 0;
for (i = 0; i < numberSTU;i++)
{
if (stu[i].stuNum == stuNumber)
{
printf("你想修改的分数为:");
scanf("%d",&stu[i].ScoreMath);
getchar();
printf("修改成功\n");
return;
}
}

printf("学号错误,修改失败\n");

}

void soucemath_from_higt_to_low(int n)
{
int indexi;
int indexj;
__stu _temp;

for (indexi = 0; indexi < n;indexi++)
{
for (indexj = indexi+1; indexj < n; indexj++)
{
if (stu[indexi].ScoreMath < stu[indexj].ScoreMath)
{
_temp = stu[indexj];
stu[indexj] = stu[indexi];
stu[indexi] = _temp;
}
}
}

printf("数学分数从高到低排列:\n");
displayinfo(numberSTU);

}

int main(int argc, char* argv[])
{
char casechar = 0;
int studentNUm = 1;
printinfo();
while(1)
{
printf("输入指令:");
scanf("%c",&casechar);
getchar();

switch (casechar)
{
case '1':
numberSTU++;
inputinfo(numberSTU);
// printf("输入信息\n");
break;

case '2':
displayinfo(numberSTU);
//printf("显示成绩\n");
break;
case '3':
printf("输入你想修改的学生学号:");
scanf("%d",&studentNUm);
getchar();
modify(studentNUm);
break;

case '4':
countNum(numberSTU);
break;

case '5':
soucemath_from_higt_to_low(numberSTU);
break;

case '6':
printinfo();
break;

case '7':
return 0;
}
}

return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式