SuperJava|对象数组数据元素获取与写入操作

SuperJava 专栏收录该内容
12 篇文章 0 订阅

@[FAT-Remcal|从倔强青铜到最强王者]

对象数组应用|对象数组数据元素获取与写入操作

用户故事描述:

1 从键盘读入n个数,使用动态数组存储所读入的数据;
2 计算它们的和与平均值分别输出;
3 平均值为小数的只保留其整数部分;
4 使用函数实现程序代码;

设计思路:

定义两个类,一个用来声明数据对象,一个用来操作动态数组,新建、扩充等;

Code:

/**
1 从键盘读入n个数,使用动态数组存储所读入的数据;
2 计算它们的和与平均值分别输出;
3 平均值为小数的只保留其整数部分;
4 使用函数实现程序代码;
*/
import java.util.Scanner;
import java.util.Arrays;
public class dynamicArea{
	public static void main (String[] args){
		System.out.println("您需要录入的数据个数为:");
		Scanner input = new Scanner(System.in);//阻塞,等待键盘录入数据
		int n =input.nextInt();
		numManager nm = new numManager(n);
		System.out.println("您此次准备录入"+n+"个数");
		
		for(int i=0;i<n;i++){
			System.out.println("请开始录入第"+(i+1)+"个数:");
			Scanner sc = new Scanner(System.in);//阻塞,等待键盘录入数据
			double m = sc.nextDouble();//连续输入n个数据
			nm.add(new num(m));
		}
		
		System.out.println("当前数组长度为:"+nm.length());
		System.out.println("————————————————————————————————");
		nm.printAll();
		nm.sum();
	}
}

//数组管理操作类
class numManager{
	private num [] cn = null;//新建对象数组,初始为null
	private int count = 0;//记录当前数组元素个数,初始为0
	public numManager(int size){ //构造方法
		if(size>0){
			cn = new num[size];
		}else{
			cn = new num[5];
		}
	}
	public int length(){
		return cn.length;
	}
	
	//添加:实现动态数组
	public void add(num number){
		if(count>=cn.length){//数组已满,需要扩充
			//算法:扩充原来数组的一倍  cs.length*2
			int newLen = cn.length*2;
			cn = Arrays.copyOf(cn,newLen);			
		}
		cn[count] = number;	
		count++;
	}
	//输出所有
	public void printAll(){
		for(int i=0;i<count;i++){
			cn[i].print();
			
		}
	}
	//数组求和及平均值(注意对象数组的取值方式(类的get、set方法))
	public void sum(){	
		double cnSum=0;
		int cnAverage=0;
		for(int i=0;i<count;i++){
			cnSum=cnSum+cn[i].getValue();
		}
		
		cnAverage=(int)(cnSum/count);		
		System.out.print("\n"+"\n"+"和:"+cnSum+"\t");		
		System.out.print("平均值:"+cnAverage+"\n");
	}	
}

//对象数据类
class num{
	private double value;
	
	public num(){};//空参构造方法
	public num(double value){
		this.value=value;
	}
	public void setValue(double value){
		this.value=value;
	}
	public double getValue(){
		return value;
	}
	public void print(){
		System.out.print(value+"\t");
	}
}

运行结果:

您需要录入的数据元素个数为:
4
您此次准备录入4个数
请开始录入第1个数:
14.6
请开始录入第2个数:
12.7
请开始录入第3个数:
28.5
请开始录入第4个数:
25.9
当前数组长度为:4
————————————————————————————————
14.6 12.7 28.5 25.9

和:81.69999999999999 平均值:20

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值