项目开发团队分配管理软件

实践项目《项目开发团队分配管理软件》 项目开发团队分配管理软件超详细总结!!! 阅读详情

项目仍有些小bug 后期完善  

目录

一、功能需求

 二、目标

 三、需求说明

四、软件设计结构

​1.domain模块

①Equipment接口、PC、NoteBook、Printer类

②Employee及其子类

③Programmer类(项目)

 2.Service模块

①TeamException(自定义异常)

②NameListService

③TeamService

④ProjectService

3.view模块

①LoginView类


一、功能需求

 二、目标

 三、需求说明

四、软件设计结构

1.domain模块

①Equipment接口、PC、NoteBook、Printer类

package domain;

public interface Equipment {
	String getDescription();
}
package domain;
import view.TSUtility;
//台式电脑
	public class PC implements Equipment{
	//机器型号
	private String model;
	//显示器名称
	private String display;

	

	public PC() {
	}
    
	public PC(String model, String display) {
		this.model = model;
		this.display = display;
	}

	public String getModel() {
		return model;
	}

	public void setModel(String model) {
		this.model = model;
	}

	public String getDisplay() {
		return display;
	}

	public void setDisplay(String display) {
		this.display = display;
	}
    
    //进行添加电脑的操作
	public PC  addPC()
	{
		System.out.println("请输入需要配置的台式电脑的型号:");
		String model = TSUtility.readKeyBoard(10, false);
		System.out.println("请输入需要配置的台式电脑的显示器名称:");
		String display = TSUtility.readKeyBoard(10, false);
		System.out.println("设备添加成功!");
		return new PC(model, display);

	}
	@Override
	public String getDescription() {
		return model + "(" + display + ")";
	}
	
}
package domain;
import view.TSUtility;

//笔记本电脑
public class NoteBook implements Equipment{
	private String model;//机器的型号
	private double price;//价格
	
	
	public NoteBook() {
		super();
	}


	public NoteBook(String model, double price) {
		this.model = model;
		this.price = price;
	}


	public String getModel() {
		return model;
	}


	public void setModel(String model) {
		this.model = model;
	}


	public double getPrice() {
		return price;
	}


	public void setPrice(double price) {
		this.price = price;
	}

    //进行添加笔记本的操作
	public NoteBook addNoteBook()
	{
		System.out.println("请输入需要配置的笔记本电脑的型号:");
		String model = TSUtility.readKeyBoard(10, false);
		System.out.println("请输入需要配置的笔记本电脑的价格:");
		Double price = TSUtility.readDouble();
		System.out.println("设备添加成功!");
		return new NoteBook(model, price);
	}


	@Override
	public String getDescription() {
		return model + "(" + price + ")";
	}
	
	

}
package domain;

import view.TSUtility;
//打印机
public class Printer implements Equipment{
	private String name;//名称
	private String type;//机器的类型
	
	public Printer() {
		super();
	}

	public Printer(String name, String type) {
		super();
		this.name = name;
		this.type = type;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

    //进行添加打印机的操作
	public Printer addPrinter()
	{
		System.out.println("请输入需要配置的打印机的名称:");
		String model = TSUtility.readKeyBoard(10, false);
		System.out.println("请输入需要配置的打印机的类型:");
		String display = TSUtility.readKeyBoard(10, false);
		System.out.println("设备添加成功!");
		return new Printer(model, display);
	}

	@Override
	public String getDescription() {
		return name + "(" + type + ")";
	}
	
	

}

②Employee及其子类

package domain;

public class Employee {
    private int id;
    private String name;
    private int age;
    private double salary;

    public Employee() {
    }

    public Employee(int id, String name, int age, double salary) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.salary = salary;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    protected String getDetails() {
        return id + "\t" + name + "\t" + age+ "\t\t" +salary;
    }

    @Override
    public String toString() {
        return getDetails();
    }
}

 

package domain;

public class Programmer extends Employee {
    private int memberId;
    //用来记录成员加入开发团队后在团队中的ID
    private boolean status = true;
    //表示项目中人员的状态,先赋值为true,当添加到团队时为alse
    private Equipment equipment;
    //表示该成员领用的设备
    public Programmer() {
    }

    public Programmer(int id, String name, int age, 
                       double salary, Equipment equipment) {
        super(id, name, age, salary);
        this.equipment = equipment;
    }

    public Boolean getStatus() {
        return status;
    }

    public void setStatus(Boolean status) {
        this.status = status;
    }

    public Equipment getEquipment() {
        return equipment;
    }

    public void setEquipment(Equipment equipment) {
        this.equipment = equipment;
    }

    public int getMemberId() {
        return memberId;
    }

    public void setMemberId(int memberId) {
        this.memberId = memberId;
    }

    protected String getMemberDetails() {
        return getMemberId() + "/" + getDetails();
    }

    public String getDetailsForTeam() {
        return getMemberDetails() + "\t程序员";
    }

    @Override
    public String toString() {
        return getDetails() + "\t程序员\t" + status + "\t\t\t\t\t" +         
           equipment.getDescription() ;
    }
}

package domain;

public class Designer extends Programmer {
    private double bonus;//奖金

    public Designer() {
    }

    public Designer(int id, String name, int age, double salary,
               Equipment equipment, double bonus) {
        super(id, name, age, salary, equipment);
        this.bonus = bonus;
    }

    public double getBonus() {
        return bonus;
    }

    public void setBonus(double bonus) {
        this.bonus = bonus;
    }

    public String getDetailsForTeam() {
        return getMemberDetails() + "\t设计师\t" + getBonus();
    }

    @Override
    public String toString() {
        return getDetails() + "\t设计师\t" + getStatus() + "\t" +
               getBonus() +"\t\t\t" + getEquipment().getDescription();
    }
}

③Programmer类(项目)

package domain;

public class  Project {
    /**
     * 项目号 proId
     * 项目名称 projectName
     * 项目描述 desName
     * 开发团队 team
     * 开发团队名称 teamName
     * 开发状态 status (true为开发中,false为未开发中))
     */
    private int proId;
    private String proName;
    private String desName;
    private Programmer[] team;
    private String teamName;
    private boolean status = false;

    public Project() {
    }

    public Project(int proId, String proName, String desName, Programmer[] team, String teamName, boolean status) {
        this.proId = proId;
        this.proName = proName;
        this.desName = desName;
        this.team = team;
        this.teamName = teamName;
        this.status = status;
    }

    public int getProId() {
        return proId;
    }

    public void setProId(int proId) {
        this.proId = proId;
    }

    public String getProName() {
        return proName;
    }

    public void setProName(String proName) {
        this.proName = proName;
    }

    public String getDesName() {
        return desName;
    }

    public void setDesName(String desName) {
        this.desName = desName;
    }

    public Programmer[] getTeam() {
        return team;
    }

    public void setTeam(Programmer[] team) {
        this.team = team;
    }

    public String getTeamName() {
        return teamName;
    }

    public void setTeamName(String teamName) {
        this.teamName = teamName;
    }

    public boolean isStatus() {
        return status;
    }

    public void setStatus(boolean status) {
        this.status = status;
    }


    public String des() {
        return "项目{" +
                "项目号='" + proId + '\'' +
                "项目名='" + proName + '\'' +
                ", 项目描述='" + desName + '\'' +
                ", 开发团队名称='" + teamName + '\'' +
                ", 开发状态=" + status +
                '}' + "\n";
    }

    @Override
    public String toString() {
        des();
        if (status) {
            return "项目【" + proName + "】" + "---->正在被团队【" + teamName + "】开发中!";
        } else {
            return des() + "项目【" + proName + "】---->" + "未被开发!";
        }
    }
}

 2.Service模块

①TeamException(自定义异常)

package service;

public class TeamException extends Exception {

	public TeamException() {
	}

	public TeamException(String message) {
		super(message);
	}
}

②NameListService

定义员工集合、员工id

  private ArrayList<Employee> employees = new ArrayList<>();
    //添加员工id
    private int count = 1;

 初始化默认值

   //初始化默认值
    {
        employees.add(new Employee(count, "马云 ", 22, 3000));
        employees.add(new Architect(++count, "马化腾", 32, 18000, new NoteBook("联想T4", 6000), 60000, 5000));
        employees.add(new Programmer(++count, "李彦宏", 23, 7000, new PC("戴尔", "NEC 17寸")));
        employees.add(new Programmer(++count, "刘强东", 24, 7300, new PC("戴尔", "三星 17寸")));
        employees.add(new Designer(++count, "雷军 ", 50, 10000, new Printer("激光", "佳能2900"), 5000));
        employees.add(new Programmer(++count, "任志强", 30, 16800, new PC("华硕", "三星 17寸")));
        employees.add(new Designer(++count, "柳传志", 45, 35500, new PC("华硕", "三星 17寸"), 8000));
        employees.add(new Architect(++count, "杨元庆", 35, 6500, new Printer("针式", "爱普生20k"), 15500, 1200));
        employees.add(new Designer(++count, "史玉柱", 27, 7800, new NoteBook("惠普m6", 5800), 1500));
        employees.add(new Programmer(++count, "丁磊 ", 26, 6600, new PC("戴尔", "NEC17寸")));
        employees.add(new Programmer(++count, "张朝阳 ", 35, 7100, new PC("华硕", "三星 17寸")));
        employees.add(new Designer(++count, "杨致远", 38, 9600, new NoteBook("惠普m6", 5800), 3000));
    }

定义:添加员工方法

public void addEmployee() {
        System.out.println("请输入需要添加的雇员的职位:");
        System.out.println("1(无职位)");
        System.out.println("2(程序员)");
        System.out.println("3(设计师)");
        System.out.println("4(架构师)");
        String c = String.valueOf(TSUtility.readMenuSelection());
        //此处调用工具类  拖到底下就可以看到
        if (c.equals("1")) {
            System.out.println("当前职位分配为无");
            System.out.println("请输入当前雇员的姓名");
            String name = TSUtility.readKeyBoard(4, false);
            System.out.println("请输入当前雇员的年龄:");
            int age = TSUtility.readInt();
            System.out.println("请输入当前雇员的工资:");
            Double salary = TSUtility.readDouble();
            Employee employee = new Employee(++count, name, age, salary);
            employees.add(employee);
            System.out.println("人员添加成功");
            TSUtility.readReturn();
        } else if (c.equals("2")) {
            System.out.println("当前雇员职位分配为:程序员");
            System.out.println("请输入当前雇员的姓名:");
            String name = TSUtility.readKeyBoard(4, false);
            System.out.println("请输入当前雇员的年龄:");
            int age = TSUtility.readInt();
            System.out.println("请输入当前雇员的工资:");
            Double salary = TSUtility.readDouble();
            System.out.println("请为当前程序员配一台好的台式电脑:");
            PC pc = new PC().addPC();
            Programmer programmer = new Programmer(++count, name, age, salary, pc);
            employees.add(programmer);
            System.out.println("人员添加成功");
            TSUtility.readReturn();
        } else if (c.equals("3")) {
            System.out.println("`当前雇员职位分配为:设计师");
            System.out.println("请输入当前雇员的姓名:");
            String name = TSUtility.readKeyBoard(4, false);
            System.out.println("请输入当前雇员的年龄:");
            int age = TSUtility.readInt();
            System.out.println("请输入当前雇员的工资:");
            Double salary = TSUtility.readDouble();
            System.out.println("请为当前设计师配一台好的笔记本电脑:");
            NoteBook noteBook=new NoteBook().addNoteBook();
            System.out.println("请输入当前设计师的奖金:");
            Double bonus = TSUtility.readDouble();
            Programmer programmer = new Designer(++count, name, age, salary, noteBook,bonus);
            employees.add(programmer);
            System.out.println("人员添加成功!");
            TSUtility.readReturn();
        } else {
            System.out.println("`当前雇员职位分配为:架构师");
            System.out.println("请输入当前雇员的姓名:");
            String name = TSUtility.readKeyBoard(4, false);
            System.out.println("请输入当前雇员的年龄:");
            int age = TSUtility.readInt();
            System.out.println("请输入当前雇员的工资:");
            Double salary = TSUtility.readDouble();
            System.out.println("请为当前架构师配一台好的打印设备:");
            Printer printer = new Printer().addPrinter();
            System.out.println("请输入当前架构师的奖金:");
            Double bonus = TSUtility.readDouble();
            System.out.println("请输入当前架构师的股票:");
            Integer stock = TSUtility.readstock();
            Architect architect = new Architect(++count, name, age, salary, printer, bonus, stock);
            employees.add(architect);
            System.out.println("人员添加成功!");
            TSUtility.readReturn();
        }
    }

定义:删除员工方法

 public void delEmployee(int id){
        boolean flag = false;
        //删除通常可以定义一个boolean值
        //为true则打印输出成功 为false则抛出异常(try catch)
        for (int i = 0; i < employees.size(); i++) {
            if (employees.get(i).getId() == id) {
                employees.remove(i);
                for (i = id; i <= employees.size(); i++) {
                    employees.get(i - 1).setId(employees.get(i - 1).getId() - 1);
                }
                //如果删除的id为3 那么i就是2
                //首先先找到i  i和id的关系为id-1为i 所以先获得employees.get(i-1)
                //然后设置其 id(找到对应id减一)
                //id为3的设置id为(3-1)为2
                flag = true;
            }
        }
        if (flag) {
            //count--;不存在意义
            System.out.println("删除成功!");
        } else {
            try {
                throw new TeamException("该员工不存在");
            } catch (TeamException e) {
                e.printStackTrace();
            }
        }
    }

定义:修改员工方法

 public void modifyEmpolyee(int id){
        boolean flag=false;
        //定义boolean变量 如删除方法一致
        for (int i = 0; i <employees.size() ; i++) {
            Employee emp = employees.get(i);
            if (id==emp.getId()){
                System.out.print("姓名(" + emp.getName() + "):");
                String name = TSUtility.readString(4, emp.getName());
                System.out.print("年龄(" + emp.getAge() + "):");
                int age = Integer.parseInt(TSUtility.readString(2,emp.getAge()+""));
                System.out.print("工资(" + emp.getSalary() + "):");
                double salary =Double.parseDouble(TSUtility.readString(10, emp.getSalary()+""));
                emp.setName(name);
                emp.setAge(age);
                emp.setSalary(salary);
                flag=true;
        }
            }
        if (flag){
            System.out.println("修改 成功");
        }else {
            try {
                throw new TeamException("该成员不存在");
            }catch (TeamException e){
                e.printStackTrace();
            }
        }
    }

定义:查找员工方法

(1.查找每个员工 2.按照员工id来查找员工 3 .查找员工集合)

 public void showEmployee() {
        System.out.println("ID\t 姓名\t年龄\t 工资\t 职位\t 状态\t 奖金\t 股票\t 领用设备");
        for(Employee employee:employees){
            System.out.println(" "+employee);
        }
    }
   public Employee getEmployees(int id) throws TeamException {
        for (int i = 0; i < employees.size(); i++) {
            if (id == employees.get(i).getId()) {
                return employees.get(i);
            }
        }
        throw new TeamException("该员工不存在");
    }
   public ArrayList<Employee> geetAllEmployees() {
        return employees;
    }

该类全部代码(上述代码为各部分代码 怕有遗漏 )

package service;

import domain.*;
import view.TSUtility;

import java.util.ArrayList;

public class NameListService {
    private ArrayList<Employee> employees = new ArrayList<>();
    //添加员工id
    private int count = 1;

    //初始化默认值
    {
        employees.add(new Employee(count, "马云 ", 22, 3000));
        employees.add(new Architect(++count, "马化腾", 32, 18000, new NoteBook("联想T4", 6000), 60000, 5000));
        employees.add(new Programmer(++count, "李彦宏", 23, 7000, new PC("戴尔", "NEC 17寸")));
        employees.add(new Programmer(++count, "刘强东", 24, 7300, new PC("戴尔", "三星 17寸")));
        employees.add(new Designer(++count, "雷军 ", 50, 10000, new Printer("激光", "佳能2900"), 5000));
        employees.add(new Programmer(++count, "任志强", 30, 16800, new PC("华硕", "三星 17寸")));
        employees.add(new Designer(++count, "柳传志", 45, 35500, new PC("华硕", "三星 17寸"), 8000));
        employees.add(new Architect(++count, "杨元庆", 35, 6500, new Printer("针式", "爱普生20k"), 15500, 1200));
        employees.add(new Designer(++count, "史玉柱", 27, 7800, new NoteBook("惠普m6", 5800), 1500));
        employees.add(new Programmer(++count, "丁磊 ", 26, 6600, new PC("戴尔", "NEC17寸")));
        employees.add(new Programmer(++count, "张朝阳 ", 35, 7100, new PC("华硕", "三星 17寸")));
        employees.add(new Designer(++count, "杨致远", 38, 9600, new NoteBook("惠普m6", 5800), 3000));
    }

    public ArrayList<Employee> geetAllEmployees() {
        return employees;
    }

    public Employee getEmployees(int id) throws TeamException {
        for (int i = 0; i < employees.size(); i++) {
            if (id == employees.get(i).getId()) {
                return employees.get(i);
            }
        }
        throw new TeamException("该员工不存在");
    }

    public void addEmployee() {
        System.out.println("请输入需要添加的雇员的职位:");
        System.out.println("1(无职位)");
        System.out.println("2(程序员)");
        System.out.println("3(设计师)");
        System.out.println("4(架构师)");
        String c = String.valueOf(TSUtility.readMenuSelection());
        if (c.equals("1")) {
            System.out.println("当前职位分配为无");
            System.out.println("请输入当前雇员的姓名");
            String name = TSUtility.readKeyBoard(4, false);
            System.out.println("请输入当前雇员的年龄:");
            int age = TSUtility.readInt();
            System.out.println("请输入当前雇员的工资:");
            Double salary = TSUtility.readDouble();
            Employee employee = new Employee(++count, name, age, salary);
            employees.add(employee);
            System.out.println("人员添加成功");
            TSUtility.readReturn();
        } else if (c.equals("2")) {
            System.out.println("当前雇员职位分配为:程序员");
            System.out.println("请输入当前雇员的姓名:");
            String name = TSUtility.readKeyBoard(4, false);
            System.out.println("请输入当前雇员的年龄:");
            int age = TSUtility.readInt();
            System.out.println("请输入当前雇员的工资:");
            Double salary = TSUtility.readDouble();
            System.out.println("请为当前程序员配一台好的台式电脑:");
            PC pc = new PC().addPC();
            Programmer programmer = new Programmer(++count, name, age, salary, pc);
            employees.add(programmer);
            System.out.println("人员添加成功");
            TSUtility.readReturn();
        } else if (c.equals("3")) {
            System.out.println("`当前雇员职位分配为:设计师");
            System.out.println("请输入当前雇员的姓名:");
            String name = TSUtility.readKeyBoard(4, false);
            System.out.println("请输入当前雇员的年龄:");
            int age = TSUtility.readInt();
            System.out.println("请输入当前雇员的工资:");
            Double salary = TSUtility.readDouble();
            System.out.println("请为当前设计师配一台好的笔记本电脑:");
            NoteBook noteBook=new NoteBook().addNoteBook();
            System.out.println("请输入当前设计师的奖金:");
            Double bonus = TSUtility.readDouble();
            Programmer programmer = new Designer(++count, name, age, salary, noteBook,bonus);
            employees.add(programmer);
            System.out.println("人员添加成功!");
            TSUtility.readReturn();
        } else {
            System.out.println("`当前雇员职位分配为:架构师");
            System.out.println("请输入当前雇员的姓名:");
            String name = TSUtility.readKeyBoard(4, false);
            System.out.println("请输入当前雇员的年龄:");
            int age = TSUtility.readInt();
            System.out.println("请输入当前雇员的工资:");
            Double salary = TSUtility.readDouble();
            System.out.println("请为当前架构师配一台好的打印设备:");
            Printer printer = new Printer().addPrinter();
            System.out.println("请输入当前架构师的奖金:");
            Double bonus = TSUtility.readDouble();
            System.out.println("请输入当前架构师的股票:");
            Integer stock = TSUtility.readstock();
            Architect architect = new Architect(++count, name, age, salary, printer, bonus, stock);
            employees.add(architect);
            System.out.println("人员添加成功!");
            TSUtility.readReturn();
        }
    }

    public void delEmployee(int id){
        boolean flag = false;
        //删除通常可以定义一个boolean值
        //为true则打印输出成功 为false则抛出异常(try catch)
        for (int i = 0; i < employees.size(); i++) {
            if (employees.get(i).getId() == id) {
                employees.remove(i);
                for (i = id; i <= employees.size(); i++) {
                    employees.get(i - 1).setId(employees.get(i - 1).getId() - 1);
                }
                //如果删除的id为3 那么i就是2
                //首先先找到i  i和id的关系为id-1为i 所以先获得employees.get(i-1)
                //然后设置其 id(找到对应id减一)
                //id为3的设置id为(3-1)为2
                flag = true;
            }
        }
        if (flag) {
            //count--;不存在意义
            System.out.println("删除成功!");
        } else {
            try {
                throw new TeamException("该员工不存在");
            } catch (TeamException e) {
                e.printStackTrace();
            }
        }
    }
    public void showEmployee() {
        System.out.println("ID\t 姓名\t年龄\t 工资\t 职位\t 状态\t 奖金\t 股票\t 领用设备");
        for(Employee employee:employees){
            System.out.println(" "+employee);
        }
    }

    public void modifyEmpolyee(int id){
        boolean flag=false;
        //定义boolean变量 如删除方法一致
        for (int i = 0; i <employees.size() ; i++) {
            Employee emp = employees.get(i);
            if (id==emp.getId()){
                System.out.print("姓名(" + emp.getName() + "):");
                String name = TSUtility.readString(4, emp.getName());
                System.out.print("年龄(" + emp.getAge() + "):");
                int age = Integer.parseInt(TSUtility.readString(2,emp.getAge()+""));
                System.out.print("工资(" + emp.getSalary() + "):");
                double salary =Double.parseDouble(TSUtility.readString(10, emp.getSalary()+""));
                emp.setName(name);
                emp.setAge(age);
                emp.setSalary(salary);
                flag=true;
        }
            }
        if (flag){
            System.out.println("修改 成功");
        }else {
            try {
                throw new TeamException("该成员不存在");
            }catch (TeamException e){
                e.printStackTrace();
            }
        }
    }
}

③TeamService

 定义变量

 private static int counter = 1;
    //序号
    private final int MAX_MEMBER = 5;
    //数组最大值
    private Programmer[] team = new Programmer[MAX_MEMBER];
    //创建数组
    private int total = 0;
    //实际长度

 ①增加人员(将人员添加到数组)

 判断人员是否已满  判断是否为开发人员

public void addMember(Employee e) throws TeamException {
        if (total >= MAX_MEMBER) {
            throw new TeamException("成员已满,无法添加");
        }
        if (!(e instanceof Programmer)) {
            throw new TeamException("该成员不是开发人员,无法添加");
        }

1. 判断人员是否在团队里面(前面已经给了条件:开发人员才能才能添加,隐藏条件:把方法Employee类转化为Programmer类)

2.判断人员是否在本团队(再次定义方法isExit( ))或者已在其他团队

    if (isExist(p)) {
            throw new TeamException("该员工已在本团队中");
        }
        if (!p.getStatus()) {
            throw new TeamException("该员工已是某团队成员");
        }

        private boolean isExist(Programmer p) {
        for (int i = 0; i < total; i++) {
            if (team[i].getId() == p.getId()) return true;
        }
        return false;
    }

判断团队成员组成

 int numOfArch = 0, numOfDsgn = 0, numOfPrg = 0;
        for (int i = 0; i < total; i++) {
            if (team[i] instanceof Architect) {
                numOfArch++;
            } else if (team[i] instanceof Designer) {
                numOfDsgn++;
            } else if (team[i] instanceof Programmer) {
                numOfPrg++;
            }
        }
        //instanceof方法要从最小的类进行判断
        // (p为可能为Programmer类 也可能为Designer类 也可能为Architect类)
        if (p instanceof Architect) {
            if (numOfArch >= 1) {
                throw new TeamException("团队中至多只能有一名架构师");
            }
        } else if (p instanceof Designer) {
            if (numOfDsgn >= 2) {
                throw new TeamException("团队中至多只能有两名设计师");
            }
        } else if (p instanceof Programmer) {
            if (numOfPrg >= 3) {
                throw new TeamException("团队中至多只能有三名程序员");
            }
        }

数组的添加操作(设置编号,数组长度加一,并且把要添加的对象加到数组中去),把状态设置为false,防止重复添加)

        p.setStatus(false);
        p.setMemberId(counter++);
        team[total++] = p;

②人员删除(将人员从数组中删除)

    public void removeMember(int memberId) throws TeamException {
        int i = 0;
        //i要经常用 所以放在最前面 避免重复定义
        for(; i < total; i++) {
            if(memberId == team[i].getMemberId()) {
                team[i].setStatus(true);
                break;
            }
        }
        //如果遍历成功结束,说明没有找到
        if(i == total) {
            throw new TeamException("找不到指定memberId的员工,删除失败");
        }
        //开始删除,团队数组从找到的下标开始后一个对象进行覆盖
        //total-1是根据j+1来定的
        for(int j = i; j < total - 1; j++) {
            team[j] = team[j+1];
        }
//        for (int j=i;j<total+1;j++){
//            team[j]=team[j-1];
//        }
        //两种写法

        //将数组最后一个对象指向空,总数减一
        team[--total] = null;

③人员查看

public Programmer[] getTeam() {
        Programmer[] team = new Programmer[total];
        //创建一个长度为实际长度的数组
        if (total==0){
            System.out.println("前先添加团队");
        }//得先进行添加操作
        //不一定传了5个 节约空间么?
        for (int i = 0; i < total; i++) {
            team[i]=this.team[i];
            //this.team为方法体外面team
            //team[i]为方法体内部的(不赋值并没有意义)
        }
        return team;
    }

该类全部代码

package service;


import domain.Architect;
import domain.Designer;
import domain.Employee;
import domain.Programmer;



public class TeamService {
    private static int counter = 1;
    //序号
    private final int MAX_MEMBER = 5;
    //数组最大值
    private Programmer[] team = new Programmer[MAX_MEMBER];
    //创建数组
    private int total = 0;
    //实际长度
    public Programmer[] getTeam() {
        Programmer[] team = new Programmer[total];
        //创建一个长度为实际长度的数组
        if (total==0){
            System.out.println("前先添加团队");
        }//得先进行添加操作
        //不一定传了5个 节约空间么?
        for (int i = 0; i < total; i++) {
            team[i]=this.team[i];
            //this.team为方法体外面team
            //team[i]为方法体内部的(不赋值并没有意义)
        }
        return team;
    }
        //不做需求
//    public void clearTeam() {
//        team = new Programmer[MAX_MEMBER];
//        counter = 1;
//        total = 0;
//        this.team = team;
//    }
    //将人员添加到数组
    public void addMember(Employee e) throws TeamException {

        if (total >= MAX_MEMBER) {
            throw new TeamException("成员已满,无法添加");
        }
        if (!(e instanceof Programmer)) {
            throw new TeamException("该成员不是开发人员,无法添加");
        }
        //关键一步
        Programmer p = (Programmer) e;

        if (isExist(p)) {
            throw new TeamException("该员工已在本团队中");
        }
        if (!p.getStatus()) {
            throw new TeamException("该员工已是某团队成员");
        }


        int numOfArch = 0, numOfDsgn = 0, numOfPrg = 0;
        for (int i = 0; i < total; i++) {
            if (team[i] instanceof Architect) {
                numOfArch++;
            } else if (team[i] instanceof Designer) {
                numOfDsgn++;
            } else if (team[i] instanceof Programmer) {
                numOfPrg++;
            }
        }
        //instanceof方法要从最小的类进行判断
        // (p为可能为Programmer类 也可能为Designer类 也可能为Architect类)
        if (p instanceof Architect) {
            if (numOfArch >= 1) {
                throw new TeamException("团队中至多只能有一名架构师");
            }
        } else if (p instanceof Designer) {
            if (numOfDsgn >= 2) {
                throw new TeamException("团队中至多只能有两名设计师");
            }
        } else if (p instanceof Programmer) {
            if (numOfPrg >= 3) {
                throw new TeamException("团队中至多只能有三名程序员");
            }
        }
        p.setStatus(false);
        p.setMemberId(counter++);
        team[total++] = p;
    }

    private boolean isExist(Programmer p) {
        for (int i = 0; i < total; i++) {
            if (team[i].getId() == p.getId()) return true;
        }
        return false;
    }

    public void removeMember(int memberId) throws TeamException {
        int i = 0;
        //i要经常用 所以放在最前面 避免重复定义
        for(; i < total; i++) {
            if(memberId == team[i].getMemberId()) {
                team[i].setStatus(true);
                break;
            }
        }
        //如果遍历成功结束,说明没有找到
        if(i == total) {
            throw new TeamException("找不到指定memberId的员工,删除失败");
        }
        //开始删除,团队数组从找到的下标开始后一个对象进行覆盖
        //total-1是根据j+1来定的
        for(int j = i; j < total - 1; j++) {
            team[j] = team[j+1];
        }
//        for (int j=i;j<total+1;j++){
//            team[j]=team[j-1];
//        }
        //两种写法

        //将数组最后一个对象指向空,总数减一
        team[--total] = null;
    }

}

④ProjectService

创建项目集合和变量序号

    private ArrayList<Project> pro = new ArrayList<>();
    private int count = 1;

方法:添加项目

  //添加项目
    public void addProjects() {
        System.out.println("项目参考:--------------------------------------------------");
        System.out.println("1.小米官网:开发完成类似于小米官网的web项目.");
        System.out.println("2.公益在线商城:猫宁Morning公益商城是中国公益性在线电子商城.");
        System.out.println("3.博客系统:Java博客系统,让每一个有故事的人更好的表达想法!");
        System.out.println("4.在线协作文档编辑系统:一个很常用的功能,适合小组内的文档编辑。");
        System.out.println("------------------------------------------------------------");
        TSUtility.readReturn();
        System.out.println("请输入你想添加的项目名: ");
        char c = TSUtility.readMenuSelection();
        Project p;
        switch (c) {
            case '1':
                p = new Project();
                p.setProId(count++);
                p.setProName("小米官网");
                p.setDesName("开发完成类似小米官网的web项目");
                pro.add(p);
                System.out.println("已添加项目:" + p.getProName());
                break;
            case '2':
                p = new Project();
                p.setProId(count++);
                p.setProName("公益在线商城");
                p.setDesName("猫宁公益商城是中国公益性在线电子商城");
                pro.add(p);
                System.out.println("已经添加项目:" + p.getProName());
                break;
            case '3':
                p = new Project();
                p.setProId(count++);
                p.setProName("博客系统");
                p.setDesName("Java博客系统,让每一个有故事的人更好的表达想法!");
                pro.add(p);
                System.out.println("已添加项目:" + p.getProName());
                break;
            case '4':
                p = new Project();
                p.setProId(count++);
                p.setProName("在线协作文档编辑系统");
                p.setDesName("一个很常用的功能,适合小组内的文档编辑。");
                pro.add(p);
                System.out.println("已添加项目:" + p.getProName());
                break;
            default:
                System.out.println("项目不存在");
                break;
        }

    }

方法:删除项目

 public void delPro(int id){
        boolean flag=false;
        for (int i = 0; i <pro.size() ; i++) {
            if (id==pro.get(i).getProId()){
                pro.remove(i);
            }
            flag=true;
        }
        if (flag){
            System.out.println("删除成功");
            count--;
        }else{
            try {
                throw new TeamException("该项目不存在");
            }catch (TeamException e){
                e.printStackTrace();
            }
        }
    }

方法:查找项目(1.返回项目集合 2.返回每一个项目)

public ArrayList<Project> getAllPro(){
        return pro;
    }
public void showPro(){
    for (int i = 0; i < pro.size(); i++) {
            System.out.println(pro.get(i));
     }
}

方法:分配项目

public void dealingPro(Programmer[] team){
        System.out.println("当前团队有人员:");
        for (int i = 0; i < team.length; i++) {
            System.out.println(team[i]);
        }
        System.out.println("请为当前团队创建一个团队名称:");
        String teamName = TSUtility.readKeyBoard(6, false);
        //随机分配项目
        Random ra = new Random();
        int ranNum = ra.nextInt(pro.size());
        Project project = this.pro.get(ranNum);

        project.setTeamName(teamName);
        project.setTeam(team);
        project.setStatus(true);

        pro.set(ranNum,project);
    }

该类的所有代码

package service;

import domain.Programmer;
import domain.Project;
import view.TSUtility;

import java.util.ArrayList;
import java.util.Random;

public class ProjectService {
    private ArrayList<Project> pro = new ArrayList<>();
    private int count = 1;

    //添加项目
    public void addProjects() {
        System.out.println("项目参考:--------------------------------------------------");
        System.out.println("1.小米官网:开发完成类似于小米官网的web项目.");
        System.out.println("2.公益在线商城:猫宁Morning公益商城是中国公益性在线电子商城.");
        System.out.println("3.博客系统:Java博客系统,让每一个有故事的人更好的表达想法!");
        System.out.println("4.在线协作文档编辑系统:一个很常用的功能,适合小组内的文档编辑。");
        System.out.println("------------------------------------------------------------");
        TSUtility.readReturn();
        System.out.println("请输入你想添加的项目名: ");
        char c = TSUtility.readMenuSelection();
        Project p;
        switch (c) {
            case '1':
                p = new Project();
                p.setProId(count++);
                p.setProName("小米官网");
                p.setDesName("开发完成类似小米官网的web项目");
                pro.add(p);
                System.out.println("已添加项目:" + p.getProName());
                break;
            case '2':
                p = new Project();
                p.setProId(count++);
                p.setProName("公益在线商城");
                p.setDesName("猫宁公益商城是中国公益性在线电子商城");
                pro.add(p);
                System.out.println("已经添加项目:" + p.getProName());
                break;
            case '3':
                p = new Project();
                p.setProId(count++);
                p.setProName("博客系统");
                p.setDesName("Java博客系统,让每一个有故事的人更好的表达想法!");
                pro.add(p);
                System.out.println("已添加项目:" + p.getProName());
                break;
            case '4':
                p = new Project();
                p.setProId(count++);
                p.setProName("在线协作文档编辑系统");
                p.setDesName("一个很常用的功能,适合小组内的文档编辑。");
                pro.add(p);
                System.out.println("已添加项目:" + p.getProName());
                break;
            default:
                System.out.println("项目不存在");
                break;
        }

    }
    //处理队伍
    public void dealingPro(Programmer[] team){
        System.out.println("当前团队有人员:");
        for (int i = 0; i < team.length; i++) {
            System.out.println(team[i]);
        }
        System.out.println("请为当前团队创建一个团队名称:");
        String teamName = TSUtility.readKeyBoard(6, false);
        //随机分配项目
        Random ra = new Random();
        int ranNum = ra.nextInt(pro.size());
        Project project = this.pro.get(ranNum);

        project.setTeamName(teamName);
        project.setTeam(team);
        project.setStatus(true);

        pro.set(ranNum,project);
    }
    public void showPro(){
        for (int i = 0; i < pro.size(); i++) {
            System.out.println(pro.get(i));
        }
    }
    public ArrayList<Project> getAllPro(){
        return pro;
    }
    public void delPro(int id){
        boolean flag=false;
        for (int i = 0; i <pro.size() ; i++) {
            if (id==pro.get(i).getProId()){
                pro.remove(i);
            }
            flag=true;
        }
        if (flag){
            System.out.println("删除成功");
            count--;
        }else{
            try {
                throw new TeamException("该项目不存在");
            }catch (TeamException e){
                e.printStackTrace();
            }
        }
    }
}

3.view模块

①LoginView类

package view;

import java.util.Scanner;

public class LoginView {
    //简单的登录操作
    private String userName = "";
    //userName的内容 是空字符 不进行任何操作
    private String password = "";

    public void regist() {
        System.out.println("开始注册");
        System.out.println("请输入你要注册的账号");
        String userName = TSUtility.readKeyBoard(4, false);
        this.userName = userName;
        System.out.println("请输入你要注册的密码");
        String password = TSUtility.readKeyBoard(8, false);
        this.password = password;
        System.out.println("注册成功!请登录");
    }

    //登录
    public void login() {
        int count = 5;//定义变量count来限制登录的次数
        boolean flag = true;
        while (flag) {
            System.out.println("***   <登录界面>   ***");
            System.out.println("请输入你的登录账号");
            String userName = TSUtility.readKeyBoard(4, false);
            System.out.println("请输入你的密码");
            String password = TSUtility.readKeyBoard(8, false);
            //判断是否已经是注册了
            if (this.userName.length() == 0 || this.password.length() == 0) {
                System.out.println("未检测到您的账号,请先注册");
                regist();
            } else if (userName.equals(this.userName) && password.equals(this.password)) {
                System.out.println("登录成功,欢迎您" + userName);
                flag = false;
            } else {
                if (count <= 0) {
                    System.out.println("登录次数不足");
                    break;
                } else {
                    count--;
                    System.out.println("登录失败,账号和密码不匹配");
                    System.out.println("登录次数还剩" + count + "次请重新输入");
                }
            }
        }

    }
    //更新
    public void update(){
        boolean falg=true;
        while(falg){
            System.out.println("***   <修改界面>   ***");
            System.out.println("请输入你需要修改的类型:");
            System.out.println("1(修改用户名)");
            System.out.println("2(修改密码名)");
            System.out.println("3(修改用户名和密码名)");
            System.out.println("4(不修改,退出)");
            Scanner in=new Scanner(System.in);
            String options = in.next();
            if (options.equals("1")){
                System.out.println("请输入你的修改的账户名称");
                String userName = TSUtility.readKeyBoard(4, false);
                this.userName=userName;
                System.out.println("修改成功");
            }else if(options.equals("2")){
                System.out.println("请输入你的修改密码");
                String password = TSUtility.readKeyBoard(8,false);
                this.password=password;
                System.out.println("修改成功");
            }else if (options.equals("3")){
                System.out.println("请输入你的修改的账户名称");
                String userName = TSUtility.readKeyBoard(4, false);
                this.userName=userName;
                System.out.println("请输入你的修改密码");
                String password = TSUtility.readKeyBoard(8,false);
                this.password=password;
                System.out.println("修改成功");
            }else if(options.equals("4")){
                System.out.println("退出中");
                falg=false;
            }else {
                System.out.println("输入错误,请输入“1”或“2”或“3”或”4“:");

            }
        }
    }
}

java项目开发团队分配管理软件 /注册System.out.println("----开始注册----");System.out.println("请输入你的注册账户名称:");System.out.println("请输入你的注册账户密码:");System.out.println("注册成功!请登录");//登录//失败次数System.out.println("*** ***");System.out.println("请输入你的登录账户名称:"); 阅读详情

相关推荐

Java 项目开发团队分配管理软件

•模拟实现一个基于文本界面的《项目开发团队分配管理软件》•熟悉Java面向对象的高级特性,进一步掌握编程技巧和调试技巧•主要涉及以下知识点:类的继承性和多态性对象的值传递、接口static和final修饰符特殊类的使用:包装类、抽象类、内部类异常处理Java基本语法和流程控制数组,ArrayList集合•该软件实现以下功能:软件启动时,首先进入登录界面进行注册和登录功能。当登陆成功后,进入菜单,首先就可以对开发人员账户和密码进行修改。然后可以对开发人员进行增删改操作。.........

今天我学废了吗 544

项目开发团队分配管理软件(超详细)

小项目开发团队分配管理软件

weixin_45847110的博客 906

VMware17安装教程(附安装包)VMware17小白详细一键安装教程

VMware 17.5 是一款强大的虚拟机软件。本安装教程将为您详细介绍VMware17安装教程其下载、安装步骤及验证方法,助您轻松完成安装,开启虚拟化体验。

2501_91538706的博客 2万+

实践项目一 项目开发团队分配管理

整体结构图: 实现流程图: 整体功能实现分析: 从两张图可以看出:完成整个项目,总共需要完成四个小模块,而每一个模块都有自己的功能。通过两图可以看出,完成该项目大致的思路都是完成各自模块的增、删、改、查。这几个功能,相信大家都不陌生。不同的是:该项目需要把各个模块相联系起来, ...

ck_67的博客 1573

【第48例】BLM模型之市场洞察-五看工具篇(一)

BLM市场洞察

产品线负责人 2110

银行业数据科学家的 6 条经验教训

原本希望在计算机科学、统计学和机器学习领域工作。运用新方法获得独特见解,实现一切自动化。简而言之,最终成了这个职业炒作的牺牲品。我想和你们分享一下。希望我们能够摆脱炒作,提高你对数据科学家工作的理解。

茶桁专栏 246

Java项目开发团队分配管理软件

目录一、项目大纲学习目标软件需求整体思路二、具体实现1、用户注册和登录模块2、开发人员管理模块3、开发团队调度管理模块4、开发项目管理模块5、主界面模块三、项目总结 一、项目大纲 学习目标 模拟实现一个基于文本界面的《项目开发团队分配管理软件》 熟悉Java面向对象的高级特性,进一步掌握编程技巧和调试技巧 主要涉及以下知识点: 类的继承性和多态性 对象的值传递、接口 static和final修饰符 特殊类的使用:包装类、抽象类、内部类 异常处理 Java基本语法和流程控制 数组,ArrayList集合 软件

ShenShiXiao的博客 681

LeRobot 入门教程(十三)集成自定义的机器人、相机等硬件

本文详细介绍了如何将自定义机器人集成到LeRobot生态系统的完整流程。主要内容包括:1)硬件准备与通信接口选择;2)继承Robot基类实现标准接口;3)定义观察特征和动作特征;4)处理设备连接/断开逻辑;5)支持校准与配置;6)实现核心传感器读取和动作发送功能;7)可选遥操作器集成;8)遵循4项规范打包自定义设备(命名前缀、类名对应、文件结构、模块暴露);9)提供了完整实现示例。通过该方案,开发者可让自定义机器人兼容LeRobot的数据采集、控制管道和策略训练等全套工具链。

