I am working on java programming that converts zipcode to ba
I am working on java programming that converts zipcode to barcode and vice versa. I am stuck in as the instruction requires that I have to use two methods which are getBarcode and getZipcode to the tester. For this reason, it seems like that I have to call all the methods before those two methods. However, I think the if statements and swich are not working properly as the result also is not calling proper results.
Please review what is wrong in this code.
Question: How can I call the methods before getBarcode and getZipcode Question: Is there anything wrong among switch and if statements?
Question: As the zipcode and barcode should be called as String, Which methods should I use for changing the Strings into integers?
import java.util.Scanner;
//*********************************
//
// Zipcode class
//
// This is a template for your Zipcode class
// You may add methods and instance variables to this
// class but your code must work with the provided test class ZipTest.java
//
//*********************************
public class Zipcode{
private String zipcode = \"\";
private String barcode = \"\";
private static int zip;
private static String str;
public int digit1;
public int digit2;
public int digit3;
public int digit4;
public int digit5;
public int checkDigit;
public static String number;
public static String bar1;
public static String bar2;
public static String bar3;
public static String bar4;
public static String bar5;
public static String bar6;
public static String bar7;
public static String bar8;
public static String bar9;
public static String bar0;
public static String temp;
public static int option() {
System.out.println(\"Enter 1 : Zipcode to Barcode \");
System.out.println(\"Enter 2 : Barcode to Zipcode \");
Scanner in = new Scanner(System.in);
System.out.println( \"Enter the option : \" );
return in.nextInt();
}
public Zipcode() {
bar0 = \"||:::\";
bar1 = \":::||\";
bar2 = \"::|:|\";
bar3 = \"::||:\";
bar4 = \":|::|\";
bar5 = \":|:|:\";
bar6 = \":||::\";
bar7 = \"|:::|\";
bar8 = \"|::|:\";
bar9 = \"|:|::\";
//barcode concatenates as the loop interates each digit
getBar(digit1);
getBar(digit2);
getBar(digit3);
getBar(digit4);
getBar(digit5);
getBar(checkDigit);
}
public Zipcode(int zip) {
this.getDigit(zip);
}
public void error() {
while((zip<01001) || (zip>99950)) {
System.out.println(\"Error\");
System.out.println(\"You should enter ZIPCODE between 01001 and 99950\");
System.out.println(\"Please, enter another ZIPCODE\");
}
}
public int getDigit(int zip){
int zip = Integer.parseInt(zipcode);
digit1 = zip/10000;
digit2 = ((zip/1000)-digit1*10);
digit3 = (zip/100 - (digit1*100 + digit2*10));
digit4 = (zip/10 -(digit1*1000 + digit2*100 + digit3*10));
digit5 = (zip - (digit1*10000 + digit2*1000 + digit3*100 + digit4*10));
int sum = digit1+digit2+digit3+digit4+digit5;
int checkDigit = (10-(sum%10));
if(checkDigit == 10) {
System.out.println(\"Check Digit : \" + 0);
} else {
System.out.println(\"Check Digit : \" + checkDigit);
}
// add your own code here to
// to complete the constructor
System.out.println(\"**** BARCODE ****\");
return zip;
}
public void getBar(int x) {
switch(x) {
case 0: barcode = bar0 + barcode;
break;
case 1: barcode = bar1 + barcode;
break;
case 2: barcode = bar2 + barcode;
break;
case 3: barcode = bar3 + barcode;
break;
case 4: barcode = bar4 + barcode;
break;
case 5: barcode = bar5 + barcode;
break;
case 6: barcode = bar6 + barcode;
break;
case 7: barcode = bar7 + barcode;
break;
case 8: barcode = bar8 + barcode;
break;
case 9: barcode = bar9 + barcode;
break;
}
barcode = \"|\" + barcode + \"|\";
}
// you will need to add more your own methods here
public String getBarcode(){
//leave this method as is
return barcode;
}
//method that changes barcode to Zipcode
public static void divide(String temp) {
Zipcode postal = new Zipcode();
str = temp.substring(0,5);
postal.getZipcode(str);
str = temp.substring(5,10);
postal.getZipcode(str);
str = temp.substring(10,15);
postal.getZipcode(str);
str = temp.substring(15,20);
postal.getZipcode(str);
str = temp.substring(20,25);
postal.getZipcode(str);
}
public String getZip(String temp) {
String number = \"\";
if( temp.equals(bar1) )
number = number + \"0\";
if ( temp.equals(bar2) )
number = number +\"1\";
if( temp.equals(bar3) )
number =number + \"2\";
if( temp.equals(bar4) )
number = number +\"3\";
if( temp.equals(bar5) )
number = number +\"4\";
if( temp.equals(bar6) )
number = number +\"5\";
if( temp.equals(bar5) )
number = number +\"6\";
if( temp.equals(bar6) )
number = number +\"7\";
if( temp.equals(bar7) )
number = number +\"8\";
if( temp.equals(bar8) )
number = number +\"9\";
return number;
}
public String getZipcode()
{
return zipcode;
}
}
Solution
import java.util.Scanner;
public class Postal
{
public int num2; // 10000 digit
public int num3; // 1000 digit
public int num4; // 100 digit
public int num5; // 10 digit
public int num6; // 1 digit
public int checkDig; // check digit
public static int num;
public static String temp;
public static int menu;
public static int zip;
public static String bar0;
public static String bar1;
public static String bar2;
public static String bar3;
public static String bar4;
public static String bar5;
public static String bar6;
public static String bar7;
public static String bar8;
public static String bar9;
public static String str;
public static int numb;
public Postal()
{
zip = 0;
bar0 = \"||:::\"; bar1 = \":::||\"; bar2 = \"::|:|\";
bar3 = \"::||:\"; bar4 = \":|::|\"; bar5 = \":|:|:\";
bar6 = \":||::\"; bar7 = \"|:::|\"; bar8 = \"|::|:\";
bar9 = \"|:|::\";
}
public static int getZIP()
{
System.out.println(\"Enter a ZIP code : \");
Scanner sc = new Scanner(System.in);
zip = sc.nextInt();
while((zip<01001)||(zip>99950))
{
System.out.println(\"**** ERROR ****\");
System.out.println(\"The ZIP code must be between 01001 and 99950\");
System.out.println(\"Please,enter the correct zip : \");
zip = sc.nextInt();
}
return zip;
}
public static int menu()
{
System.out.println(\"**** Zip & Bar Code Convertor ****\");
System.out.println(\"Choose one option from following : \");
System.out.println(\"1) Create ZIP barcode \");
System.out.println(\"2) Find ZIP code from barcode \");
System.out.println(\"3) Exit \");
Scanner sc = new Scanner(System.in);
return sc.nextInt();
}
public void getDigit(int num)
{
num2 = num/10000;
num3 = ((num/1000)-num2*10);
num4 = (num/100 - (num2*100 + num3*10));
num5 = (num/10 -(num2*1000 + num3*100 + num4*10));
num6 = (num - (num2*10000 + num3*1000 + num4*100 + num5*10));
checkDig = 100- (num2+num3+num4+num5+num6);
System.out.println(checkDig);
while(checkDig>10)
{ checkDig -= 10; }
System.out.println(\"**** BARCODE ****\");
System.out.print(\"|\");
getBar(num2);
getBar(num3);
getBar(num4);
getBar(num5);
getBar(num6);
getBar(checkDig);
System.out.print(\"|\");
}
public void getBar(int x)
{
switch(x)
{
case 0: System.out.print(bar0); break;
case 1: System.out.print(bar1); break;
case 2: System.out.print(bar2); break;
case 3: System.out.print(bar3); break;
case 4: System.out.print(bar4); break;
case 5: System.out.print(bar5); break;
case 6: System.out.print(bar6); break;
case 7: System.out.print(bar7); break;
case 8: System.out.print(bar8); break;
case 9: System.out.print(bar9); break;
}
}
public static String number()
{
System.out.println(\"Enter a barcode with using : or | \");
Scanner scn = new Scanner(System.in);
String bar = scn.nextLine();
return bar;
}
public static void getNumber(String temp)
{
System.out.println(\"\");
System.out.println(temp);
if(temp.equals(bar0))
{
numb = 0;
}
if(temp.equals(bar1))
{
numb = 1;
}
if(temp.equals(bar2))
{
numb = 2;
}
if(temp.equals(bar3))
{
numb = 3;
}
if(temp.equals(bar4))
{
numb = 4;
}
if(temp.equals(bar5))
{
numb = 5;
}
if(temp.equals(bar6))
{
numb = 6;
}
if(temp.equals(bar7))
{
numb = 7;
}
if(temp.equals(bar8))
{
numb = 8;
}
if(temp.equals(bar9))
{
numb = 9;
}
System.out.print(numb);
}
public static void divide(String temp)
{
Postal po = new Postal();
str = temp.substring(1,6);
po.getNumber(str);
str = temp.substring(6,11);
po.getNumber(str);
str = temp.substring(11,16);
po.getNumber(str);
str = temp.substring(16,21);
po.getNumber(str);
str = temp.substring(21,26);
po.getNumber(str);
}
public static void main(String[] args)
{
Postal pos = new Postal();
while(menu != 3)
{
System.out.println();
menu = pos.menu();
switch (menu)
{
case 1:
num = pos.getZIP();
pos.getDigit(num);
System.out.println();
break;
case 2:
temp = pos.number();
System.out.println(temp);
pos.divide(temp);
break;
case 3:
break;
}
}
}
}






