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=new int[2];
    String [] nameList=new String[2];

    a:for (; ; ) {

    Scanner sc = new Scanner(System.in);
    System.out.println("欢迎使用员工管理系统:");
    System.out.println("请选择功能:1、添加员工 2、查询员工 3、修改员工 4、删除员工(选做)");
    String flag = sc.next();
    // 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(s2){
    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(idSearchid[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(num1){
    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(idChangeid[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(num1){
    break;
    }else if (num
    2){
    break a;
    }else {
    System.out.println("输入错误");
    }
    }
    }
    }
    }
    }

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

心情:
心情愉悦,舒服了

posted on 2022-07-15 20:14  百度翻译  阅读(68)  评论(1)    收藏  举报