求解集合问题
import java.util.Scanner;
public class Jihe {
double array[]=new double[100];//成员变量 //int array[]
Jihe(double a,double b,double c,double d,double e){
array[0]=a;
array[1]=b;
array[2]=c;
array[3]=d;
array[4]=e;
}
Jihe(){
}
public Jihe jiao(Jihe b) { //成员方法
Jihe c=new Jihe();
int k=0;
for (int i=0;array[i]!=0;i++){ //遍历集合 //lab1在这一行
lab1: for (int j=0;b.array[j]!=0;j++){ //遍历集合b
if(array[i]==b.array[j]){
int m=0;
for (;m<k;m++) //遍历集合c,k是当前集合c的长度即最后一个下标的下一个值
{
if(array[i]==c.array[m])
break;
}
if(m==k){
c.array[k]=array[i];
k++;
}
break lab1;
}
}
}
return c;
}
public Jihe bing(Jihe b) { //成员方法
Jihe c=new Jihe();
int k=0;
for (int i=0;i<5;i++)//遍历集合a
{
int m=0;
for(;m<k;m++)
{
if(c.array[m]==array[i])
break;
}
if(m==k)
{
c.array[k]=array[i];
k++;
}
}
for (int j=0;j<5;j++)//lab2: for (int j=0;j<b.array.length;j++)
{ //遍历集合b
int m=0;
for (;m<k;m++) //遍历集合c,k是当前集合c的长度即最后一个下标的下一个值
{
if(b.array[j]==c.array[m])
break ;//break lab2;
}
if(m==k){
c.array[k]=b.array[j];
k++;
}
}
return c;
}
public Jihe bu(Jihe b) { //成员方法
Jihe c=new Jihe();
int k=0;
lab3: for (int i=0;array[i]!=0;i++){ //遍历集合
int j=0;
for (;b.array[j]!=0;j++){ //遍历集合b
if(array[i]==b.array[j])
continue lab3;//原集合中的元素在b集合中找到相同的则转向下一个元素
}
if(b.array[j]==0)//原集合中的元素在b集合中没找到相同则该元素存入集合c
{
int m=0;
for (;m<k;m++) //遍历集合c,k是当前集合c的长度
{
if(array[i]==c.array[m])
continue lab3;//原集合中的元素在c集合中找到相同的则转向下一个元素
}
if(m==k){
c.array[k]=array[i];
k++;
}
}
}
return c;
}
public Jihe cha(Jihe b) { //成员方法
Jihe c=new Jihe();
int k=0;
lab3: for (int i=0;array[i]!=0;i++){ //遍历集合
int j=0;
for (;b.array[j]!=0;j++){ //遍历集合b
if(array[i]==b.array[j])
continue lab3;//原集合中的元素在b集合中找到相同的则转向下一个元素
}
if(j==5)//原集合中的元素在b集合中没找到相同则该元素存入集合c
{
int m=0;
for (;m<k;m++) //遍历集合c,k是当前集合c的长度
{ if(array[i]==c.array[m])
continue lab3;//原集合中的元素在c集合中找到相同的则转向下一个元素
}
if(m==k){
c.array[k]=array[i];
k++;
}
}
}
return c;
}
public void print(){
if(array[0]==0)
System.out.print("运算后的集合是个空集!请重新选择集合。");
else{
System.out.print("{");
for(int i=0;array[i]!=0;i++)
System.out.print(array[i]+" ");
System.out.print("}");
}
}
public static void main(String[] args) { //主方法
Jihe a=new Jihe(1,2,3,4,5);
Jihe b=new Jihe(1,2,8,9,6);//定义对象
Jihe c=new Jihe();
Scanner d=new Scanner(System.in);
System.out.println("请选择元素类型,输入“1”选择双精度型,输入“2”选择整型,输入“3”选择字符型:" );
int kind=d.nextInt();
switch(kind){
case 1:
break;
case 2:
a=new IntJihe(1,2,3,4,5);
b=new IntJihe(1,2,6,9,8);
c=new IntJihe();
break;
case 3:
a=new CharJihe('a','b','c','d','e');
b=new CharJihe('a','b','c','f','g');
c=new CharJihe();
}
System.out.println("请选择要进行的操作,输入“1”选择交运算,输入“2”选择并运算,输入“3”选择补运算,输入“4”选择差运算:" );
int option=d.nextInt();
switch(option){
case 1:
System.out.println("您选择的是交运算");
a.print();
System.out.print("∩");
b.print();
System.out.println();
c=a.jiao(b);
break;
case 2:
System.out.println("您选择的是并运算");
a.print();
System.out.print("∪");
b.print();
System.out.println();
c=a.bing(b);
break;
case 3:
System.out.println("您选择的是补运算");
a.print();
System.out.print("补");
b.print();
System.out.println();
c=a.bu(b);
break;
case 4:
System.out.println("您选择的是差运算");
a.print();
System.out.print("-");
b.print();
System.out.println();
c=a.cha(b);
break;
}
System.out.println("运算后的集合为:");
c.print();//c是Jihe型(由调用方法返回),所以调用的是主类里的print方法
}
}
class IntJihe extends Jihe {
IntJihe(int a,int b,int c,int d,int e){
array[0]=a;
array[1]=b;
array[2]=c;
array[3]=d;
array[4]=e;
}
IntJihe(){
}
public void print(){
if(array[0]==0)
System.out.print("运算后的集合是个空集!请重新选择元素。");
else{
int yuansu;
System.out.print("{");
for(int i=0;array[i]!=0;i++)
{
yuansu=(int)array[i];
System.out.print(yuansu+" ");
}
System.out.print("}");
}
}
}
class CharJihe extends Jihe {
CharJihe(char a,char b,char c,char d,char e){
array[0]=a;
array[1]=b;
array[2]=c;
array[3]=d;
array[4]=e;
}
CharJihe(){
}
public void print(){
if(array[0]==0)
System.out.print("运算后的集合是个空集!请重新选择元素。");
else{
char yuansu;
System.out.print("{");
for(int i=0;array[i]!=0;i++)
{
yuansu=(char)(array[i]);
System.out.print(yuansu+" ");
}
System.out.print("}");
}
}
}
部分运行结果:
请选择元素类型,输入“1”选择双精度型,输入“2”选择整型,输入“3”选择字符型:
2
请选择要进行的操作,输入“1”选择交运算,输入“2”选择并运算,输入“3”选择补运算,输入“4”选择差运算:
2
您选择的是并运算
{1 2 3 4 5 }∪{1 2 6 9 8 }
运算后的集合为:
{1.0 2.0 3.0 4.0 5.0 6.0 9.0 8.0 }
请选择元素类型,输入“1”选择双精度型,输入“2”选择整型,输入“3”选择字符型:
3
请选择要进行的操作,输入“1”选择交运算,输入“2”选择并运算,输入“3”选择补运算,输入“4”选择差运算:
4
您选择的是差运算
{a b c d e }-{a b c f g }
运算后的集合为:
{100.0 101.0 }
怎么才能让运算后的集合输出形式能根据前面的变一下啊
----------------解决方案--------------------------------------------------------
因为是第一次用java写这么大的程序,而且是刚学的,所以有点笨拙,前辈们别笑话哈,谢谢帮忙。
----------------解决方案--------------------------------------------------------
有内有人理我啊?
----------------解决方案--------------------------------------------------------
搞这么多程序代码,看起来有点不想看,我仔细看看
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