iOS 简单的学生管理系统(增删改查)

思路

  • 这个简单的学生管理系统学生信息只有姓名,班级,年龄
  • 我在app执行时加了个开始界面,在AppDelegate.m 中将根视图设为需要显示的开机界面即可
  • 首先写登陆注册界面,注册需要查重,并转到登陆界面时要传值,传值可看我的这篇博客
  • 进入app后显示学生信息及要进行的操作,跳转界面即可

难点

  • 因为学生信息是统一的,执行过程中涉及到很多传值问题,正传反传一定要清楚
  • 查找时可以按姓名查找,按班级查找,按年龄查找;也可按班级和年龄查找等两者自由组合,也可三个一起查找

代码

我在这里放了每个功能的代码,推荐大家只看一个理解了就不必再看了,多了也繁琐,不如自己尝试,绝知此事要躬行嘛

因为界面比较多,为了方便理解,效果图就放在各段代码的后面
GitHub地址:学生管理系统

开始界面的设置(根视图的修改):
在AppDelegate.m 中修改方法 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyWindow];
    
    ShowViewController *root = [[ShowViewController alloc] init];
    self.window.rootViewController = root;
    
    return YES;
}

然后在 ShowViewController.m 中:

#import "ShowViewController.h"
#import "LoadViewController.h"

@interface ShowViewController ()

@end

@implementation ShowViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    UILabel *label = [[UILabel alloc] init];
    [self.view addSubview:label];
    label.text = @"学生管理系统";
    label.textColor = [UIColor whiteColor];
    label.frame = CGRectMake(0, 210, 414, 40);
    label.textAlignment = NSTextAlignmentCenter;
    label.font = [UIFont systemFontOfSize:27];
    
    UILabel *label1 = [[UILabel alloc] init];
    [self.view addSubview:label1];
    label1.text = @"TAY的";
    label1.textColor = [UIColor whiteColor];
    label1.frame = CGRectMake(0, 150, 414, 40);
    label1.textAlignment = NSTextAlignmentCenter;
    label1.font = [UIFont systemFontOfSize:38];
    
    UILabel *label2 = [[UILabel alloc] init];
    [self.view addSubview:label2];
    label2.text = @"TangAoyang's Student Management System";
    label2.numberOfLines = 0;
    label2.font = [UIFont systemFontOfSize:20];
    label2.textColor = [UIColor whiteColor];
    label2.frame = CGRectMake(0, 260, [UIScreen mainScreen].bounds.size.width, 30);
    label2.textAlignment = NSTextAlignmentCenter;
    
    UIImage *zyyImage = [UIImage imageNamed:@"zyy.jpg"];
    UIImageView *zyyImageView = [[UIImageView alloc] initWithImage:zyyImage];
    zyyImageView.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height / 3, [UIScreen mainScreen].bounds.size.width, 280);
    [self.view addSubview:zyyImageView];
    
    self.view.backgroundColor = [UIColor blackColor];
    //两秒后执行函数
    //P1:需要执行的函数
    //P2:执行对象
    //P3:时间(单位是秒)
    [self performSelector:@selector(next) withObject:self afterDelay:2];

}

- (void)next {
    
    LoadViewController *root = [[LoadViewController alloc] init];
    self.view.window.rootViewController = root;
    
}

效果:(两秒后跳转到登陆界面)

iOS 简单的学生管理系统(增删改查)_第1张图片

正式进来后首先是登陆界面
在LoadViewController.h 中:

#import 
#import "RegisterViewController.h"

NS_ASSUME_NONNULL_BEGIN

@interface LoadViewController : UIViewController
<
UITextFieldDelegate,
RegisterViewControllerDelegate
>

@property UITextField *userTextField;
@property UITextField *passTextField;
@property UIButton *loadButton;
@property UIButton *registerButton;
@end

在 LoadViewController.m 中:

#import "LoadViewController.h"
#import "RegisterViewController.h"
#import "FirstViewController.h"

@interface LoadViewController ()
{
    NSString *userStr;
    NSString *passStr;
    NSMutableArray *userArr;
    NSMutableArray *passArr;
}

@end

@implementation LoadViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    UIImage *backgroundImage = [UIImage imageNamed:@"背景7.jpg"];
    UIImageView *backgroundImageView = [[UIImageView alloc] initWithImage:backgroundImage];
    backgroundImageView.frame = self.view.bounds;
    [self.view insertSubview:backgroundImageView atIndex:0];
    
    UIImage *lineImage = [UIImage imageNamed:@"竖线.png"];
    UIImageView *lineImageView = [[UIImageView alloc] initWithImage:lineImage];
    lineImageView.frame = CGRectMake(45, 10, 10, 30);
    
    UIImage *userImage = [UIImage imageNamed:@"用户.png"];
    UIImageView *userImageView = [[UIImageView alloc] initWithImage:userImage];
    userImageView.frame = CGRectMake(0, 0, 45, 45);
    
    UIView *user_View = [[UIView alloc] init];
    user_View.frame = CGRectMake(0, 0, 55, 50);
    [user_View addSubview:userImageView];
    [user_View addSubview:lineImageView];
    
    _userTextField = [[UITextField alloc] init];
    _userTextField.placeholder = @"请输入账号";
    _userTextField.textColor = [UIColor whiteColor];
    _userTextField.tintColor = [UIColor whiteColor];
    _userTextField.borderStyle = UITextBorderStyleLine;
    _userTextField.layer.masksToBounds = YES;
    _userTextField.layer.cornerRadius = 5;
    _userTextField.layer.borderWidth = 2;
    _userTextField.layer.borderColor = [UIColor whiteColor].CGColor;
    _userTextField.backgroundColor = [UIColor clearColor];
    [self.view addSubview:_userTextField];
    _userTextField.delegate = self;
    _userTextField.frame = CGRectMake(50, 370, 320, 55);
    _userTextField.keyboardType = UIKeyboardTypeDefault;
    _userTextField.leftViewMode = UITextFieldViewModeAlways;
    _userTextField.leftView = user_View;
    
    UIImageView *lineImageView2 = [[UIImageView alloc] initWithImage:lineImage];
    lineImageView2.frame = CGRectMake(45, 10, 10, 30);
    
    UIImage *passImage = [UIImage imageNamed:@"密码.png"];
    UIImageView *passImageView = [[UIImageView alloc] initWithImage:passImage];
    passImageView.frame = CGRectMake(0, 0, 45, 45);
    
    UIView *pass_View = [[UIView alloc] init];
    pass_View.frame = CGRectMake(0, 0, 55, 50);
    [pass_View addSubview:passImageView];
    [pass_View addSubview:lineImageView2];
    
    _passTextField = [[UITextField alloc] init];
    _passTextField.tintColor = [UIColor whiteColor];
    _passTextField.textColor = [UIColor whiteColor];
    _passTextField.placeholder = @"请输入密码";
    _passTextField.borderStyle = UITextBorderStyleRoundedRect;
    _passTextField.layer.masksToBounds = YES;
    _passTextField.layer.cornerRadius = 5;
    _passTextField.layer.borderWidth = 2;
    _passTextField.layer.borderColor = [UIColor whiteColor].CGColor;
    [self.view addSubview:_passTextField];
    _passTextField.backgroundColor = [UIColor clearColor];
    _passTextField.delegate = self;
    _passTextField.frame = CGRectMake(50, 450, 320, 55);
    _passTextField.keyboardType = UIKeyboardTypeDefault;
    _passTextField.secureTextEntry = YES;
    _passTextField.leftViewMode = UITextFieldViewModeAlways;
    _passTextField.leftView = pass_View;
    
    _loadButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    _loadButton.frame = CGRectMake(80, 525, 100, 35);
    _loadButton.titleLabel.font = [UIFont systemFontOfSize:23];
    [_loadButton setTitle:@"登陆" forState:UIControlStateNormal];
    [_loadButton addTarget:self action:@selector(pressLoad) forControlEvents:UIControlEventTouchDown];
    [self.view addSubview:_loadButton];
    _loadButton.tintColor = [UIColor whiteColor];
    
    _registerButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [self.view addSubview:_registerButton];
    _registerButton.frame = CGRectMake(235, 525, 100, 35);
    _registerButton.titleLabel.font = [UIFont systemFontOfSize:23];
    _registerButton.tintColor = [UIColor whiteColor];
    [_registerButton setTitle:@"注册" forState:UIControlStateNormal];
    [_registerButton addTarget:self action:@selector(pressRegister) forControlEvents:UIControlEventTouchDown];
    
    userArr = [[NSMutableArray alloc] init];
    [userArr addObject:@"111"];
    [userArr addObject:@"222"];
    [userArr addObject:@"333"];
    [userArr addObject:@"444"];
    passArr = [[NSMutableArray alloc] init];
    [passArr addObject:@"aaa"];
    [passArr addObject:@"sss"];
    [passArr addObject:@"ddd"];
    [passArr addObject:@"fff"];
    
}

