实在不好意思,因为以前C++没学好,再加上老师讲Java时根本不讲基础,一些小问题实在不懂,我以后会多多思考后再提问!谢谢!

解决方案 »

  1.   

    上边不对的地方我已经在我的代码里改正啦,
    以下是我改过后的代码:package szb;
    import java.text.*;/*
     1。某公司的一个老的MIS系统每月都会生成工资数据。
     格式如下:
     "姓名","员工类型","基本工资","岗位工资","奖金" 其中员工类型有 A B C三类。
     每一员工的计算公式如下: A类员工的工资=基本工资*1.2+ 岗位工资 + 奖金*1.2
     B类员工的工资=基本工资+ 岗位工资+ 奖金
     C类员工的工资=基本工资*0.8 + 岗位工资 + 奖金 * 0.8 试对以下员工数据计算他们的工资:
     "王某","B","500.00","1000.00","300"
     "张某","C","500.00","800.00","400"
     "李某","A","500.00","1000.00","500"
     "刘某","A","500.00","1000.00","500" 将结果输出到控制台(注意结果保留两位小数):
     王某 XXX.XX元
     张某 XXX.XX元
     李某 XXX.XX元
     刘某 XXX.XX元
     */public class Mis {
      public static void main(String[] args) {
        //将字符串输入到数组
        String[] info = new String[4];
        info[0] = "\"王某\",\"B\",\"500.00\",\"1000.00\",\"300\"";
        info[1] = "\"张某\",\"C\",\"500.00\",\"800.00\",\"400\"";
        info[2] = "\"李某\",\"A\",\"500.00\",\"1000.00\",\"500\"";
        info[3] = "\"刘某\",\"A\",\"500.00\",\"1000.00\",\"500\"";
        String[][] resolve = new String[4][5];
        //分离字符串、去引号并存入数组
        for (int i = 0; i < 4; i++) {
          String[] temp=new String[5];
          temp = strsplit(info[i]);                     //调用分离方法
          for(int j=0;j<5;j++){
            resolve[i][j]=deleteColon(temp[j]);         //调用去引号方法,并将字符串存入数组
          }
        }
        //计算工资并打印
        for(int i=0;i<4;i++)
        {
          double salary;
          salary=getsalary(resolve[i]);
          NumberFormat format = java.text.NumberFormat.getNumberInstance();
          format.setMinimumFractionDigits(2);
          System.out.println(resolve[i][0]+" "+format.format(salary).replaceAll(",",""));
        }
    /*//    打印测试
        for(int i=0;i<4;i++)
        {
          for(int j=0;j<5;j++)
          {
            System.out.println(resolve[i][j]);
          }
        }*/
      }  /**
       * getsalary
       *
       * @param strings String[]
       * @return double
       */
    ////////////////////////////////////////////以下是出错的地方
      private static double getsalary(String[] temp){
      double sal=0.00;
        if(temp[1].equals("A"))
        {
          sal=Double.parseDouble(temp[2])*1.2+Double.parseDouble(temp[3])+Double.parseDouble(temp[4])*1.2;    }
        if(temp[1].equals("B"))
        {
          sal=Double.parseDouble(temp[2])+Double.parseDouble(temp[3])+Double.parseDouble(temp[4]);
        }
        if(temp[1].equals("C"))
        {
          sal=Double.parseDouble(temp[2])*0.8+Double.parseDouble(temp[3])+Double.parseDouble(temp[4])*0.8;    }
        return sal;
      }  /**
       * deleteColon(将字符串中的引号去掉)
       *
       * (返回字符串)
       */
      public static String deleteColon(String a){
        String temp;
        int n;
        n=a.lastIndexOf("\"");
        temp=a.substring(1,n);
        return temp;
      }  /**
       * strsplit(将第行字符串放入一个字符串数组)
       *(返回字符串数组)
       */
      private static String[] strsplit(String a) {
        String[] temp1 = new String[5];
        temp1 = a.split(",");
        return temp1;
      }
    }