27
The 5 th and 6 th tutoring session - A case study about verifying a ISBN - Writing code for problems in HW1 Fall, 2012 Haidong(Haydon) Xue 5:30pm—8:30pm 9/18/2012 and 9/19/2012

Haidong (Haydon) Xue

  • Upload
    mai

  • View
    65

  • Download
    0

Embed Size (px)

DESCRIPTION

The 5 th and 6 th tutoring session - A case study about verifying a ISBN - Writing code for problems in HW1 Fall, 2012. Haidong (Haydon) Xue. 5:30pm—8:30pm 9/18/2012 and 9/19/2012 . CSc2310 Tutoring Time: 5:30pm-8:30pm Tutor: Haidong Xue (You can call me Haydon) There are 2 sections: - PowerPoint PPT Presentation

Citation preview

Page 1: Haidong (Haydon)  Xue

The 5th and 6th tutoring session- A case study about verifying a ISBN- Writing code for problems in HW1

Fall, 2012

Haidong(Haydon) Xue

5:30pm—8:30pm9/18/2012 and 9/19/2012

Page 2: Haidong (Haydon)  Xue

• CSc2310 Tutoring• Time: 5:30pm-8:30pm• Tutor: Haidong Xue (You can call me Haydon)

There are 2 sections:1. Review 5:30pm – 6:30pmCode the ISBN verifying programCode the programs for the problems in your HW1

2. Q&AIf you have any questions about Java programming, I am right here

Page 3: Haidong (Haydon)  Xue

ISBN Checking – problem definition

• An certain version of ISBN (International Standard Book Number) is a unique number assigned to a book when it’s published, such as 0–393–96945–2.

• The number at the end is a check digit that’s calculated from the other digits in the ISBN.

• Our goal is to write a program named CheckISBN that calculates the check digit for an ISBN entered by the user:Enter ISBN: 0-393-96945-2Check digit entered: 2Check digit computed: 2

Page 4: Haidong (Haydon)  Xue
Page 5: Haidong (Haydon)  Xue

ISBN Checking – to do list

What is the to-do list?

Page 6: Haidong (Haydon)  Xue

ISBN Checking – to do list

1. Prompt the user to enter an ISBN.2. Compute the check digit for the ISBN.3. Display the check digit entered by the user.4. Display the computed check digit.

You can start from putting this list into your code as comments

Page 7: Haidong (Haydon)  Xue
Page 8: Haidong (Haydon)  Xue

ISBN Checking – The mathematics to verify the last digit

• A ISBN: 9 digits and 1 check digite.g. 0-393-96945-2• For the 9 digits there is a weight for each of them

• The last digit is computed:total = check digit = 10 – ((total – 1) mod 11)

0-393-96945-2 987 6543210

Page 9: Haidong (Haydon)  Xue

ISBN Checking – The mathematics to verify the last digit

0-393-96945-2 987 6543210

total = 0 10 + 3 9 + 9 8 + 3 7 + 9 6 +

6 5 + 9 4 + 4 3 + 5 2= 0 + 27 + 72 + 21 + 54 + 30 + 36 + 12 + 10= 262

Check digit: 10 – ((262 – 1) mod 11) = 10 – (261 mod 11) = 10 – 8 = 2

Page 10: Haidong (Haydon)  Xue

ISBN Checking – codingLet code it step by step• Please get your Eclipse ready• Create a class named CheckISBN with main

method

If you are not very confident, please download and open this code first (it is the finished program):http://www.cs.gsu.edu/~hxue1/csc2310Tutoring/CheckISBN.java

Page 11: Haidong (Haydon)  Xue

ISBN Checking – coding

// 1. Prompt the user to enter an ISBN.Your code:

Page 12: Haidong (Haydon)  Xue

ISBN Checking – coding

// 1. Prompt the user to enter an ISBN.System.out.print("Please enter a ISBN: ");Scanner s = new Scanner(System.in);String originalISBN = s.next();s.close();

Page 13: Haidong (Haydon)  Xue

ISBN Checking – coding// 2. Compute the check digit for the ISBN.(About String: http://docs.oracle.com/javase/7/docs/api/java/lang/String.html)

Your code:

Page 14: Haidong (Haydon)  Xue

ISBN Checking – coding// 2. Compute the check digit for the ISBN.int dashPos1 = originalISBN.indexOf('-'); // return the index of '-'int dashPos2 = originalISBN.indexOf('-', dashPos1 + 1); // return the index of '-', //only scan the string //from dashPos1+1 to //the end

String reducedISBN = originalISBN.substring(0, dashPos1) + originalISBN.substring(dashPos1 + 1, dashPos2) + originalISBN.substring(dashPos2 + 1, 11); //remove '-'

(….)

Page 15: Haidong (Haydon)  Xue

