• 【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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    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];
        }
            
            
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55

    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;
                }
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    Sort- 排序

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

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

    总结在最后的

    • 暑期任务到现在已经进行了3周了,自我感觉变化挺大的,刚开始写一个小的界面都比较困哪,解决问题的路上一直在学习,希望暑假完能有一个大的提升!
    • 拒绝摆烂
    • 关于小司
  • 相关阅读:
    docker&kubernets篇(二十)
    linux使用apt命令下载软件和依赖包
    QGIS编译(跨平台编译)之五十:MacOS环境下安装Python、pyqt5、pyqt5-tools等
    玩转全球最大同性交友网站--- 开源社区GitHub
    【Paddle2ONNX】为 Paddle2ONNX 升级自适应ONNX IR Version功能
    CCC数字钥匙设计 --数字钥匙数据结构
    MySQL系列——集群复制方式及原理
    从我邮毕业啦!!!
    对游戏的底层逻辑发起改变的区块链
    电商商品的前后台类目设计思路,小本本记下来(提供获取京东淘宝商品类目信息API 免费测试)
  • 原文地址:https://blog.csdn.net/weixin_61639290/article/details/126135840