其他分享
首页 > 其他分享> > 20220715第三组张立学习笔记

20220715第三组张立学习笔记

作者:互联网

知识点
数据结构:

数组是最基本的数据结构,是一张表,线性表(数据元素之间是一对一的关系)

除了第一个和最后一个之外,其余的元素都是首位连接

2,链表

3,树

4,图

数组排序:
冒泡排序 选择排序 插入排序

习题

package com.jr.morning;

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

public class ManageSystem {
public static void main(String[] args) {

/**

// int id = 1001;

    switch (flag) {
        case "1":
            aa: for (;;){


            System.out.println("请输入员工姓名:");
            Scanner scName=new Scanner(System.in);
            String name = scName.next();

            for (int i = 0; i <nameList.length ; i++) {
                if(nameList[i]!=null){
                    continue ;
                }
                nameList[i]=name;
                int id1=1001+i;
                id[i]=id1;
                id1++;
                System.out.println("是否添加?1 是,2 否");
                Scanner ss=new Scanner(System.in);
                int s = ss.nextInt();

                if(s==2){
                    System.out.println("员工列表为"+Arrays.toString(nameList)+"员工id为"+Arrays.toString(id));
                    break aa;
                }if(s==1){


                if(i+1== nameList.length){
                    String [] temp=new String[nameList.length+1];
                    int [] tempId=new int[nameList.length+1];
                    for (int j = 0; j < nameList.length ; j++) {
                        temp[j] = nameList[j];
                        tempId[j] = id[j];
                    }
                    nameList=temp;



                    id=tempId;


                }

                break ;
                }
            }

            }
            break ;
            /*
                员工信息要保存到数组里。
                1.工号(不能输入,自动生成的自动递增的一个数字1001)
                2.员工姓名
                员工的工号和姓名都是保存到数组里
                int [] nos = new int[2];
                String [] names = new String[2];
                要考虑扩容问题
             */
        case "2":

            System.out.println("请输入要查询的工号");
            Scanner scId=new Scanner(System.in);
            int idSearch = scId.nextInt();
            if ((idSearch-1001+1)<=id.length){


            for (int i = 0; i < id.length; i++) {
                if(idSearch==id[i]){
                    System.out.println("您所查询人的工号是:"+idSearch+",姓名为"+nameList[i]);
                    break ;
                }
            }
            }else {
                System.out.println("工号输入错误");
            }
            //二分法查找

// int left=1001;
// int right=id.length;
//
// int middle=(left+right)/2;
// while (idSearch>=left&&idSearch<=right){
// if(idSearch==middle){
// System.out.println("您所查询人的工号是:"+idSearch+",姓名为"+nameList[middle]);
// break;
// } else if (idSearch>middle) {
// left=middle;
// }else{
// right=middle;
// }
// }
//选择排序
for (int i = 0; i < id.length-1; i++) {
int min=i;
for (int j = i; j < id.length; j++) {
if(id[j]<id[min]){

                        min=j;

                    }
                }
                int temp=id[i];

                id[i]=id[min];
                id[min]=temp;

            }
            System.out.println(Arrays.toString(id));

            /*
                根据工号查询
                如果有能力的同学。可以去做根据姓名查询,姓名可以重名(选坐)
             */
            /*
                排序,根据工号从大到小排序
             */
            //根据姓名查找
            System.out.println("请输入您要查找人的姓名");
            Scanner nameSearch=new Scanner(System.in);
            String  nameFind=nameSearch.next();
            a2: for (int m = 0;; m++) {


            for (int z = 0; z < nameList.length ; z++) {
                if(nameFind.equals(nameList[z])){
                    System.out.println("您查找的人姓名为"+nameFind);
                    break ;
                }else {
                    System.out.println("是否继续查找?1 是,2 否");
                    Scanner s=new Scanner(System.in);
                    int num = s.nextInt();
                    if(num==1){
                        break;
                    }else if (num==2){
                        break  a2;
                    }else {
                        System.out.println("输入错误");
                    }
                }
            }
            }
            break ;
        case "3":
            System.out.println("请输入要修改人的工号");
            Scanner scChange = new Scanner(System.in);
             int idChange = scChange.nextInt();
             a3:
             for (int j = 0; ; j++) {


            for (int i = 0; i < id.length; i++) {
                if(idChange==id[i]){
                    System.out.println("您所查询人的工号是,姓名为"+nameList[i]+",请输入新的名字:");
                    String newName=new Scanner(System.in).next();
                    nameList[i]=newName;
                    System.out.println("您的工号是:"+id[i]+"姓名更改为"+nameList[i]);
                }else {
                    System.out.println("是否重新输入?1 是,2 否");
                    Scanner s1=new Scanner(System.in);
                    int num = s1.nextInt();
                    if(num==1){
                        break;
                    }else if (num==2){
                        break  a3;
                    }else {
                        System.out.println("输入错误");
                    }
                }
            }
             }
             break ;
            /*
                修改两个操作:
                先输入员工号,先查询员工号在不在,如果不在,
                员工号输入有误,
                如果在,先显示出原有信息,请输入新的名字,
                修改信息。1002 nos[1] names[1]=
             */
        case "4":
            System.out.println("请输入要删除人的工号");
            Scanner scDlete = new Scanner(System.in);
            int idDlete = sc.nextInt();
           a4: for (int j = 0; ; j++) {


            for (int i = 0; i <id.length; i++) {
                if(idDlete==id[i]){
                    nameList[i]=null;
                    System.out.println("修改成功");
                    break a4;
                }else {
                    System.out.println("id输入错误,请重新输入");
                    break;
                }
            }
            }
            break ;
            /*
                数组删除元素;
                10个元素,5个,移位的问题
                int[] 0
                String[] null
             */
        default:

            for (int k = 0; ; k++) {


            System.out.println("输入错误是否继续操作?1 是,2 否");

             Scanner s2=new Scanner(System.in);

            int num = s2.nextInt();
            if(num==1){
                break;
            }else if (num==2){
                break  a;
            }else {
                System.out.println("输入错误");
            }
            }
    }
}

}
}

学习心得:
还有很多不足的地方,知识层面和思维层面存在不足,加强学习能力

心情:
心情愉悦,舒服了

标签:第三组,Scanner,20220715,int,张立,System,println,id,out
来源: https://www.cnblogs.com/damecss/p/16482695.html