2506_90492529的博客 1902

项目开发团队分配管理软件总结

目录 前言 一、项目需求 二、主要思路 三、系统流程 四、代码实现 4.1 登录 4.2开发人员管理模块 4.3开发团队调度管理模块 4.4开发项目管理模块 4.5 IndexView类的设计 五、总结 前言 当我们在学习完了Java基础和面向对象之后我们就可以开始着手写一些比较简单的项目了。当我们能够自己独立的写完一个比较完整的小项目的时候,也表示我们前面学习的Java基础和面对对象这些都学懂了,能够进行灵活运用。主要目的就是熟悉Java面向对象的高级特性,进一步掌握编...

码小春的博客 464

基于Simulink的光储系统黑启动能力仿真

本文基于Simulink平台构建了光储系统黑启动仿真模型,详细阐述了储能VF控制、光伏孤岛MPPT和同步并网等核心控制策略。通过分阶段协调控制(储能启动→关键负载→光伏接入→非关键负载→同步并网),实现了60秒内恢复供电、母线电压波动<5%的性能指标。仿真结果表明,协调控制策略相比无序启动可显著提升系统稳定性,避免电压崩溃和负载跳闸。文章还提供了完整的建模步骤、核心代码及进阶优化方向,为微电网应急供电设计提供了实用参考。该模型适用于光伏储能系统的黑启动能力验证和优化研究。