- (void)pressLoad{
    
    int i ;
    for(i = 0; i < userArr.count; i++) {
        if([_userTextField.text isEqualToString:userArr[i]] && [_passTextField.text isEqualToString:passArr[i]]) {
            FirstViewController *firstRoot = [[FirstViewController alloc] init];
            self.view.window.rootViewController = firstRoot;
        }
    }
    if(i == userArr.count){
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"警告" message:@"账号与密码不匹配!" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"sure" style:UIAlertActionStyleCancel handler:nil];
        [alert addAction:sureAction];
        [self presentViewController:alert animated:NO completion:nil];
    }
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [self.view endEditing:YES];
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    if(textField == _userTextField) {
        [_passTextField becomeFirstResponder];
    }
    if(textField == _passTextField) {
        [textField resignFirstResponder];
    }
    return YES;
    
}

- (void)pressRegister{
    
    RegisterViewController *registerViewController = [[RegisterViewController alloc] init];
    //反传的代理
    registerViewController.regiserViewControllerDelegate = self;
    //利用属性正传
    registerViewController.RuserArr = userArr;
    registerViewController.RpassArr = passArr;
    [self presentViewController:registerViewController animated:NO completion:nil];
    
}
//协议方法
- (void)pass1:(NSString *)str1 pass2:(NSString *)str2 {
    
    _userTextField.text = str1;
    _passTextField.text = str2;
    
}

登陆界面显示效果图:
iOS 简单的学生管理系统(增删改查)_第2张图片
密码与账号不匹配的警告:
iOS 简单的学生管理系统(增删改查)_第3张图片
下来是注册界面(注册完后返回登陆在登陆框上显示,如果有重复的账号显示提示框,并且未成功注册)
在 RegisterViewController.h 中:

#import 

NS_ASSUME_NONNULL_BEGIN

@protocol RegisterViewControllerDelegate 

- (void)pass1:(NSString *)str1 pass2:(NSString *)str2;

@end

@interface RegisterViewController : UIViewController
<
UITextFieldDelegate
>

@property (nonatomic, weak) id  regiserViewControllerDelegate;

@property UITextField *messTextField;
@property UITextField *userTextField;
@property UITextField *passTextField;
@property NSMutableArray *RuserArr;
@property NSMutableArray *RpassArr;


@end

在 RegisterViewController.m 中:

#import "RegisterViewController.h"

@interface RegisterViewController (){
    NSArray *numArr;
    NSArray *nameArr;
}

@end

