任务描述
一、 项目准备
开发工具: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以外的数字,应给出错误提示。
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();
}
//查询能被3整除的数据
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; //程序循环运行标志,使程序一直运行,当标志变为false时退出程序
while(flag) {
DataManage ms=new DataManage();
ms.notice();
Scanner in=new Scanner(System.in);
int flag1=in.nextInt(); //flag1为用户输入的操作指令
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("请输入正确的数字指令!");
}
}
}
}