定义数组并进行管理

任务描述

一、 项目准备

开发工具:JDK、Eclipse

需求分析:见详细描述

效果演示:见详细描述

二、整体要求

1、 完成需求分析和详细设计中所涉及到的所有功能。

2、 代码结构要层次分明,代码编辑思路要清晰、整洁。

3、 要求Java代码书写、命名符合规范,并在代码中添加必要的注释

4、 程序运行效果与提供的页面效果图、结构保持一致

5、 将作业项目导出(Export)成压缩文件

三、详细设计

设计一个类DataManage,包括如下的方法:

  • 插入数据:public int[] insertData() {}

  • 显示所有数据:public void showData(int[] a, int length) {}

  • 在指定位置处插入数据: public void insertAtArray(int[] a, int n, int k) {}

  • 查询能被3整除的数据:public void divThree(int[] a) {}

  • 显示提示信息:public void notice();

  • 主方法

每个方法的具体要求可以参见评分标准。

注意:在8-1小节最后介绍了如何提交作业,作业中一定要包括.java文件呦!

规范

  • 每个类都封装在自己独立的 ".java"文件中;

  • 文件、class、成员变量命名规范;                   

  • 代码结构要层次分明;  

  • Java代码规范及添加适量注释。

程序整体运行效果   

  • 程序正常运行,且满足效果图要求;

  • 信息间分隔符“*”号数量不做统一要求。                   

插入数据方法

  • 能够完成需求中向数组插入数据的方法。

  • 要求插入的数据不能为0

显示所有数据方法  

  • 能够完成需求中显示所有数据的方法。

  • 假设数组长度为10,要能完成在指定位置处插入数据前显示9个数据,在指定位置处插入数据后显示10个数据。提示:以最后一个元素是否为0作为判断标准。

在指定位置处插入数据方法   

  • 能够完成需求中在指定位置处插入数据的方法。

  • 要求不能覆盖原有的数据

查询能被3整除的数据的方法 

  • 能够完成需求中查询能被3整除的数据的方法。

  • 要求如果不存在能被3整除的数据,要给出提示信息

显示提示信息菜单的方法  

  • 能够完成显示提示信息菜单的方法。

主方法

  要求如下:  

  • 使用switch结构完成主体功能,并调用方法完成演示效果中所示的功能。

  • 如果输入0-4以外的数字,应给出错误提示。

/**
 1、定义一个数组,可以插入数据
 2、显示所有的数据
 3、在指定的位置插入下一条数据
 4、查询能被3整除的数据
 5、退出
 **/

package test2;



import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;

public class DataManage2 {
    private static int[] arr ;

    //插入数据
    public int[] insertData(int length) {
        int inputInt;
        arr = new int[length];
        for(int i=0;i< arr.length;i++){
            System.out.println("请给数组输入第"+(i+1)+"条内容:");
            Scanner scanner=new Scanner(System.in);

            inputInt =scanner.nextInt();

            arr[i]=inputInt;
        }
        System.out.println("赋值后的数组为:" );
        showData(arr,length);
        return arr;
    }

    //显示所有数据
    public void showData(int[] arr,int length) {

        if(null == arr){
            System.out.println("arr is null , exit showData function.");
            return;
        }
        String msg ="数组内容为:";
        //for(int i=0;i<arr.length;i++){
        for(int i=0;i<length;i++)  {
            msg = msg + " " + arr[i];
        }
        System.out.println(msg);
    }

    //在指定位置处插入数据
    public void insertAtArray(int[] arr, int n, int k) {
        if(null == arr){
            System.out.println("arr is null , exit insertAtArray function.");
            return;
        }
        int length=arr.length;
        System.out.println("插入数据前的数组为:");
        showData(arr, arr.length);
        int newArray[]=new int[length+1];

        if(k >= 0 && k < arr.length && n!=0)
        {
            System.arraycopy(arr,0,newArray,0,k);
            newArray[k]=n;
            System.arraycopy(arr,k,newArray,k+1,length-k);

            System.out.println("插入数据后的数组为:");
            arr = newArray;

            showData(arr, arr.length);
        }
        else if (n==0 ){
            System.out.println("输入数据不能为0");
        }
        else {
            System.out.println("数组下标不能越界");
        }

    }

    //查询被3整除的数据
    public void divThree(int[] arr) {
        if(null == arr){
            System.out.println("arr is null , exit divThree function.");
            return;
        }
        List list = new ArrayList(10);
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] % 3 == 0) {
                list.add(arr[i]);
            }
        }

        if(list.isEmpty()){
            System.out.println("不存在能被3整除的数据");
        }
        else
            System.out.println("能被3整除的数为:"+list);

    }


    public void printStart(){
        System.out.println("*********************");
    }
    //显示提示信息
    public void notice(){
        printStart();
        System.out.println("1--插入数据");
        System.out.println("2--显示所有数据");
        System.out.println("3--在指定的位置处插入下一条数据");
        System.out.println("4--查询能被3整除的数据");
        System.out.println("0--退出");
        printStart();

    }


    //主方法
    public static void main(String[] args)
    {
        DataManage2 dataManage=new DataManage2();
        boolean flag = true;
        while(flag){
            dataManage.notice();
            System.out.println("请输入对应的数字进行操作:");
            Scanner sc=new Scanner(System.in);
            int n=sc.nextInt();

            switch(n){
                case 0:
                    System.out.println("退出程序");
                    flag = false;
                    break;
                case 1:
                    dataManage.insertData(3);
                    break;
                case 2:
                    dataManage.showData(arr,3);
                    break;
                case 3:
                    System.out.println("请输入要插入的数据");
                    Scanner data=new Scanner(System.in);
                    int Num =data.nextInt();
                    System.out.println("请输入要插入的数据的位置");
                    Scanner index=new Scanner(System.in);
                    int i=index.nextInt();
                    dataManage.insertAtArray(arr, Num,i);
                    break;
                case 4:
                    dataManage.divThree(arr);
                    break;
                default:
                    System.out.println("Sorry,您的输入无效!");
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值