@implementation RegisterViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    UIImage *backgroundImage = [UIImage imageNamed:@"背景7.jpg"];
    UIImageView *backgroundImageView = [[UIImageView alloc] initWithImage:backgroundImage];
    backgroundImageView.frame = self.view.bounds;
    [self.view insertSubview:backgroundImageView atIndex:0];
    
    UIImage *messImage = [UIImage imageNamed:@"邮箱.png"];
    UIImageView *messImageView = [[UIImageView alloc] initWithImage:messImage];
    messImageView.frame = CGRectMake(5, 0, 40, 40);
    UIImage *lineImage = [UIImage imageNamed:@"竖线.png"];
    UIImageView *lineImageView = [[UIImageView alloc] initWithImage:lineImage];
    lineImageView.frame = CGRectMake(45, 10, 10, 30);
    UIView *mess_View = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 55, 50)];
    [mess_View addSubview:lineImageView];
    [mess_View addSubview:messImageView];
    
    _messTextField = [[UITextField alloc] init];
    [self.view addSubview:_messTextField];
    _messTextField.delegate = self;
    _messTextField.tintColor = [UIColor whiteColor];
    _messTextField.textColor = [UIColor whiteColor];
    _messTextField.placeholder = @"请输入你的邮箱";
    _messTextField.layer.masksToBounds = YES;
    _messTextField.layer.cornerRadius = 5;
    _messTextField.layer.borderWidth = 2;
    _messTextField.frame = CGRectMake(50, 300, 300, 55);
    _messTextField.borderStyle = UITextBorderStyleRoundedRect;
    _messTextField.layer.borderColor = [UIColor whiteColor].CGColor;
    _messTextField.backgroundColor = [UIColor clearColor];
    _messTextField.leftViewMode = UITextFieldViewModeAlways;
    _messTextField.leftView = mess_View;
    
    UIImage *userImage = [UIImage imageNamed:@"用户.png"];
    UIImageView *userImageView = [[UIImageView alloc] initWithImage:userImage];
    userImageView.frame = CGRectMake(5, 0, 40, 40);
    UIImageView *lineView2 = [[UIImageView alloc] initWithImage:lineImage];
    lineView2.frame = CGRectMake(45, 10, 10, 30);
    UIView *user_View = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 55, 50)];
    [user_View addSubview:lineView2];
    [user_View addSubview:userImageView];
    
    _userTextField = [[UITextField alloc] init];
    [self.view addSubview:_userTextField];
    _userTextField.delegate = self;
    _userTextField.tintColor = [UIColor whiteColor];
    _userTextField.textColor = [UIColor whiteColor];
    _userTextField.placeholder = @"请输入账号";
    _userTextField.backgroundColor = [UIColor clearColor];
    _userTextField.frame = CGRectMake(50, 375, 300, 55);
    _userTextField.borderStyle = UITextBorderStyleRoundedRect;
    _userTextField.layer.masksToBounds = YES;
    _userTextField.layer.cornerRadius = 5;
    _userTextField.layer.borderWidth = 2;
    _userTextField.layer.borderColor = [UIColor whiteColor].CGColor;
    _userTextField.leftViewMode = UITextFieldViewModeAlways;
    _userTextField.leftView = user_View;
    
    UIImage *passImage = [UIImage imageNamed:@"密码.png"];
    UIImageView *passImageView = [[UIImageView alloc] initWithImage:passImage];
    passImageView.frame = CGRectMake(5, 0, 40, 40);
    UIImageView *lineImageView3 = [[UIImageView alloc] initWithImage:lineImage];
    lineImageView3.frame = CGRectMake(45, 10, 10, 30);
    UIView *pass_View = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 55, 50)];
    [pass_View addSubview:passImageView];
    [pass_View addSubview:lineImageView3];
    
    _passTextField = [[UITextField alloc] init];
    [self.view addSubview:_passTextField];
    _passTextField.delegate = self;
    _passTextField.secureTextEntry = YES;
    _passTextField.tintColor = [UIColor whiteColor];
    _passTextField.textColor = [UIColor whiteColor];
    _passTextField.placeholder = @"请输入密码";
    _passTextField.keyboardType = UIKeyboardTypeDefault;
    _passTextField.layer.masksToBounds = YES;
    _passTextField.layer.cornerRadius = 5;
    _passTextField.layer.borderWidth = 2;
    _passTextField.backgroundColor = [UIColor clearColor];
    _passTextField.frame = CGRectMake(50, 450, 300, 55);
    _passTextField.borderStyle = UITextBorderStyleRoundedRect;
    _passTextField.layer.borderColor = [UIColor whiteColor].CGColor;
    _passTextField.leftViewMode = UITextFieldViewModeAlways;
    _passTextField.leftView = pass_View;
    
    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [self.view addSubview:button];
    [button setTitle:@"返回登陆" forState:UIControlStateNormal];
    button.titleLabel.font = [UIFont systemFontOfSize:23];
    button.tintColor = [UIColor whiteColor];
    button.layer.backgroundColor = [UIColor clearColor].CGColor;
    button.frame = CGRectMake(195, 530, 100, 50);
    [button addTarget:self action:@selector(pressBtn) forControlEvents:UIControlEventTouchDown];
    
    UIButton *Rbutton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [self.view addSubview:Rbutton];
    [Rbutton setTitle:@"注册" forState:UIControlStateNormal];
    Rbutton.titleLabel.font = [UIFont systemFontOfSize:23];
    Rbutton.tintColor = [UIColor whiteColor];
    Rbutton.layer.backgroundColor = [UIColor clearColor].CGColor;
    Rbutton.frame = CGRectMake(85, 530, 100, 50);
    [Rbutton addTarget:self action:@selector(pressRBtn) forControlEvents:UIControlEventTouchDown];
    
    
}

- (void)pressBtn{
    
    [self.view endEditing:YES];
    [self dismissViewControllerAnimated:NO completion:nil];
    //代理返回值
    if([_regiserViewControllerDelegate respondsToSelector:@selector(pass1:pass2:)]) {
        [_regiserViewControllerDelegate pass1:_userTextField.text pass2:_passTextField.text];
    }
    
}

- (void)pressRBtn{
    
    int i;
    //查重
    for(i = 0; i < _RuserArr.count; i++){
        if([_userTextField.text isEqualToString:_RuserArr[i]]){
            UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"警告" message:@"账号重复!" preferredStyle:UIAlertControllerStyleAlert];
            UIAlertAction *sure = [UIAlertAction actionWithTitle:@"sure" style:UIAlertActionStyleCancel handler:nil];
            [alert addAction:sure];
            [self presentViewController:alert animated:NO completion:nil];
            break;
        }
    }
    //如果没有重复
    if(i == _RuserArr.count){
        UIAlertController *alert1 = [UIAlertController alertControllerWithTitle:@"提示" message:@"注册成功,请重新登录!" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *sure1 = [UIAlertAction actionWithTitle:@"sure" style:UIAlertActionStyleCancel handler:nil];
        [alert1 addAction:sure1];
        [self presentViewController:alert1 animated:NO completion:nil];
        [_RuserArr addObject:_userTextField.text];
        [_RpassArr addObject:_passTextField.text];
    }
}
//按return键进入下一个textField
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    
    if(textField == _messTextField) {
        [_userTextField becomeFirstResponder];
    }
    if(textField == _userTextField){
        [_passTextField becomeFirstResponder];
    }
    if(textField == _passTextField){
        [textField resignFirstResponder];
    }
    
    return YES;
    
}
//点击空白处键盘回收
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    
    [_messTextField endEditing:YES];
    [_passTextField endEditing:YES];
    [_userTextField endEditing:YES];
    
}

注册效果图:
iOS 简单的学生管理系统(增删改查)_第4张图片
输入重复账号的警告:
iOS 简单的学生管理系统(增删改查)_第5张图片
下来就要正式进入app啦!
在这里,我定义一个储存信息的类 Student 来存学生信息(为了方便起见)
在 Student.h 中:

#import 

NS_ASSUME_NONNULL_BEGIN

@interface Student : NSObject

@property NSString *nameStr;
@property NSString *classStr;
@property NSString *ageStr;

@end

增删改都自定义了协议(为了反传值),查不需要传值,故没有协议
进入后首页:
在 FirstViewController.h 中:

#import 
#import "AddViewController.h"
#import "DeleteViewController.h"
#import "ChangeViewController.h"
#import "Student.h"

NS_ASSUME_NONNULL_BEGIN

@class Student;
@interface FirstViewController : UIViewController
<
//增加的协议
addDelegate,
//删除的协议
DeleteDelegate,
//修改的协议
ChangeDelegate,
UITableViewDelegate,
UITableViewDataSource
>

@property UITableView *tableView;
@property NSMutableArray *nameArr;
@property NSMutableArray *ageArr;
@property NSMutableArray *classArr;
@property NSMutableArray *stuArr;

@end

在 FirstViewController.m 中:

#import "FirstViewController.h"
#import "FirstTableViewCell.h"
#import "AddViewController.h"
#import "DeleteViewController.h"
#import "ChangeViewController.h"
#import "FindViewController.h"
#import "Student.h"

@interface FirstViewController ()

@end

