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

1设计一个按键菜单,菜单项包括:
按A键打印四门课的总成绩
按B键打印出平均成绩
按C键打印最高分的学生信息
按D键显示所有学生信息
按E添加一个学生的记录
按F键删除一个学生记录
按Q键退出
最好编程序用多种方法,谢谢各位的帮忙
我要程序代码,不会的请不要来

这个容易哦,不过分太少了.
因为分太少,所以偷了点懒.按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;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-12-11
用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;
}
}
}
第2个回答  2006-12-11
学习学习 先收藏起来
第3个回答  2006-12-11
这些书上都有相应的代码啊。。。。你只要弄个菜单就好了。

C语言编程题:有10个学生,每个学生数据包括学号,姓名,3门课的成绩,从键...
printf("请输入10名学生的学号、姓名、及三门成绩:");for(i=0;i<10;i++)scanf("%d,%s,%d,%d,%d",&person[i]->number,person[i]->name,&person->score[0],&person->score[1],&person->score[2]);for(i=0,i<10;i++)person->score[3]=(person->score[0]+person->score[1]...

编写C语言程序,有10个学生,每个学生数据包括学号,
根据你的代码,运行结果如下:修改建议:#include "stdio.h"struct stu{int num;float score[3];}x[10];main(){struct stu x[10];int i,j,k;for (i=0;i<10;i++){printf ("input num:(student'ID)\\t");scanf ("%d",&x[i].num); \/*输入学号*\/fflush(stdin);printf ("input...

...姓名、四门课的成绩,从键盘输入十个学生的数据记录,要求完成:_百...
如是做表格,就打开MICTOSOFT EXCEL,选取A1:F11,格式>单元格>边框,在第一行写上,学号\\姓名\\语\\数\\英\\政(四门课的名称自己换),在下面一行开始就可以填十个学生的数据记录了.祝你好运!有不明白的,可Hi我

用C++编写一个程序 : 输入10个学生的姓名、学号和成绩,将其中不及格...
void main(){ printf("学号\\t姓名\\t成绩\\n");for(int i=0;i<n;i++){ scanf("%d %s %f",&stt[i].num ,stt[i].name ,&stt[i].score );} \/\/用C++编写一个程序 : 输入10个学生的姓名、学号和成绩,将其中不及格的姓名、学号和成绩输出 printf("不及格学员的名单如下:\\n")...

C语言从键盘输入10个学生姓名存入
printf("请输入第%d个学生的信息:名字,学号,性别和年龄:\\n",i+1);scanf("%s%d%s%d",student[i].name,&student[i].num,student[i].sex,&student[i].age);} printf("十个学生的信息如下:\\n");for(i=0;i<10;i++){ printf("姓名:%s\\t学号:%d\\t性别:%s\\t年龄:%d\\n",...

用C语言编程:从键盘输入10个学生的成绩和学号,将其排序输出,并输出中...
}stu[10];int main(void){ int i,m;struct student j;for( i=0; i<10; i++){ printf("请输入学生的学号:");scanf("%d",&stu[i].id);printf("请输入学生的成绩:");scanf("%d",&stu[i].score);printf("\\n");} printf("\\n\\n");for( i=0; i<10; i++){ for( m=...

用TC编程(C语言)输入10名学生学号姓名四门课的成绩,计算总分、平均分...
char ret = 0;while (ctemp){ctemp &= ctemp - 1;++ret; } return ret;} void main(void){ FILE *f=fopen("tc\\\\aa.bmp","rb");char ch;unsigned long nCount=0;while (fread(&ch,1,1,f) )nCount+=func(ch);fclose(f);printf("%ld",nCount);} 另外,站长团上有产品团购,...

C语言 从键盘输入10个学生信息(学号,姓名,年龄,性别)
i++){ printf("请依次输入学生的姓名,学号,性别,年龄等信息");scanf("%s%d%s%d",s[i].name,&s[i].num,s[i].sex,&s[i].age);} for(i=0;i<10;i++){ printf("姓名:%s\\t学号:%d\\t性别:%s\\t年龄:%d\\n",s[i].name,s[i].num,s[i].sex,s[i].age);} } ...

有10个学生,每个学生数据包括学号,姓名、3门课程的成绩,从键盘输入10...
char stuNum[20]; \/\/学生学号 char stuName[20]; \/\/学生姓名 int stuscore[3]; \/\/学生3门课成绩 };int main() { int i, j;student stu[10];\/\/为了简单,此处只输入前3个学生的数据。如果要输入10个学生数据,把for中3改成10即可 for(i = 0; i < 3; i++) { printf("请输入...

C语言 编程!!!二、实验题目: 有10个学生,每个学生的数据包括学号,姓名...
include(stdio.h)float score[4];}person[10];int i;printf("请输入10名学生的学号、姓名、及三门成绩:");for(i=0;i<10;i++)printf("学号:%d 姓名:%s 成绩:%d %d %d 平均成绩:%d\\n",person[i]->number,person[i]->name[20],person->score[0],person->score[1],person->...

相似回答