美文网首页
iOS开发图书管理系统的实现(OC阶段)

iOS开发图书管理系统的实现(OC阶段)

作者: 西西哈哈 | 来源:发表于2016-03-26 20:41 被阅读535次

    通过C. OC实现图书管理系统(要求如下)

    1、使用数组管理所有书籍。

    2、数组可以添加、删除(按照书名)。

    3、可以从数组根据书名查找书籍,并修改书籍的价格。

    4、可以输入价格区间[a, b],根据价格区间查找书籍。

    5、展示所有书籍清单(书名)。

    思路引导:通过题目要求我们可以先建一个空的数组用来存放书籍,为了操作方便,我们首先定义一个菜单栏,逐步完成每一道程序,很容易我们会想到switch语句,将题目中的要求分别放在每一个case中.(注意每个case中以C语言输入的字符串要转换成OC中的字符串.)显而易见,整个程序界面的建立一直在循环使用,所以要在程序的最外边加一层while循环.如下是解题过程:

    @autoreleasepool {                           //自动释放池

    NSMutableArray *array = [NSMutableArray array];   //创建可变数组用于存放书籍

    NSInteger a = 1;

    while ((a = 1)) {                //外层循环

    //建立菜单

    printf("/---------------------------------/\n");

    printf("/--------------菜单----------------/\n");

    printf("/------------1.添加----------------/\n");

    printf("/------------2.删除----------------/\n");

    printf("/------------3.查看----------------/\n");            

    printf("/------------4.按名字查找书籍并改价格-/\n");

    printf("/-------------5.按价格查找书籍-------/\n");

    printf("/------------0.退出---------------/\n");

    printf("/---------------------------------/\n");

    NSInteger number = 0;

    printf("请输入您想要的操作:");               

    scanf("%ld", &number);     

                                             //定义一个number用于case

    switch (number) {

    case 1:{

    //添加书籍:

    printf("请输入一本书的信息:");

    char name[40];  //名字                           

    CGFloat price;  //价格

    scanf("%s%lf", name, &price);                             //输入一本书的的信息

    NSString *sc_name = [NSString stringWithUTF8String:name]; //将C中的字符串转换

    //一本书的信息:

    Book *book = [Book BookWithName:sc_name Price:price];

    //放到建好的存放书籍的数组中:

    [array addObject:book];

    }

    break;

    case 2:{

     //删除书籍:

    char name[40];

    printf("请输入你想删除的书的名字:");

    scanf("%s", name);

    NSString *sc_name = [NSString stringWithUTF8String:name];

    NSMutableArray *tempArray = [NSMutableArray array];    //创建临时数组存放想要删除         的书籍:

    for (Book *book in array) {                        //for in遍历数组找出想要删除的书籍

    if ([book.name isEqualToString:sc_name]) {

    [tempArray addObject:book];               //将找到的书籍存在先前定义的临时数组中

    }

    }

    [array removeObjectsInArray:tempArray];       //在书籍数组array中删除tempArray

    }

    break;

    case 3:{                                                             //时刻关注数组中元素动态

    //遍历书籍数组并输出:

    for (Book *book in array) {

    NSLog(@"%@---%lf", book.name, book.price);

    }

    }

    break;

    case 4:{

    //按照书名修改价格:

    printf("请输入您想改价格的书名:");

    char name[50];

    scanf("%s", name);                      

    NSString *sc_name = [NSString stringWithUTF8String:name];

    NSInteger flag = 0;                                           //定义一个循环的标记

    for (Book *book in array) {                                 //遍历查找该书籍:

    if ([book.name isEqualToString:sc_name]) {

    printf("请输入新的价格:");

    CGFloat newPrice = 0;                                    //定义一个新书的价格

    scanf("%lf", &newPrice);

    book.price = newPrice;

    flag = 1;

    }

    }

    if (flag == 0) {

    printf("非常抱歉,你想更换价格的书不存在");

    }

    }

    break;

    case 5:{

    //按照价格区间查找书籍:

    printf("请输入您想要查找的价格区间:");

    NSInteger a = 0;

    NSInteger b = 0;

    scanf("%ld%ld", &a, &b);

    NSInteger flag1 = 0;

    //定义一个新的数组用来存放查找到的书籍:

    NSMutableArray *array2 = [NSMutableArray array];

    //遍历存放书籍的数组:

    for (Book *book in array) {

    if (a <= book.price && b >= book.price) {          //遍历并找到价格在定义区间内的书

    [array2 addObject:book];                                   //将符合条件的书籍全部放到数组中

    flag1 = 1;

    NSLog(@"在这个价格区间的书名是:%@", book.name);

    }

    }

    if (flag1 == 0) {

    printf("抱歉 ,没有这个价位区间的书籍");

    }

    }

    break;

    case 0:{

    printf("谢谢您的使用!");

    a = 0;                                                  //结束while循环

    }

    break;                                                     

    default:printf("您输入的操作不存在");

    break;

    }

    }

    }

    相关文章

      网友评论

          本文标题:iOS开发图书管理系统的实现(OC阶段)

          本文链接:https://www.haomeiwen.com/subject/qpbdlttx.html