@implementation FirstViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    UIImage *backImage = [UIImage imageNamed:@"背景10.jpg"];
    UIImageView *backImageView = [[UIImageView alloc] initWithImage:backImage];
    backImageView.frame = self.view.bounds;
    [self.view insertSubview:backImageView atIndex:0];
    
    _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 100, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 500) style:UITableViewStylePlain];
    [self.view addSubview:_tableView];
    _tableView.dataSource = self;
    _tableView.delegate = self;
    _tableView.backgroundColor = [UIColor clearColor];
    _tableView.tableFooterView = [[UIView alloc] init];
    [_tableView registerClass:[FirstTableViewCell class] forCellReuseIdentifier:@"111"];
    
    UIButton *addButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [self.view addSubview:addButton];
    addButton.frame = CGRectMake(100, 570, 100, 50);
    [addButton setTitle:@"add" forState:UIControlStateNormal];
    addButton.tintColor = [UIColor whiteColor];
    addButton.titleLabel.font = [UIFont systemFontOfSize:30];
    [addButton addTarget:self action:@selector(add) forControlEvents:UIControlEventTouchDown];
    
    UIButton *deleteButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [self.view addSubview:deleteButton];
    deleteButton.frame = CGRectMake(250, 570, 100, 50);
    [deleteButton setTitle:@"delete" forState:UIControlStateNormal];
    deleteButton.tintColor = [UIColor whiteColor];
    deleteButton.titleLabel.font = [UIFont systemFontOfSize:30];
    [deleteButton addTarget:self action:@selector(delete) forControlEvents:UIControlEventTouchDown];
    
    UIButton *changeButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [self.view addSubview:changeButton];
    changeButton.frame = CGRectMake(100, 640, 100, 50);
    [changeButton setTitle:@"change" forState:UIControlStateNormal];
    changeButton.tintColor = [UIColor whiteColor];
    changeButton.titleLabel.font = [UIFont systemFontOfSize:30];
    [changeButton addTarget:self action:@selector(change) forControlEvents:UIControlEventTouchDown];
    
    UIButton *findButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [self.view addSubview:findButton];
    findButton.frame = CGRectMake(250, 640, 100, 50);
    [findButton setTitle:@"find" forState:UIControlStateNormal];
    findButton.tintColor = [UIColor whiteColor];
    findButton.titleLabel.font = [UIFont systemFontOfSize:30];
    [findButton addTarget:self action:@selector(find) forControlEvents:UIControlEventTouchDown];
    
    UIButton *exitButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [self.view addSubview:exitButton];
    exitButton.frame = CGRectMake(250, 730, 100, 50);
    [exitButton setTitle:@"exit" forState:UIControlStateNormal];
    exitButton.tintColor = [UIColor whiteColor];
    exitButton.titleLabel.font = [UIFont systemFontOfSize:30];
    [exitButton addTarget:self action:@selector(exit) forControlEvents:UIControlEventTouchDown];
    
    
    _nameArr = [[NSMutableArray alloc] init];
    [_nameArr addObject:@"张三"];
    [_nameArr addObject:@"李四"];
    [_nameArr addObject:@"王麻子"];
    [_nameArr addObject:@"hahaha"];
    
    _ageArr = [[NSMutableArray alloc ]init];
    [_ageArr addObject:@"38"];
    [_ageArr addObject:@"250"];
    [_ageArr addObject:@"2"];
    [_ageArr addObject:@"123"];
    
    _classArr = [[NSMutableArray alloc] init];
    [_classArr addObject:@"a班"];
    [_classArr addObject:@"b班"];
    [_classArr addObject:@"c班"];
    [_classArr addObject:@"d班"];
    
    
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    
    FirstTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"111" forIndexPath:indexPath];
    
    [cell give:indexPath Arr1:_nameArr Arr2:_ageArr Arr3:_classArr];
    
    return cell;
    
}
//退出
- (void)exit{
    exit(0);
}
//tableView的行数根据学生数目来设
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return _nameArr.count;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return 70;
}
//增加的点击事件
//这四个方法基本相同
- (void)add {
    
    AddViewController *addRoot = [[AddViewController alloc] init];
    //正传
    addRoot.nameArr = _nameArr;
    addRoot.ageArr = _ageArr;
    addRoot.classArr = _classArr;
    //反传的代理
    addRoot.addDelegate = self;
    [self presentViewController:addRoot animated:NO completion:nil];
    
}
//删除的点击事件
- (void)delete {
    
    DeleteViewController *deleteRoot = [[DeleteViewController alloc] init];
    deleteRoot.nameArr = _nameArr;
    deleteRoot.ageArr = _ageArr;
    deleteRoot.classArr = _classArr;
    deleteRoot.deleteDelegate = self;
    [self presentViewController:deleteRoot animated:NO completion:nil];
    
}
//修改的点击事件
- (void)change{
    
    ChangeViewController *changeRoot = [[ChangeViewController alloc] init];
    changeRoot.nameArr = _nameArr;
    changeRoot.ageArr = _ageArr;
    changeRoot.classArr = _classArr;
    changeRoot.changeDelegate = self;
    [self presentViewController:changeRoot animated:NO completion:nil];
    
}
//查找的点击事件
- (void)find{
    
    FindViewController *findRoot = [[FindViewController alloc] init];
    findRoot.nameArr = _nameArr;
    findRoot.ageArr = _ageArr;
    findRoot.classArr = _classArr;
    [self presentViewController:findRoot animated:NO completion:nil];
    
}
//增加的代理方法
- (void)pass:(Student *)student {
    
    [_nameArr addObject:student.nameStr];
    [_ageArr addObject:student.ageStr];
    [_classArr addObject:student.classStr];
    [_tableView reloadData];
    
}
//删除的代理方法
- (void)deletepass1:(NSMutableArray *)nameArr pass2:(NSMutableArray *)ageArr pass3:(NSMutableArray *)classArr{
    
    _nameArr = nameArr;
    _ageArr = ageArr;
    _classArr = classArr;
    [_tableView reloadData];
    
}
//修改的代理方法
- (void)changePass1:(NSMutableArray *)nameArr Pass2:(NSMutableArray *)ageArr Pass3:(NSMutableArray *)classArr{
    
    _nameArr = nameArr;
    _ageArr = ageArr;
    _classArr = classArr;
    [_tableView reloadData];
    
}
//点击单元格不显示
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    [tableView deselectRowAtIndexPath:indexPath animated:NO];
}

tableview的cell:
在 FirstTableViewCell.h 中:

#import 

NS_ASSUME_NONNULL_BEGIN

@interface FirstTableViewCell : UITableViewCell

@property UILabel *nameLabel;
@property UILabel *classLabel;
@property UILabel *ageLabel;

- (void)give:(NSIndexPath *)indexPath Arr1:(NSMutableArray *)nameArr Arr2:(NSMutableArray *)ageArr Arr3:(NSMutableArray *)classArr;

@end

NS_ASSUME_NONNULL_END

在 FirstTableViewCell.m 中:

#import "FirstTableViewCell.h"

