您的位置:首页 > 其它

OC学生成绩管理类(二 Classroom教室类)

2015-11-30 20:55 381 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: