用C语言编一个学生成绩管理系统程序啊? 要求用结构体和指针,越简单越好最好不要用链表.
1.能完成对学生成绩的录入和修改2.能统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序.3.能查阅学生成绩,不及格科目及学生名单4.能输出学生的成绩单...
1.能完成对学生成绩的录入和修改
2.能统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序.
3.能查阅学生成绩,不及格科目及学生名单
4.能输出学生的成绩单 展开
2.能统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序.
3.能查阅学生成绩,不及格科目及学生名单
4.能输出学生的成绩单 展开
1个回答
2013-11-06
展开全部
#include "stdio.h"
#define N 3
struct student
{char num[10];<br/>char name[20];<br/>float score[3];<br/>float sum;<br/>float aver;<br/>}stu[N];
int choose;
void input();
void find();
void count();
void sort();
void input()
{
int i;
float temp;
for(i=0;i<N;i++)
{printf("输入第%d个学生信息:\n",i+1);<br/>printf("number: ");<br/>scanf("%s",stu[i].num);<br/>printf("name: ");<br/>scanf("%s",stu[i].name);<br/>printf("score1: ");<br/>scanf("%f",&temp);<br/>stu[i].score[0]=temp;<br/>printf("score2: ");<br/>scanf("%f",&temp);<br/>stu[i].score[1]=temp;<br/>printf("score3: ");<br/>scanf("%f",&temp);<br/>getchar();<br/>stu[i].score[2]=temp;<br/>}
}
void count()
{
float sum,aver;
int i,j;
for(i=0;i<N;i++)
{sum=0;<br/>for(j=0;j<3;j++)<br/>sum+=stu[i].score[j];<br/>aver=sum/3.0;<br/>stu[i].sum=sum;<br/>stu[i].aver=aver;<br/>}
printf(" 学生的总成绩及平均分 \n");
printf("学号 姓名 总成绩 平均分 \n");
for(i=0;i<N;i++)
printf("%-8s%-10s%-9.2f%-9.2f\n",stu[i].num,stu[i].name,stu[i].sum,stu[i].aver);
}
void sort()
{int i,j,k;<br/> float sum,aver;<br/>struct student temp;<br/>for(i=0;i<N;i++)<br/>{sum=0;<br/>for(j=0;j<3;j++)<br/>sum+=stu[i].score[j];<br/>aver=sum/3.0;<br/>stu[i].sum=sum;<br/>stu[i].aver=aver;<br/> k=i;<br/>for(j=i+1;j<N;j++)<br/>if(stu[k].sum<stu[j].sum)k=j;<br/>if(k!=i)<br/>{temp=stu[i];<br/>stu[i]=stu[k];<br/>stu[k]=temp;}
}
printf(" 学生成绩排名 \n");
printf(" 按名次 \n");
for(i=0;i<3;i++)
printf("学号%-8s名字%-10s%-8.2f%-8.2f%-8.2f总分%-8.2f平均分%-8.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].aver);
}
void find()
{int i,j,sum,flag=0;<br/> printf(" \n");<br/>printf("有两科成绩不及格的同学是:\n");<br/> printf(" \n");<br/>for(i=0;i<N;i++)<br/>{<br/>sum=0;<br/>for(j=0;j<3;j++)<br/>if(stu[i].score[j]<60)sum++;<br/>if(sum>=2)<br/>{flag=1;<br/>printf("学号:%-8s名字:%-10s\n",stu[i].num,stu[i].name);<br/>}
}
if(flag==0)
printf(" 没有两科都不及格的同学!!\n");
}
void main()
{
printf(" 学生成绩管理系统 \n");
printf("1....成绩录入\n");
printf("2....成绩查询\n");
printf("3....成绩统计(平均成绩)\n");
printf("4....成绩排名\n");
printf("5....任意键退出\n");
printf("\n");
printf("\n");
printf("请输入您要进行的操作:\n");
scanf("%d",&choose);
while(choose==1||choose==2||choose==3||choose==4)
{switch(choose)<br/> {<br/> case 1:input(); break;<br/> case 2:find(); break;<br/> case 3:count(); break;<br/> case 4:sort(); break;<br/> }
printf(" \n");
printf("\n");
printf("\n");
printf("请输入您要进行的操作:\n");
scanf("%d",&choose);
}
}
#define N 3
struct student
{char num[10];<br/>char name[20];<br/>float score[3];<br/>float sum;<br/>float aver;<br/>}stu[N];
int choose;
void input();
void find();
void count();
void sort();
void input()
{
int i;
float temp;
for(i=0;i<N;i++)
{printf("输入第%d个学生信息:\n",i+1);<br/>printf("number: ");<br/>scanf("%s",stu[i].num);<br/>printf("name: ");<br/>scanf("%s",stu[i].name);<br/>printf("score1: ");<br/>scanf("%f",&temp);<br/>stu[i].score[0]=temp;<br/>printf("score2: ");<br/>scanf("%f",&temp);<br/>stu[i].score[1]=temp;<br/>printf("score3: ");<br/>scanf("%f",&temp);<br/>getchar();<br/>stu[i].score[2]=temp;<br/>}
}
void count()
{
float sum,aver;
int i,j;
for(i=0;i<N;i++)
{sum=0;<br/>for(j=0;j<3;j++)<br/>sum+=stu[i].score[j];<br/>aver=sum/3.0;<br/>stu[i].sum=sum;<br/>stu[i].aver=aver;<br/>}
printf(" 学生的总成绩及平均分 \n");
printf("学号 姓名 总成绩 平均分 \n");
for(i=0;i<N;i++)
printf("%-8s%-10s%-9.2f%-9.2f\n",stu[i].num,stu[i].name,stu[i].sum,stu[i].aver);
}
void sort()
{int i,j,k;<br/> float sum,aver;<br/>struct student temp;<br/>for(i=0;i<N;i++)<br/>{sum=0;<br/>for(j=0;j<3;j++)<br/>sum+=stu[i].score[j];<br/>aver=sum/3.0;<br/>stu[i].sum=sum;<br/>stu[i].aver=aver;<br/> k=i;<br/>for(j=i+1;j<N;j++)<br/>if(stu[k].sum<stu[j].sum)k=j;<br/>if(k!=i)<br/>{temp=stu[i];<br/>stu[i]=stu[k];<br/>stu[k]=temp;}
}
printf(" 学生成绩排名 \n");
printf(" 按名次 \n");
for(i=0;i<3;i++)
printf("学号%-8s名字%-10s%-8.2f%-8.2f%-8.2f总分%-8.2f平均分%-8.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].aver);
}
void find()
{int i,j,sum,flag=0;<br/> printf(" \n");<br/>printf("有两科成绩不及格的同学是:\n");<br/> printf(" \n");<br/>for(i=0;i<N;i++)<br/>{<br/>sum=0;<br/>for(j=0;j<3;j++)<br/>if(stu[i].score[j]<60)sum++;<br/>if(sum>=2)<br/>{flag=1;<br/>printf("学号:%-8s名字:%-10s\n",stu[i].num,stu[i].name);<br/>}
}
if(flag==0)
printf(" 没有两科都不及格的同学!!\n");
}
void main()
{
printf(" 学生成绩管理系统 \n");
printf("1....成绩录入\n");
printf("2....成绩查询\n");
printf("3....成绩统计(平均成绩)\n");
printf("4....成绩排名\n");
printf("5....任意键退出\n");
printf("\n");
printf("\n");
printf("请输入您要进行的操作:\n");
scanf("%d",&choose);
while(choose==1||choose==2||choose==3||choose==4)
{switch(choose)<br/> {<br/> case 1:input(); break;<br/> case 2:find(); break;<br/> case 3:count(); break;<br/> case 4:sort(); break;<br/> }
printf(" \n");
printf("\n");
printf("\n");
printf("请输入您要进行的操作:\n");
scanf("%d",&choose);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询