前言
今天做的是之前三元组的进阶,可以通过用户自己输入来确定操作的是几元组,大大加大了操作空间,虽然基本操作类似,但是可以随用户心所欲来设置与操作元组,主要运用了switch和for循环。
一、实验内容
设计实现抽象数据类型“N元组 (Tuple)” 。每个N元组由任意N个实数的序列构成,基本操作包括:创建一个N元组,取N元组的任意一个分量,置N元组的任意一个分量,求N元组的最大分量、最小分量,显示N元组等。
要求:用类封装需要定义的数据类型Tuple,完成所有基本操作的Java语言实现与调用,并写测试程序。
二、实验过程
1.实验代码
代码如下:
import java.util.Scanner;
public class Tuple{
public static void main(String [] args){
int i=0,j,k,n,temp,see;
Scanner sc = new Scanner(System.in);
System.out.println("请输入要创建几元组");
//Scanner sc = new Scanner(System.in);
n = sc.nextInt();
int [] num;
num = new int [n];
//n = sc.nextInt();
System.out.println("请输入"+n+"个元素");
for(k=0;k<n;k++){
num[k] = sc.nextInt();
}
while (i!=4){
System.out.println("1.获取"+n+"元组的任意一个分量,置"+n+"元组的任意一个分量");
System.out.println("2.求"+n+"元组的最大分量,最小分量");
System.out.println("3.显示"+n+"元组");
System.out.println("4.退出");
System.out.println("请输入数字:");
i = sc.nextInt();
switch(i){
case 1: System.out.println("输入想获取第几个数");
j = sc.nextInt();
System.out.println("输入想置入什么数");
num[j-1] = sc.nextInt();
break;
case 2: for(j=0;j<n-1;j++){
see =1;
for(k=0;k<n-1-j;k++){
if(num[k]>num[k+1]){
temp=num[k];
num[k] = num[k+1];
num[k+1] = temp;
see = 0;
}
}
if(see==1){
break;
}
}
System.out.println("最大值是:"+num[n-1]);
System.out.println("最小值是:"+num[0]);
case 3:System.out.println("显示"+n+"元组");
for(j=0;j<n;j++){
System.out.print(num[j]);
}
System.out.println("");
break;
}
}
}
}
2.实验截图
总结
现在我就知道怎么进行N元组的创建,置取,求最大最小值,显示等操作了。
元组可能对有些人似乎有些陌生,平时基本没怎么用,好像也没有什么应用场景,其实并非如此;其实平时所熟悉的关系数库中【纪录】的名称就是【元组】,一条纪录就是一个元组,一个表就是一个关系,纪录组成表,元组生成关系,这个关系数据库的核心概念。
元组在程序设计中并不显得那么不可或缺。有一些编程语言自带元组的语法(python、scala、F#)等,但还有一些比较流行的编程语言却不带(java、JavaScript、c++)等。
元组并没有像数组、对象那样在编程元素中不可缺少,但是,有时候使用它能对编码带来很多好处,尤其当一个函数需要返回多个值的情况下。