博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 开发 OC编程 数组冒泡排序.图书管理
阅读量:6984 次
发布时间:2019-06-27

本文共 4273 字,大约阅读时间需要 14 分钟。

//

//  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 = [Student studentWithName:@"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 = [NSMutableArray arrayWithObjects:@"王宁", @"王博男", @"周瑜"@"魏冬冬", nil ];

    //常用便利构造器

    

   NSMutableArray *arr6 = [NSMutableArray array];

    //相当于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 = [NSNumber numberWithFloat:b];

    NSNumber *val =  [NSNumber numberWithInt:a];

    NSLog(@"%@",c);

    

    NSLog(@"%@", val);

    //对象类型转int

    NSLog(@"%d", [val intValue]);

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

    NSRange range = {1,3};

    NSValue *val1 = [NSValue valueWithRange:range];

    NSLog(@"%@", val1);

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

    NSRange ret = [val1 rangeValue];

    

    

    

    

    

    

    

    

    

    

    

    

    

    return 0;

}

转载于:https://www.cnblogs.com/yuhaojishuboke/p/5043122.html

你可能感兴趣的文章
iptables命令结构之命令
查看>>
RabbitMQ之Exchange分类
查看>>
综合布线系统的构成
查看>>
计算机硬件 — 计算机简介
查看>>
关于重写session实现的时候可能会导至nginx 502的问题
查看>>
7z(p7zip)压缩软件在Linux下的安装和使用
查看>>
jetbrick-template 1.1.0 发布,支持 #tag, #macro, layout
查看>>
TCP的六个控制位
查看>>
numpy库中的extend()函数使用
查看>>
进制转换
查看>>
我的友情链接
查看>>
新书上市:《FLUENT 14.0超级学习手册》
查看>>
mysql数据库query cache
查看>>
使用docker commit 来扩展一个image
查看>>
jsp 防止sql注入 之 preparestatement篇(转载)
查看>>
Linux之Ansible入门用法(实验解析)
查看>>
Linux系统如何在开机时修改root密码
查看>>
共济失调对我们的危害你知道吗
查看>>
Anychat的绝对路径与相对路径
查看>>
我的友情链接
查看>>