| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1016 人关注过本帖
标题:简单学生管理系统
取消只看楼主 加入收藏
贪恋东
Rank: 1
等 级:新手上路
帖 子:19
专家分:2
注 册:2010-9-24
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:0 
简单学生管理系统
/* Note:Your choice is C IDE */
#include "stdio.h"
#define N 2


 struct student  /*定义一个结构体数组用来存放学生的相关信息:
                  姓名、学号、数学及英语成绩、2门课的平均成绩*/
 {
     char name[20];
     int num;
     float math;
     float eng;
    float aver_p; //每个人2门课的平均成绩
   
 };

void main()
{
 int i,j;
 float temp,max;
 float aver_am=0; //所有人数学平均成绩
 float aver_ae=0; //所有人英语平均成绩
 float aver_aa=0; //所有人2门课的平均成绩

 struct student stu[N];
 
 puts("请输入学生的相关数据:(姓名、学号、数学成绩、英语成绩)\n");
 
 for(i=0;i<N;i++)
 {
  scanf("%s%d%.2f%.2f\n",stu[i].name,&stu[i].num,&stu[i].math,&stu[i].eng);
  stu[i].aver_p=(stu[i].math+stu[i].eng)/2;
  aver_am+=stu[i].math; //先求出总成绩,在格式输出时除以N就得到平均成绩了
  aver_ae+=stu[i].eng;
  aver_aa+=(stu[i].math+stu[i].eng);
 }
 printf("所有学生的数学平均成绩为:%.2f \n",aver_am/N);
 printf("所有学生的英语平均成绩为:%.2f \n",aver_ae/N);
 printf("所有学生2门课的平均成绩为:%.2f \n",aver_aa/N);
 
 printf("*******************成 绩 单*******************\n");
 printf("学生姓名   学号    数学成绩   英语成绩   平均成绩 \n");  
 for(i=0;i<N;i++)   
 {     
 printf("   %s    %d    %.2f    %.2f    %.2f\n",stu[i].name,stu[i].num,stu[i].math,stu[i].eng,stu[i].aver_p);
 }   
     

for(i=0;i<N;i++)   //对每人的平均成绩冒泡排序,由大到小
    for(j=0;j<N-i;j++)            
     if(stu[i].aver_p<stu[i+1].aver_p)
     {
         temp=stu[i].aver_p;   
        stu[i].aver_p=stu[i+1].aver_p;
        stu[i+1].aver_p=temp;
     }         
        
  printf("平均分排序为:");
    for(i=0;i<N;i++)
     printf("%.2f ",stu[i].aver_p); //由大到小顺序输出

//求数学最高成绩,并输出对应的学生姓名
        for(i=0;i<N;i++) //对所有人数学成绩排序,输出最大
                 
         if(stu[i].math<stu[i+1].math)
           {
             max=stu[i].math;
            stu[i].math=stu[i+1].math;
            stu[i+1].math=max;
           }
        
        printf("数学最高分是:%.2f \n",stu[0].math);
        printf("学生姓名是:%s \n",stu[0].name);

//求英语最高成绩,并输出对应的学生姓名        
        for(i=0;i<N;i++)
        
         if(stu[i].eng<stu[i+1].eng)
           {
             max=stu[i].eng;
            stu[i].eng=stu[i+1].eng;
            stu[i+1].eng=max;
           }
        
        printf("英语最高分是:%.2f \n",stu[0].eng);
        printf("学生姓名是:%s \n",stu[0].name);

//求平均最高成绩,并输出对应的学生姓名        
        for(i=0;i<N;i++)
        
         if(stu[i].aver_p<stu[i+1].aver_p)
           {
               max=stu[i].aver_p;
            stu[i].aver_p=stu[i+1].aver_p;
            stu[i+1].aver_p=max;         
           }
        
        printf("平均分最高的是:%.2f ",stu[0].aver_p);
        printf("学生姓名是:%s ",stu[0].name);                     
}   
 
运行能成功,但输入数据后,结果不正确。请教高手。
原题是要求输入N个学生的信息 姓名、学号、数学成绩、英语成绩 然后输出这些信息,并将平均成绩排序,分别输出数学、英语和平均成绩的最高分及对应的学生
搜索更多相关主题的帖子: 系统 学生 管理 
2010-10-26 22:33
快速回复:简单学生管理系统
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023690 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved