目录
前言
再次进行java实验,计算体积和线性表相关的操作
一、计算某长方体或正方体盒子的体积
1.实验思路
这一节主要学习了类的实现和使用,所以创建一个rectange(长方体)类,在类中创建两个变量a,b表示底边的边长,用set/get方法将其初始化,再定义一个getArea用来表示a,b的乘积,在定义一个方法用来表示和计算盒子的体积(即底面积和高的乘积),最后在main方法中创建一个rectange的对象c,通过调用对象c的setA方法来设置盒子的长宽高,并通过对象c的volume方法来计算体积,并输出结果
2.实验代码
//长方体或正方体的体积
import java.util.Scanner;
public class rectangle {
private float a;
private float b;
Scanner sc =new Scanner(System.in);
//构造方法
public rectangle(){}
public rectangle(float a,float b){
this.a=a;
}
//set/get方法
public void setA(float a,float b) {
this.a = a;
this.b = b;
}
public float getA(){
return a;
}
public float getB(){
return b;
}
public float getArea(){
return a*b;
}
}
public class volume {
private rectangle bottom;
private float height;
//无参构造,全参构造
public volume(){}
public volume(rectangle bottom,float height){
this.bottom=bottom;
this.height=height;
}
public float getVolume(){
return bottom.getArea()*height;
}
}
public class testvolume {
public static void main(String[] args){
//创建对象
rectangle c = new rectangle();
Scanner sc =new Scanner(System.in);
c.setA(sc.nextInt(),sc.nextInt());
c.getArea();
//构造长方体
volume v = new volume(c,sc.nextInt());
System.out.println(v.getVolume());
}
}
3.实验结果截图
如上图所示,一个长宽高为2的盒子的体积就被计算出来了。
二、线性表
1.实验内容
定义一个类MyArrayList,用数组模拟实现数据结构中线性表的基本功能,该类中最少包含的属性有:data(String[])、size(int)、CAPACITY(int);
该类中方法最少包括线性表的初始化、插入 、查找、遍历线性表、删除、返回线性表长度、线性表判空、清空线性表、替换、获取元素、判断线性表中是否包含某个元素、反向查找、末尾插入元素;
定义一个主类,在主方法中创建线性表类对象并调用上述方法、完成功能演示。
2.实验思路
构造方法,用字符数组构建线性表,通过遍历线性表来完成插入查找删除等操作并输出操作的结果
3.实验代码
import java.util.Scanner;
public class arrylist {
//成员变量
public final int CAPACITY=100;//线性表的长度
private String [] data=new String[CAPACITY];
private int size=0;//线性表里实际存放的长度
//构造方法
public arrylist(){}
//用字符串数组构建线性表
public arrylist(String[] s){
for (int i=0;i< data.length;i++){
data[i]=s[i];
}
size = s.length;
}
//遍历输出线性表中的所有元素 格式:(张三,李四,王五)
public void printAll(){
System.out.print("{");
for (int i=0;i<size;i++){
System.out.print(data[i]);
if(i<size-1){
System.out.print(",");
}
}
System.out.print("}");
}
//返回当前线性表中的元素个数
public int size(){
return size;
}
//将一个新元素e插入到线性表中索引号为Index的位置
public void add(int index,String e){
for (int i=size-1;i>=index;i--){
data[i+1]=data[i];
}
data[index]=e;
size++;
}
//将一个新元素e添加到表尾,只有一个参数,只提供了插入的元素,没有提供位置,默认插到最后
public void add(String e){
add(size,e);
}
//从线性表中删除指定位置index的元素,并将删除的元素返回
public String remove(int index){
String e=data[index];
for(int i=index;i<size-1;i++){
data[i]=data[i+1];
}
data[size-1]=null;
size--;
return e;
}
//清空线性表
public void clear(){
data=new String[CAPACITY];
size=0;
}
//判断线性表中是否包含某种元素
public void baohan(String b){
int c=0;
for (int i=0;i<size;i++){
if(data[i].equals(b)){
c++;
}
}if(c!=0){
System.out.println("yes");
}else System.out.println("no");
}
}
public class testarrylist {
public static void main(String[] args) {
//TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
arrylist arr = new arrylist();
arr.add(0, "sun");
//arr.printAll();
arr.add("li");
arr.add("cheng");
arr.add(1, "hua");
arr.printAll();
System.out.println("");
System.out.println(arr.size());
arr.remove(0);
arr.printAll();
System.out.println("");
arr.baohan(sc.next());
arr.printAll();
System.out.println("");
arr.clear();
arr.printAll();
}
}
4.实验结果截图
虽然看起来结果很短,实际上已经把线性表的初始化,遍历,插入,删除,查找,返回长度,清空等操作都进行过了。
补:线性表的类图
总结
这就是本次实验的全部内容了,主要运用了类的语法和数据结构构造线性表来完成。