From b8ea5f026c79c8a0d3e2100f8c38acc953438945 Mon Sep 17 00:00:00 2001 From: SanyaNo Date: Wed, 10 Dec 2014 20:56:22 +0200 Subject: [PATCH 1/6] Course assignment --- .../src/course_aasignment/ex5/EGNComp.java | 55 ++++ .../src/course_aasignment/ex5/Main.java | 28 ++ .../src/course_aasignment/ex5/Person.java | 266 ++++++++++++++++++ .../src/course_assignment/ex1/Ex1_b.java | 59 ++++ .../src/course_assignment/ex1/Main.java | 21 ++ 5 files changed, 429 insertions(+) create mode 100644 1401417007_SanyaOvcharova/fixedApp/src/course_aasignment/ex5/EGNComp.java create mode 100644 1401417007_SanyaOvcharova/fixedApp/src/course_aasignment/ex5/Main.java create mode 100644 1401417007_SanyaOvcharova/fixedApp/src/course_aasignment/ex5/Person.java create mode 100644 1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Ex1_b.java create mode 100644 1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Main.java diff --git a/1401417007_SanyaOvcharova/fixedApp/src/course_aasignment/ex5/EGNComp.java b/1401417007_SanyaOvcharova/fixedApp/src/course_aasignment/ex5/EGNComp.java new file mode 100644 index 0000000..0c0bf76 --- /dev/null +++ b/1401417007_SanyaOvcharova/fixedApp/src/course_aasignment/ex5/EGNComp.java @@ -0,0 +1,55 @@ + +package course_aasignment.ex5; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + + + +/** + * + * @author SanyaNo + */ +public class EGNComp { + + /** + * + * @param per1 + * @param per2 + * @return + */ + + public void whoIsOlder(Person per1, Person per2){ + + try{ + + + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date date1 = sdf.parse(per1.getFormatedDate()); + Date date2 = sdf.parse(per2.getFormatedDate()); + + + if(date1.after(date2)){ + System.out.println(per2.getName() + " is older than " + per1.getName()); + } + + if(date1.before(date2)){ + System.out.println(per1.getName() + " is older than " + per2.getName()); + } + + if(date1.equals(date2)){ + System.out.println(per1.getName() + " and " + per2.getName() + " are born on the same day!"); + } + + }catch(ParseException ex){ + ex.printStackTrace(); + } + + + } + + + +} diff --git a/1401417007_SanyaOvcharova/fixedApp/src/course_aasignment/ex5/Main.java b/1401417007_SanyaOvcharova/fixedApp/src/course_aasignment/ex5/Main.java new file mode 100644 index 0000000..1fc3879 --- /dev/null +++ b/1401417007_SanyaOvcharova/fixedApp/src/course_aasignment/ex5/Main.java @@ -0,0 +1,28 @@ +package course_aasignment.ex5; + + +/* + * Съставете програма, която сравнява две ЕГН-та и + * извежда съобщение, кой от притежателите им е по-млад. + */ +/** + * + * @author SanyaNo + */ +public class Main { + + public static void main(String[] args) { + + Person ivan = new Person(); + Person john = new Person(); + + + + EGNComp cmp = new EGNComp(); + cmp.whoIsOlder(ivan, john); + + + + } + +} \ No newline at end of file diff --git a/1401417007_SanyaOvcharova/fixedApp/src/course_aasignment/ex5/Person.java b/1401417007_SanyaOvcharova/fixedApp/src/course_aasignment/ex5/Person.java new file mode 100644 index 0000000..5588273 --- /dev/null +++ b/1401417007_SanyaOvcharova/fixedApp/src/course_aasignment/ex5/Person.java @@ -0,0 +1,266 @@ +package course_aasignment.ex5; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Scanner; + +/** + * + * @author SanyaNo + */ +public class Person { + + private String EGN; + private String name; + private String formatedDate; + // private String[] dateID = {"year", "month", "day"}; + private static Scanner listener = new Scanner(System.in); + + + + Person() { + + System.out.println("Please enter your name: "); + String fName = listener.nextLine(); + String name = nameFormat(fName); + setName(name); + System.out.printf("Welcome %s! Please enter your EGN: ", name); + + while (true) { + String EGN = listener.nextLine(); + EGN = EGN.trim(); + if (!eval(EGN)) { + System.out.println("Invalid EGN! Please try again: "); + } else { + setEGN(EGN); + + System.out.println("Success!"); + break; + + } + } + + + } + /** + * + * @param name + * @return + */ + public String nameFormat(String name) { + + String formatedName = name.toLowerCase(); + formatedName = formatedName.trim(); + formatedName = Character.toUpperCase(formatedName.charAt(0)) + formatedName.substring(1); + return formatedName; + } + + /** + * + * @param formatedDate + */ + + public void setFormatedDate(String formatedDate) { + + this.formatedDate = formatedDate; + } + + /** + * + * @return + */ + + public String getFormatedDate() { + return formatedDate; + } + /** + * + * @param EGN + */ + public void setEGN(String EGN) { + this.EGN = EGN; + } + /** + * + * @return + */ + public String getEGN() { + return EGN; + } + /** + * + * @return + */ + public String getName() { + return name; + } + /** + * + * @param name + */ + public void setName(String name) { + this.name = name; + } + /** + * PIN Evaluation + * @param EGN + * @return + */ + public boolean eval(String EGN) { + + boolean eval = true; + + if (!EGN.matches("[0-9]{10}")) { + eval = false; + return eval; + } + + // Date evaluation + int[] date = getDate(EGN); + String fDate = formatDate(date); + + if (fDate.equals("")) { + eval = false; + return eval; + } + + if (!isValidDate(fDate)) { + eval = false; + return eval; + } + + //Control number evaluation + + if (!controlNum(EGN)) { + eval = false; + return eval; + } + setFormatedDate(fDate); + return eval; + + } + + /* + * Source: + * www.java2s.com + * + * @param inDate + * @return + */ + public boolean isValidDate(String inDate) { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + dateFormat.setLenient(false); + try { + dateFormat.parse(inDate.trim()); + } catch (ParseException pe) { + return false; + } + + return true; + } + + /** + * Get the date of birth + * + * @param EGN + * @return + */ + + public int[] getDate(String EGN) { + + int[] date = new int[3]; + int start = 0; + for (int i = 0; i < date.length; i++) { + + date[i] = getIntVal(EGN, start, (start + 1)); + start += 2; + + } + + return date; + + } + + /** + * The integer value of a random number represented by string + * + * @param someNumber + * @param start + * @param end + * @return value + * TODO: Evaluation of the expected values of the string when + * cast into integer + */ + + public int getIntVal(String someNumber, int start, int end) { + + + int val = Integer.parseInt(someNumber.substring(start, (end + 1))); + + return val; + + } + + /** + * Get yyyy-MM-dd format of a date in yy-MM-dd format + * + * @param date + * @return + */ + + public String formatDate(int[] date) { + String formatedDate = ""; + + if (date[1] > 0 && date[1] < 13) { + date[0] += 1900; + } + + if (date[1] > 20 && date[1] < 33) { + date[0] += 1800; + date[1] -= 20; + } + + if (date[1] > 40 && date[1] < 53) { + date[0] += 2000; + date[1] -= 40; + } + + formatedDate = "" + date[0] + "-" + date[1] + "-" + date[2]; + + return formatedDate; + } + + /** + * Evaluation of the control number in a PIN + * + * @param EGN + * @return + */ + + public boolean controlNum(String EGN) { + boolean eval = true; + + int[] digits = new int[EGN.length()]; + for (int i = 0; i < EGN.length(); i++) { + String digit = "" + EGN.charAt(i); + digits[i] = Integer.parseInt(digit); + + } + + int cntNum = digits[0] * 2 + digits[1] * 4 + digits[2] * 8 + digits[3] * 5 + digits[4] * 10 + + digits[5] * 9 + digits[6] * 7 + digits[7] * 3 + digits[8] * 6; + cntNum = cntNum % 11; + + if (cntNum == 10) { + + cntNum = 0; + } + + if (cntNum != digits[9]) { + eval = false; + } + + + return eval; + } +} diff --git a/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Ex1_b.java b/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Ex1_b.java new file mode 100644 index 0000000..8623ac7 --- /dev/null +++ b/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Ex1_b.java @@ -0,0 +1,59 @@ + +package course_assignment.ex1; + +import java.util.Random; + +/** + * + * @author SanyaNo + */ +public class Ex1_b { + + /* + * Да се генерира по случаен начин едномерен + * масив от цели числа принадлежащи на интервала + * [–100,100]. Да се намери произведението на ненулевите нечетни елементи. + */ + + + /** + * + * @param module + * @param numElements + * @return + */ + + public static int[] randArr(int module, int numElements){ + Random rand = new Random(); + int[] arr = new int[numElements]; + for(int i = 0; i0 && (arr[i]%2 ==1)){ + System.out.println(arr[i]); + sum += arr[i]; + } + } + return sum; + + } + +} diff --git a/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Main.java b/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Main.java new file mode 100644 index 0000000..19d8112 --- /dev/null +++ b/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Main.java @@ -0,0 +1,21 @@ + +package course_assignment.ex1; + +import java.util.Arrays; + + +/** + * @author SanyaNo + */ +public class Main { + + public static void main(String[] args) { + + int[] arr = Ex1_b.randArr(100, 15); + System.out.println(Arrays.toString(arr)); + + int sum = Ex1_b.sumPosOdd(arr); + System.out.println("The sum of all odd positives is " + sum); + } + +} From 8866aed05cde3244b78ba112c3b5147a8b274b99 Mon Sep 17 00:00:00 2001 From: SanyaNo Date: Fri, 19 Dec 2014 10:42:56 +0200 Subject: [PATCH 2/6] Some bugs fixed --- .../fixedApp/src/course_assignment/ex1/Ex1_b.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Ex1_b.java b/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Ex1_b.java index 8623ac7..6d386f5 100644 --- a/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Ex1_b.java +++ b/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Ex1_b.java @@ -47,9 +47,9 @@ public static int sumPosOdd(int[] arr){ int sum = 0; for (int i = 0; i < arr.length; i++) { - if(arr[i]>0 && (arr[i]%2 ==1)){ + if(arr[i]>0 && (arr[i]%2 !=0)){ System.out.println(arr[i]); - sum += arr[i]; + sum *= arr[i]; } } return sum; From 9441ee0c05e2b95e2b5bfd33b0c6f521392e023b Mon Sep 17 00:00:00 2001 From: SanyaNo Date: Fri, 19 Dec 2014 10:50:31 +0200 Subject: [PATCH 3/6] Some bugs fixed --- .../fixedApp/src/course_assignment/ex1/Ex1_b.java | 4 ++-- .../fixedApp/src/course_assignment/ex1/Main.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Ex1_b.java b/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Ex1_b.java index 6d386f5..aa84dff 100644 --- a/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Ex1_b.java +++ b/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Ex1_b.java @@ -37,13 +37,13 @@ public static int[] randArr(int module, int numElements){ } /** - * Sum the positive odd array values + * The product of the positive odd array values * * @param arr * @return */ - public static int sumPosOdd(int[] arr){ + public static int mulPosOdd(int[] arr){ int sum = 0; for (int i = 0; i < arr.length; i++) { diff --git a/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Main.java b/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Main.java index 19d8112..2feffab 100644 --- a/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Main.java +++ b/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Main.java @@ -14,7 +14,7 @@ public static void main(String[] args) { int[] arr = Ex1_b.randArr(100, 15); System.out.println(Arrays.toString(arr)); - int sum = Ex1_b.sumPosOdd(arr); + int sum = Ex1_b.mulPosOdd(arr); System.out.println("The sum of all odd positives is " + sum); } From 7ea78f3647cc632f57c6b58abe9cef866f53f840 Mon Sep 17 00:00:00 2001 From: SanyaNo Date: Fri, 19 Dec 2014 11:12:52 +0200 Subject: [PATCH 4/6] Scanner encoding added --- .../fixedApp/src/course_aasignment/ex5/Person.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1401417007_SanyaOvcharova/fixedApp/src/course_aasignment/ex5/Person.java b/1401417007_SanyaOvcharova/fixedApp/src/course_aasignment/ex5/Person.java index 5588273..45be9d2 100644 --- a/1401417007_SanyaOvcharova/fixedApp/src/course_aasignment/ex5/Person.java +++ b/1401417007_SanyaOvcharova/fixedApp/src/course_aasignment/ex5/Person.java @@ -14,7 +14,7 @@ public class Person { private String name; private String formatedDate; // private String[] dateID = {"year", "month", "day"}; - private static Scanner listener = new Scanner(System.in); + private static Scanner listener = new Scanner(System.in, "windows-1251"); From 52521fd53e7fb4a181548c6b4bb62a33ce0b018e Mon Sep 17 00:00:00 2001 From: SanyaNo Date: Fri, 19 Dec 2014 11:21:55 +0200 Subject: [PATCH 5/6] Some bugs fixed --- .../fixedApp/src/course_assignment/ex1/Ex1_b.java | 4 ++-- .../fixedApp/src/course_assignment/ex1/Main.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Ex1_b.java b/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Ex1_b.java index aa84dff..78cab0e 100644 --- a/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Ex1_b.java +++ b/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Ex1_b.java @@ -37,7 +37,7 @@ public static int[] randArr(int module, int numElements){ } /** - * The product of the positive odd array values + * The product of the odd array values * * @param arr * @return @@ -47,7 +47,7 @@ public static int mulPosOdd(int[] arr){ int sum = 0; for (int i = 0; i < arr.length; i++) { - if(arr[i]>0 && (arr[i]%2 !=0)){ + if(arr[i]%2 !=0 && arr[i] != 0){ System.out.println(arr[i]); sum *= arr[i]; } diff --git a/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Main.java b/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Main.java index 2feffab..23ae042 100644 --- a/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Main.java +++ b/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Main.java @@ -15,7 +15,7 @@ public static void main(String[] args) { System.out.println(Arrays.toString(arr)); int sum = Ex1_b.mulPosOdd(arr); - System.out.println("The sum of all odd positives is " + sum); + System.out.println("The product of all odd positives is " + sum); } } From 28b9f9ab0ce6075e5286844f622bda3de794809c Mon Sep 17 00:00:00 2001 From: SanyaNo Date: Fri, 19 Dec 2014 11:23:18 +0200 Subject: [PATCH 6/6] Some bugs fixed --- .../fixedApp/src/course_assignment/ex1/Main.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Main.java b/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Main.java index 23ae042..eefe385 100644 --- a/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Main.java +++ b/1401417007_SanyaOvcharova/fixedApp/src/course_assignment/ex1/Main.java @@ -15,7 +15,7 @@ public static void main(String[] args) { System.out.println(Arrays.toString(arr)); int sum = Ex1_b.mulPosOdd(arr); - System.out.println("The product of all odd positives is " + sum); + System.out.println("The product of all odd values is " + sum); } }