2022-07-16 第四小组 孙翰章 学习笔记

今日复习昨日内容

分享昨晚项目成果


功能1员工信息要保存到数组里。
1.工号(不能输入,自动生成的自动递增的一个数字1001)
2.员工姓名
员工的工号和姓名都是保存到数组里
int[]nos = new int[2];
string []names = new string[2];
要考虑扩容问题
功能2
根据工号查询
如果有能力的,可以去做根据姓名查询,姓名可以重名(选做)。
功能3
修改两个操作
1、先输入员工号;先查询员工号在不在,若干不在,员工号输入有误
如果在,先显示出原有信息,请输入新的名字
修改信息1002 nos[1]  nos[1]
功能4
数组删除元素:
10个元素,5个,移位的问题
int[]0
String[] null


package HomeWork;

import java.util.Scanner;
import java.util.Arrays;

public class Test {

    public static void main(String[] args) {
        System.out.println("欢迎使用员工管理系统!");
        Scanner sc = new Scanner(System.in);

        int[] nos = new int[1];                //用于存放员工号
        String[] names = new String[1];        //用于存放员工姓名
        int noCount = 1000;                    //员工编号
        int empSum = 0;                        //员工人数
        boolean isAdd = false;                //是否继续添加

        while (true) {
            System.out.println("请选择功能:1.添加员工 2.查询员工 3.修改员工 4.删除员工");
            int flag = sc.nextInt();
            switch (flag) {
                case 1:
                    //添加
                    isAdd = true;
                    while (isAdd) {
                        System.out.print("请输入员工姓名:");
                        String name = sc.next();

                        //超出扩容,一次扩容2个单位
                        if (empSum >= nos.length) {
                            int[] new_nos = new int[nos.length + 1];
                            String[] new_names = new String[names.length + 1];

                            for (int i = 0; i < nos.length; i++) {
                                new_nos[i] = nos[i];
                                new_names[i] = names[i];
                            }
                            nos = new_nos;
                            names = new_names;
                        }

                        //赋值并更新
                        nos[empSum] = ++noCount;
                        names[empSum++] = name;

                        System.out.println("你已添加成功!");
                        System.out.println("是否继续添加?(true/false):");
                        isAdd = sc.nextBoolean();
                    }
                    break;
                case 2:
						/*
							要求根据工号查询

						*/
                    boolean isFindAll = false;
                    System.out.print("查询所有员工true;查询单个员工false:");
                    isFindAll = sc.nextBoolean();
                    if (isFindAll) {
                        //查询所有员工
                        if (names[0] == null) {
                            System.out.println("没有任何员工");
                            break;
                        }
                        for (int i = 0; i < nos.length; i++) {
                            System.out.println("员工编号:" + nos[i] + "\t员工姓名:" + names[i]);
                        }
                    } else {
                        System.out.print("请输入你想查询的员工工号:");
                        int empNo = sc.nextInt();
                        boolean isFound = false;
                        for (int i = 0; i < nos.length; i++) {
                            if (empNo == nos[i]) {
                                System.out.println("员工编号:" + nos[i] + "\t员工姓名:" + names[i]);
                                isFound = true;
                                break;
                            }
                        }
                        System.out.print(isFound ? "" : "未找到该员工\n");
                    }

                    break;

                case 3:
                    //修改
                    System.out.print("请输入你想修改的员工工号:");
                    int empNo1 = sc.nextInt();
                    boolean isFound1 = false;
                    for (int i = 0; i < nos.length; i++) {
                        if (empNo1 == nos[i]) {
                            //显示原有信息
                            System.out.println("员工编号:" + nos[i] + "\t员工姓名:" + names[i]);
                            isFound1 = true;
                            System.out.print("请输入新名字:");
                            String new_name = sc.next();
                            //更新新名字
                            names[i] = new_name;
                            System.out.println("修改成功!修改结果如下");
                            System.out.println("员工编号:" + nos[i] + "\t员工姓名:" + names[i]);

                            break;
                        }
                    }
                    System.out.print(isFound1 ? "" : "员工号有误\n");


                    break;

                case 4:
                    //删除
                    System.out.print("请输入你想删除的员工工号:");
                    int empNo2 = sc.nextInt();
                    boolean isFound2 = false;
                    for (int i = 0; i < nos.length; i++) {
                        if (empNo2 == nos[i]) {
                            //显示原有信息
                            System.out.println("员工编号:" + nos[i] + "\t员工姓名:" + names[i]);
                            isFound2 = true;
                            System.out.print("是否确认删除该员工?(true/false):");
                            boolean isDel = sc.nextBoolean();
                            if (isDel) {//删除
                                for (int j = i; j < nos.length; j++) {
                                    if (j == nos.length - 1) {
                                        nos[j] = 0;
                                        names[j] = null;
                                        break;
                                    }
                                    //位移
                                    nos[j] = nos[j + 1];
                                    names[j] = names[j + 1];
                                }
                                //更新员工数量
                                empSum--;
                                System.out.println("删除成功!");
                            } else {
                                System.out.println("已取消删除操作!");

                            }
                            break;
                        }
                        System.out.print(isFound2 ? "" : "你要删除的员工并不存在!\n");
                    }

                    break;
                default:

                    System.out.println("无效数值,请重新选择");
                    break;


            }
        }
    }
}

基本实现要求功能 后续会完善具体功能

所复习知识能够理解掌握

天气晴 早上打了羽毛球 坚持 心情良好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值