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

学生管理系统

学生管理系统中主要是用的是也是协议传值,在这之后也学习了通知传值,以及属性传值。

登陆注册

登录注册部分与3G share的登录注册部分被有太大的区别,主要是用的也是协议传值。

主界面

在这里插入图片描述
主界面包括:初始的学生数据信息,还有一些功能按钮。

添加按钮

添加界面要的判断是否会出现重复的学生。
在这里插入图片描述
并且判断班级和成绩的输入是否正确,如果不正确要给出提示,并且可以出现同名不同班的学生。
添加学生的方法如下:

- (void)addNode {
    if (self.textField0.text.length == 0 || self.textField1.text.length == 0 || self.textField2.text.length == 0) {
        [self unBlank];
    } else {
        if ([self.textField2.text intValue] < 0 || [self.textField2.text intValue] > 100) {
            UIAlertController* alertView = [UIAlertController alertControllerWithTitle: nil
            message:@"成绩错误"
            preferredStyle:UIAlertControllerStyleAlert];
            [self presentViewController: alertView animated:YES
                    completion:nil];
            [self performSelector: @selector(dismiss:) withObject: alertView afterDelay: 1.5];
            return;
        }
        if ([self.textField1.text isEqualToString:@"a班"] || [self.textField1.text isEqualToString:@"b班"] || [self.textField1.text isEqualToString:@"c班"] || [self.textField1.text isEqualToString:@"d班"]) {
            
            NSString* str = [NSString stringWithFormat: @"%@%@", self.textField0.text, self.textField1.text];
            if ([self.dictionary objectForKey: str] != nil) {
                UIAlertController* alertView = [UIAlertController alertControllerWithTitle: nil
                message:@"信息重复"
                preferredStyle:UIAlertControllerStyleAlert];
                [self presentViewController: alertView animated:YES
                        completion:nil];
//                [self performSelector: @selector(dismiss:) withObject: alertView afterDelay: 1.5];
            } else {
                Student* student = [[Student alloc] init];
                student.clas = self.textField1.text;
                student.nums = self.textField2.text;
                student.name = self.textField0.text;
                [self.dictionary setObject: student forKey: str];
                UIAlertController* alertView = [UIAlertController alertControllerWithTitle: nil
                message:@"添加成功"
                preferredStyle:UIAlertControllerStyleAlert];
                [self.tableView reloadData];
                [self presentViewController: alertView animated:YES
                        completion:nil];
                [self performSelector: @selector(dismiss:) withObject: alertView afterDelay: 1.5];
            }
            
        } else {
            UIAlertController* alertView = [UIAlertController alertControllerWithTitle: nil
            message:@"班级错误"
            preferredStyle:UIAlertControllerStyleAlert];
            [self presentViewController: alertView animated:YES
                    completion:nil];
            [self performSelector: @selector(dismiss:) withObject: alertView afterDelay: 1.5];
            return;
        }
    }
//    self.textField0.text = nil;
//    self.textField1.text = nil;
//    self.textField2.text = nil;
}

搜索按钮

因为存在同名不同班的同学所以通过学生的姓名以及学生的班级两个限制条件进行搜索。
已可以通过只搜索学生的姓名,把那些同名的学生都找出来。
在这里插入图片描述
如果没有存储该学生就会提示你查无此人。

在这里插入图片描述
搜索代码如下:

- (void)searchNode {
    if (self.textField0.text.length == 0 || self.textField1.text.length == 0) {
        [self unBlank];
    } else {
        NSString* str = [NSString stringWithFormat: @"%@%@", self.textField0.text, self.textField1.text];
        if ([self.dictionary objectForKey: str] == nil) {
            UIAlertController* alertView = [UIAlertController alertControllerWithTitle: nil
            message:@"查无此人"
            preferredStyle:UIAlertControllerStyleAlert];
            [self presentViewController: alertView animated:YES
                    completion:nil];
            [self performSelector: @selector(dismiss:) withObject: alertView afterDelay: 1.5];
        } else {
            Student* student = [self.dictionary objectForKey: str];
           if (self.textField2.text.length != 0 && ![student.nums isEqualToString: self.textField2.text]) {
                UIAlertController* alertView = [UIAlertController alertControllerWithTitle: nil
                message:@"查无此人"
                preferredStyle:UIAlertControllerStyleAlert];
                [self presentViewController: alertView animated:YES
                        completion:nil];
                [self performSelector: @selector(dismiss:) withObject: alertView afterDelay: 1.5];
            } else {
                NSString* ans = [NSString stringWithFormat: @"姓名:%@\n班级:%@\n成绩:%@", str, student.clas, student.nums];
                UIAlertController* alertView = [UIAlertController alertControllerWithTitle: nil
                message: ans
                preferredStyle:UIAlertControllerStyleAlert];
                [self presentViewController: alertView animated:YES
                        completion:nil];
                [self performSelector: @selector(dismiss:) withObject: alertView afterDelay: 3];
            }
            student.nums = self.textField2.text;
            [self.dictionary setObject: student forKey: str];
        }
    }
//    self.textField0.text = nil;
//    self.textField1.text = nil;
    //self.textField2.text = nil;
}

修改按钮

修改的实现首先的找到目标学生,对于目标学生,则需要先通过搜索来找到对应的学生,然后选择改变该学生的信息。
在这里插入图片描述
修改代码如下:

- (void)revisedNode {
    NSString* str = [NSString stringWithFormat: @"%@%@", self.textField0.text, self.textField1.text];
    if (![tmp isEqualToString: str] && [self.dictionary objectForKey: str] != nil) {
        UIAlertController* alertView = [UIAlertController alertControllerWithTitle: nil
        message:@"信息重复" preferredStyle:UIAlertControllerStyleAlert];
        [self presentViewController: alertView animated:YES
                completion:nil];
        [self performSelector: @selector(dismiss:) withObject: alertView afterDelay: 1.5];
        return;
    }
    if ([self.textField2.text intValue] < 0 || [self.textField2.text intValue] > 100) {
        UIAlertController* alertView = [UIAlertController alertControllerWithTitle: nil
        message:@"成绩错误" preferredStyle:UIAlertControllerStyleAlert];
        [self presentViewController: alertView animated:YES
                completion:nil];
        [self performSelector: @selector(dismiss:) withObject: alertView afterDelay: 1.5];
        return;
    }
    [self.dictionary removeObjectForKey: tmp];
    Student* student = [[Student alloc] init];
    student.clas = self.textField1.text;
    student.nums = self.textField2.text;
    student.name = self.textField0.text;
    [self.dictionary setObject: student forKey: str];
    UIAlertController* alertView = [UIAlertController alertControllerWithTitle: nil
    message:@"修改成功" preferredStyle:UIAlertControllerStyleAlert];
    [self.tableView reloadData];
    [self presentViewController: alertView animated:YES
            completion:nil];
//    [self performSelector: @selector(dismiss:) withObject: alertView afterDelay: 1.5];
}

排序按钮

主体思想是把数据全都存到字典中,然后使用c语言的冒泡排序进行排序。
在这里插入图片描述
上图就是排序完成后的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值