我些了个程序,代码是一点一点加上去的,最后好乱啊,谁可以帮我整理一下,比如将它的分成几个功能块啊什么的,让人看上去舒服点。还有麻烦帮我优化一下代码,提高一点效率啊!现在我自己看着看着也晕了
public class bj123
{
  static class Card
   {
          String value;
          char color;
          int num;
          int bijiao;
        
    public Card(char color,int bijiao,String value,int num)
        {
          this.color=color;
          this.bijiao=bijiao;
          this.value=value;
          this.num=num;
        }
   }
   static char[] colors={6,3,5,4};
   static int bijiao[]={4,3,2,1};
   static String[] values= {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
   static int[] nums={12,13,1,2,3,4,5,6,7,8,9,10,11};   public static void main(String arg[])
    {
       Card porke[]=new Card[52];int k=0;
       System.out.println("洗牌前,牌的顺序为:");
       for(int i=0;i<=3;i++)
          for(int j=0;j<13;j++,k++)
          {
             porke[k]=new Card(colors[i],bijiao[i],values[j],nums[j]);
             System.out.print(porke[k].color+porke[k].value+" ");
           }       System.out.println();
       int a[]=new int[52];
       for (int i=0;i<a.length;i++)
            {
               a[i]=(int)(Math.random()*52);
                for(int j=0;j<i;j++)
                    if(a[j]==a[i])
                     i=i-1;
                  }
       System.out.println("洗牌后,牌的顺序如下:");
       System.out.println();       int c=0,d=3;
       for(int i=0;i<porke.length;i++)
          {
            int m=a[i];
            System.out.print(porke[m].color+porke[m].value+" ");
            if(i>0&&i%d==c)
                {
                  System.out.println();
                  c++;
                  d+=3;
                }
          }
      System.out.println();         int x=0;
         int i=0;
         Card s[]=new Card[53];
         for(int j=0;j<4;j++)
           {
            for(int k1=0;k1<porke.length;k1++)
              {  
                 int m=a[k1];
                 if(k1%4==x)
                  {
                    i++;
                    s[i]=new Card(porke[m].color,porke[m].bijiao,porke[m].value,porke[m].num);
                   }
               }
           x++;
           }
      System.out.println();
      int a1=1,a2,c1=13,b=0;
      while(b<4){
                   for(;a1<=c1;a1++)
                   for( a2=a1+1;a2<=c1;a2++)
                   {
                      if(s[a1].num<s[a2].num)
                         {
                         char temp1=s[a1].color;
                         s[a1].color=s[a2].color;
                         s[a2].color=temp1;
                         int temp3=s[a1].bijiao;s[a1].bijiao=s[a2].bijiao;
                         s[a2].bijiao=temp3;
                         String  temp=s[a1].value;
                         s[a1].value=s[a2].value;
                         s[a2].value=temp;
                         int temp2=s[a1].num;
                         s[a1].num=s[a2].num;
                         s[a2].num=temp2;
                         }   
                     if((s[a1].num==s[a2].num)&&(s[a1].bijiao<s[a2].bijiao))
                        {
                         char temp1=s[a1].color;
                         s[a1].color=s[a2].color;
                         s[a2].color=temp1;
                         int temp3=s[a1].bijiao;s[a1].bijiao=s[a2].bijiao;
                         s[a2].bijiao=temp3;
                        }
                   }
                 b++;
                 c1=c1+13;
               }
      System.out.print("将洗好牌按次序发给四家并按花色与点数从大到小排列,");
      System.out.println("各家的牌如下:");
      String position[]={"东","南","西","北"};
      int b2=0;
      for(int a3=1;a3<53;a3++)
          {  if(a3%13==1)
              {
               System.out.println(position[b2]+"家的牌为:");
               b2++;
               }
             System.out.print(s[a3].color+s[a3].value+" ");
             if(a3%13==0)System.out.println();
          }
    }
}
各位拜托了,不胜感激!!!

解决方案 »

  1.   