@implementation FirstTableViewCell
//为了方便,代码封装
- (void)give:(NSIndexPath *)indexPath Arr1:(NSMutableArray *)nameArr Arr2:(NSMutableArray *)ageArr Arr3:(NSMutableArray *)classArr {
    self.nameLabel.text = nameArr[indexPath.row];
    self.ageLabel.text = ageArr[indexPath.row];
    self.classLabel.text = classArr[indexPath.row];
    self.backgroundColor = [UIColor clearColor];
}

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
    
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    
    _nameLabel = [[UILabel alloc] init];
    [self.contentView addSubview:_nameLabel];
    
    _classLabel = [[UILabel alloc] init];
    [self.contentView addSubview:_classLabel];
    
    _ageLabel = [[UILabel alloc] init];
    [self.contentView addSubview:_ageLabel];
    
    return self;
    
}

- (void)layoutSubviews {
    
    [super layoutSubviews];
    
    _nameLabel.frame = CGRectMake(5, 25, 100, 20);
    _nameLabel.font = [UIFont systemFontOfSize:20];
    _nameLabel.textAlignment = NSTextAlignmentCenter;
    _nameLabel.textColor = [UIColor whiteColor];
    
    _classLabel.frame = CGRectMake(120, 25, 150, 20);
    _classLabel.font = [UIFont systemFontOfSize:20];
    _classLabel.textAlignment = NSTextAlignmentCenter;
    _classLabel.textColor = [UIColor whiteColor];
    
    _ageLabel.frame = CGRectMake(300, 25, 50, 20);
    _ageLabel.font = [UIFont systemFontOfSize:20];
    _ageLabel.textAlignment = NSTextAlignmentCenter;
    _ageLabel.textColor = [UIColor whiteColor];
    
}

- (void)awakeFromNib {
    [super awakeFromNib];
    // Initialization code
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}

效果图:
iOS 简单的学生管理系统(增删改查)_第6张图片
增加:(具有查重,并且输入不能为空)
在 AddViewController.h 中:

#import 
#import "Student.h"

NS_ASSUME_NONNULL_BEGIN
@class Student;
@protocol addDelegate 

- (void)pass: (Student *)student;

@end

@interface AddViewController : UIViewController
<
UITableViewDelegate,
UITableViewDataSource
>

@property UITextField *nameTextField;
@property UITextField *classTextField;
@property UITextField *ageTextField;
@property NSMutableArray *nameArr;
@property NSMutableArray *ageArr;
@property NSMutableArray *classArr;
@property UITableView *tableView;
@property id  addDelegate;

@end

在 AddViewController.m 中:

#import "AddViewController.h"
#import "FirstTableViewCell.h"

@interface AddViewController ()

@end

@implementation AddViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    UIImage *backImage = [UIImage imageNamed:@"背景13.jpg"];
    UIImageView *backImageView = [[UIImageView alloc] initWithImage:backImage];
    backImageView.frame = self.view.bounds;
    [self.view insertSubview:backImageView atIndex:0];
    
    UIImage *nameImage = [UIImage imageNamed:@"姓名.png"];
    UIImageView *nameImageView = [[UIImageView alloc] initWithImage:nameImage];
    nameImageView.frame = CGRectMake(3, 3, 45, 45);
    _nameTextField = [[UITextField alloc] init];
    _nameTextField.layer.masksToBounds = YES;
    _nameTextField.layer.cornerRadius = 5;
    _nameTextField.layer.borderWidth = 2;
    _nameTextField.layer.borderColor = [UIColor whiteColor].CGColor;
    _nameTextField.tintColor = [UIColor whiteColor];
    _nameTextField.textColor = [UIColor whiteColor];
    _nameTextField.backgroundColor = [UIColor clearColor];
    _nameTextField.frame = CGRectMake(80, 500, 250, 50);
    _nameTextField.placeholder = @"请输入学生姓名";
    _nameTextField.leftViewMode = UITextFieldViewModeAlways;
    _nameTextField.leftView = nameImageView;
    [self.view addSubview:_nameTextField];
    
    UIImage *ageImage = [UIImage imageNamed:@"年龄.png"];
    UIImageView *ageImageView = [[UIImageView alloc] initWithImage:ageImage];
    ageImageView.frame = CGRectMake(3, 3, 45, 45);
    _ageTextField = [[UITextField alloc] initWithFrame:CGRectMake(80, 565, 250, 50)];
    [self.view addSubview:_ageTextField];
    _ageTextField.placeholder = @"请输入学生年龄";
    _ageTextField.layer.masksToBounds = YES;
    _ageTextField.layer.borderWidth = 2;
    _ageTextField.layer.cornerRadius = 5;
    _ageTextField.tintColor = [UIColor whiteColor];
    _ageTextField.textColor = [UIColor whiteColor];
    _ageTextField.backgroundColor = [UIColor clearColor];
    _ageTextField.layer.borderColor = [UIColor whiteColor].CGColor;
    _ageTextField.leftViewMode = UITextFieldViewModeAlways;
    _ageTextField.leftView = ageImageView;
    
    UIImage *classImage = [UIImage imageNamed:@"房子.png"];
    UIImageView *classImageView = [[UIImageView alloc] initWithImage:classImage];
    classImageView.frame = CGRectMake(3, 3, 45, 45);
    _classTextField = [[UITextField alloc] initWithFrame:CGRectMake(80, 630, 250, 50)];
    [self.view addSubview:_classTextField];
    _classTextField.placeholder = @"请输入学生班级";
    _classTextField.layer.masksToBounds = YES;
    _classTextField.layer.borderWidth = 2;
    _classTextField.layer.cornerRadius = 5;
    _classTextField.tintColor = [UIColor whiteColor];
    _classTextField.textColor = [UIColor whiteColor];
    _classTextField.backgroundColor = [UIColor clearColor];
    _classTextField.layer.borderColor = [UIColor whiteColor].CGColor;
    _classTextField.leftViewMode = UITextFieldViewModeAlways;
    _classTextField.leftView = classImageView;
    
    UIButton *add = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [self.view addSubview:add];
    add.frame = CGRectMake(110, 700, 80, 30);
    add.titleLabel.font = [UIFont systemFontOfSize:25];
    [add setTitle:@"完成" forState:UIControlStateNormal];
    add.backgroundColor = [UIColor clearColor];
    add.tintColor = [UIColor whiteColor];
    [add addTarget:self action:@selector(add) forControlEvents:UIControlEventTouchDown];
    
    UIButton *back = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [self.view addSubview:back];
    back.frame = CGRectMake(250, 700, 80, 30);
    back.titleLabel.font = [UIFont systemFontOfSize:25];
    [back setTitle:@"返回" forState:UIControlStateNormal];
    back.backgroundColor = [UIColor clearColor];
    back.tintColor = [UIColor blackColor];
    [back addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchDown];
    
    _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 100, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height / 2 - 100) style:UITableViewStylePlain];
    [self.view addSubview:_tableView];
    _tableView.dataSource = self;
    _tableView.delegate = self;
    _tableView.backgroundColor = [UIColor clearColor];
    _tableView.tableFooterView = [[UIView alloc] init];
    [_tableView registerClass:[FirstTableViewCell class] forCellReuseIdentifier:@"111"];
    
    //键盘上移
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
    
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    
    FirstTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"111" forIndexPath:indexPath];
    [cell give:indexPath Arr1:_nameArr Arr2:_ageArr Arr3:_classArr];
    return cell;
    
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return _nameArr.count;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return 70;
}

