【iOS第三周总结】- UI学生管理系统

前言

  • 本周内容比较简单,这个学生信息管理系统的话还是倾向于协议传值的应用,在之后也学习了BLock传值,通知传值。KVO传值等iOS基础

学生管理系统

  • 要求不多 仅仅是姓名班级和成绩,我准备了3个数组来存储这些内容

请添加图片描述

关于登陆

主界面

请添加图片描述

add Message -添加

  • 对于添加信息,首先要注意的是重名不重班级的判断方法,如果2个人重名但是不重班级需要加以判断来正确添加
  • 思路:设定Bool值 先找对应的名字,一旦找到判别班级是否重复,重复则弹出已存在该学生
    • 请添加图片描述
  • 相关判断代码
- (void)pressAdd {
    int bool1 = 0;
    int bool2 = 1;
    NSString* name = _nameText.text;
    NSString* class = _classText.text;
    NSString* mark = _markText.text;
    int x = [mark intValue];
    if ([name isEqualToString:@""] || [class isEqualToString:@""] || [mark isEqualToString:@""] || x > 150 || x < 0) {
        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"警告" message:@"输入错误!" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *sure = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil];
        [alertController addAction:sure];
        [self presentViewController:alertController animated:YES completion:nil];
        _nameText.text = nil;
        _classText.text = nil;
        _markText.text = nil;
        bool2 = 0;
    }
    for (int i = 0; i < _array1.count; i ++) {
        if ([class isEqualToString: _array2[i]]) {
            if ([name isEqualToString:_array1[i]]) {
                bool1 = 1;
                break;
            }
        }
    }
    if (bool1 == 1) {
        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"警告" message:@"该班级已存在该学生" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *sure = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil];
        [alertController addAction:sure];
        [self presentViewController:alertController animated:YES completion:nil];
    } else if (bool2 == 1 && bool1 == 0){
        [_array1 addObject:name];
        [_array2 addObject:class];
        [_array3 addObject:mark];
        [_delegate addMessage:_array1 :_array2 :_array3];
        [self dismissViewControllerAnimated:YES completion:nil];
//        [self.navigationController popViewControllerAnimated:YES];
//        FristViewController* v1 = [[FristViewController alloc] init];
//        [self. navigationController pushViewController:v1 animated:YES];
    }
    _nameText.text = nil;
    _classText.text = nil;
    _markText.text = nil;
}

find Message 查询

  • 主要在于存在重名的人如何查询,我的思路是把重名的人的索引存到一个数组,然后在大数组里进行读取索引打印赋值给label

请添加图片描述

  • 相关代码
- (void)pressFind {
    int bool1 = 0;
    NSString* name = _nameText.text;
//    NSString* class = _classText.text;
    if ([name isEqualToString:@""]) {
        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"警告" message:@"输入不能为空!" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *sure = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil];
        [alertController addAction:sure];
        [self presentViewController:alertController animated:YES completion:nil];
    }
    int i;
    _array = [[NSMutableArray alloc] init];
    for (i = 0; i < _array1.count; i ++) {
//        if ([class isEqualToString: _array2[i]]) {
            if ([name isEqualToString:_array1[i]]) {
                bool1 = 1;
//                break;
                NSString* str = [NSString stringWithFormat:@"%d", i];
                [_array addObject:str];
            }
//        }
    }
    NSLog(@"count %ld", _array.count);
    if (bool1 == 1) {
        for (int j = 1; j < _array.count + 1; j ++) {
            int intStr = [_array[j - 1] intValue];
            UILabel* nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 70 * j, 100, 40)];
            nameLabel.text = _array1[intStr];
            nameLabel.textColor = [UIColor whiteColor];
            nameLabel.font = [UIFont systemFontOfSize:21];
            [self.view addSubview:nameLabel];
            
            UILabel* classLabel = [[UILabel alloc] initWithFrame:CGRectMake(150, 70 * j, 100, 40)];
            classLabel.text = _array2[intStr];
            classLabel.textColor = [UIColor whiteColor];
            classLabel.font = [UIFont systemFontOfSize:21];
            [self.view addSubview:classLabel];
            
            UILabel* markLabel = [[UILabel alloc] initWithFrame:CGRectMake(240, 70 * j, 100, 40)];
            markLabel.text = _array3[intStr];
            markLabel.textColor = [UIColor whiteColor];
            markLabel.font = [UIFont systemFontOfSize:21];
            [self.view addSubview:markLabel];
        」
        _nameText.text = nil;
        _classText.text = nil;
    } else {
        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"警告" message:@"查询驳回,检查输入是否有误" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *sure = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil];
        [alertControl}er addAction:sure];
        [self presentViewController:alertController animated:YES completion:nil];
    }
        
        
}

change Message-修改

  • 修改得先找到该学生,之后再进行修改,修改的思路是修改班级和成绩,即用OC数组改变某一元素的函数即可
    请添加图片描述
  • 相关代码
- (void)pressChange {
    int bool1 = 0;
    NSString* name = _nameText.text;
    if ([name isEqualToString:@""]) {
        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"警告" message:@"输入不能为空!" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *sure = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil];
        [alertController addAction:sure];
        [self presentViewController:alertController animated:YES completion:nil];
    }
    int i;
    for (i = 0; i < _array1.count; i ++) {
        if ([name isEqualToString: _array1[i]]) {
            if ([name isEqualToString:_array1[i]]) {
                bool1 = 1;
                break;
            }
        }
    }

Sort- 排序

  • 这里的思路比较简单,刚开始我一直在纠结OC自带的排序那种才能用,后来其实借鉴了C语言学生管理系统的思路,直接冒泡排序,然后三个数组的索引是一样的,都一交换即可完成排序请添加图片描述
    请添加图片描述
    请添加图片描述

  • 相关代码较简单不与展示

总结在最后的

  • 学会了协议传值
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值