首页 > 代码库 > 数组代码和经典案例

数组代码和经典案例

数组特点和经典代码案例

数组特点:

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 }

 

数组代码和经典案例