2022-07-16 第六组 李俊琦 Java基础入门04

Java入门讲义04

今日重点

  1. 员工管理系统
  2. 倒叙插入
  3. 数组插入

学习内容

数组插入

package com.jroft.afternoon;

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

public class Ch04 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] arr = new int[]{1, 2, 3, 4, 5};
        int[] newArr = new int[arr.length * 2];
        for (int j = 0; j < arr.length; j++) {
            newArr[j] = arr[j];
        }
        arr = newArr;
        main:while (true) {
            System.out.println("请输入要插入数据的下标");
            int index = sc.nextInt();
            System.out.println("请输入要插入的数据");
            int num = sc.nextInt();
        /*
            1.因为数组已满需要扩容
            2.找到要插入数据的位置
            3.插入位置后面的数据需要向后移位
         */
            //定义一个临时变量,存储原来index位置的元素
/*        int temp=arr[index];
        //把要插入的数存到指定位置
        arr[index] = num;
        //原来位置后面的那个数向后移一位
        arr[index+2]=arr[index+1];
        arr[index+1]=temp;*/
            //扩容

            //要插入的位置的原始数据保存起来
            int temp = arr[index];
            //把要插入的数据放到指定位置
            arr[index] =num;
            //判断要移位的数据的个数
            for (int i = 0; i < arr.length - index; i++) {
                arr[arr.length - 1]= arr[arr.length - 1-i];
            }
            arr[index + 1]=temp;
            System.out.println("现在数组为:" +  Arrays.toString(arr));
            System.out.println("是否继续添加:1、是 2、否");
            String flag=sc.next();
            switch (flag){
                case "1":
                    continue;
                case "2":
                    System.out.println("当前数组为:" +  Arrays.toString(arr));
                    break main ;


            }


        }
    }
}

倒叙插入

package com.jroft.afternoon;

import java.util.Scanner;

public class Ch02 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int [] arr=new int[5];
        /*
            输入一个数,数是从后往前加
            倒叙输入
            第一次输入的值给[arr.length-1-0]
            第二次输入的值给[arr.length-1-1]
            第三次输入的值给[arr.length-1-2]
            数组的最大下标=数组的长度-1
         */

        for (int i = 0; i <arr.length; i++) {
            System.out.println("请输入第"+(i+1)+"一个数");
            int num = sc.nextInt();
            arr[arr.length - 1] = num;

        }
        for (int i : arr){
            System.out.println(i);
        }

    }
}

员工管理系统

点击查看代码
  Scanner sc = new Scanner(System.in);
        System.out.println("欢迎使用员工管理系统:");
        int id = 1001;  //员工编号
        int index = 0;  // 下标
        int [] nos = new int[2];
        String [] names = new String[2];
        system:
        while (true) {
            System.out.println("请选择功能:1.添加员工 2.查询员工 3.修改员工 4.删除员工 5.按其他任意键退出系统");
            String flag = sc.next();
            switch (flag) {
                case "1":
                    System.out.println("请输入员工姓名");
                    String name = sc.next();
                /*
                1.工号(自动生成自动递增)
                2.员工姓名
                工号和姓名保存到数组
                int [] nos = new int[2];
                String [] names = new String[2];
                要考虑扩容问题
                 */
                    if (nos.length - 1 <= index) {
                        int [] nosTemp = new int[nos.length*2];
                        String [] namesTemp = new String[nos.length*2];
                        for (int i = 0; i < nos.length; i++) {
                            nosTemp[i] = nos[i];
                            namesTemp[i] = names[i];
                        }
                        nos = nosTemp;
                        names = namesTemp;
                    }
                    nos[index] = id;
                    names[index] = name;
                    System.out.println("添加员工成功!");
                    System.out.println("员工信息为:工号-" + nos[index] + " 姓名-" + names[index]);
                    index += 1;
                    id += 1;
                    break;
                case "2":
                /*
                根据工号查询
                如果有能力,可以根据姓名查询,姓名可以重名
                 */
                    System.out.println("请输入工号进行查询:");
                    int selection = sc.nextInt();
                    for (int i = 0; i < nos.length; i++) {
                        if (selection == nos[i]) {
                            System.out.println("该员工的姓名为:" + names[i]);
                            break;
                        } else if (i == nos.length - 1) {
                            System.out.println("您要查询的员工不存在,请确认输入是否正确。");
                        }
                    }
                    break;
                case "3":
                /*
                修改两个操作:先输入员工号,查询员工号存在性,若不再,员工号输入有误,在,
                先显示原有信息,再修改。
                 */
                    System.out.println("请输入要修改的员工号:");
                    selection = sc.nextInt();
                    for (int i = 0; i < nos.length; i++) {
                        if (selection == nos[i]) {
                            System.out.println("该员工原来的姓名为:" + names[i]);
                            System.out.print("请输入要更改的姓名: ");
                            name = sc.next();
                            names[i] = name;
                            System.out.println("修改成功,修改后的姓名为:" + names[i]);
                            break;
                        } else if (i == nos.length - 1) {
                            System.out.println("您要修改的员工不存在,请确认输入是否正确。");
                        }
                    }
                    break;
                case "4":
                /*
                数组删除元素:
                10个元素删除第五个
                int [] = 0
                String [] = null
                 */
                    System.out.println("请输入要删除的员工号:");
                    selection = sc.nextInt();
                    for (int i = 0; i < nos.length; i++) {
                        if (selection == nos[i]) {
                            System.out.println("该员工的姓名为:" + names[i] + " 是否要删除?\n输入1删除,其他键退出");
                            int delete = sc.nextInt();
                            if (delete == 1) {
                                nos[i] = 0;
                                names[i] = null;
                                index -= 1;
                                id -= 1;
                                System.out.println("删除成功!");
                            } else break;
                            break;
                        } else if (i == nos.length - 1) {
                            System.out.println("您要查询的员工不存在,请确认输入是否正确。");
                        }
                    }
                    break;
                default:
                    System.out.println("退出成功,感谢您的使用!");
                    break system;
            }
        }

学习心得

通过今天对作业的理解与学习
我对数组的操作有了更加深刻的认识
在作业的回顾中我也认识并完善了自己知识的不足
在实际操作过程中的错误也得到了纠正

posted @ 2022-07-18 17:38  闹市闲人甲  阅读(44)  评论(0)    收藏  举报