OC-4

main.m

//  main.m
//  -OC-4
//
//  Created by lanqs on 14/12/22.
//  Copyright (c) 2014年 . All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Poll.h"
#import "Student.h"
#import "Dog.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {

#pragma mark - 1、使用多种方式,取出符串“123-456-789-000”中的数字部分,组成一个新的字符串输出
        
//        NSString *string = @"123-456-789-000";
//        //1.遍历
//        NSMutableString *string1 = [NSMutableString string];
//        for (int i = 0; i < string.length; i ++) {
//            char ch = [string characterAtIndex:i];
//            
//            if (ch >= '0' && ch <= '9') {
//                [string1 appendFormat:@"%c",ch];
//            }
//        }
//        NSLog(@"%@",string1);
//        //2.替换
//        NSString *string2 = [string stringByReplacingOccurrencesOfString:@"-" withString:@""];
//        NSLog(@"%@",string2);
//        
#pragma mark - 2、有一个数组,长度为20,里边存储的是1-20 的数,每个数不重复且为乱序;实现其过程(提示:arc4random()函数)
        
//        NSMutableArray *array = [NSMutableArray array];
//       while(1) {
//            //随机函数
//            NSInteger integer = arc4random()%20 + 1;
//            NSString *string = [NSString stringWithFormat:@"%ld",integer];
//            
//            if (![array containsObject:string]) {
//                [array addObject:string];
//            }
//           if (array.count == 20) {
//               break;
//           }
//        }
//        NSLog(@"%ld",array.count);
//        NSLog(@"%@",array);
#pragma mark - 3、 1-100的NSString对象构成的100个元素数组,过滤50以下的字符串
        
//        NSMutableArray *array = [NSMutableArray array];
//        //遍历给数组赋值
//        for (int i = 1; i <= 100; i ++) {
//            NSString *string = [NSString stringWithFormat:@"%d",i];
//            [array addObject:string];
//            
//        }
//        //过滤元素   (将字符串转化为整型)
//        for (int i = 1; i < 50; i ++) {
//            NSString *string = [NSString stringWithFormat:@"%d",i];
//            if ([string intValue] <50) {
//                [array removeObject:string];
//            }
//        }
//        NSLog(@"%@",array);
        
#pragma mark - 4、对一个已知的NSMutableArray数组进行冒泡排序
        
//        NSMutableArray *array = [NSMutableArray arrayWithObjects:@"10",@"6",@"7",@"8",@"3",@"2",@"1", nil];
//        
//        for (int i = 0; i < array.count; i ++) {
//            int a = [[array objectAtIndex:i] intValue];
//            for (int j = i; j < array.count; j ++) {
//                int b = [[array objectAtIndex:j] intValue];
//                if (a > b) {
//                    //我嚓,有自带的交换
//                    [array exchangeObjectAtIndex:i withObjectAtIndex:j];
//                }
//               
//            }
//            
//        }
//        NSLog(@"%@",array);

    
#pragma mark - 1、 创建一个Student类,将所有学员信息存放进一个数组,每个学员存为一个字典(以姓名作为key,信息作为value),里面包含姓名,年龄,性别,身份证号。
        
//        Student *student = [[Student alloc]initWithName:@"student1" age:11 gender:@"man" code:@"510681199310033513"];
//        
//        //数组中学生的信息
//        NSLog(@"%@",[student studentArray1]);
//        
//        NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
//        [dictionary addEntriesFromDictionary:[student studentDictionary]];
//        //字典中的信息
//        NSLog(@"%@",dictionary);
        
#pragma mark - 2、 写一个方法,随机选取2名学员查看其姓名,并计算他们年龄的差值
        
        
//        Student *student1 = [[Student alloc]initWithName:@"student1" age:20 gender:@"man" code:@"510681199310033513"];
//        Student *student2 = [[Student alloc]initWithName:@"student2" age:17 gender:@"man" code:@"510681199310033513"];
//        [Student showNameAndShowAgeDifferent:student1 anotherstudent:student2];
        
#pragma mark - 3、 遍历所有学员信息,从学员中挑出是三好学生并且年龄最小的一位(三好学生:属于学生信息中的一部分,不是查看成绩所得,可在学生信息中添加一项,用来标记当前学生是否为三号学生)
        