amy_mhd的博客 106

美的集团-数据挖掘工程师面试分享

美的集团-数据挖掘工程师面试分享

512

JAVA 项目开发团队分配管理软件_java项目分配

简而言之在本次项目当中的思想在于:把整个项目分成多个部分的耦合;并且主要分为:M 模型块,即抽象父类V 视图块,打印出用户交互信息C 控制块:用于实现对数据的各种操作。

2501_90404718的博客 1297

在 RAP 里把编号这件事做得既优雅又合规:Early Numbering 与 Late Numbering 的落地指南

本文探讨了 SAP RAP 框架中的三种主键编号策略及其适用场景。文章首先指出传统 ABAP 应用中主键处理的局限性,详细分析了早期编号(外部/内部)和延迟编号的差异,强调延迟编号在避免业务断号方面的优势。通过 Partner 业务对象案例,文章演示了延迟编号的实现方法,包括行为定义配置、保存类实现和编号分配逻辑。同时指出测试中常见的校验陷阱,并提醒生产环境应避免简单的 MAX+1 方案,建议采用原子取号机制确保并发安全。全文从业务合规性和技术实现两个维度,为 RAP 应用的编号策略选择提供了实用指导。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1846

java——项目开发团队分配管理软件

System.out.println("项目" + pro.get(i).getProjectName() + "------正在被团队" + pro.get(i).getTeamName() + "开发");System.out.println("项目" + pro.get(i).getProjectName() + "------未开发");System.out.println("项目参考:--------------------------------------------------");

