2022-07-16 第十组 薛雯匀
1.对这部分的直接感受就是难,主要是记不住该怎么写,什么地方用什么也总忘
2.了解

package com.jsoft.morning;
import java.util.Scanner;
public class Ch01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int [] nos = new int[2];
String [] names = new String[2];
// 初始的工号
int no = 1001;
// 要操作的数组的下标
int i = 0;
while(true){
System.out.println("欢迎使用员工管理系统");
System.out.println("请选择功能:1.添加员工 2.查询员工 3.修改员工 4.删除员工");
String flag = sc.next();
switch (flag) {
case "1":
System.out.println("请输入员工姓名:");
String name = sc.next();
/*接下来要做得事:
把员工的姓名和工号保存到对应的数组里
有问题?
如果第一次输入的员工信息,保存到0的位置
第二次输入的员工信息,保存到1的位置
*/
// nos[0] = no;
// names[0] = name;
// no++;
// nos[1] = no;
// names[1] = name;
nos[i] = no;
names[i] = name;
i++;
no++;
/*
分析:
怎么才能知道即将要越界?
1.数组的最后一个元素不为null,0
2.当i的值和数组的最大下标,在进入到添加功能就先判断数组的下标是否合法
3.在添加成功之后,i自增之后,在判断下一次的数组的下标是否合法
*/
if(i >= nos.length){
// 数组要扩容
int [] newNos = new int[nos.length + 1];
String [] newNames = new String[names.length + 1];
for (int j = 0; j < nos.length; j++) {
// 数组中的数据的复制
newNos[j] = nos[j];
newNames[j] = names[j];
}
// 重新赋值
nos = newNos;
names = newNames;
}
break;
case "2":
System.out.println("请选择功能:1、根据工号查询 2、查询所有");
for (int j = 0; j < nos.length; j++) {
System.out.println("工号:" + nos[j] + ",姓名:" + names[j]);
}
break;
case "3":
case "4":
default:
}
}
}
}
【老师】Java讲师-刁老师(175367745) 2022/7/16 10:43:57
case "2":
System.out.println("请选择功能:1、根据工号查询 2、查询所有");
String n = sc.next();
switch (n) {
case "1":
System.out.println("请输入要查询的员工号:");
int s = sc.nextInt();
// boolean b = false;
// 先要去工号的数组中找,如果工号存在,拿到工号对应的下标
// 我还要拿着这个下标去姓名的数组中找姓名
int index = -1;
for (int j = 0; j < nos.length; j++) {
if(nos[j] == s){
// 找到了
// System.out.println("工号:" + s + ",姓名:" + names[j]);
// b = true;
index = j;
break;
}
// else {
// System.out.println("工号:" + s + "不存在!");
// }
}
if(index!= -1) {
System.out.println("工号:" + s + ",姓名:" + names[index]);
}else {
System.out.println("工号:" + s + "不存在!");
}
break;
case "2":
for (int j = 0; j < nos.length; j++) {
if(nos[j] != 0){
System.out.println("工号:" + nos[j] + ",姓名:" + names[j]);
}
}
break;
default:
}
break;
【老师】Java讲师-刁老师(175367745) 2022/7/16 11:56:16
【老师】Java讲师-刁老师(175367745) 2022/7/16 15:08:44
package com.jsoft.afternoon;
import java.util.Arrays;
import java.util.Scanner;
public class Ch03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int [] arr = new int[2];
int i = 0;
main:while(true){
System.out.println("请输入数据:");
int num = sc.nextInt();
arr[arr.length - 1 - i] = num;
i++;
if(i >= arr.length) {
int [] newArr = new int[arr.length * 2];
/*
*/
}
System.out.println("是否继续添加:1、是 2、否");
String flag = sc.next();
switch (flag){
case "1":
continue;
case "2":
System.out.println("当前数组为:" + Arrays.toString(arr));
break main;
// System.exit(-1);
}
}
}
}
package com.jsoft.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 = 1; i < arr.length - index; i++) {
arr[arr.length - i] = 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;
// System.exit(-1);
}
}
}
}
浙公网安备 33010602011771号