软题库 移动APP 扫码下载APP 随时随地移动学习 培训课程
当前位置:信管网 >> 在线考试中心 >> 信息系统项目管理师题库 >> 试题查看
试卷名称 2013年上半年程序员考试下午真题试题(案例分析)
考试中心《2013年上半年程序员考试下午真题试题(案例分析)》在线考试
试卷年份2013年上半年
试题题型【分析简答题】
试题内容

阅读以下说明和Java程序,填充代码中的空缺,将解答填入答题纸的对应栏内。
【说明】
某学校在学生毕业时要对其成绩进行综合评定,学生的综合成绩(GPA)由其课程加权平均成绩(Wg)与附加分(Ag)构成,即GPA= Wg +Ag。
设一个学生共修了n门课程,则其加权平均成绩 (Wg) 定义如下:

其中 ,gradei 、Ci  分别表示该学生第 i 门课程的百分制成绩及学分。
学生可以通过参加社会活动或学科竞赛获得附加分(Ag)。学生参加社会活动所得的活动分(Apoints)是直接给出的,而竞赛分(Awards)则由下式计算(一个学生最多可参加m项学科竞赛):

其中 ,li  和 Si  分别表示学生所参加学科竞赛的级别和成绩。
对于社会活动和学科竞赛都不参加的学生,其附加分按活动分为0计算。
下面的程序实现计算学生综合成绩的功能,每个学生的基本信息由抽象类Student描述,包括学号(stuNo)、姓名(name) 、课程成绩学分(grades)  和综合成绩 (GPA)等,参加社会活动的学生由类ActStudent描述,其活动分由Apoints表示,参加学科竞赛的学生由类CmpStudent描述,其各项竞赛的成绩信息由awards表示。
【Java 代码】
        abstract  class  Student  {
                protected  String  name;
                protected  int  stuNo;
                protected double GPA;                      /*综合成绩*/
                protected  int [ ] [ ]  grades;               /*各门课程成绩和学分*/
        //其他信息略
        public  Student ( int  stuNo ,String name ,int[ ] [ ]  grades)   {
                this. stuNo = stuNo; grades;      this.name  = name;         this.grades    =
                grades;
         }
                (1)       ;
        double computeWg( ){
                 int  totalGrades  =  0 ,totalCredits  =  0;
                 for  (int i = 0;  i < grades.length;  i++)  {
                        totalGrades += grades [i] [0] * grades [i]  [1] ;
                        totalCredits += grades [i]  [1];
                 }
                 return   (double)totalGrades / totalCredits;
         }
}
 
        class ActStudent  extends Student  {
               private   int  Apoints;
               ActStudent  (int stuNo ,String name ,int[] [] grades ,int Apoints){
                                 (2)        ;
                      this. Apoints = Apoints;                  
                }
                public double getGPA( ) {
        return  GPA  =      (3)      ;
}
}
 
class CmpStudent  extends  Student  {
        private  int [ ] [ ]  Awards;
        CmpStudent   (int  stuNo ,String name ,int[ ] [ ]  grades ,int[ ] [ ]  awards) {
                    (4)   ;
             this.Awards  = awards;
         }
         public double  getGPA() {
              int  totalAwards  =  0;
              for  (int  i =  0;  i < awards.length;  i++)  {
totalAwards  += awards[i]  [0]  * awards[i] [1];
}
              return  GPA =     (5)      ;
         }
}
        public  class  GPASystem   (   //以计算 3 个学生的综合成绩为倒进行测试
        public static void main(String[]  args)  {
                int  [ ] [ ] g1=  {{80,3} ,{90,2} ,{95,3} ,{85,4} ,(86 ,3}) ,
g2  =  {{60,3} ,{60,2} ,{60,3} ,{60,4} ,(65 ,3}) ,
        g3 =  {{80,3} ,{90,2} ,{70,3} ,{65,4} ,(75 ,3});  //课程成绩
                int  [ ][ ]  e1 =  ((2 ,3) ,{1,2}} ,e2  =  {{1,3}};  //竞赛成绩
                   Student  students[ ]  =  {
new ActStudent  (101,"John" ,gl ,3), / /3 为活动分
                          new  ActStudent   (102 ,"Zhang" ,g2 ,0)   ,
                          new   CmpStudent     (103,"Li",g3,e2)};
                }
         //输出每个学生的综合成绩
                  for  (int  i = 0;  i < students .length;  i++)  (
                         System.out,println(     (6)       );
                  }
}


相关试题

推荐文章
合作网站内容