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


    //

    //  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;

    }


  • 相关阅读:
    RHEL6.5安装QT5.4,设置环境变量
    Oprofile安装与使用探索
    龙芯3A上V8的编译与测试
    C#穿透session隔离———Windows服务启动UI交互程序 be
    C#获取CPU与网卡硬盘序列号及Base64和DES加密解密操作类 be
    C#读取Excel转换为DataTable be
    WPF DataGrid ScrollBar Style be
    C#操作注册表 be
    C#读取Excel转为DataTable be
    C# DataTable与Excel读取与导出 be
  • 原文地址:https://www.cnblogs.com/yuhaojishuboke/p/5043122.html
Copyright © 2020-2023  润新知