    一、新东方J2EE培训视频录像(新东方 20G)
    培训内容: 
     初级部分(280学时)
    1. JavaOO程序设计基础:J2sdk基础、Java 面向对象基础、Java API使用、数据结构及算法基础、Java高级类特性、异常处理; 
    2. J2SE平台Java程序设计:Java AWT图形界面程序开发,Swing图形程序设计,Socket网络应用程序设计,对象序列化,Java 常用数据结构,Applet,高级I/O流和文件编程,多线程程序设计;
    3.项目开发:globle get 多线程下载系统 
    4. Java桌面系统项目开发:桌面项目,基于Socket的聊天室; 数据库:SQL,ORACLE9i 数据库的管理基础; 
    5. Java Web应用编程:Java数据库编程:JDBC、JDBC-ODBC Java Web编程:JSP、Servlet、JavaBean Java应用编程服务器:Tomcat / … 集成开发环境(IDE):Jbuilder / Eclipse / … Java应用构建工具:Apache Ant / …; 
    6. 项目开发:移动公司计费账务管理系统            
    高级部分(400学时)
    1. Linux初步:Linux基本操作,LINUX下的Java程序开发,Linux系统的简单管理; 
    2. 数据库深入编程:PL/SQL;数据库和数据库设计库程序设计; 
    3. Struts、spring、hibernate:高级Java Web应用开发:业界通用的MVC设计模式,Struts架构、应用程序国际化、Struts Taglib; 
    4. 项目开发:大唐任务管理系统;
    5. J2ME程序设计:移动开发概述、J2ME界面程序设计、J2ME数据库程序设计、手机短信、多媒体短信(彩信)开发; 
    6. Java高级程序设计(J2EE):J2EE架构、EJB核心技术;J2EE主流开发工具JBuilder、应用服务器WebLogic ;Java和XML:XML, Web Service,异构系统整合、分布式应用;
    7. 软件系统架构设计:UML与系统建模和设计、Rational Rose、软件工程和软件过程模型、版本控制;
    8. 项目开发:中国移动电子运行维护系统; 
    IT职业技能课程:
            IT职业规划、沟通技巧、团队合作、专业技术规范、面试技巧等职业技能培训。二、Oracle培训录像
       1.Oracle 9i DBA大型中文视频培训录像(全)(中国IT认证实验室 13.4G)
         *1Z0-007 Introduction to Oracle9i SQL 
         *1Z0-031 Oracle9i DBA Fundamentals I 
         *1Z0-032 Oracle9i DBA Fundamentals II 
         *1Z0-033 Oracle9i Performance Tuning
           另附全套PPT幻灯片培训讲稿。
       2.Oracle 10G 数据库培训录像(中科院 共18讲)现在购买送
    1.孙鑫 XML网页编程开发详解 (内容大小2G)
    2.孙鑫J2EE培训录像(共76讲 含源代码及PPT幻灯片课件)
        本视频侧重于J2EE框架机制原理,内容分为spring,struts,hibernate,powerdesign四个部分的讲解(Spring共23讲,详细讲解了spring的使用。Struts共13讲,Struts通过一个完整视例讲解全部流程,以及标签库。Hibernate共24讲,深入讲解了hibernate的机制。PowerDesigner共6讲,讲解数据库建模的步骤及其工具的使用。)需要联系
    Q Q: 215782959
    MSN: [email protected]
    手机:13584068353
      

  2.   

    /*
    *我把代码做了简单的重构,应该比较清楚了吧
    */
    public class bj123 {
    static class Card {
    String value; char color; int num; int bijiao; public Card(char color, int bijiao, String value, int num) {
    this.color = color;
    this.bijiao = bijiao;
    this.value = value;
    this.num = num;
    }
    } static char[] colors = { 6, 3, 5, 4 }; static int bijiao[] = { 4, 3, 2, 1 }; static String[] values = { "A", "2", "3", "4", "5", "6", "7", "8", "9",
    "10", "J", "Q", "K" }; static int[] nums = { 12, 13, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; public static void main(String arg[]) {
    Card porke[] = new Card[52];
    int k = 0;

    clearCard(porke, k);

    int a[] = new int[52];

    getCardSore(a); soreColor(porke, a);
    }
    private static void soreColor(Card[] porke, int[] a) {
    int c = 0, d = 3;
    for (int i = 0; i < porke.length; i++) {
    int m = a[i];
    System.out.print(porke[m].color + porke[m].value + " ");
    if (i > 0 && i % d == c) {
    System.out.println();
    c++;
    d += 3;
    }
    }
    System.out.println(); int x = 0;
    int i = 0;
    Card s[] = new Card[53];
    for (int j = 0; j < 4; j++) {
    for (int k1 = 0; k1 < porke.length; k1++) {
    int m = a[k1];
    if (k1 % 4 == x) {
    i++;
    s[i] = new Card(porke[m].color, porke[m].bijiao,
    porke[m].value, porke[m].num);
    }
    }
    x++;
    }
    System.out.println(); int a1 = 1, a2, c1 = 13, b = 0;
    while (b < 4) {
    for (; a1 <= c1; a1++)
    for (a2 = a1 + 1; a2 <= c1; a2++) {
    if (s[a1].num < s[a2].num) {
    char temp1 = s[a1].color;
    s[a1].color = s[a2].color;
    s[a2].color = temp1;
    int temp3 = s[a1].bijiao;
    s[a1].bijiao = s[a2].bijiao;
    s[a2].bijiao = temp3;
    String temp = s[a1].value;
    s[a1].value = s[a2].value;
    s[a2].value = temp;
    int temp2 = s[a1].num;
    s[a1].num = s[a2].num;
    s[a2].num = temp2;
    }
    if ((s[a1].num == s[a2].num)
    && (s[a1].bijiao < s[a2].bijiao)) {
    char temp1 = s[a1].color;
    s[a1].color = s[a2].color;
    s[a2].color = temp1;
    int temp3 = s[a1].bijiao;
    s[a1].bijiao = s[a2].bijiao;
    s[a2].bijiao = temp3;
    }
    }
    b++;
    c1 = c1 + 13;
    } System.out.print("将洗好牌按次序发给四家并按花色与点数从大到小排列,");
    System.out.println("各家的牌如下:");
    String position[] = { "东", "南", "西", "北" };
    int b2 = 0;
    for (int a3 = 1; a3 < 53; a3++) {
    if (a3 % 13 == 1) {
    System.out.println(position[b2] + "家的牌为:");
    b2++;
    }
    System.out.print(s[a3].color + s[a3].value + " ");
    if (a3 % 13 == 0)
    System.out.println();
    }
    } private static void getCardSore(int[] a) {
    for (int i = 0; i < a.length; i++) {
    a[i] = (int) (Math.random() * 52);
    for (int j = 0; j < i; j++)
    if (a[j] == a[i])
    i = i - 1;
    }
    System.out.println("洗牌后,牌的顺序如下:");
    System.out.println();
    }
    private static void clearCard(Card[] porke, int k) {
    System.out.println("洗牌前,牌的顺序为:"); for (int i = 0; i <= 3; i++)
    for (int j = 0; j < 13; j++, k++) {
    porke[k] = new Card(colors[i], bijiao[i], values[j], nums[j]);
    System.out.print(porke[k].color + porke[k].value + " ");
    } System.out.println();
    }
    }
      

