航班管理系统
某航空公司在其航班到达的不同的国家的不同地方设有不同的办事处,这个项目要求开发一个自动化软件系统,该系统将提供给这些办事处的管理者(role=1)和普通用户(role=0)用于管理航班信息。根据以上描述,要求实现系统的用户模块和办事处模块,包含以下功能(注:系统存在一个默认管理员admin/admin123):
具体实现功能
用户模块
- 注册
- 用户添加
- 密码修改
- 个人信息查看
- 账号状态修改(禁用0、启用1)
- 用户登录(被禁用账号无法登录并提示友好的消息)
- 修改用户角色(设置取消管理员)
- 用户列表
- 查询指定办事处的员工
- 删除用户
办事处模块
- 办事处添加
- 办事处列表
注意:管理员具备以上所有功能,普通用户只有密码修改和个人信息查看功能
项目实施
-
- 首先我们可以分析,航班管理系统分为不同的权限,不同地方设有不同的办事处可以设置为管理员模式即具备,用户添加、密码修改、个人信息查看、账号状态修改(禁用0、启用1)、用户列表的功能 ,删除用户
- 每个地方地方办事处员工为一般用户模式具备,密码修改、个人信息查看,功能。
- 系统权限,即可以实现所有操作,对各个办事处分配管理员,分配员工,查询指定办事处的员工,修改权限的功能
-
对于权限管理定义一个角色属性(role)用来标记不同用户登录登录,判断不同用户登录调用不同的方法来实现管理。
-
首先我们把 几个基本的类属性和构造方法定义出来
-
用户类(User)
-
用户管理类(UserManager)
-
办公室类(Office)
-
办公室管理类(OfficeManager)
-
功能类(UOlien)
用户类(User)
package 航班管理系统;
public class User {
private int uid;
private String username;
private String password;
private int age;
private int role;
private String email;
private int officeID;
private int status;public User(int uid, String username, String password, int age, int role, String email, int officeID, int status ) { this.uid = uid; this.username = username; this.password = password; this.age = age; this.role = role; this.email = email; this.officeID = officeID; this.status = status; } //set 、get 和重写toString()方法没写
}
用户管理类(UserManager)
public class UserManager {
ArrayList<User> list =new ArrayList<>();
public boolean addU(User u){//添加用户
return list.add(u);
}
public void editUpass(int id,String pass){//修改密码
findOne(id).setPassword(pass);
}
public User findOne(int id){//查找用户(个人信息查看)
for(User u: list){
if(u !=null &&u.getUid()==id){
return u;
}
}return null;
}
public ArrayList<User> findOfficeU(int oid){
ArrayList<User> listz =new ArrayList<>();
for(User u: list){
if(u !=null &&u.getOfficeID()==oid){
listz.add(u);
}
}return listz;
}
//账号状态修改(禁用0、启用1)
public void editSta(int id,int sta){
findOne(id).setStatus(sta);;
}
//修改用户角色(设置取消管理员)
public void editRo(int id,int role){
findOne(id).setRole(role);;
}
//用户列表
public ArrayList<User> listOut(){
return list;
}
public void delete(int id){
list.remove(findOne(id));
}
public User login(String name,String pass){
for(User u : list){
if(u !=null && u.getUsername().equals(name) && u.getPassword().equals(pass)){
return u;
}
continue;
}
return null;
}
}
办公室类(Office)
package 航班管理系统;
public class Office {
private int oid;
private String officeName;
public Office(int oid, String officeName) {
this.oid = oid;
this.officeName = officeName;
}
//set 、get 和重写toString()方法没写
}
办公室管理类(OfficeManager)
package 航班管理系统;
import java.util.ArrayList;
public class OfficeManager {
ArrayList<Office> list1 = new ArrayList<>();
public void add(Office o){
list1.add(o);
}
public ArrayList<Office> listOut1(){
return list1;
}
public Office findId(int id){
for(Office o : list1){
if (o !=null && o.getOid() == id) {
return o;
}
}
return null;
}
}
教师类TeacharManage
public class TeacherManage {
ArrayList tlist =new ArrayList();
int count=0;
public void addTheacher(Teacher t){
tlist.add(t);
count++;
}
public boolean tLogin(String tn ,String tp){
//验证教师登录
for (int i = 0; i < tlist.size(); i++) {
if (tlist.get(i) !=null && tlist.get(i) instanceof Teacher) {
Teacher t = (Teacher)tlist.get(i);
if (t.getTname().equals(tn) && t.getTpaddword().equals(tp)) {
return true;
} else {
return false;
}
}
}
return false;
}
public void listThreachar(){
for (int i = 0; i <tlist.size(); i++) {
if (tlist.get(i) != null && tlist.get(i) instanceof Teacher) {
Teacher t = (Teacher)tlist.get(i);
System.out.println(t.toString());
}
}
}
}
功能类(UOlien)
package 航班管理系统;
import java.util.Scanner;
public class UOlien {
UserManager um = new UserManager();
OfficeManager om = new OfficeManager();
Scanner sc = new Scanner(System.in);
public static User uR;
public void menu2(){ //系统提示界面
aaa("1. 用户添加\n"+
"2. 密码修改\n"+
"3. 个人信息查看\n"+
"4. 账号状态修改(禁用0、启用1)\n"+
"5. 修改用户角色(设置取消管理员)\n"+
"6. 用户列表\n"+
"7. 查询指定办事处的员工\n"+
"8. 删除用户\n"+
"9. 切换用户登录\n"+
"0. 退出\n");
start2();
}
public void menu0(){//普通用户提示界面
aaa(
"1. 密码修改\n"+
"2. 个人信息查看\n"+
"3. 切换用户登录\n"+
"0. 退出\n");
start0();
}
public void start0(){//普通用户调用功能模块
sc = new Scanner(System.in);
int key1=sc.nextInt();
switch (key1) {
case 1:
editRpass();
menu0();
break;
case 2:
listRone();
menu0();
break;
case 3:
loginR();
break;
case 0:
return;
}
}
public void menu1(){//管理员功能提示见面
aaa("1. 用户添加\n"+
"2. 密码修改\n"+
"3. 个人信息查看\n"+
"4. 账号状态修改(禁用0、启用1)\n"+
"5. 用户列表\n"+
"6. 删除用户\n"+
"7. 切换用户登录\n"+
"0. 退出\n");
start1();
}
public void start1(){//管理员调用功能模块
sc = new Scanner(System.in);
int key1=sc.nextInt();
switch (key1) {
case 1:
addR1();
menu1();
break;
case 2:
editRpass();
menu1();
break;
case 3:
listRone();
menu1();
break;
case 4:
editRsta1();
menu1();
break;
case 5:
listRout1();
menu1();
break;
case 6:
deleteR1();
menu1();
break;
case 7:
loginR();
break;
case 0:
return;
}
}
public void start2(){//系统调用功能模块
sc = new Scanner(System.in);
int key1=sc.nextInt();
switch (key1) {
case 1:
addR();
menu2();
break;
case 2:
editRpass();
menu2();
break;
case 3:
listRone();
menu2();
break;
case 4:
editRsta();
menu2();
break;
case 5:
esitRrole();
menu2();
break;
case 6:
listRout();
menu2();
break;
case 7:
findRone();
menu2();
break;
case 8:
deleteR();
menu2();
break;
case 9:
loginR();
break;
case 0:
return;
}
}
private void deleteR() {
sc = new Scanner(System.in);
aaa("请输入删除用户的id");
int id =sc.nextInt();
um.delete(id);
aaa("删除成功!");
}
private void deleteR1() {
sc = new Scanner(System.in);
aaa("请输入删除用户的id");
int id =sc.nextInt();
if(um.findOne(id).getRole()>=1 ){
aaa("权限不够,或状态填写错误!");
}else{
um.delete(id);
aaa("删除成功!");
}
}
private void findRone() {
sc = new Scanner(System.in);
aaa("办事处的id");
int oid =sc.nextInt();
aaa("id\t账号\t密码\t年龄\t角色\t邮箱\t办事处id\t账户状态");
for(User u :um.findOfficeU(oid)){
aaa(u);
}
}
private void listRout(int oid) {
aaa("id\t账号\t密码\t年龄\t角色\t邮箱\t办事处id\t账户状态");
for(User u :um.findOfficeU(oid)){
aaa(u);
}
}
private void listRout() {
aaa("id\t账号\t密码\t年龄\t角色\t邮箱\t办事处id\t账户状态");
for(User u:um.listOut()){
aaa(u);
}
}
private void listRout1() {
aaa("id\t账号\t密码\t年龄\t角色\t邮箱\t办事处id\t账户状态");
int h=uR.getOfficeID();
for(User u:um.listOut()){
if (u != null && u.getOfficeID()==h) {
aaa(u);
}
}
}
private void esitRrole() {
sc = new Scanner(System.in);
aaa("请输入用户的id");
int id =sc.nextInt();
aaa("修改后的权限0/1");
int ro =sc.nextInt();
um.editRo(id, ro);
aaa("修改成功!");
}
private void editRsta() {
sc = new Scanner(System.in);
aaa("请输入用户的id");
int id =sc.nextInt();
aaa("请输入修改后的状态 0/1");
int sta =sc.nextInt();
um.editSta(id, sta);
aaa("修改成功!");
}
private void editRsta1() {
sc = new Scanner(System.in);
aaa("请输入用户的id");
int id =sc.nextInt();
aaa("请输入修改后的状态 0/1");
int sta =sc.nextInt();
if(um.findOne(id).getRole()>1 || sta !=1 ||sta !=0 ){
aaa("权限不够,或状态填写错误!");
}else{
um.editSta(id, sta);
aaa("修改成功!");}
}
private void listRone() {
aaa("id\t年龄\t角色\t邮箱\t办事处id\t账户状态");
int r1=uR.getUid();
aaa(um.findOne(r1));
}
private void editRpass() {
sc = new Scanner(System.in);
aaa("请输入用户的id");
int id =sc.nextInt();
if(um.findOne(id).getRole()>1){
aaa("权限不够!");
}{
aaa("请输入修改后的密码");
Scanner sc1 = new Scanner(System.in);
String pass =sc1.nextLine();
um.editUpass(id, pass);
aaa("修改成功!");}
}
private void addR() {
aaa("id/账号/密码/年龄/角色/邮箱/办事处id/账户状态");
sc = new Scanner(System.in);
String s =sc.nextLine();
String [] info =s.split("/");
if(um.findOne(Integer.parseInt(info[0])) != null && om.findId(Integer.parseInt(info[7]))==null) {
aaa("用户已存在,或办事处id不存在!!!");
}else {
User u = new User(Integer.parseInt(info[0]),
info[1],
info[2],
Integer.parseInt(info[3]),
Integer.parseInt(info[4]),
info[5],
Integer.parseInt(info[6]),
Integer.parseInt(info[7])
);
if(um.addU(u)){
aaa("添加成功!");
}
}
}
private void addR1() {
aaa("id/账号/密码/年龄/邮箱/办事处id/账户状态");
sc = new Scanner(System.in);
String s =sc.nextLine();
String [] info =s.split("/");
if(um.findOne(Integer.parseInt(info[0])) != null && om.findId(Integer.parseInt(info[5]))==null) {
aaa("用户已存在,或办事处id不存在!!!");
}else {
User u = new User(Integer.parseInt(info[0]),
info[1],
info[2],
Integer.parseInt(info[3]),
0,
info[4],
Integer.parseInt(info[5]),
Integer.parseInt(info[6])
);
if(um.addU(u)){
aaa("添加成功!");
}
}
}
public void loginR(){
sc = new Scanner(System.in);
aaa("请输入用户名:");
String name =sc.nextLine();
aaa("请输入密码:");
String pass =sc.nextLine();
uR=um.login(name, pass);
if(uR==null){
aaa("密码错误,请从新输入!");
loginR();
}else{
int key2=uR.getRole();
switch (key2) {
case 2:
menu2();
break;
case 1:
menu1();
break;
case 0:
menu0();
break;
case -1:
break;
}
}
}
public void aaa(Object s){
System.out.println(s);
}
public static void main(String[] args) {
UOlien uo = new UOlien();
Office o1=new Office(101,"俄罗斯办事部");
Office o2=new Office(102,"美国办事部");
Office o3=new Office(103,"中国");
User u= new User(1,"admin","admin123",21,2,"8888",000,1);
User u1= new User(2,"aaa","aaa",21,1,"8888",101,1);//管理员
User u2= new User(3,"bbb","bbb",21,1,"8888",102,1);//普通用户
User u3= new User(4,"ccc","ccc",21,1,"8888",103,1);//普通用户
User u4= new User(5,"ddd","ddd",21,0,"8888",101,1);//普通用户
User u5= new User(3,"eee","eee",21,0,"8888",102,1);//普通用户
User u6= new User(3,"fff","fff",21,0,"8888",103,1);//普通用户
uo.um.addU(u);
uo.um.addU(u1);
uo.um.addU(u2);
uo.um.addU(u3);
uo.um.addU(u4);
uo.um.addU(u5);
uo.um.addU(u6);
uo.loginR();
// uo.menu2();
}
}
在这里我们的教师学生日报管理系统已经写完了~~!
来看看成果吧 ^ v ^!
成果展示
管理员模式
普通用户模式
管理员模式
系统模式将普通用户修改管理员
在这里分享结束感谢,看完!!!