任务描述
一、 项目准备
开发工具: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文件呦!
评分标准是什么?
规范【10分】
- 每个类都封装在自己独立的 “.java”文件中;
- 文件、class、成员变量命名规范;
- 代码结构要层次分明;
- Java代码规范及添加适量注释。
程序整体运行效果【10分】
- 程序正常运行,且满足效果图要求;
- 信息间分隔符“*”号数量不做统一要求。
插入数据方法【15分】
- 能够完成需求中向数组插入数据的方法。
- 要求插入的数据不能为0
显示所有数据方法【10分】
- 能够完成需求中显示所有数据的方法。
- 假设数组长度为10,要能完成在指定位置处插入数据前显示9个数据,在指定位置处插入数据后显示10个数据。提示:以最后一个元素是否为0作为判断标准。
在指定位置处插入数据方法【15分】
- 能够完成需求中在指定位置处插入数据的方法。
- 要求不能覆盖原有的数据
查询能被3整除的数据的方法【12分】
- 能够完成需求中查询能被3整除的数据的方法。
- 要求如果不存在能被3整除的数据,要给出提示信息
显示提示信息菜单的方法【3分】
主方法【25分】
要求如下:
- 使用switch结构完成主体功能,并调用方法完成演示效果中所示的功能。
- 如果输入0-4以外的数字,应给出错误提示。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
| package moocProj;
import java.util.Scanner;
public class DataManage {
public void notice() { System.out.println("******************************"); System.out.println(" 1--插入数据 "); System.out.println(" 2--显示所有数据 "); System.out.println(" 3--在指定位置处插入数据 "); System.out.println(" 4--查询能被3整除的数据 "); System.out.println(" 0--退出 "); System.out.println("******************************"); System.out.println("请输入对应的数字进行操作:" ); }
public int[] insertData(int[] arr) { int count=1; Scanner sc=new Scanner(System.in); for(int i=0;i<arr.length-1;i++) { System.out.println("请输入第"+count+"个数据:"); arr[i]=sc.nextInt(); if(arr[i]!=0) { count++; }else { System.out.println("输入的数据不能为0,请重新输入!"); } } return arr; }
public void showData(int[] a,int length) { System.out.println("数组元素为:"); for(int i=0;i<length;i++) { System.out.print(a[i]+" "); } System.out.println(); }
public void divThree(int[] a) { int cnt=0; System.out.print("数组中能被3整除的元素为:"); for(int i=0;i<a.length;i++) { if(a[i]%3==0) { System.out.print(a[i]+" "); cnt++; } } if(cnt==0) { System.out.print("不存在能被3整除的数据!"); } System.out.println(); }
public void insertAtArray(int[] a) { Scanner atArray=new Scanner(System.in); System.out.println("请输入要插入的位置:"); int n=atArray.nextInt(); for(int l=9;l>n;l--) { a[l]=a[l-1]; } Scanner data=new Scanner(System.in); System.out.println("请输入要插入的数据:"); int k=data.nextInt(); if(k!=0) { a[n]=k; }else { System.out.println("输入的数据不能为0,请重新输入!"); } }
public static void main(String[] args) { int[] arr=new int[10]; DataManage show=new DataManage(); boolean flag=true; while(flag) { DataManage ms=new DataManage(); ms.notice(); Scanner in=new Scanner(System.in); int flag1=in.nextInt(); switch(flag1) { case 1: DataManage insert=new DataManage(); insert.insertData(arr); show.showData(arr, 9); break; case 2: if(arr[9]==0) { show.showData(arr, 9); }else { show.showData(arr, 10); } break; case 3: DataManage at=new DataManage(); at.insertAtArray(arr); show.showData(arr, 10); break; case 4: DataManage three=new DataManage(); three.divThree(arr); break; case 0: flag=false; break; default: System.out.println("请输入正确的数字指令!"); } } }
}
|
运行效果图:

