这是个在控制台上完成的程序,我想添加一个界面类,对以下代码只做少量修改,就可以在下面的代码与新加类之间很好的传递参数。解决这类问题的思路是什么?最好给个代码。谢谢了
import java.io.*;
////节点操作
class DLNode 
{
private int element;
private DLNode prev;
private DLNode next; public DLNode()
{
this.element=0;
this.prev=null;
this.next=null;
}
public DLNode(int e,DLNode p,DLNode n)
{
element=e;
prev=p;
next=n;
}
//得到当前节点
public int getElem()
{
return element;
}
//将给定元素放置该位置,返回 此前存放的元素
public void setElem(int e)
{
element=e;
}
//得到后继节点
public DLNode getNext()
{
return next;
}
public DLNode getPrev()
{
return prev;
}
//修改后继节点
public void setNext(DLNode newNext)
{
next=newNext;
}
public void setPrev(DLNode newPrev)
{
prev=newPrev;
}
};class YueSeFu
{
int n;
int x;
int k;
int leng; DLNode head;
YueSeFu(int n,int x,int k)
{
this.n=n;
this.x=x;
this.k=k;
head=new DLNode();
leng=0;//链表长度
}
//建立双向循环链表
public  void  operate()
{
head.setElem(1);
leng=1;

for(int i=2;i<=n;i++)
{
DLNode newNode=new DLNode(i,null,null);
if(head.getPrev()==null)
{
head.setNext(newNode);
head.setPrev(newNode);
newNode.setPrev(head);
newNode.setNext(head);
leng++;
}
else
{
DLNode tail=head.getPrev();
tail.setNext(newNode);
newNode.setPrev(tail);
newNode.setNext(head);
head.setPrev(newNode);
leng++;
}
}
System.out.print("所建链表长度"+leng+'\n');//测试链表长度是否正确,与n相等就正确
//测试链表中元素
for(int i=1;i<=n;i++)
{
System.out.println(head.getElem());
head=head.getNext();
}
System.out.println("测试完毕");
//从第x个节点处开始查,找到此节点
for(int i=1;i<x;i++)
{
head=head.getNext();
}
//取数,并输出
while(leng>0)
{
if(head.getNext().getNext()==head)//链表中只剩2个接点
{
int ss=k%2;
if(ss==1)
{
System.out.println(head.getElem());
System.out.println(head.getNext().getElem());
}
else 
{
System.out.println(head.getNext().getElem());
System.out.println(head.getElem());
}
leng=leng-2;
break;
}
else
{
for(int j=1;j<=k;j++)
{
head=head.getNext();
}
System.out.println(head.getElem());
DLNode current=head.getNext();
head.getPrev().setNext(current);
current.setPrev(head.getPrev());
head=current;
leng--;
}
}
}
}
public class  test
{
public static void main(String[] args) 
{
int n,x,k;
try
{
/*System.out.println("请输入总数");
n=System.in.read();
System.out.println("请输入开始的数字");
 x=System.in.read();
System.out.println("请输入间隔数字");
 k=System.in.read();*/  String str1,str2,str3;
 System.out.println("请输入总数");
 BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));
 str1=br1.readLine();
 n=Integer.parseInt(str1);   System.out.println("请输入开始的数字");
  BufferedReader br2=new BufferedReader(new InputStreamReader(System.in));
 str2=br2.readLine();
 x=Integer.parseInt(str2);   System.out.println("请输入间隔数字");
  BufferedReader br3=new BufferedReader(new InputStreamReader(System.in));
 str3=br3.readLine();
 k=Integer.parseInt(str3);
 
 if(n==1)
System.out.println("1");
else if(n>1)
{
YueSeFu ysf=new YueSeFu(n,x,k);
ysf.operate();
}
}
catch (IOException e)
{
}

}
}