数组的扩容和删除题

 
 
  1. package 小程序题;
  2. //导包
  3. import java.util.Scanner;
  4. /**
  5. * @author
  6. * "请选择需要进入的系统 "+"\n"+
  7.  * "*【1】显示所有学生学号"+"\n"+        
  8.  *      "*【2】添加学生学号"+"\n"+            
  9.  *      "*【3】删除学生学号"+"\n"+
  10.  *      "*【4】修改学生学号"+"\n"+
  11.  *      "*【5】退出学生学号系统"+);
  12. */
  13. public class Text成员管理2 {
  14.         //主函数
  15. public static void main(String[] args){
  16.                 //可以先设置初始 数组 也可弄一个空的数组
  17. String a[]= {"小花","小绿","小黑"};
  18. System.out.println("=============欢迎进入Zpark学生录入系统================ "+"\n"+
  19. "*【1】显示所有学生姓名"+"\n"+
  20. "*【2】添加学生姓名"+"\n"+
  21. "*【3】删除学生姓名"+"\n"+
  22. "*【4】修改学生姓名"+"\n"+
  23. "*【5】退出学生管理系统"+"\n"+
  24. "*请做出你的选择");
  25.                 //通过遍历数组打印所有的数组
  26. for(int i=0;;i++) {
  27. Scanner sc=new Scanner(System.in);
  28. int n=sc.nextInt();
  29.                         //通过switch条件分支选择进入数组的扩容或者进入数组的删除 或者对数组进行修改
  30. switch(n) {
  31. case 1:{
  32. System.out.println("所有的学生姓名为:");
  33. for(int j=0;j<a.length;j++) {
  34. System.out.print(a[j]+" ");
  35. }System.out.println();
  36. break;
  37. }
  38. case 2:{
  39. a=tianJia(a);
  40. break;
  41. }
  42. case 3:{
  43. a=shanChu(a);
  44. break;
  45. }
  46. case 4:{
  47. a=xiuGai(a);
  48. break;
  49. }
  50. case 5:{
  51. return;
  52. }
  53. }
  54. }
  55. }
  56.         //建立一个扩容的函数,通过主函数的调用进行使用
  57. public static String[] tianJia(String[] a) {
  58. for(int i=0;;i++) {
  59. String[] b=new String[a.length+1];
  • System.out.println("请输入一个需要添加的学生姓名:");
  1. Scanner sc=new Scanner(System.in);
  2. String c=sc.next();
  3. System.out.println("请输入一个需要添加的位置:");
  4. int t=sc.nextInt();
  5.                         //利用for循环进行循环赋值 将数组a的数值全部转移到数组b中
  6. for(int m=0;m<a.length;m++) {
  7. b[m]=a[m];
  8. }
  9.                         //将需要添加的位置空出
  10. for(int n=b.length;n>t;n--) {
  11. b[n-1]=a[n-2];
  12. }
  13.                         //将需要添加的数赋值给需要添加的位置
  14. b[t-1]=c;
  15. a=b;
  16. for(int j=0;j<a.length;j++) {
  17. System.out.print(a[j]+" ");
  18. }
  19. System.out.println();
  20.                         //通过一个if条件分支进行for循环的控制
  21. System.out.println("继续输入请输入(y/Y)");
  22. String choice = sc.next();
  23. if(choice.equals("y")||choice.equals("Y")){
  24. }else {
  25. break;
  26. }
  27. }
  28. return a;
  29. }
  30.         //建立一个删除的函数,通过主函数的调用进行使用
  31. public static String[] shanChu(String[] a){
  32.     for(int i=0;;i++) {
  33. String[] b=new String[a.length-1];
  34. Scanner sc=new Scanner(System.in);
  35.                 //通过调用下面查找函数的方法查找需要删除的数组下标
  36. int t=chaZhao(a);
  37.                 //如果需要删除的数据 此数组不包含则 会返回-1 那么这时候就重新开始循环
  38. if(t==-1) {
  39.     System.out.println("请输入有效学生学号:");
  40. return a;
  41.     }
  42.                     //循环赋值到需要删除数据的前一个数
  43.     for(int j=0;j<t;j++) {
  44. b[j]=a[j];
  45.     }
  46.                     //从需要删除的下一个数开始循环赋值
  47.     for(int k=b.length;k>t;k--) {
  48. b[k-1]=a[k];
  49.     }
  50.                     //将b的属性赋值给a
  51.     a=b;
  52.     for(int l=0;l<a.length;l++) {
  53. System.out.print(a[l]+" ");
  54.     }
  55.     System.out.println();
  56.                     //通过一个if条件分支对for进行循环控制
  57.     System.out.println("继续删除请输入(y/Y)");
  58.     String choice = sc.next();
  59.     if(choice.equals("y")||choice.equals("Y")){
  60.     }
  61.      else {
  62. break;
  63.     }
  64.     }
  65.     return a;
  66. }
  67. public static String[] xiuGai(String[] a) {
  68. int t=chaZhao(a);
  69. if(t==-1) {
  70. System.out.println("请输入有效学生学号:");
  71. return a;
  72. }
  73. System.out.println("请输入需要修改后的学号:");
  74. Scanner sc=new Scanner(System.in);
  75. String s=sc.next();
  76. a[t]=s;
  77. for(int l=0;l<a.length;l++) {
  78. System.out.print(a[l]+" ");
  79. }
  80. System.out.println();
  81. System.out.println("继续修改请输入(y/Y)");
  82. String choice = sc.next();
  83. if(choice.equals("y")||choice.equals("Y")){
  84. }
  85. else {
  86. return a;
  87. }
  88. return a;
  89. }
  90.         //建立了能查找所输入数据下标的函数
  91. public static int chaZhao(String[] a) {
  92. System.out.println("请输入一个的学生姓名:");
  93. Scanner sc=new Scanner(System.in);
  94. String s=sc.next();
  95. for(int i=0;i<a.length;i++) {
  96. if(a[i].equals(s)) {
  97. return i;
  98. }
  99. }
  100. return -1;
  101. }
  102. }

猜你喜欢

转载自blog.csdn.net/Matchstic66/article/details/80525794