- (void)add{
    //判断输入是否有空的
    if(_ageTextField.text.length <= 0 || _nameTextField.text.length <= 0 || _classTextField.text.length <= 0){
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:@"输入不能为空!" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *sure = [UIAlertAction actionWithTitle:@"sure" style:UIAlertActionStyleCancel handler:nil];
        [alert addAction:sure];
        [self presentViewController:alert animated:NO completion:nil];
    } else {
        int i;
        //查重
        for(i = 0; i< _nameArr.count; i++){
            if([_nameArr[i] isEqualToString:_nameTextField.text]){
                break;
            }
        }
        if(i != _nameArr.count){
            UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:@"姓名有重复,请核对后再试!" preferredStyle:UIAlertControllerStyleAlert];
            UIAlertAction *sure = [UIAlertAction actionWithTitle:@"sure" style:UIAlertActionStyleCancel handler:nil];
            [alert addAction:sure];
            [self presentViewController:alert animated:NO completion:nil];
        }
        if(i == _nameArr.count){
            [self dismissViewControllerAnimated:NO completion:nil];
            if([_addDelegate respondsToSelector:@selector(pass:)]) {
                Student *stu = [[Student alloc] init];
                stu.nameStr = _nameTextField.text;
                stu.ageStr = _ageTextField.text;
                stu.classStr = _classTextField.text;
                [_addDelegate pass:stu];
            }
        }
    }
}

- (void)back {
    [self dismissViewControllerAnimated:NO completion:nil];
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    [_nameTextField endEditing:YES];
    [_ageTextField endEditing:YES];
    [_classTextField endEditing:YES];
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    
    if(textField == _nameTextField) {
        [_ageTextField becomeFirstResponder];
    }
    if(textField == _ageTextField){
        [_classTextField becomeFirstResponder];
    }
    if(textField == _classTextField){
        [textField resignFirstResponder];
    }
    
    return YES;
    
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    [tableView deselectRowAtIndexPath:indexPath animated:NO];
}

