美文网首页
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