有人可以帮我把这段代码从C++转换成Java吗?我对C++没有任何认识。C++到Java代码翻译:numberToBarcode()
EDIT2: 感谢回复的家伙,我会花时间学习C++。我只需要一些帮助翻译的东西。这是我完成的翻译。我收到了所有numberToBarcode()方法名称的错误。我可否让你们检查这段代码,看看译文是否准确?
我的代码:
import java.util.Scanner;
public class zipBar {
public static int numberToBarcode(int arg0)
{
return arg0;
}
public static void main(String[] args) {
int z;
int num1, num2, num3, num4, num5, checkNum;
int tempNum;
int checkTotal;
String barcode = "|";
System.out.println("Enter zip code: ");
Scanner zip = new Scanner(System.in);
z = zip.nextInt();
if (z >= 10000 || z < 0)
{
System.out.println("Input Error: Input not a valid zip code");
}
tempNum = z;
num5 = tempNum % 10;
tempNum = tempNum/10;
num4 = tempNum % 10;
tempNum = tempNum/10;
num3 = tempNum % 10;
tempNum = tempNum/10;
num2 = tempNum % 10;
tempNum = tempNum/10;
num1 = tempNum % 10;
tempNum = tempNum/10;
checkTotal = num1 + num2 + num3 + num4 + num5;
checkNum = (10-(checkTotal % 10)) % 10;
barcode += numberToBarcode(num1);
barcode += numberToBarcode(num2);
barcode += numberToBarcode(num3);
barcode += numberToBarcode(num4);
barcode += numberToBarcode(num5);
barcode += numberToBarcode(checkNum);
barcode += "|";
System.out.println("Your zip code's barcode is: " + barcode);
//return 0;
}
public static void String numberToBarcode(int num){
String barcode = " ";
int dig;
int tempNum;
int bcTotal = 0;
tempNum = num;
if (tempNum >= 10){
dig = tempNum % 10;
tempNum /= 10;
barcode = numberToBarcode(tempNum);
}
else{
dig = tempNum;
}
tempNum = dig;
if (dig == 0) {
barcode += "||:::";
}
else{
if (tempNum/7 == 1 && bcTotal < 2){
barcode += "|";
tempNum -= 7;
bcTotal++;
}
else
barcode += ":";
if (tempNum/4 == 1 && bcTotal < 2) {
barcode += "|";
tempNum -= 4;
bcTotal++;
} else
barcode += ":";
if (tempNum/2 == 1 && bcTotal < 2) {
barcode += "|";
tempNum -= 2;
bcTotal++;
} else
barcode += ":";
if (tempNum/1 == 1 && bcTotal < 2) {
barcode += "|";
tempNum -= 1;
bcTotal++;
} else
barcode += ":";
if (bcTotal < 2) {
barcode += "|";
bcTotal++;
} else
barcode += ":";
}
return barcode;
}
}
C++代码:
string numberToBarcode(int);
int main() {
int zip;
int num1, num2, num3, num4, num5, checkNum;
int tempNum;
int checkTotal;
string barcode = "|";
cout << "Please enter a 5 digit zip code.\n"
<< " --> ";
cin >> zip;
if (zip >= 100000 || zip < 0) {
cout << "Error: Not a zip code.\n";
return 0;
}
tempNum = zip;
num5 = tempNum % 10;
tempNum = tempNum/10;
num4 = tempNum % 10;
tempNum = tempNum/10;
num3 = tempNum % 10;
tempNum = tempNum/10;
num2 = tempNum % 10;
tempNum = tempNum/10;
num1 = tempNum % 10;
tempNum = tempNum/10;
checkTotal = num1 + num2 + num3 + num4 + num5;
checkNum = (10-(checkTotal % 10))%10;
barcode += numberToBarcode(num1);
我不能完全肯定这是值得用手工的Java转换到C++。你应该更好地学习C++(它需要与Java不同的思维方式)。 – 2012-03-10 17:16:41
很难说出问题出在哪里。如果你甚至知道Java的基础知识,你应该能够提出更具体的问题,如果你不知道,那么从长远来看,没有答案会对你有所帮助。 – 2012-03-10 17:17:26