项目开发团队分配管理软件
前言
(项目开发团队分配管理软件)是一个对于初学JAVA者来说是一个简单的开发项目,大致流程就是如图所示:
看完以上的系统的功能以及流程图后相信就有了基本的思路了,接下来就是我的代码以及功能实现的演示。
用户注册和登陆
首先先创建一个person类,这是用来作为ArrayList<>中<>里面的数据类型,相当于ArrayList存储的就是每一个类。
package Teamdevelopment.logic;
public class person {
private String name;
private String password;
public person(){};
public person(String name, String password) {
this.name = name;
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
先判断是否有账户,如果没有的话就必须先注册,注册完之后才能登陆刚才注册的账户,并且只有6次输入错误的机会,如果机会都用完的话就直接退出整个系统,得再次重启系统才能进行刚才的流程。(注意:这整个用户注册登陆以及判断是否有账户都是用ArrayList来存储,还有后面的所有数据的操作都会涉及到ArrayList。)代码如下:
package Teamdevelopment.logic;
import Teamdevelopment.domain.Add;
import Teamdevelopment.domain.TSUtility;
import java.util.ArrayList;
import java.util.Scanner;
public class login3 {
ArrayList<person> arrayList=new ArrayList<>();
public login3(){};
public void login(ArrayList<person> arrayList) {
Add add =new Add();
Scanner sc = new Scanner(System.in);
for (int i=0;i<6;i++){
System.out.println("------登陆界面------");
System.out.println("请输入你的账户(最多四位)");
String name = TSUtility.readKeyBoard(4,false);
System.out.println("请输入你的密码(最多六位)");
String password = TSUtility.readKeyBoard(6,false);
if (arrayList.size()==0) {
System.out.println("未检测到账号,请先注册");
System.out.println("------注册界面------");
add.add5(arrayList);
} else if (name.equals(arrayList.get(0).getName())&&password.equals(arrayList.get(0).getPassword())) {
System.out.print("账号密码正确,登陆成功"+" ");
System.out.println("欢迎"+arrayList.get(0).getName());
break;
}else{
System.out.println("你输入的密码或者账号不正确,你还有"+(5-i)+"次机会");
if ((5-i)==0){
System.out.println("你输入错误次数过多,系统将会冻结,再见");
System.exit(0);
}
}
}
}
}
当上面的注册登陆运行完成后就进入到系统,进入系统后就会有 “1.用户信息修改”;“2.开发人员管理”;“3.开发团队调度管理”;“4.开发项目管理”。四大板块,接下来我就会对每一个板块做详细的介绍及代码演示。
一、用户信息修改
首先登陆后就会进入到主系统里,通过主系统进入到用户信息修改,代码下
package Teamdevelopment.domain;
import Teamdevelopment.logic.login3;
public class zhucezhanghao extends login3 {
}
package Teamdevelopment.domain;
import Teamdevelopment.logic.person;
import java.util.ArrayList;
public class xinxixiugai extends zhucezhanghao {
public void xiugai(ArrayList<person> arrayList){
Change ch=new Change();
ch.change2(arrayList);
}
}
public static void change2(ArrayList<Teamdevelopment.logic.person> arrayList){
boolean bool=true;
while (bool) {
System.out.println("-----客户信息修改软件-----");
System.out.println("1.修改客户名");
System.out.println("2.修改客户密码");
System.out.println("3.修改客户名和密码");
System.out.println("4.用户信息");
System.out.println("5.退出");
System.out.println("请输入你的选择");
Scanner sc = new Scanner(System.in);
int a = TSUtility.readMenuSelectionPro();
switch (a) {
case '1':
changename(arrayList);
break;
case '2':
changepassword(arrayList);
//ind1(arrayList);
break;
case '3':
changeall(arrayList);
break;
case '4':
fiand(arrayList);
break;
case '5':
System.out.println("请做出你的选择:Y(y)同意,N(n)不同意");
char c1 = CMUtility.readConfirmSelection();
if (c1 == 'y' || c1 == 'Y'){
System.out.println("你已经退出");
bool=false;
}else
break;
}
}
}
public static void changename(ArrayList<Teamdevelopment.logic.person> arrayList){
Scanner sc=new Scanner(System.in);
System.out.println("请输入新的姓名(最多四位)");
String q =TSUtility.readKeyBoard(4,false);
Teamdevelopment.logic.person t=new Teamdevelopment.logic.person(q,arrayList.get(0).getPassword());
arrayList.set(0,t);
}
public static void changepassword(ArrayList<Teamdevelopment.logic.person> arrayList){
System.out.println("请输入新的密码(最多六位)");
String w= TSUtility.readKeyBoard(6,false);
Teamdevelopment.logic.person t=new Teamdevelopment.logic.person(arrayList.get(0).getName(),w);
arrayList.set(0,t);
}
public static void changeall(ArrayList<Teamdevelopment.logic.person> arrayList){
System.out.println("请输入新的姓名(最多四位)");
String q = TSUtility.readKeyBoard(4,false);
System.out.println("请输入新的6位置密码(最多六位)");
String w= TSUtility.readKeyBoard(6,false);
Teamdevelopment.logic.person t=new person(q,w);
arrayList.set(0,t);
}
public static void fiand(ArrayList<Teamdevelopment.logic.person> arrayList){
System.out.println("您的账户为:"+arrayList.get(0).getName());
System.out.println("您的密码为:"+arrayList.get(0).getPassword());
}
}
光看上面的代码属实有点难受,但是,根本不慌,基本思路其实很简单。首先zhucezhanghao这个类继承的是login3,就是为了调用的方便用途不是很大,change2是进入用户信息修改选项后所拥有的,系统选项,通过循环进行系统选项的改查,如果选1选项的话就会进入修改客户名,从而调用相应的方法,以此类推,进行其他选项,用户信息修改完成后就可以退出此系统从而进入到用户登陆后的主系统。
二、开发人员管理
进入到开发人员管理后就会进入到界面那么如何实现相应的操作以及数据初始化就有12员工呢?咋们接着往下看:
package Teamdevelopment.domain;
import java.util.Scanner;
public class person2 extends Equipment{
private int id;
private String name;
private int age;
private double wage;
private String position;
private boolean state;
private String bonus;
private String stock;
private String equipment;
public person2(){}
public person2(int id,String name, int age, double wage) {
this.id=id;
this.name = name;
this.age = age;
this.wage = wage;
}
// person2 p=new person2();
public person2(int id,String name, int age, double wage, String position, boolean state, String equipment) {
this.id=id;
this.name = name;
this.age = age;
this.wage = wage;
this.position = position;
this.state = state;
// equipment = (tianjia().getName()+" "+""+"("+tianjia().getModel()+")");
this.equipment = equipment;
}
public person2(int id,String name, int age, double wage, String position, boolean state, String bonus, String equipment) {
this.id=id;
this.name = name;
this.age = age;
this.wage = wage;
this.position = position;
this.state = state;
this.bonus = bonus;
//equipment = (tianjia().getName()+" "+""+"("+tianjia().getModel()+")");
this.equipment = equipment;
}
public person2(int id,String name, int age, double wage, String position, boolean state, String bonus, String stock, String equipment) {
this.id=id;
this.name = name;
this.age = age;
this.wage = wage;
this.position = position;
this.state = state;
this.bonus = bonus;
this.stock = stock;
// equipment = (tianjia().getName()+" "+""+"("+tianjia().getModel()+")");
this.equipment = equipment;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName() {
this.name =addname() ;
}
public int getAge() {
return age;
}
public void setAge() {
this.age = addage();
}
public double getWage() {
return wage;
}
public void setWage() {
this.wage = addwage();
}
public String getPosition() {
return position;
}
public void setPosition() {
this.position = addposition();
}
public boolean getState() {
return state;
}
public void setState(boolean state) {
this.state = state;
}
public String getBonus() {
return bonus;
}
public void setBonus() {
this.bonus = addbounce();
}
public String getStock() {
return stock;
}
public void setStock() {
this.stock = addstock();
}
public String getEquipment() {
return equipment;
}
//Equipment e=new Equipment();
//Equipment tianjia = e.tianjia();
@Override
public Equipment tianjia() {
return super.tianjia();
}
public void setEquipment() {
this.equipment =(tianjia().getName()+" "+""+"("+tianjia().getModel()+")");
}
public String addname(){
Scanner sc=new Scanner(System.in);
System.out.println("请输入姓名:");
return sc.nextLine();
}
public int addage(){
Scanner sc=new Scanner(System.in);
System.out.println("请输入年龄:");
return sc.nextInt();
}
public double addwage(){
Scanner sc=new Scanner(System.in);
System.out.println("请输入工资:");
return sc.nextDouble();
}
public String addposition(){
Scanner sc=new Scanner(System.in);
System.out.println("请输入职位:");
return sc.nextLine();
}
public boolean addstate(){
Scanner sc=new Scanner(System.in);
System.out.println("请输入状态:");
return sc.hasNextBoolean();
}
public String addbounce(){
Scanner sc=new Scanner(System.in);
System.out.println("请输入奖金:");
return sc.nextLine();
}
public String addstock(){
Scanner sc=new Scanner(System.in);
System.out.println("请输入股票:");
return sc.nextLine();
}
public String addequipment(){
Scanner sc=new Scanner(System.in);
System.out.println("请输入领用设备:");
return sc.nextLine();
}
@Override
public String toString() {
// return "id\t" + "姓名\t\t" + "年龄\t" + "工资\t\t" + "职位\t\t" + "状态\t\t" + "奖金\t\t\t" + "股票\t\t\t" + "设备\n"
return id+"\t"+name+"\t\t"+age+"\t\t"+wage+"\t\t"+position+"\t\t"+state+"\t\t"+bonus+"\t\t\t"+stock+"\t\t\t"+equipment;
}
}
package Teamdevelopment.domain;
import java.util.Scanner;
public class Equipment {
private String devicename;
private String model;
public Equipment(String devicename, String model) {
this.devicename = devicename;
this.model = model;
}
public Equipment() {
}
public String getName() {
return devicename;
}
public void setName(String name) {
this.devicename = name;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public Equipment tianjia() {
Scanner sc =new Scanner(System.in);
System.out.println("请输入设备名称");
String a=sc.nextLine();
System.out.println("请输入设备型号");
String b=sc.nextLine();
Equipment e=new Equipment(a,b);
return e;
}
}
package Teamdevelopment.logic;
import Teamdevelopment.domain.*;
import java.util.ArrayList;
public class dataused {
public void data(){
}
public void method(ArrayList<person2> arrayList){
Add a=new Add();
Delete d=new Delete();
Change c2=new Change();
Check ch=new Check();
Initialpersonnel i=new Initialpersonnel();
i.Initial(arrayList);
boolean flag=true;
while (flag){
System.out.println("----开发人员管理界面----");
System.out.println("1.开发人员的添加");
System.out.println("2.开发人员的删除");
System.out.println("3.开发人员的修改");
System.out.println("4.查看开发人员");
System.out.println("5.退出");
System.out.println("请输入你的选择:");
char c = CMUtility.readMenuSelection();
switch (c){
case '1':
a.add1(arrayList);
break;
case '2':
d.delete1(arrayList);
break;
case '3':
c2.change1(arrayList);
break;
case '4':
ch.fiand1(arrayList);
break;
case '5':
System.out.println("请做出你的选择:Y(y)同意,N(n)不同意");
char c1 = CMUtility.readConfirmSelection();
if (c1 == 'y' || c1 == 'Y'){
System.out.println("你已经退出");
flag=false;
}else
break;
}
}
}
}
public class Add {
public static void add1(ArrayList<person2> arrayList){
Scanner sc=new Scanner(System.in);
boolean bool=true;
while (bool) {
System.out.println("------开发人员添加界面------");
System.out.println("请输入你要增加的职位:");
System.out.println("1.架构师");
System.out.println("2.设计师");
System.out.println("3.程序员");
System.out.println("4.雇员");
System.out.println("5.退出");
char c = TSUtility.readMenuSelectionPro();
switch (c) {
case '1':
addposition1(arrayList);
break;
case '2':
addpositoin2(arrayList);
break;
case '3':
addpositoin3(arrayList);
break;
case '4':
addpositoin4(arrayList);
break;
case '5':
System.out.println("请做出你的选择:Y(y)同意,N(n)不同意");
char c1 = TSUtility.readConfirmSelection();
if (c1 == 'y' || c1 == 'Y'){
System.out.println("你已经退出");
bool=false;
}else
break;
}
}
}
public static void addposition1(ArrayList<person2>arrayList){
Scanner sc=new Scanner(System.in);
System.out.println("请输入姓名:");
String name=CMUtility.readString(4,"");
System.out.println("请输入年龄:");
int age=TSUtility.readInt();
System.out.println("请输入工资:");
double wage=CMUtility.readInt();
// System.out.println("请输入职位:");
// String position=CMUtility.readString(5);
// System.out.println("请输入状态:");
// boolean state=sc.nextBoolean();
System.out.println("请输入奖金:");
String bouce=CMUtility.readString(10,"");
System.out.println("请输入股票:");
String stock=CMUtility.readString(10,"");
System.out.println("请输入领用设备:");
String equipment=CMUtility.readString(20,"");
person2 p=new person2(arrayList.size()+1,name,age,wage,"架构师",true,bouce,stock,equipment);
arrayList.add(p);
}
public static void addpositoin2(ArrayList<person2>arrayList){
Scanner sc=new Scanner(System.in);
System.out.println("请输入姓名:");
String name=CMUtility.readString(4,"");
System.out.println("请输入年龄:");
int age=TSUtility.readInt();
System.out.println("请输入工资:");
double wage=CMUtility.readInt();
// System.out.println("请输入职位:");
// String position=CMUtility.readString(5);
// System.out.println("请输入状态:");
// boolean state=sc.nextBoolean();
System.out.println("请输入奖金:");
String bouce=CMUtility.readString(10,"");
// System.out.println("请输入股票:");
// String stock=sc.nextLine();
System.out.println("请输入领用设备:");
String equipment=CMUtility.readString(20,"");
person2 p=new person2(arrayList.size()+1,name,age,wage,"设计师",true,bouce,"",equipment);
arrayList.add(p);
}
public static void addpositoin3(ArrayList<person2>arrayList){
Scanner sc=new Scanner(System.in);
System.out.println("请输入姓名:");
String name=CMUtility.readString(4,"");
System.out.println("请输入年龄:");
int age=TSUtility.readInt();
System.out.println("请输入工资:");
double wage=CMUtility.readInt();
// System.out.println("请输入职位:");
// String position=CMUtility.readString(5);
// System.out.println("请输入状态:");
// boolean state=sc.nextBoolean();
// System.out.println("请输入奖金:");
// String bouce=sc.nextLine();
// System.out.println("请输入股票:");
// String stock=sc.nextLine();
System.out.println("请输入领用设备:");
String equipment=CMUtility.readString(20,"");
person2 p=new person2(arrayList.size()+1,name,age,wage,"程序员",true,"","",equipment);
arrayList.add(p);
}
public static void addpositoin4(ArrayList<person2>arrayList){
Scanner sc=new Scanner(System.in);
System.out.println("请输入姓名:");
String name=CMUtility.readString(4,"");
System.out.println("请输入年龄:");
int age=TSUtility.readInt();
System.out.println("请输入工资:");
double wage=CMUtility.readInt();
// System.out.println("请输入职位:");
// String position=sc.nextLine();
// System.out.println("请输入状态:");
// boolean state=sc.nextBoolean();
// System.out.println("请输入奖金:");
// String bouce=sc.nextLine();
// System.out.println("请输入股票:");
// String stock=sc.nextLine();
// System.out.println("请输入领用设备:");
// String equipment=sc.nextLine();
Employee p=new Employee(arrayList.size()+1,name,age,wage);
arrayList.add(p);
}
public static void delete1(ArrayList<person2> arrayList){
System.out.println("------开发人员删除界面------");
if (arrayList.size()==0){
System.out.println("没有信息,请添加后再删除");
return;
}
System.out.println("请输入你要删除的编号");
boolean flag=true;
while(flag) {
// String str= CMUtility.read();
// int a=Integer.parseInt(str);
int a = CMUtility.readInt();
if (a>arrayList.size()||a<=0){
System.out.println("输入错误:");
}else if (a>0&&a <= arrayList.size()) {
arrayList.remove(a - 1);
// ArrayList<person2>arrayList1=new ArrayList<>();
for (int i = a-1; i <arrayList.size() ; i++) {
arrayList.get(i).setId(arrayList.get(i).getId()-1);
}
System.out.println("====删除成功====");
flag = false;
} else {
System.out.println("输入错误,请重新输入");
}
}
}
public static void change1(ArrayList<person2> arrayList){
System.out.println("------开发人员修改界面------");
System.out.println("请输入你要修改的编号(如果不修改,按回车即可)");
boolean flag=true;
while(flag) {
// String str= CMUtility.read();
// int a=Integer.parseInt(str);
int a = CMUtility.readInt();
if (a>arrayList.size()||a<=0){
System.out.println("输入错误");
}else if (a>0||a <= arrayList.size()){
if (arrayList.get(a-1).getPosition()=="架构师"){
System.out.println("请输入新的姓名:"+"原来的姓名是:"+arrayList.get(a-1).getName());
String b =CMUtility.readString(4,arrayList.get(a-1).getName());
System.out.println("请输入新的年龄:"+arrayList.get(a-1).getAge());
int c=CMUtility.readInt(arrayList.get(a-1).getAge());
System.out.println("请输入新的工资:"+arrayList.get(a-1).getWage());
double wage=CMUtility.readInt((int) arrayList.get(a-1).getWage());
System.out.println("请输入职位:"+arrayList.get(a-1).getPosition());
String position=CMUtility.readString(5,arrayList.get(a-1).getPosition());
// System.out.println("请输入状态:");
// boolean state=sc.nextBoolean();
System.out.println("请输入奖金:"+arrayList.get(a-1).getBonus());
String bouce=CMUtility.readString(10,arrayList.get(a-1).getBonus());
System.out.println("请输入股票:"+arrayList.get(a-1).getStock());
String stock=CMUtility.readString(10,arrayList.get(a-1).getStock());
System.out.println("请输入领用设备:"+arrayList.get(a-1).getEquipment());
String equipment=CMUtility.readString(20,arrayList.get(a-1).getEquipment());
Architect ku=new Architect(a,b,c,wage,position,true,bouce,stock,equipment);
arrayList.set(a-1,ku);
System.out.println("====修改成功====");
flag = false;
}else if (arrayList.get(a-1).getPosition()=="程序员"){
System.out.println("请输入新的姓名:"+"原来的姓名是:"+arrayList.get(a-1).getName());
String b =CMUtility.readString(4,arrayList.get(a-1).getName());
System.out.println("请输入新的年龄:"+arrayList.get(a-1).getAge());
int c=CMUtility.readInt(arrayList.get(a-1).getAge());
System.out.println("请输入新的工资:"+arrayList.get(a-1).getWage());
double wage=CMUtility.readInt((int) arrayList.get(a-1).getWage());
System.out.println("请输入职位:"+arrayList.get(a-1).getPosition());
String position=CMUtility.readString(5,arrayList.get(a-1).getPosition());
System.out.println("请输入领用设备:"+arrayList.get(a-1).getEquipment());
String equipment=CMUtility.readString(20,arrayList.get(a-1).getEquipment());
Programmer ku=new Programmer(a,b,c,wage,position,true,"","",equipment);
arrayList.set(a-1,ku);
System.out.println("====修改成功====");
flag = false;
}else if (arrayList.get(a-1).getPosition()=="程序员"){
System.out.println("请输入新的姓名:"+"原来的姓名是:"+arrayList.get(a-1).getName());
String b =CMUtility.readString(4,arrayList.get(a-1).getName());
System.out.println("请输入新的年龄:"+arrayList.get(a-1).getAge());
int c=CMUtility.readInt(arrayList.get(a-1).getAge());
System.out.println("请输入新的工资:"+arrayList.get(a-1).getWage());
double wage=CMUtility.readInt((int) arrayList.get(a-1).getWage());
System.out.println("请输入职位:"+arrayList.get(a-1).getPosition());
String position=CMUtility.readString(5,arrayList.get(a-1).getPosition());
// System.out.println("请输入状态:");
// boolean state=sc.nextBoolean();
System.out.println("请输入奖金:"+arrayList.get(a-1).getBonus());
String bouce=CMUtility.readString(10,arrayList.get(a-1).getBonus());
// System.out.println("请输入股票:");
// String stock=CMUtility.readString(10,arrayList.get(a-1).getStock());
System.out.println("请输入领用设备:"+arrayList.get(a-1).getEquipment());
String equipment=CMUtility.readString(20,arrayList.get(a-1).getEquipment());
Designer ku=new Designer(a,b,c,wage,position,true,bouce,"",equipment);
arrayList.set(a-1,ku);
System.out.println("====修改成功====");
flag = false;
}else if (arrayList.get(a-1).getPosition()==null){
System.out.println("请输入新的姓名:"+arrayList.get(a-1).getName());
String b =CMUtility.readString(4,arrayList.get(a-1).getName());
System.out.println("请输入新的年龄:"+arrayList.get(a-1).getAge());
int c=CMUtility.readInt(arrayList.get(a-1).getAge());
System.out.println("请输入新的工资:"+arrayList.get(a-1).getWage());
double wage=CMUtility.readInt((int) arrayList.get(a-1).getWage());
Employee ku=new Employee(a,b,c,wage);
arrayList.set(a-1,ku);
System.out.println("====修改成功====");
flag = false;
}
}else {
System.out.println("输入错误");
}
}
}
public class Check {
public static void fiand1(ArrayList<person2> arrayList){
System.out.println("编号"+"\t"+"姓名"+"\t\t"+"年龄"+"\t"+"工资"+"\t\t\t"+"职位"+"\t\t\t"+"状态"+"\t\t\t"+"奖金"+"\t\t\t"+"股票"+"\t\t\t"+"领用设备");
for (int i = 0; i <arrayList.size() ; i++) {
System.out.println(arrayList.get(i));
}
}
首先先创建两个类( person2 以及Equipment)用ArrayList来存储人员的数据,从而可以进行操作。
然后就是重头戏,开发人员的增删改查。
增加人员的时候注意的点就是不同的职位所拥有的内容不同
删除人员的时候注意Id随着删除的人员其他的id也会发生相应的改变,要不然就会出现id顺序不对的现象。
修改人员的时候也没有太多的注意的,看看我的代码应该就能明白。
查看人员就更简单,简单的遍历sout就能完成。
完成相应的操作后就会退出此界面的系统,进入主系统
三、开发团队调度管理
从主系统进入开发团队调度管理后就会进入到里面从而进行相应的增删查的操作
package Teamdevelopment.logic;
import Teamdevelopment.domain.*;
import java.util.ArrayList;
public class Teammanagement {
public void teamopration(ArrayList<person2> arrayList1,ArrayList<person2> arrayList2,ArrayList<ArrayList> arrayList3,ArrayList<person2>arrayList4){
//初始化人员数据,
Check ch=new Check();
Delete de=new Delete();
Initialpersonnel i=new Initialpersonnel();
if (arrayList1.size()==0){
i.Initial(arrayList1);
}else
ch.fiand4(arrayList1);
boolean boool=true;
while (boool){
// Initialpersonnel i=new Initialpersonnel();
// i.Initial(arrayList1);
System.out.println("------团队调度界面------");
System.out.print("1.添加团队"+" ");
System.out.print("2.查看团队"+" ");
System.out.print("3.删除团队"+" ");
System.out.print("4.退出"+" ");
System.out.println("请输入你的选择:");
char c = TSUtility.readMenuSelection();
switch (c){
case '1':
TeammemberAddManagement t=new TeammemberAddManagement();
t.management(arrayList1,arrayList2,arrayList3,arrayList4);
break;
case '2':
ch.fiand(arrayList3);
break;
case '3':
de.delete(arrayList3,arrayList2);
break;
case '4':
System.out.println("请做出你的选择:Y(y)同意,N(n)不同意");
char c1 = CMUtility.readConfirmSelection();
if (c1 == 'y' || c1 == 'Y'){
System.out.println("你已经退出");
boool=false;
}else
break;
}
}
}
}
package Teamdevelopment.logic;
import Teamdevelopment.domain.*;
import java.util.ArrayList;
public class TeammemberAddManagement {
ArrayList<person2> arrayList1=new ArrayList<>();//初始化
ArrayList<person2> arrayList2=new ArrayList<>();//装进来的,就是传进来的{五人}
ArrayList<ArrayList> arrayList3=new ArrayList<>();//最终的容器
public void management(ArrayList<person2>arrayList1,ArrayList<person2> arrayList2,ArrayList<ArrayList> arrayList3,ArrayList<person2>arrayList4){
//input in=new input();
boolean bool=true;
// Initialpersonnel i=new Initialpersonnel();
// i.Initial(arrayList1);
Check ch=new Check();
Add add=new Add();
Delete de=new Delete();
ArrayList<person2>arrayList5=new ArrayList<>();
arrayList2=arrayList5;
while (bool){
ch.fiand3(arrayList1);
System.out.print("1.团队列表"+" ");//(查看a2即可)
System.out.print("2.添加团队成员"+" ");
System.out.print("3.删除团队成员"+" ");//a2即可
System.out.print("4.退出"+" ");
System.out.println("请输入你的选择:");
char c = TSUtility.readMenuSelection();
switch (c){
case '1':
System.out.println("======================");
ch.find2(arrayList2);
System.out.println("======================");
break;
case '2':
try {
add.add2(arrayList1,arrayList2);
} catch (Exception e) {
System.out.println(e.getMessage());
}
break;
case '3':
de.delete2(arrayList1,arrayList2);
break;
case '4':
int j=0;
System.out.println("请做出你的选择:Y(y)同意,N(n)不同意");
char c1 = CMUtility.readConfirmSelection();
if (c1 == 'y' || c1 == 'Y'){
System.out.println("你已经退出");
if (arrayList2.size()!=0){
arrayList3.add(j,arrayList2);
}
j++;
bool=false;
}else
break;
}
}
}
}
后面还有许多的代码,这里就不一个一个的展示了
在此阶段需要注意的是,添加团队后,人员的状态不再是Ture的状态,而是false的状态,当删除团队以及删除成员的时候就再会回到Ture的状态。
团队为空的时候不会添加会团队。
添加团队的时候里面的内容利用地址的变化来实现团队人员的不一样。
四、开发项目管理
退出开发团队管理进入到开发项目管理后,会进入到的界面。这里我给出的是四个初始化的项目,我们就调用其中的项目即可。
package Teamdevelopment.logic;
import Teamdevelopment.domain.CMUtility;
import Teamdevelopment.domain.Check;
import Teamdevelopment.domain.InitializeProject;
import Teamdevelopment.domain.project;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class DPmanagementMenu {
public static void main(String[] args) {
DPmanagementMenu b=new DPmanagementMenu();
ArrayList<project>arrayList8=new ArrayList<>();//初始化的项目
InitializeProject in=new InitializeProject();
in.initialize(arrayList8);
ArrayList<String>arrayList7=new ArrayList<>();//存储的是团队名称
ArrayList<project>arrayList6=new ArrayList<>();//添加后的拥有的项目
ArrayList<ArrayList>arrayList5=new ArrayList<>();//最终容器里面是所有的团队
ArrayList<String>arrayList9=new ArrayList<>();//随机团队名称
ArrayList<project>arrayList10=new ArrayList<>();//随机项目
b.development(arrayList8,arrayList7,arrayList6,arrayList5,arrayList9,arrayList10);
}
public void development(ArrayList<project>arrayList1, ArrayList<String>arrayList4, ArrayList<project>arrayList2, ArrayList<ArrayList>arrayList3, ArrayList<String>arrayList, ArrayList<project>arrayList5){
Check ch=new Check();
//Find f=new Find();
ch.find4(arrayList1);
//初始化的项目1,存储的是团队的名称4,添加后拥有的团队项目2,所拥有的团队3,随机团队名称,随机项目5
//ArrayList<project>arrayList1=new ArrayList<>();//初始化的项目
// InitializeProject in=new InitializeProject();
// in.initialize(arrayList1);
// f.find1(arrayList1);
//ArrayList<String>arrayList4=new ArrayList<>();//存储的是团队名称
//ArrayList<project>arrayList2=new ArrayList<>();//添加后的拥有的项目
//ArrayList<ArrayList>arrayList3=new ArrayList<>();//最终容器里面是所有的团队
boolean bool=true;
while (bool) {
System.out.println("-----开发项目管理主菜单-----");
System.out.println("1.项目的添加");
System.out.println("2.项目分配开发团队");
System.out.println("3.项目的查看");
System.out.println("4.项目的删除");
System.out.println("5.退出当前菜单");
System.out.println("请输入你的选择");
Scanner sc = new Scanner(System.in);
int a = CMUtility.readMenuSelection();
switch (a) {
case '1':
add(arrayList1,arrayList2);
break;
case '2':
TotalAllocationMethod(arrayList4,arrayList2,arrayList3,arrayList,arrayList5);
break;
case '3':
if (arrayList2.size()==0){
System.out.println("没有项目");
}else
for (int i = 0; i <arrayList2.size() ; i++) {
if (arrayList2.get(i).getStatus()==false){
System.out.println(arrayList2.get(i).toString()+"\n"+"项目名称"+"["+arrayList2.get(i).getName()+"]"+"------>未被开发");
}
}
if (arrayList5.size()==0){
break;
}else if (arrayList5.get(0).getStatus()==true){
fiand(arrayList5,arrayList);
}
break;
case '4':
for (int i = 0; i <arrayList5.size() ; i++) {
add2(arrayList5,arrayList2);
}
delete(arrayList2);
break;
case '5':
System.out.println("请做出你的选择:Y(y)同意,N(n)不同意");
char c= CMUtility.readConfirmSelection();
if (c == 'Y' || c == 'y'){
System.out.println("你已经退出");
bool=false;
}
}
}
}
public static void fiand(ArrayList<project>arrayList, ArrayList<String>arrayList1){
//随机项目,随机团队名称
if (arrayList.size()>arrayList1.size()){
for (int i = 0; i <arrayList1.size() ; i++) {
System.out.println("项目名称"+"["+arrayList.get(i).getName()+"]"+"------>"+"被"+arrayList1.get(i)+"开发");
}
for (int j = arrayList1.size(); j <arrayList.size(); j++) {
System.out.println("项目名称"+"["+arrayList.get(j).getName()+"]"+"------>未被开发");
}
}else if (arrayList.size()==arrayList1.size()){
for (int i = 0; i <arrayList.size() ; i++) {
System.out.println("项目名称"+"["+arrayList.get(i).getName()+"]"+"------>"+"被"+arrayList1.get(i)+"开发");
}
}else {
System.out.println("不能团队比项目多,分配异常");
}
}
public static void add2(ArrayList<project>arrayList5,ArrayList<project>arrayList2){
//随机的项目,添加拥有的项目
for (int i = 0; i <arrayList5.size() ; i++) {
if (arrayList5.get(i).getStatus()==false){
arrayList2.add(arrayList5.get(i));
arrayList5.remove(i);
}
}
}
public static void add(ArrayList<project>arrayList1,ArrayList<project>arrayList2){
//进来所有项目,出来选的项目
System.out.println("请输入你要添加的项目编号");
int i = CMUtility.readInt();
if (i>arrayList1.size()||i<=0){
System.out.println("================");
System.out.println("输入错误");
System.out.println("================");
}else if(arrayList2.size()==0){
arrayList1.get(i-1).setAddstate(true);
arrayList2.add(arrayList1.get(i-1));
System.out.println("================");
System.out.println("已经添加:"+arrayList1.get(i-1).getName());
System.out.println("================");
}else if (arrayList2.size()!=0){
if (arrayList1.get(i-1).getAddstate()==true){
System.out.println("================");
System.out.println("该项目已经存在");
System.out.println("================");
}else{
arrayList1.get(i-1).setAddstate(true);
arrayList2.add(arrayList1.get(i-1));
System.out.println("================");
System.out.println("已经添加:"+arrayList1.get(i-1).getName());
System.out.println("================");
}
}
}
public static void delete(ArrayList<project>arrayList1){
if (arrayList1.size()==0){
System.out.println("未开发没有项目");
return;
}else
for (int i = 0; i <arrayList1.size() ; i++) {
System.out.println((i+1)+"."+arrayList1.get(i).getName()+"-------->"+"未被开发");
}
System.out.println("请输入你要删除的项目:");
int i = CMUtility.readInt();
if (i>arrayList1.size()||i<=0){
System.out.println("输入错误");
}else{
arrayList1.get(i-1).setAddstate(false);
System.out.println(arrayList1.get(i-1).getName()+"以及被删除");
arrayList1.remove(i-1);
}
}
public void distribution(ArrayList<ArrayList>arrayList,ArrayList<String>arrayList2){
if (arrayList.size()==0){
System.out.println("没有团队,请添加后再分配");
}else {
for (int i = 0; i <arrayList.size() ; i++) {
System.out.println("Tid/id"+"\t"+"姓名"+"\t\t"+"年龄"+"\t"+"工资"+"\t\t\t"+"职位"+"\t\t"+"状态"+"\t\t\t"+"奖金"+"\t\t\t"+"股票"+"\t\t\t"+"领用设备");
for (int j = 0; j <arrayList.get(i).size() ; j++) {
System.out.println((j+1)+"/"+"\t"+arrayList.get(i).get(j));
}
System.out.println("请为团队取一个名字:");
Scanner sc=new Scanner(System.in);
String s1 = sc.nextLine();
arrayList2.add(s1);
System.out.println("=========================================================");
}
}
}
public void RandomlyAssigned(ArrayList<String>arrayList,ArrayList<String>arrayList2){
//随机分配团队,(进来团队名字,出去团队随机名字)
Random r=new Random();
for (int i = 0; i <arrayList.size() ; i++) {
if (arrayList2.size()==0){
int i1 = r.nextInt(arrayList.size());
arrayList2.add(arrayList.get(i1));
arrayList.remove(i1);
i--;
}else{
int i1 = r.nextInt(arrayList.size());
arrayList2.add(arrayList.get(i1));
arrayList.remove(i1);
i--;
}
}
}
public void Randomitem(ArrayList<project>arrayList,ArrayList<project>arrayList1){
//进来项目,出去随机项目
Random r=new Random();
for (int i = 0; i <arrayList.size() ; i++) {
if (arrayList1.size()==0){
int i1 = r.nextInt(arrayList.size());
arrayList1.add(arrayList.get(i1));
arrayList.remove(i1);
i--;
}else {
int i1 = r.nextInt(arrayList.size());
arrayList1.add(arrayList.get(i1));
arrayList.remove(i1);
i--;
}
}
}
public void RandomlyA(ArrayList<project>arrayList,ArrayList<String>arrayList1){
//随机项目,随机团队名称
if (arrayList.size()>arrayList1.size()){
for (int i = 0; i <arrayList1.size() ; i++) {
arrayList.get(i).setStatus(true);
System.out.println("项目名称"+"["+arrayList.get(i).getName()+"]"+"------>"+"被"+arrayList1.get(i)+"开发");
}
for (int j = arrayList1.size(); j <arrayList.size(); j++) {
System.out.println("项目名称"+"["+arrayList.get(j).getName()+"]"+"------>未被开发");
}
}else if (arrayList.size()==arrayList1.size()){
for (int i = 0; i <arrayList.size() ; i++) {
arrayList.get(i).setStatus(true);
System.out.println("项目名称"+"["+arrayList.get(i).getName()+"]"+"------>"+"被"+arrayList1.get(i)+"开发");
}
}else {
System.out.println("不能团队比项目多,分配异常");
}
}
public void TotalAllocationMethod(ArrayList<String>arrayList4,ArrayList<project>arrayList2,ArrayList<ArrayList>arrayList3,ArrayList<String>arrayList,ArrayList<project>arrayList5){
存储的是团队的名称4,添加后拥有的团队项目2,所拥有的团队3,随机团队名称(没有序号),随机项目5
if (arrayList2.size()<arrayList3.size()){
System.out.println("不能团队比项目多,分配异常");
return;
}else{
distribution(arrayList3,arrayList4);//用团队来得到团队的名称
RandomlyAssigned(arrayList4,arrayList);//用团队名称得到随机的团队名称
Randomitem(arrayList2,arrayList5);//用添加后的项目来得到随机的项目
RandomlyA(arrayList5,arrayList);//随机项目与随机名称的组合,
}
}
}
以上就是开发项目管理的代码,其中的代码不是很多,但是里面的逻辑比较复杂
其中需要注意的点就是团队数不能大于项目数,如果发生此情况的话就会写很多的情况代码。其余的情况的话就不需要考虑的太多
总结
此项目其实并不是很复杂,主要是逻辑通顺,其中的细节一定要注意,关键点要注意即可。个人建议需要写注释,要不然时间久了后就会容易遗忘。