题目
某航空公司在其航班到达的不同的国家的不同地方设有不同的办事处,这个项目要求开发一个自动化软件系
统,该系统将提供给这些办事处的管理者(role=1)和普通用户(role=0)用于管理航班信息。根据以上描述,要
求实现系统的用户模块和办事处模块,包含以下功能(注:系统存在一个默认管理员admin/admin123):
User类
先建立一个User类,使用shift+ Alt+s 添加构造方法,getters,setters和重写toString()。
Office类
然后再创建一个Office类,使用shift+Alt+s,同上。
MySystem类
这个类里面需要写出我们需要的功能模块,功能模块用一个个方法来完成。
在这个类的最开始,先创建需要的属性和构造方法
如果我来使用这个系统的话,最开始要做的事情肯定是先登录,所以我先写一个登录模块。
而这个时候我遇到了一个问题,我首先需要得到保存在本地的用户的信息,才能验证账户密码等信息。
而要得到本地的用户信息,首先得需要创建一个文件来保存本地的用户信息,所以先创建一个user.txt文件。
方法代码如下:
因为是第一次读取本地文件,所以需要创建一个默认账户,并把此账户信息写入本地文件user.txt
所以代码中有一个writeUserToLocal()方法来把用户信息写入本地,此方法代码为
然后把readUserFromLocal()方法丢到构造方法中,以便在创建类对象的时候就读取本地信息
login() 登录模块
可以看到密码验证正确后,调用了一个printMenu()方法,这个方法用来打印菜单,因为用户包括管理员和普通用户(role=1为管理员,role=0为普通用户),而管理员和普通用户拥有的权限是不同的,所以需要根据role的值来判断是管理员还是普通用户,于是printMenu()需要传入一个参数role
方法代码如下:
可以看到代码最后调用了一个selectOfMenu()方法,这个方法用来选择使用什么功能,因为普通用户和管理员能使用的功能是不同的,所以需要传入一个role参数来区分管理员和普通用户
代码如下:
方法体中的注释下面是被调用的各种方法,而这些方法·····我都还没写,先摸了
___________________________________________________________________________________-
摸完了,来补档
这次稍微改善了一些代码,比如login()方法里调用的printMenu()方法,将参数改了一下,从user.getRole改成了user,因为后面需要用到user对象的其他属性,只有role一个属性不能满足我的需求。顺便给login()加了个判断账号是否被封禁的语句
代码如下
对打印菜单的界面也做了点修改,使其更符合对称美学,不想之前那样长长的一条······
代码如下
效果如下
接下来发一下各个方法的代码:
selectOfMenu()方法 选择功能模块
这是各个方法都补完之后的代码
添加用户模块
这里的重点是判断用户账号是否重复,如果重复则不能注册,还是用for循环遍历加if判断的方法解决。
修改密码模块
修改密码要判断两次,一次是原密码是否正确,第二次是判断两次输入的新密码是否一致
查看个人信息模块和修改用户状态模块
查看个人信息就一条代码就行了,写的最爽的模块,用户的状态就是账号是否被禁用,修改用户的状态首先要根据id找到被修改用户,还是用for循环遍历。
修改用户角色模块和查看用户列表模块
修改用户角色和查看用户列表模块和上面两个功能大致相同,代码也差不多
删除用户模块
同上
办事处添加模块和显示办事处列表模块
办事处添加和用户添加差不多,办事处列表要分别显示每个办事处下的所有员工
查询指定办事处的所有员工
和用户列表差不多
构造方法
方法写完后,把所有读取方法都丢到构造方法中,login()方法也丢进去,记得把login()方法丢在所有读取方法的下面,不然会出现空值异常
实际效果
emmmm就这样吧