我写的代码有一点小问题!请大家帮忙看看! 实在不好意思,因为以前C++没学好,再加上老师讲Java时根本不讲基础,一些小问题实在不懂,我以后会多多思考后再提问!谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 上边不对的地方我已经在我的代码里改正啦,以下是我改过后的代码: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; }} 寻求简单方法!! java 网络编程 获得流 读写文件 怎样才是熟悉JAVA开发? 已经创建了2个jframe,怎么从一个打开另一? 请教连接sql数据库与acess数据库的区别 遍历url路径下文件和文件夹,解决者200分 一个非常简单的问题,请大家指点下!!! 一个关于properties文件读取的奇怪问题?在线等! 怎样让一个从数据库中取值的表的单元格的内容可以编辑.(编辑表单元格的内容不要改变数据库里数据的实际内容)在线等待!!! 怎么编写行数统计器的程序!!!!!急~!高手请进!!高分~~~! 急!菜鸟问题:怎么比较两个TEXT文本是否相同
以下是我改过后的代码: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;
}
}