Java综合作业题1

任务描述

一、 项目准备

开发工具: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();
}
//查询能被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("请输入正确的数字指令!");
}
}

}

}

运行效果图:

-------------本文结束感谢您的阅读-------------