学无止境 971

CKA-题库-简洁参考答案-反复练习20遍-必过!!!

新版CKA考试已于2020年9月1日正式上线! 考试模式:线上考试 考试时间:2小时 认证有效期:3年 软件版本:Kubernetes v1.19 重考政策:可接受1次重考 经验水平:中級 题目数量:17题 题库量小:随机的题目重复率极高 考试时可打开两个浏览器Tab,一个是考试窗口,一个用来查阅官方文档](https://kubernetes.io/docs/) 01 Task - 英文 Create a new ClusterRole named deployment-clusterrole tha.

随笔记录-分享&记忆 7318

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

《项目开发团队分配管理软件》

一、序 对我们写文章的来说,序言本身就是一个开文点意的地方,今天我写这篇软件文(简称软文),本来不至于写一个序,但这篇文章对我,意义还是挺大的,突然就想写一个序了。 很多时候人们回顾自己一生的那一刻才会明白,也许某个时间段里仅仅只是做了一个小小的决定,但那可能就是命运巨变的岔路口。 向左还是向右都在自己一念之间,然后做了决定便义无反顾的奔向那个未知的前程。只是那时,自己还以为那不过是生命中很普通平凡的一天。 太阳还是会照常升起,而我已经跳入编程的大海,头也不回游向那未知的远方前路,风雨不知,险难

D大调奏鸣曲_第七序章_de博客 1516

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java综合项目 — 项目开发团队分配管理软件

目录 前言 实现目标 系统功能结构图: 系统流程图: 需求说明: 软件设计结构: 温馨提示 1.对于本项目的设计思路你是否明了? 1.1用户注册和登录模块(定义一个LoginView类) 1.2开发人员管理模块 1.3开发团队调度管理模块 1.4开发项目管理模块 2.对于本项目的基本流程你是否清楚明白? 3.对于本项目的代码编写实现你是否有足够的信心? 代码及界面展示 总结 前言 小伙伴们大家好,今天博主要跟你们分享的是一个比较系统的Java综合项目...

South.return 936

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

项目开发团队分配管理软件设计思想

这是我做的第一个项目的设计思路,做的不好还请见谅!!!! 项目开发团队分配管理软件 目标: •模拟实现一个基于文本界面的《项目开发团队分配管理软件》 •熟悉Java面向对象的高级特性,进一步掌握编程技巧和调试技巧 •主要涉及以下知识点: 1.类的继承性和多态性 2.对象的值传递、接口 3.static和final修饰符 4.特殊类的使用:包装类、抽象类、内部类 5.异常处理 6.Java基本语法和流程控制 7.数组,Array...

wolaitoushile的博客 182

【Java】项目开发团队分配管理软件

Java实践项目 开发团队分配管理软件

weixin_58545784的博客 624
上一篇: 二进制、八进制、十六进制的相互转换
下一篇: 【1】将以下车站对应关系的数据存储到map集合中,key:表示站编号,value:表示站名,并遍历打印(可以不按顺序打印):
浮光1
博客等级 码龄7年 27粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值