iOS 开发 OC编程 数组冒泡排序.图书管理

来源:互联网 发布:比价商城源码 编辑:程序博客网 时间:2024/06/07 08:45

//

//  main.m

//  oc -5 数组

//

//  Created by dllo on 15/10/28.

//  Copyright (c) 2015 dllo. All rights reserved.

//


#import <Foundation/Foundation.h>

#import "Student.h"

#import "Book.h"

int main(int argc,const char * argv[]) {

    

    Student *p = [StudentstudentWithName:@"yuhao"sex:@"m"age:23 score:100];

   

    //不可变数组

    //1创建&初始化

   // NSArray *arr1  = [[NSArray alloc] initWithObjects:@"王宁", @"王博男", @"周瑜",  @"魏冬冬", nil ];

    //便利构造器

  //  NSArray *arr2 = [NSArray arrayWithObjects:@"王宁", @"王博男", @"周瑜",  @"魏冬冬", nil ];

    

   // NSArray *arr3 =   [NSArray  arrayWithArray:arr1];

    

    //数组元素个数

   // NSLog(@"%ld", arr1.count);

   // for (NSInteger i = 0; i < arr1.count; i++) {

        //NSLog(@"%@",arr1[i]);

        //通过下标访问数组元素

     ///   NSLog(@"%@", [arr1 objectAtIndex:i]);

   // }

    // 通过对象值获取下标

   // NSLog(@"%ld", [arr1 indexOfObject:@"王宁"]);

    

    // 可变数组

    //1 创建&初始化

    NSMutableArray *arr5 = [NSMutableArrayarrayWithObjects:@"王宁",@"王博男",@"周瑜"@"魏冬冬",nil ];

    //常用便利构造器

    

   NSMutableArray *arr6 = [NSMutableArrayarray];

    //相当于int a[4] = {};

    

    //2, 添加

    [arr5 addObject:@"高帅"];

   //数组也是对象  不同类型也可以添加,只要是对象就可以.

    [arr6 addObject:arr5];

    for (NSInteger i = 0; i < arr6.count ; i++) {

       // NSMutableArray * temp = [[ NSMutableArray alloc]init];

//        /创建初始化分2,第一步一个指针,第二步 开辟空间,在这我们不用重新开辟空间,我们只要用一个指针指向就可以了.在这在开辟空间会造成,泄露.因为该指针指向已经丢失,空间永远不被释放

         NSMutableArray * temp = [arr6 objectAtIndex:i];

       // for (NSInteger j = 0; j < [[arr6 objectAtIndex:i ] count]; j++) {

         for (NSInteger j = 0; j < temp.count ; j++) {

            NSLog(@"%@", [temp objectAtIndex:j]);

    

            

        }

    }

    //点语法当返回值是id类型的时候,用点语法有可能会报错,要用get方法

    

    

    //3 插入

   // [arr5 insertObject:@"dssa" atIndex:2];

    

    //4 删除

  //  [arr5 removeObject:@"王宁"];

//    实用删除最后一个

 //   [arr5 removeLastObject];

    

    //5 替换

    //将指定下标处的元素值替换为指定值

   // [arr5 replaceObjectAtIndex:3 withObject:@"王宁宁"];

    

    //6交换

   // [arr5 exchangeObjectAtIndex:1 withObjectAtIndex:3];

    

    //练习,冒泡排序

//    NSMutableArray *arr5 = [NSMutableArray arrayWithObjects:@"1", @"2", @"4",  @"3", nil ];

//    for (NSInteger i = 0; i < arr5.count - 1; i++) {

//        for (NSInteger j = 0; j < arr5.count - 1 - i; j++) {

//            if (NSOrderedAscending ==[[arr5 objectAtIndex:j] compare:[arr5 objectAtIndex:j + 1]]) {

//               // NSOrderedAscending 默认值为-1 结果为降序排列

//                [arr5 exchangeObjectAtIndex:j withObjectAtIndex:j + 1];

//            }

//        }

//    }

//    for (NSInteger i = 0; i < arr5.count; i++) {

//        NSLog(@"%@", [arr5 objectAtIndex:i]);

//    }

   // NSLog(@"%@", arr5);

    //nslog在数组对象存的都是英文字符的情况下可以输出,在有中文的情况下输出会出错

    

//   练习 图书管理

//    1、使用可变数组管理所有书籍(定义Book,包含书名和价格)

//    2、数组可以添加、删除书籍。 3、可以从数组根据书名查找书籍,并修改书籍的价格 4、展示所有书籍清单(书名)

//    Book *str = [Book bookWithName:@"读者" price:10];

//    Book *str1 = [Book bookWithName:@"意林" price:20];

//    Book *str2 = [Book bookWithName:@"故事会" price:5];

//    Book *str3 = [Book bookWithName:@"故事" price:7];

//    NSMutableArray  *arr6 = [NSMutableArray array];

//    NSMutableArray *arr7 = [NSMutableArray arrayWithObjects:str, str1,str2, str3,  nil];

//    [arr6 addObjectsFromArray:arr7];

////    [arr6 addObject:str1];

////    [arr6 addObject:str2];

////    [arr6 addObject:str3];

//    [arr6 removeObject:str2];

    //添加,,删除书籍

//    for (NSInteger i = 0; i < arr6.count; i++) {

//        //Book *p = [arr6 objectAtIndex:i];

//       

//       // NSLog(@"%ld %@", [p price], [p name]);

//        NSLog(@"%ld %@", [[arr6 objectAtIndex:i] price],[[arr6 objectAtIndex:i] name]);

//

//    }

    //找书修改价格

//    for (NSInteger i = 0; i < arr6.count; i++) {

//        if ([[[arr6 objectAtIndex:i] name] isEqualToString:@"读者"]) {

//            [[arr6 objectAtIndex:i] setPrice:30];

//            NSLog(@"%@ %ld",[[arr6 objectAtIndex:i] name], [[arr6 objectAtIndex:i] price] );

//        }

//    }

//    

    //价格冒泡排序

//    for (NSInteger i = 0; i < arr6.count - 1; i++) {

//        for (NSInteger j = 0; j < arr6.count - 1 - i; j++) {

//         

//            if ([[arr6 objectAtIndex:j] price] >[[arr6 objectAtIndex:j + 1] price] ) {

//                [arr6 exchangeObjectAtIndex:j withObjectAtIndex:j + 1];

//            }

//        }

//    }

//    for (NSInteger i = 0; i < arr6.count; i++) {

//        NSLog(@"%ld %@", [[arr6 objectAtIndex:i] price],[[arr6 objectAtIndex:i] name]);

//        

//    }

    //思考,oc的封装特性.实现这道题

    

    //值对象

    int a = 1;

    float b = 2.2;

    //int转对象类型

    NSNumber *c = [NSNumbernumberWithFloat:b];

    NSNumber *val =  [NSNumbernumberWithInt:a];

    NSLog(@"%@",c);

    

    NSLog(@"%@", val);

    //对象类型转int

    NSLog(@"%d", [valintValue]);

    //结构体/指针类型转对象类型

    NSRange range = {1,3};

    NSValue *val1 = [NSValuevalueWithRange:range];

    NSLog(@"%@", val1);

    //对象类型转结构体/指针类型

    NSRange ret = [val1 rangeValue];

    

    

    

    

    

    

    

    

    

    

    

    

    

    return 0;

}


0 0
原创粉丝点击