帮忙用C语言编程:有10个学生,每个学生数据包括学号,姓名,四门课的成绩,从键盘输入10个学生的数据记录

1设计一个按键菜单,菜单项包括:按A键打印四门课的总成绩按B键打印出平均成绩按C键打印最高分的学生信息按D键显示所有学生信息按E添加一个学生的记录按F键删除一个学生记录按... 1设计一个按键菜单,菜单项包括:
按A键打印四门课的总成绩
按B键打印出平均成绩
按C键打印最高分的学生信息
按D键显示所有学生信息
按E添加一个学生的记录
按F键删除一个学生记录
按Q键退出
最好编程序用多种方法,谢谢各位的帮忙
我要程序代码,不会的请不要来
展开
 我来答
灵犀痴虫
推荐于2016-07-13 · TA获得超过3989个赞
知道小有建树答主
回答量:718
采纳率:100%
帮助的人:0
展开全部
这个容易哦,不过分太少了.
因为分太少,所以偷了点懒.按E和按F键的功能,我没有做.就是说,少写两个函数.
而且输入格式方面也有点问题.当然,改起来不难.
如果你加分的话,我会帮你做完.
呵呵,其实做到这里,其它的也不难了,可以自己练练.
#include<stdio.h>
#include <stdlib.h>
struct student
{
char name[20];
char num[20];
int a,a1,a2,a3,a4;
int aver;
}stu[10];
void mark(student *b)
{ int i;
for(i=0;i<10;i++)
{
b[i].a=b[i].a1+b[i].a2+b[i].a3+b[i].a3;
printf("%d ",b[i].a);
}
printf("\n");
}
void avemark(student *b)
{ int i;
for(i=0;i<10;i++)
{
b[i].a=b[i].a1+b[i].a2+b[i].a3+b[i].a3;
b[i].aver=b[i].a/4;
printf("%d ",b[i].aver);
}
printf("\n");
}
void maxstudent(student *b)
{ int i,max;
for(i=0;i<9;i++)
{
max=(b[i].a>b[i+1].a)?b[i].a:b[i+1].a;
}
for(i=0;i<10;i++)
if(b[i].a==max)
{
printf("最高分数学生的姓名,学号,总分,平均分如下:\n");
printf("%s %s %d\n",b[i].name,b[i].num,b[i].a,b[i].aver);
}
}
void xianshi(student *b)
{
int i;
printf("所有学生信息如下(依次为学生的姓名,学号,总分,四科成绩):\n");
for(i=0;i<10;i++)
{
printf("%s %s %d %d %d %d %d %d\n",b[i].name,b[i].num,b[i].a,b[i].a1,b[i].a2,b[i].a3,b[i].a4);
}
}
int main()
{ int i,n;char c;
printf("依次输入学生信息(姓名,学号,四科成绩\n注意:各项信息用空格分开,输完一个学生后按回车,接着输下一个学生\n");
printf("输入要输入学生的人数:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{gets(stu[i].name);gets(stu[i].num);scanf("%d%d%d%d",stu[i].a1,stu[i].a2,stu[i].a3,stu[i].a4);}
printf("菜单如下:\n按A键打印四门课的总成绩.\n按B键打印出平均成绩按.\n");
printf("C键打印最高分的学生信息\n按D键显示所有学生信息.\n");
printf("按E添加一个学生的记录.\n按F键删除一个学生记录.\n按Q键退出.\n");
printf("请按键选择(以小写字母输入):\n");
scanf("%c",&c);
switch(c)
{
case 'a':mark(stu);break;
case 'b':avemark(stu);break;
case 'c':maxstudent(stu);break;
case 'd':xianshi(stu);break;
case 'e':break;
case 'f':break;
case 'q':abort();
}
return 0;
}
pc秋月
2006-12-11 · TA获得超过157个赞
知道答主
回答量:104
采纳率:0%
帮助的人:106万
展开全部
用switch实现根据不同的字母实现不同的功能,可以把各种功能写成不同的函数.下面是主函数的框架,请参考.
#include <stdio.h>
#define N 60
int score[N][4];
char name[N][10];
void main()
{
char c;
c=getchar();
while (1){
switch(c){
case 'A': printSum();break;
case 'B' printAve();break;
case 'C': printMax();break;
case 'D': printAll();break;
case 'E': addStu();break;
case 'F': delStu();break;
case 'Q': return;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
de7998434
2006-12-11 · TA获得超过113个赞
知道答主
回答量:712
采纳率:100%
帮助的人:330万
展开全部
学习学习 先收藏起来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
白草浪人
2006-12-11 · TA获得超过430个赞
知道小有建树答主
回答量:756
采纳率:0%
帮助的人:427万
展开全部
这些书上都有相应的代码啊。。。。你只要弄个菜单就好了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式