  3.   

    用JB或者eclipse弄下就可以了啊
    public class bj123 {
    static class Card {
    String value;char color;int num;int bijiao;public Card(char color, int bijiao, String value, int num) {
    this.color = color;
    this.bijiao = bijiao;
    this.value = value;
    this.num = num;
    }
    }static char[] colors = { 6, 3, 5, 4 };static int bijiao[] = { 4, 3, 2, 1 };static String[] values = { "A", "2", "3", "4", "5", "6", "7", "8", "9",
    "10", "J", "Q", "K" };static int[] nums = { 12, 13, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };public static void main(String arg[]) {
    Card porke[] = new Card[52];
    int k = 0;clearCard(porke, k);int a[] = new int[52];getCardSore(a);soreColor(porke, a);
    }
    private static void soreColor(Card[] porke, int[] a) {
    int c = 0, d = 3;
    for (int i = 0; i < porke.length; i++) {
    int m = a[i];
    System.out.print(porke[m].color + porke[m].value + " ");
    if (i > 0 && i % d == c) {
    System.out.println();
    c++;
    d += 3;
    }
    }
    System.out.println();int x = 0;
    int i = 0;
    Card s[] = new Card[53];
    for (int j = 0; j < 4; j++) {
    for (int k1 = 0; k1 < porke.length; k1++) {
    int m = a[k1];
    if (k1 % 4 == x) {
    i++;
    s[i] = new Card(porke[m].color, porke[m].bijiao,
    porke[m].value, porke[m].num);
    }
    }
    x++;
    }
    System.out.println();int a1 = 1, a2, c1 = 13, b = 0;
    while (b < 4) {
    for (; a1 <= c1; a1++)
    for (a2 = a1 + 1; a2 <= c1; a2++) {
    if (s[a1].num < s[a2].num) {
    char temp1 = s[a1].color;
    s[a1].color = s[a2].color;
    s[a2].color = temp1;
    int temp3 = s[a1].bijiao;
    s[a1].bijiao = s[a2].bijiao;
    s[a2].bijiao = temp3;
    String temp = s[a1].value;
    s[a1].value = s[a2].value;
    s[a2].value = temp;
    int temp2 = s[a1].num;
    s[a1].num = s[a2].num;
    s[a2].num = temp2;
    }
    if ((s[a1].num == s[a2].num)
    && (s[a1].bijiao < s[a2].bijiao)) {
    char temp1 = s[a1].color;
    s[a1].color = s[a2].color;
    s[a2].color = temp1;
    int temp3 = s[a1].bijiao;
    s[a1].bijiao = s[a2].bijiao;
    s[a2].bijiao = temp3;
    }
    }
    b++;
    c1 = c1 + 13;
    }System.out.print("将洗好牌按次序发给四家并按花色与点数从大到小排列,");
    System.out.println("各家的牌如下:");
    String position[] = { "东", "南", "西", "北" };
    int b2 = 0;
    for (int a3 = 1; a3 < 53; a3++) {
    if (a3 % 13 == 1) {
    System.out.println(position[b2] + "家的牌为:");
    b2++;
    }
    System.out.print(s[a3].color + s[a3].value + " ");
    if (a3 % 13 == 0)
    System.out.println();
    }
    }private static void getCardSore(int[] a) {
    for (int i = 0; i < a.length; i++) {
    a[i] = (int) (Math.random() * 52);
    for (int j = 0; j < i; j++)
    if (a[j] == a[i])
    i = i - 1;
    }
    System.out.println("洗牌后,牌的顺序如下:");
    System.out.println();
    }
    private static void clearCard(Card[] porke, int k) {
    System.out.println("洗牌前,牌的顺序为:");for (int i = 0; i <= 3; i++)
    for (int j = 0; j < 13; j++, k++) {
    porke[k] = new Card(colors[i], bijiao[i], values[j], nums[j]);
    System.out.print(porke[k].color + porke[k].value + " ");
    }System.out.println();
    }
    }