ISBN Checking – coding// 2. Compute the check digit for the ISBN. (…)int total = 10 * Integer.parseInt(reducedISBN.substring(0, 1)) + 9 * Integer.parseInt(reducedISBN.substring(1, 2)) + 8 * Integer.parseInt(reducedISBN.substring(2, 3)) + 7 * Integer.parseInt(reducedISBN.substring(3, 4)) + 6 * Integer.parseInt(reducedISBN.substring(4, 5)) + 5 * Integer.parseInt(reducedISBN.substring(5, 6)) + 4 * Integer.parseInt(reducedISBN.substring(6, 7)) + 3 * Integer.parseInt(reducedISBN.substring(7, 8)) + 2 * Integer.parseInt(reducedISBN.substring(8, 9));

int checkDigit = 10 - ((total - 1) % 11);

Page 16: Haidong (Haydon)  Xue

ISBN Checking – coding

// 3. Display the check digit entered by the user.Your code:

Page 17: Haidong (Haydon)  Xue

ISBN Checking – coding

// 3. Display the check digit entered by the user.System.out.println("Check digit entered: " + originalISBN.charAt(12));

Page 18: Haidong (Haydon)  Xue

ISBN Checking – coding

// 4. Display the computed check digit.Your code:

Page 19: Haidong (Haydon)  Xue

ISBN Checking – coding

// 4. Display the computed check digit.final String DIGITS = "0123456789X";System.out.println("Check digit computed: " + DIGITS.charAt(checkDigit));

Page 20: Haidong (Haydon)  Xue

ISBN Checking - testing

Run your finished code and let me know your questions.

Page 21: Haidong (Haydon)  Xue

HW1 – Problem #1

• X = (-b ± Sqrt(b2 – 4ac))/2a• Use the following values 2, 6 and 2 for

variables a, b and c respectively .Your code:

Page 22: Haidong (Haydon)  Xue

HW1 – Problem #1

• X = (-b ± Sqrt(b2 – 4ac))/2a• Use the following values 2, 6 and 2 for

variables a, b and c respectively .My code:double a =2; double b=6; double c=2;double doubleTempSqrt = Math.sqrt(b*b-4*a*c);double x1 = (-b+ doubleTempSqrt )/(2*a);double x2 = (-b- doubleTempSqrt )/(2*a);

Page 23: Haidong (Haydon)  Xue

HW1 – Problem #2

• Print:

Page 24: Haidong (Haydon)  Xue

HW1 – Problem #2

Solution from Haidong:• Find a ASCII art generator like: http://patorjk.com/software/taag/#p=display&f=Alpha&t=Java• Copy it to java line by line• For each ‘\’, replace it with ‘\\’ , and put ‘\n’ at

the end of each line• Print it

Page 25: Haidong (Haydon)  Xue

HW1 – Problem #2My code: String java = " _____ _____ _____ _____\n" +" /\\ \\ /\\ \\ /\\ \\ /\\ \\ \n" +" /::\\ \\ /::\\ \\ /::\\____\\ /::\\ \\\n" +" \\:::\\ \\ /::::\\ \\ /:::/ / /::::\\ \\\n" +" \\:::\\ \\ /::::::\\ \\ /:::/ / /::::::\\ \\\n" +" \\:::\\ \\ /:::/\\:::\\ \\ /:::/ / /:::/\\:::\\ \\\n" +" \\:::\\ \\ /:::/__\\:::\\ \\ /:::/____/ /:::/__\\:::\\ \\\n" +" /::::\\ \\ /::::\\ \\:::\\ \\ |::| | /::::\\ \\:::\\ \\\n" +" _____ /::::::\\ \\ /::::::\\ \\:::\\ \\ |::| | _____ /::::::\\ \\:::\\ \\\n" +" /\\ \\ /:::/\\:::\\ \\ /:::/\\:::\\ \\:::\\ \\ |::| | /\\ \\ /:::/\\:::\\ \\:::\\ \\\n" +"/::\\ /:::/ \\:::\\____\\/:::/ \\:::\\ \\:::\\____\\ |::| | /::\\____\\/:::/ \\:::\\ \\:::\\____\\\n"+"\\:::\\ /:::/ \\::/ /\\::/ \\:::\\ /:::/ / |::| | /:::/ /\\::/ \\:::\\ /:::/ /\n"+" \\:::\\/:::/ / \\/____/ \\/____/ \\:::\\/:::/ / |::| | /:::/ / \\/____/ \\:::\\/:::/ / \n" +" \\::::::/ / \\::::::/ / |::|____|/:::/ / \\::::::/ / \n"+" \\::::/ / \\::::/ / |:::::::::::/ / \\::::/ / \n"+" \\::/ / /:::/ / \\::::::::::/____/ /:::/ / \n"+" \\/____/ /:::/ / ~~~~~~~~~~ /:::/ / \n"+" /:::/ / /:::/ / \n"+" /:::/ / /:::/ / \n"+" \\::/ / \\::/ / \n"+" \\/____/ \\/____/ \n"+" \n";

System.out.println(java);

http://www.cs.gsu.edu/~hxue1/csc2310Tutoring/PrintJava.java

Page 26: Haidong (Haydon)  Xue

HW1 – Problem #2Result:

Page 27: Haidong (Haydon)  Xue

If you have any questions about java programming, I will be here till 8:30pm