-(void)keyboardWillShow : (NSNotification *)notify {
    CGFloat kbHeight = [[notify.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size.height;
    CGFloat offset = kbHeight - 100;
    
    double duration = [[notify.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
    
    if (offset > 0) {
        [UIView animateWithDuration:duration animations:^{
            self.view.frame = CGRectMake(0.0f, -offset, self.view.frame.size.width, self.view.frame.size.height);
        }];
    }
}

-(void)keyboardWillHide: (NSNotification *)notify {
    double duration = [[notify.userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey] doubleValue];
    [UIView animateWithDuration:duration animations:^{
        self.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
    }];
}
-(void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
}

增加界面效果图:
iOS 简单的学生管理系统(增删改查)_第7张图片
查重:
iOS 简单的学生管理系统(增删改查)_第8张图片
判空:
iOS 简单的学生管理系统(增删改查)_第9张图片
删除界面:(可判断是否存在该学生)
在 DeleteViewController.h 中:

#import 
#import "Student.h"

NS_ASSUME_NONNULL_BEGIN
@class Student;
@protocol DeleteDelegate 

- (void)deletepass1:(NSMutableArray *)nameArr pass2:(NSMutableArray *)ageArr pass3:(NSMutableArray *)classArr;

@end
@interface DeleteViewController : UIViewController
<
UITableViewDataSource,
UITableViewDelegate
>

@property UITextField *nameTextField;
@property UITableView *tableView;
@property NSMutableArray *nameArr;
@property NSMutableArray *ageArr;
@property NSMutableArray *classArr;
@property id  deleteDelegate;

@end

增删改查大同小异,下面三个我只放执行的核心代码了
在 DeleteViewController.m 中:

- (void)delete{
	//判断是否存在
    for(i = 0; i < _nameArr.count; i++){
        if([_nameArr[i] isEqualToString:_nameTextField.text]){
            UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:@"已找到此人,确认是否删除" preferredStyle:UIAlertControllerStyleAlert];
            UIAlertAction *sure = [UIAlertAction actionWithTitle:@"sure" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action){
                [self delete2];
            }];
            UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"cancel" style:UIAlertActionStyleCancel handler:nil];
            [alert addAction:sure];
            [alert addAction:cancel];
            [self presentViewController:alert animated:NO completion:nil];
            break;
        }
    }
    //不存在
    if(i == _nameArr.count) {
        UIAlertController *alert1 = [UIAlertController alertControllerWithTitle:@"提示" message:@"没找到此人,请确认是否输入正确" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *sure1 = [UIAlertAction actionWithTitle:@"sure" style:UIAlertActionStyleDefault handler:nil];
        [alert1 addAction:sure1];
        [self presentViewController:alert1 animated:NO completion:nil];
    }
    
}
 //删除操作
- (void)delete2{
    [_nameArr removeObjectAtIndex:i];
    [_ageArr removeObjectAtIndex:i];
    [_classArr removeObjectAtIndex:i];
    [self dismissViewControllerAnimated:NO completion:nil];
    if([_deleteDelegate respondsToSelector:@selector(deletepass1:pass2:pass3:)]){
        [_deleteDelegate deletepass1:_nameArr pass2:_ageArr pass3:_classArr];
    }
}

删除界面:
iOS 简单的学生管理系统(增删改查)_第10张图片
判断是否存在:
iOS 简单的学生管理系统(增删改查)_第11张图片
若存在操作:
iOS 简单的学生管理系统(增删改查)_第12张图片
删除后返回主界面:
iOS 简单的学生管理系统(增删改查)_第13张图片
修改:
因为修改需要先判断是否存在若存在再弹出输入修改信息的textField,故为了美观,我分为两个界面来写:

注意:在跳转到第二个界面时,第二个界面的nameTextField上的值应为第一个界面输入的值,且无法编辑。因为用户是使用该学生进入的,无法对别的学生进行操作

在 ChangeViewController.h 中:

#import 
#import "ChangeSonViewController.h"

NS_ASSUME_NONNULL_BEGIN
@protocol ChangeDelegate 

- (void)changePass1:(NSMutableArray *)nameArr Pass2:(NSMutableArray *)ageArr Pass3:(NSMutableArray *)classArr;

@end

@interface ChangeViewController : UIViewController
<
ChangeSonDelegate,
UITableViewDataSource,
UITableViewDelegate
>

@property UITextField *nameTextField;
@property UITableView *tableView;
@property NSMutableArray *nameArr;
@property NSMutableArray *ageArr;
@property NSMutableArray *classArr;
@property id  changeDelegate;

@end

在 ChangeViewController.m 中:
逻辑依旧是先判断是否存在,然后进行操作

- (void)change{
    
    int i;
    for(i = 0; i < _nameArr.count; i++){
        if([_nameArr[i] isEqualToString:_nameTextField.text]){
            break;
        }
    }
    if(i != _nameArr.count){
        UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:@"存在此人,是否继续修改" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *sure = [UIAlertAction actionWithTitle:@"sure" style:UIAlertActionStyleCancel handler:^(UIAlertAction *_Nonnull action){
            ChangeSonViewController *sonRoot = [[ChangeSonViewController alloc] init];
            sonRoot.nameArr = self->_nameArr;
            sonRoot.ageArr = self->_ageArr;
            sonRoot.classArr = self->_classArr;
            sonRoot.str = self->_nameTextField.text;
            sonRoot.changeSonDelegate = self;
            [self presentViewController:sonRoot animated:NO completion:nil];
        }];
        UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"cancel" style:UIAlertActionStyleDefault handler:nil];
        [alert addAction:cancel];
        [alert addAction:sure];
        [self presentViewController:alert animated:NO completion:nil];
    }
    if(i == _nameArr.count){
        UIAlertController *alert1 = [UIAlertController alertControllerWithTitle:@"提示" message:@"没找到此人,请确认是否输入正确" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *sure1 = [UIAlertAction actionWithTitle:@"sure" style:UIAlertActionStyleDefault handler:nil];
        [alert1 addAction:sure1];
        [self presentViewController:alert1 animated:NO completion:nil];
    }
}

判断有无效果图:
iOS 简单的学生管理系统(增删改查)_第14张图片
若存在,则跳转下一个界面:
iOS 简单的学生管理系统(增删改查)_第15张图片
在 ChangeSonViewController.h 中:

#import 

NS_ASSUME_NONNULL_BEGIN
@protocol ChangeSonDelegate 

- (void)changeSonPass1:(NSMutableArray *)nameArr Pass2:(NSMutableArray *)ageArr Pass3:(NSMutableArray *)classArr;

@end

@interface ChangeSonViewController : UIViewController
<
UITextFieldDelegate
>

@property UITextField *nameTextField;
@property UITextField *classTextField;
@property UITextField *ageTextField;
@property NSMutableArray *nameArr;
@property NSMutableArray *ageArr;
@property NSMutableArray *classArr;
@property NSString *str;
@property id  changeSonDelegate;

@end

在 ChangeSonViewController.m 中:
需要有三个textField

- (void)change{
    //找到该学生,将修改后的值赋给他
    int i;
    for(i = 0; i < _nameArr.count; i++){
        if([_nameArr[i] isEqualToString:_str]){
            [_ageArr replaceObjectAtIndex:i withObject:_ageTextField.text];
            [_classArr replaceObjectAtIndex:i withObject:_classTextField.text];
        }
    }
    if([_changeSonDelegate respondsToSelector:@selector(changeSonPass1:Pass2:Pass3:)]){
        [_changeSonDelegate changeSonPass1:_nameArr Pass2:_ageArr Pass3:_classArr];
    }
    [self dismissViewControllerAnimated:NO completion:nil];
}

效果图:
此处我将李四的信息修改:
iOS 简单的学生管理系统(增删改查)_第16张图片
点击完成:
iOS 简单的学生管理系统(增删改查)_第17张图片
修改成功!

最后是查找:
同样,因为要将找到的学生单独显示出来,我新建了一个界面,使用跳转

在 FindViewController.h 中:

#import 

NS_ASSUME_NONNULL_BEGIN
@interface FindViewController : UIViewController
<
UITableViewDataSource,
UITableViewDelegate
>

@property UITextField *nameTextField;
@property UITableView *tableView;
@property UITextField *classTextField;
@property UITextField *ageTextField;
@property NSMutableArray *nameArr;
@property NSMutableArray *ageArr;
@property NSMutableArray *classArr;
@property NSMutableArray *snameArr;
@property NSMutableArray *sageArr;
@property NSMutableArray *sclassArr;

@end

在 FindViewController.m 中:

- (void)find{
    
    _snameArr = [[NSMutableArray alloc] init];
    _sageArr = [[NSMutableArray alloc] init];
    _sclassArr = [[NSMutableArray alloc] init];
    BOOL find = NO;
    int i = 0;
    int j;
    int t;
    if((_nameTextField.text.length > 0) && (_ageTextField.text.length <= 0) && (_classTextField.text.length <= 0)){
        for(i = 0; i < _nameArr.count; i++){
            if([_nameArr[i] isEqualToString:_nameTextField.text]){
                find = YES;
                [_snameArr addObject:_nameArr[i]];
                [_sageArr addObject:_ageArr[i]];
                [_sclassArr addObject:_classArr[i]];
            }
        }
        if(find == NO) {
            UIAlertController *alert1 = [UIAlertController alertControllerWithTitle:@"提示"   message:@"没找到此人,请确认是否输入正确" preferredStyle:UIAlertControllerStyleAlert];
            UIAlertAction *sure1 = [UIAlertAction actionWithTitle:@"sure" style:UIAlertActionStyleDefault handler:nil];
            [alert1 addAction:sure1];
            [self presentViewController:alert1 animated:NO completion:nil];
        }
    }
    
    if((_ageTextField.text.length > 0) && (_nameTextField.text.length <= 0) && (_classTextField.text.length <= 0)){
        for(j = 0; j < _ageArr.count; j++){
            if([_ageArr[j] isEqualToString:_ageTextField.text]){
                find = YES;
                [_snameArr addObject:_nameArr[j]];
                [_sageArr addObject:_ageArr[j]];
                [_sclassArr addObject:_classArr[j]];
            }
        }
        if(find == NO) {
            UIAlertController *alert1 = [UIAlertController alertControllerWithTitle:@"提示" message:@"没找到此人,请确认是否输入正确" preferredStyle:UIAlertControllerStyleAlert];
            UIAlertAction *sure1 = [UIAlertAction actionWithTitle:@"sure" style:UIAlertActionStyleDefault handler:nil];
            [alert1 addAction:sure1];
            [self presentViewController:alert1 animated:NO completion:nil];
        }
    }
    
    if((_classTextField.text.length > 0) && (_ageTextField.text.length <= 0) && (_nameTextField.text.length <= 0)){
        for(t = 0; t < _classArr.count; t++){
            if([_classArr[t] isEqualToString:_classTextField.text]){
                find = YES;
                [_snameArr addObject:_nameArr[t]];
                [_sageArr addObject:_ageArr[t]];
                [_sclassArr addObject:_classArr[t]];
            }
        }
        if(find == NO) {
            UIAlertController *alert1 = [UIAlertController alertControllerWithTitle:@"提示" message:@"没找到此人,请确认是否输入正确" preferredStyle:UIAlertControllerStyleAlert];
            UIAlertAction *sure1 = [UIAlertAction actionWithTitle:@"sure" style:UIAlertActionStyleDefault handler:nil];
            [alert1 addAction:sure1];
            [self presentViewController:alert1 animated:NO completion:nil];
        }
    }
    if((_nameTextField.text.length > 0) && (_ageTextField.text.length > 0) && (_classTextField.text.length <= 0)){
        for(i = 0; i < _nameArr.count; i++){
            if([_nameArr[i] isEqualToString:_nameTextField.text] && [_ageArr[i] isEqualToString:_ageTextField.text]){
                find = YES;
                [_snameArr addObject:_nameArr[i]];
                [_sageArr addObject:_ageArr[i]];
                [_sclassArr addObject:_classArr[i]];
            }
        }
        if(find == NO) {
            UIAlertController *alert1 = [UIAlertController alertControllerWithTitle:@"提示"   message:@"没找到此人,请确认是否输入正确" preferredStyle:UIAlertControllerStyleAlert];
            UIAlertAction *sure1 = [UIAlertAction actionWithTitle:@"sure" style:UIAlertActionStyleDefault handler:nil];
            [alert1 addAction:sure1];
            [self presentViewController:alert1 animated:NO completion:nil];
        }
    }
    if((_nameTextField.text.length > 0) && (_classTextField.text.length > 0) && (_ageTextField.text.length <= 0)){
        for(i = 0; i < _nameArr.count; i++){
            if([_nameArr[i] isEqualToString:_nameTextField.text] && [_classArr[i] isEqualToString:_classTextField.text]){
                find = YES;
                [_snameArr addObject:_nameArr[i]];
                [_sageArr addObject:_ageArr[i]];
                [_sclassArr addObject:_classArr[i]];
            }
        }
        if(find == NO) {
            UIAlertController *alert1 = [UIAlertController alertControllerWithTitle:@"提示"   message:@"没找到此人,请确认是否输入正确" preferredStyle:UIAlertControllerStyleAlert];
            UIAlertAction *sure1 = [UIAlertAction actionWithTitle:@"sure" style:UIAlertActionStyleDefault handler:nil];
            [alert1 addAction:sure1];
            [self presentViewController:alert1 animated:NO completion:nil];
        }
    }
    if((_classTextField.text.length > 0) && (_ageTextField.text.length > 0) && (_nameTextField.text.length <= 0)){
        for(i = 0; i < _nameArr.count; i++){
            if([_classArr[i] isEqualToString:_classTextField.text] && [_ageArr[i] isEqualToString:_ageTextField.text]){
                find = YES;
                [_snameArr addObject:_nameArr[i]];
                [_sageArr addObject:_ageArr[i]];
                [_sclassArr addObject:_classArr[i]];
            }
        }
        if(find == NO) {
            UIAlertController *alert1 = [UIAlertController alertControllerWithTitle:@"提示"   message:@"没找到此人,请确认是否输入正确" preferredStyle:UIAlertControllerStyleAlert];
            UIAlertAction *sure1 = [UIAlertAction actionWithTitle:@"sure" style:UIAlertActionStyleDefault handler:nil];
            [alert1 addAction:sure1];
            [self presentViewController:alert1 animated:NO completion:nil];
        }
    }
    if((_nameTextField.text.length > 0) && (_classTextField.text.length > 0) && (_ageTextField.text.length > 0)){
        for(i = 0; i < _nameArr.count; i++){
            if([_nameArr[i] isEqualToString:_nameTextField.text] && [_classArr[i] isEqualToString:_classTextField.text] && [_ageArr[i] isEqualToString:_ageTextField.text]){
                find = YES;
                [_snameArr addObject:_nameArr[i]];
                [_sageArr addObject:_ageArr[i]];
                [_sclassArr addObject:_classArr[i]];
            }
        }
        if(find == NO) {
            UIAlertController *alert1 = [UIAlertController alertControllerWithTitle:@"提示"   message:@"没找到此人,请确认是否输入正确" preferredStyle:UIAlertControllerStyleAlert];
            UIAlertAction *sure1 = [UIAlertAction actionWithTitle:@"sure" style:UIAlertActionStyleDefault handler:nil];
            [alert1 addAction:sure1];
            [self presentViewController:alert1 animated:NO completion:nil];
        }
    }
    if(find == YES){
        FindSonViewController *sonRoot = [[FindSonViewController alloc] init];
        sonRoot.nameArr = _snameArr;
        sonRoot.ageArr = _sageArr;
        sonRoot.classArr = _sclassArr;
        [self presentViewController:sonRoot animated:NO completion:nil];
    }
}

查询效果:
iOS 简单的学生管理系统(增删改查)_第18张图片
若存在,则直接跳转界面:
在 FindSonViewController.h 中:

#import 

NS_ASSUME_NONNULL_BEGIN

@interface FindSonViewController : UIViewController
<
UITableViewDelegate,
UITableViewDataSource
>

@property UILabel *label1;
@property UITableView *tableView;
@property NSMutableArray *nameArr;
@property NSMutableArray *ageArr;
@property NSMutableArray *classArr;

@end

在 FindSonViewController.m 中:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    UIImage *backImage = [UIImage imageNamed:@"背景17.jpg"];
    UIImageView *backImageView = [[UIImageView alloc] initWithImage:backImage];
    backImageView.frame = self.view.bounds;
    [self.view insertSubview:backImageView atIndex:0];
    
    UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(60, 200, 300, 50)];
    label1.textColor = [UIColor whiteColor];
    label1.tintColor = [UIColor clearColor];
    label1.font = [UIFont systemFontOfSize:28];
    label1.text = @"您查找的学生信息为:";
    [self.view addSubview:label1];
    
    _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 290, [UIScreen mainScreen].bounds.size.width, 550) style:UITableViewStylePlain];
    [self.view addSubview:_tableView];
    _tableView.backgroundColor = [UIColor clearColor];
    _tableView.delegate = self;
    _tableView.dataSource = self;
    _tableView.tableFooterView = [[UIView alloc] init];
    [_tableView registerClass:[FindSonTableViewCell class] forCellReuseIdentifier:@"111"];
    
    
    UIButton *back = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    back.frame = CGRectMake(180, 570, 200, 50);
    [self.view addSubview:back];
    [back setTitle:@"back" forState:UIControlStateNormal];
    back.titleLabel.font = [UIFont systemFontOfSize:25];
    back.tintColor = [UIColor whiteColor];
    back.backgroundColor = [UIColor clearColor];
    [back addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchDown];
    
}

使用tableView显示,在这里我强迫症,新建了一个cell,其实cell是和 FirstViewController 里 ableview 的cell一样,可用同一个,在这里就不再写了
找到后的界面:
iOS 简单的学生管理系统(增删改查)_第19张图片
如果有重复班级之内的:
iOS 简单的学生管理系统(增删改查)_第20张图片
这样,一个简单的学生管理系统就完啦

你可能感兴趣的:(iOS)