c语言程序 关于学生姓名 成绩 学号 的编程 只要能过50行就行 有没有哪位哥哥帮帮忙啊 简单一点就行啊

如题所述

//应用二维数组,实现简单的学生成绩查询系统的设计。具体要求如下:
//(1)根据用户输入的学号,能够给出该生各科成绩及平均分。
//(2)根据用户输入的课程代号,能够给出该课程中每位学生的成绩及课程平均分。
//(3)能够查询出某个学生某一门的考试成绩。
//程序分析:学生成绩用二维数组存储,各行代表各位学生的信息,各列代表学生学号和各门课程代号的信息。
//程序依次有5项功能:学生信息的输入;输入学号,输出该生各科成绩及平均分;输入课程代号,
//输出该课程每位学生成绩及课程平均分;输入学生学号及课程代号,
//输出成绩;设计功能选择菜单及利用switch —case语句实现以上功能。程序如下:
#include "stdio.h"
#define N n /*定义符号常量N等于n*/
#define M 4 /*定义符号常量M等于5*/

main()
{ int select,n,s1,s2,s3,s4;
int i,j,num;
float score[N][M],aver,a[N],b[N],c[N],d[N];
while (1) /*菜单循环显示和功能循环处理*/
{ printf("\n 欢迎使用学生查询系统!\n\n");/*菜单显示*/
printf("* * * * * * * * * * * * * * * * * * * * * * * * * *\n");
printf("* 请选择查询对象: *\n");
printf("* 1.据学生学号查询学生成绩及平均成绩 *\n");
printf("* 2.据课程代号查询学生课程成绩,平均成绩和分档统计 *\n");
printf("* 3.据学生学号和课程代号查询学生成绩 *\n");
printf("* 4.学生原始数据的依次输入 *\n");
printf("* 5.谢谢使用,退出本系统! *\n");
INPUT:
printf("* * * * * * * * * * * * * * * * * * * * * * * * * *\n");
printf(" 请选择功能号1—5: ");
scanf("%d",&select);
s1=0;s2=0;s3=0;s4=0;
if(select==5) /*退出系统*/
break;
if(select>=6||select<=0) /*输入功能号有误处理*/
{ printf("* * * 输入有误,请重新功能号1-5:* * *\n");
goto INPUT;
}
aver=0;
switch(select)
{ case 1: /*按学号查询功能*/
printf("请输入查询学生的学号\n");
scanf("%d",&num);
for(i=0;i<N;i++)
if(num==score[i][0])
for(j=1;j<M;j++)
{ printf("%d号课程成绩是%f\n",j,score[i][j]);
aver+=score[i][j];
}
printf("%d号学生的平均成绩为%f\n",num,aver/(M-1));
break;
case 2: /*按课程查询功能*/
printf("请输入查询课程的代号(1-%d):\n",M-1);
scanf("%d",&j);
for(i=0;i<N;i++)
{aver+=score[i][j];
}
printf("\n%d号课程的平均成绩为%f\n",j,aver/N);
for(i=0;i<N;i++)
{ printf("%d号学生的成绩为%f",i+1,score[i][j]);
if(score[i][j]>=85)
{printf("优秀档\n" );

s1++; }
else if(score[i][j]>=75)
{printf("良好档\n" );s2++; }
else if(score[i][j]>=60)
{printf("及格档\n" ); s3++; }
else
{printf("不及格档\n" ); s4++;
}

}
printf("\n优秀档人数%d,良好档人数%d,及格档人数%d,不及格档人数%d\n",s1,s2,s3,s4);
for(i=0;i<N;i++)
{
if(score[i][j]>=85)
{a[i]=0;a[i]=score[i][j];
printf("优秀档%5.0f\n",a[i]);
}}
for(i=0;i<N;i++)
{
if(score[i][j]>=75&&score[i][j]<85)
{
b[i]=0;b[i]=score[i][j]; printf("良好档%5.0f\n",b[i]);

} }
for(i=0;i<N;i++)
{
if(score[i][j]>=60&&score[i][j]<75)

{c[i]=0;c[i]=score[i][j]; printf("及格档%5.0f\n",c[i]);
}}
for(i=0;i<N;i++)
{ if(score[i][j]<60)
{d[i]=0;d[i]=score[i][j]; printf("不及格档%5.0f\n",d[i]);
}}
break;
case 3: /*按学号和课程查询功能*/
printf("请输入查询的学生学号和课程代号:\n");
scanf("%d%d",&num,&j);
for(i=0;i<N;i++)
if(num==score[i][0])
printf("%d号学生%d号课程成绩为%f\n",num,j,score[i][j]);
break;
case 4: /*输入学生原始数据*/
printf("请输入学生数量:");
scanf("%d",&n);
printf("请依次输入%d个学生的%d门成绩(学号、各门成绩)\n",N,M-1);
for(i=0;i<N;i++)
for(j=0;j<M;j++)
scanf("%f",&score[i][j]);
break;
default:break; } } }

你自己再看看,加减功能。运行界面如下

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-24
这里要输入3门课的成绩

#include<stdio.h>
struct stu
{
long int xh;
char nm[6];
float chenj[3];
float zongf;
};
int main()
{
int N=3; //通过修改N的值可以改变输入学生成绩的多少
stu a[N+1];
int i,j;
printf("请输入%d位同学\n学号(7位) 姓名 成绩\n",N);
for(i=0;i<N;i++)
scanf("%d%s%f%f%f",&a[i].xh,a[i].nm,&a[i].chenj[0],&a[i].chenj[1],&a[i].chenj[2]);
for(i=0;i<N;i++)
a[i].zongf=a[i].chenj[0]+a[i].chenj[1]+a[i].chenj[2];
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
if(a[i].zongf<a[j].zongf)
{
a[N]=a[i];
a[i]=a[j];
a[j]=a[N];
}
printf("按总分有高到底排序\n");
printf(" 学号 姓名 成绩 总分\n");
for(i=0;i<N;i++)
printf("%d.%-7d %6s %g:%g:%g %g\n",i+1,a[i].xh,a[i].nm,a[i].chenj[0],a[i].chenj[1],a[i].chenj[2],a[i].zongf);
return 0;
}追问

兄弟 程序有些短了 能不能再加一些程序啊 最少得过45行啊 麻烦你了 再改一下吧 如果可能的话能不能带上个流程图啊??谢谢啦

追答

又要简单又要50行,你能不能说出你的设计要求。

第2个回答  2012-06-27

代码65行,你需要我发到你的邮箱!

相似回答