首页 > 代码库 > 数组代码和经典案例
数组代码和经典案例
数组特点和经典代码案例
数组特点:
1、 数组是一段连续的内存空间,下标从0开始,最大下标长度-1。
2、 数组元素都是变量,变量的类型为定义数组的类型。
3、 数组元素在创建数组时,会完成初始化。
4、 数组创建后,长度不可改变。
经典代码案例
学生管理系统
要求实现登陆,学生信息的添加、显示,删除,修改,查询,排序,退出功能。
实现流程:
1、 弹出欢迎界面
2、 登陆业务:
要求用户输入用户名和密码
如果用户名和密码输入错误,给予提示,并让用户重新输入。
如果用户三次以上没有输入正确信息,提示“非法用户”,并结束程序
如果登陆成功。进入学生管理系统的主界面
3、 选择操作。
根据用户选择的选项,分别执行添加、删除、修改、查询,几个功能模块。要求使用函数调用实现。分别建立三个数组,分别保存学号、姓名、成绩。
4、 添加
分别提示用户输入学号、姓名、成绩,分别保存在三个数组中。
5、 显示
当用户添加完成后,回到主界面,选择显示选项后,显示现在所有学生信息。
6、 删除
提示用户输入要删除学生的姓名
如果没有该学生,给予提示。
完成删除操作,在现有的数组中移除数据。并显示删除后的结果。
7、 查找
提示用户输入要查找学生的姓名
完成查找后,显示查找后的结果
如果没有找到,给予提示
8、 修改
提示用户输入要修改学生的姓名
如果没有该学生,给予提示。
找到该学生后,提示用户重新输入学号、姓名、成绩
完成数据录入后,显示修改后的结果
9、 排序
按成绩降序显示输出
10、 退出
选择退出后,结束程序。
代码:
1 package Myhomework; 2 /** 3 * 学生管理系统 4 */ 5 import javax.swing.JOptionPane; 6 7 public class Myhomework11 { 8 /** 学号数组 */ 9 public static int[] student = new int[1000]; 10 /** 姓名数组 */ 11 public static String[] name = new String[1000]; 12 /** 成绩数组 */ 13 public static int[] grade = new int[1000]; 14 public static int number = 0 ; 15 16 public static void main(String[] args) { 17 JOptionPane.showMessageDialog(null, "欢迎光临"); 18 boolean isLand = login(); 19 if (isLand == false) { 20 JOptionPane.showMessageDialog(null, "非法用户"); 21 System.exit(0); 22 } 23 24 while(true){ 25 String s=JOptionPane.showInputDialog(null,"1、添加 2、显示 3、删除 4、查找 5、修改 6、排序 7、退出"); 26 int item=Integer.parseInt(s); 27 switch(item){ 28 case(1): 29 add();//添加 30 break; 31 case(2): 32 show();//显示 33 break; 34 case(3): 35 del();//删除 36 break; 37 case(4): 38 find();//查找 39 break; 40 case(5): 41 amend();//修改 42 break; 43 case(6): 44 rank();//排序 45 break; 46 case(7): 47 System.out.print("退出");//退出 48 System.exit(0); 49 } 50 51 } 52 53 } 54 55 56 /** 57 * 查找 58 */ 59 public static void find() { 60 int index = findName(); 61 if(index!=-1){ 62 JOptionPane.showMessageDialog(null,"学号为:"+student[index]+" "+"姓名为:"+name[index]+" "+"成绩为:"+grade[index]); 63 } 64 } 65 /** 66 * 删除 67 */ 68 public static void del(){ 69 int index = findName(); 70 if(index!=-1){ 71 for(int i = index ; i < number ; i++){ 72 student[i] = student[i+1]; 73 name[i] = name[i+1]; 74 grade[i] = grade[i+1]; 75 76 } 77 number--; 78 show(); 79 } 80 } 81 /** 82 * 修改 83 */ 84 85 public static void amend(){ 86 int index = findName(); 87 if(index!=-1){ 88 String newstudent = JOptionPane.showInputDialog(null,"请重新输入学号"); 89 String newname = JOptionPane.showInputDialog(null,"请重新输入姓名"); 90 String newgrade = JOptionPane.showInputDialog(null,"请重新输入成绩"); 91 student[index] = Integer.parseInt(newstudent); 92 name[index] = newname; 93 grade[index] = Integer.parseInt(newgrade); 94 show(); 95 } 96 } 97 /** 98 * 排序 99 */ 100 101 public static void rank(){ 102 for(int i = 0; i < number; i++){ 103 for(int j = i+1; j < number; j++){ 104 if(grade[i]<grade[j]){ 105 int num1 = student[i]; 106 student[i] = student[j]; 107 student[j] = num1; 108 String num2 = name[i]; 109 name[i] = name[j]; 110 name[j] = num2; 111 int num3 = grade[i]; 112 grade[i] = grade[j]; 113 grade[j] = num3; 114 } 115 } 116 } 117 show(); 118 } 119 /** 120 * 显示 121 */ 122 public static void show(){ 123 String str="学号 姓名 成绩\n"; 124 for(int i=0;i<number;i++){ 125 str +=student[i]+" "+name[i]+" "+grade[i]+"\n"; 126 } 127 JOptionPane.showMessageDialog(null, str); 128 } 129 /** 130 * 添加 131 */ 132 public static void add(){ 133 String student1 =JOptionPane.showInputDialog(null,"请添加学号"); 134 String name1=JOptionPane.showInputDialog(null,"请输入姓名"); 135 String grade1=JOptionPane.showInputDialog(null,"请输入成绩"); 136 student[number]=Integer.parseInt(student1); 137 name[number]=name1; 138 grade[number]=Integer.parseInt(grade1); 139 number++; 140 } 141 /** 142 * 登录 143 * @return 登录是否成功 144 */ 145 146 public static boolean login(){ 147 for(int i=0;i<3;i++){ 148 String code=JOptionPane.showInputDialog(null,"请输入用户名"); 149 String pwd=JOptionPane.showInputDialog(null,"请输入密码"); 150 if(code.equals("张二狗")&&(pwd.equals("123456"))){ 151 return true; 152 }else{ 153 JOptionPane.showMessageDialog(null, "用户名或密码错误"); 154 if(i<=1){ 155 JOptionPane.showMessageDialog(null, "你还有"+(2-i)+"次机会"); 156 }else{ 157 JOptionPane.showMessageDialog(null, "你已经连续三次输错,已无机会"); 158 } 159 } 160 } 161 return false; 162 163 } 164 /** 165 * 寻找姓名在该姓名下的下标,如果没有找到返回-1 166 * @param name 167 * 168 * @return 姓名对应的下标 169 */ 170 171 public static int findName(){ 172 String nameStr = JOptionPane.showInputDialog(null,"请输入姓名"); 173 for(int i = 0 ; i <number;i++ ){ 174 if(nameStr.equals(name[i])){ 175 return i; 176 } 177 } 178 JOptionPane.showMessageDialog(null,"查无此人"); 179 return-1; 180 } 181 }
数组代码和经典案例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。