//        Student *student1 = [[Student alloc]initWithName:@"student1" age:20 gender:@"man" code:@"510681199310033513"];
//        Student *student2 = [[Student alloc]initWithName:@"student2" age:19 gender:@"man" code:@"510681199310033513"];
//        Student *student3 = [[Student alloc]initWithName:@"student3" age:18 gender:@"man" code:@"510681199310033513"];
//        Student *student4 = [[Student alloc]initWithName:@"student4" age:17 gender:@"man" code:@"510681199310033513"];
//        //三好学生为1,不是三好学生为0
//        student1.flag = 1;
//        student2.flag = 0;
//        student3.flag = 0;
//        student4.flag = 1;
//
//        NSMutableArray *mutablearray = [NSMutableArray array];
//        NSArray *array = [NSArray arrayWithObjects:student1,student2,student3,student4, nil];
//        //查看是不是三好学生
//        for (int i = 0; i < [array count]; i ++) {
//            //强制类型转换
//            NSInteger integer = ((Student *)[array objectAtIndex:i]).flag;
//            if (integer == 1) {
//                [mutablearray addObject:[array objectAtIndex:i]];
//            }
//            
//        }
//        //年龄排序
//        for (int i = 0; i < mutablearray.count; i ++) {
//            NSInteger age1 = ((Student *)[mutablearray objectAtIndex:i]).age;
//            for (int j = i; j < mutablearray.count; j ++) {
//                 NSInteger age2 = ((Student *)[mutablearray objectAtIndex:j]).age;
//                if (age1 > age2) {
//                    NSInteger temp = age1;
//                    ((Student *)[mutablearray objectAtIndex:i]).age = age2;
//                    ((Student *)[mutablearray objectAtIndex:j]).age = temp;
//                }
//            }
//            
//            
//        }
//        //排序过后第一个就是最小的
//        NSLog(@"%@",[mutablearray firstObject]);
#pragma mark - 5、(扩展题)创建一个Dog类,该Dog有成员变量_name,_age;创建五个dog对象,将dog对象放入数组中,将该数组通过name字段进行排序,如果name相同时,按照age字段进行排序;
    
        Dog *dog1 = [[Dog alloc]initWithNama:@"dog1" age:19];
        Dog *dog2 = [[Dog alloc]initWithNama:@"dog2" age:17];
        Dog *dog3 = [[Dog alloc]initWithNama:@"dog3" age:15];
        Dog *dog4 = [[Dog alloc]initWithNama:@"dog2" age:13];
        Dog *dog5 = [[Dog alloc]initWithNama:@"dog5" age:10];
        
        NSMutableArray *array = [NSMutableArray arrayWithObjects:dog1.name,dog2.name,dog3.name,dog4.name,dog5.name, nil];
        //只判断了名字,没判断年龄
        NSArray *array1 = [array sortedArrayUsingSelector:@selector(compare:)];
        
        NSLog(@"%@",array1);
        NSMutableArray *array2 = [NSMutableArray array];
        [array2 addObjectsFromArray:array1];
        
        NSNumber *number1 = [NSNumber numberWithLong:dog1.age];
        NSNumber *number2 = [NSNumber numberWithLong:dog2.age];
        NSNumber *number3 = [NSNumber numberWithLong:dog3.age];
        NSNumber *number4 = [NSNumber numberWithLong:dog4.age];
        NSNumber *number5 = [NSNumber numberWithLong:dog5.age];
        
        
        NSArray *array3 = [NSArray arrayWithObjects:number1,number2,number3,number4,number5, nil];
        //年龄排了
        NSArray *array4 = [array3 sortedArrayUsingSelector:@selector(compare:)];
        NSLog(@"%@",array4);
        // 晕了。。。
        
        
        
    }
    return 0;
}

Student.h

//
//  Student.h
//  -OC-4
//
//  Created by lanqs on 14/12/22.
//  Copyright (c) 2014年 . All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Student : NSObject{
    NSString *_name;//姓名
    NSInteger _age;//年龄
    NSString *_gender;//性别
    NSString *_code;//身份证
    NSInteger _flag;//标示
}
@property (retain,nonatomic) NSString *name;
@property (assign,nonatomic) NSInteger age;
@property (retain,nonatomic) NSString *gender;
@property (retain,nonatomic) NSString *code;
@property (assign,nonatomic) NSInteger flag;

- (id)initWithName:(NSString *)name age:(NSInteger)age gender:(NSString *)gender code:(NSString *)code;


+ (NSArray *)studentArray:(Student *)student;
- (NSArray *)studentArray1;
- (NSDictionary *)studentDictionary;
+ (void)showNameAndShowAgeDifferent:(Student *)student anotherstudent:(Student *)anotherstudent;
@end

Student.m

//
//  Student.m
//  -OC-4
//
//  Created by lanqs on 14/12/22.
//  Copyright (c) 2014年 . All rights reserved.
//

#import "Student.h"

@implementation Student

- (id)initWithName:(NSString *)name age:(NSInteger)age gender:(NSString *)gender code:(NSString *)code{
    self = [super init];
    if (self) {
        _name = name;
        _age = age;
        _gender = gender;
        _code = code;
    }
    return self;

}

+ (NSArray *)studentArray:(Student *)student{
    
    NSString *string = [NSString stringWithFormat:@"%ld",student.age];
    NSArray  *array = [NSArray arrayWithObjects:student.name,string,student.gender,student.code,nil];
    return array;
    
}
- (NSArray *)studentArray1{
    NSString *string = [NSString stringWithFormat:@"%ld",_age];
    NSArray  *array = [NSArray arrayWithObjects:_name,string,_gender,_code,nil];
    return array;
}
//字典(以姓名作为key,信息作为value)
- (NSDictionary *)studentDictionary{
    
    NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
    [dictionary setObject:[self studentArray1] forKey:_name];

    return dictionary;
}
+ (void)showNameAndShowAgeDifferent:(Student *)student anotherstudent:(Student *)anotherstudent{
    
    NSLog(@"name = %@, name = %@",student.name,anotherstudent.name);
    NSLog(@"第一个学生和第二个学生的年龄差为:%ld",student.age - anotherstudent.age);
}
- (NSString *)description{

    return [NSString stringWithFormat:@"name = %@,age = %ld,gender = %@,code = %@",_name,_age,_gender,_code];
}



@end



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值