OC学生成绩管理类(二 Classroom教室类)
Classroom.h文件
// // Classroom.h // 练习 类 学生成绩管理 // // Created by dllo on 15/11/27. // Copyright © 2015年 dllo. All rights reserved. // #import <Foundation/Foundation.h> #import "Student.h" @interface Classroom : NSObject { // 成员变量 NSInteger _stuNumber; NSString *_classroomName; CGFloat _classroomAverageScore; NSMutableArray *_studentTable; } // 方法 // 自定义初始化方法 - (id)initWithName:(NSString *)name; // 向班级中添加学生 - (void)addStudent:(Student *)student; // 输出所有的学生信息 - (void)printAllStudentInfo; // 返回班级的平均分 - (CGFloat)classroomAverage; // 按分数降序输出所有信息 - (void)printAllStudentInfoByDescending; // 输出有没及格的课的学生信息 - (void)printFailStudent; // 输出成绩在班级平均分一下的同学 - (void)printStudentScoreUnderAverage; @end
Classroom.m文件
// // Classroom.m // 练习 类 学生成绩管理 // // Created by dllo on 15/11/27. // Copyright © 2015年 dllo. All rights reserved. // #import "Classroom.h" @implementation Classroom // 自定义初始化方法 - (id)initWithName:(NSString *)name{ self = [super init]; if(self){ _classroomName = name; _classroomAverageScore = 0.0; _stuNumber = 0; _studentTable = [NSMutableArray arrayWithCapacity:10]; } return self; } // 向班级中添加学生 - (void)addStudent:(Student *)student{ [_studentTable addObject:student]; _stuNumber++; } // 返回班级的平均分 - (CGFloat)classroomAverage{ _classroomAverageScore = 0; for(int i = 0; i < _stuNumber; i++){ _classroomAverageScore += [[_studentTable[i] score] averageScore]; } return _classroomAverageScore /=(_stuNumber * 1.0); } // 按学号输出所有的学生信息 - (void)printAllStudentInfo{ NSLog(@"按学号排序输出所有的信息!"); // 输出班级的基本信息 NSLog(@"%@ %ld人 平均分:%0.2f", _classroomName,_stuNumber, [self classroomAverage]); // 冒泡排序 for(int i = 0; i < _stuNumber - 1 ; i++){ for(int j = 0; j < _stuNumber - 1 - i; j++){ if([[_studentTable[j] stuId] compare:[_studentTable[j + 1] stuId]] < 0){ Student *temp = _studentTable[j]; _studentTable[j] = _studentTable[j + 1]; _studentTable[j + 1] = temp; } } // 输出 [_studentTable[_stuNumber - 1 - i] printInfo]; } // 输出 [_studentTable[0] printInfo]; } // 按分数降序输出所有信息 - (void)printAllStudentInfoByDescending{ NSLog(@"按总分降序输出所有的信息!"); // 输出班级的基本信息 NSLog(@"%@ %ld人 平均分:%0.2f", _classroomName,_stuNumber, [self classroomAverage]); // 冒泡排序 for(int i = 0; i < _stuNumber - 1; i++){ for(int j = 0; j < _stuNumber - 1 - i; j++){ if([[_studentTable[j] score] averageScore] > [[_studentTable[j + 1] score] averageScore]){ Student *temp = _studentTable[j]; _studentTable[j] = _studentTable[j + 1]; _studentTable[j + 1] = temp; } } // 输出 [_studentTable[_stuNumber - 1 - i] printInfo]; } // 输出 [_studentTable[0] printInfo]; } // 输出有没及格的课的学生信息 - (void)printFailStudent{ NSLog(@"有不及格课程的同学有:"); for(int i = 0;i < _stuNumber; i++){ if(([[_studentTable[i] score] mathScore] < 60) || ([[_studentTable[i] score] historyScore] < 60) || ([[_studentTable[i] score] englishScore] < 60)){ [_studentTable[i] printInfo]; } } } // 输出成绩在班级平均分以下的同学 - (void)printStudentScoreUnderAverage{ NSLog(@"输出成绩在平均分以下的学生"); for(int i = 0; i < _stuNumber; i++){ if([[_studentTable[i] score] averageScore] < [self classroomAverage]){ [_studentTable[i] printInfo]; } } } @end