Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
694d43f
First Version of the task
Mina1998 Feb 27, 2020
9974ab5
Update Main.java
fatima196 Feb 27, 2020
62e6508
Update Main.java
fatima196 Feb 28, 2020
efa35d1
Update Main.java
fatima196 Feb 28, 2020
264297f
Update Main.java
fatima196 Feb 28, 2020
b6e468e
Update CircleCircumference.java
fatima196 Feb 28, 2020
87793df
Initial code for Sphere Circumference
ahmed-dardery Feb 29, 2020
5d9d29f
update 1 in class CircleCircumference
fatima196 Feb 29, 2020
86a428e
Update ISubscriber.java
fatima196 Feb 29, 2020
ebaba07
Update Main.java
fatima196 Feb 29, 2020
8278cf7
Update ReallySimpleSubscriber.java
fatima196 Feb 29, 2020
0800e1f
Update SimpleSubscriber.java
fatima196 Feb 29, 2020
1ea35f9
Update Topic.java
fatima196 Feb 29, 2020
d03c1de
My Initial version of the assignment
AbdulelahAdam Feb 29, 2020
3413f71
Delete ISubscriber.class
AbdulelahAdam Feb 29, 2020
21acc1b
Delete Main.class
AbdulelahAdam Feb 29, 2020
c29f2a0
Delete ReallySimpleSubscriber.class
AbdulelahAdam Feb 29, 2020
9764953
Delete SimpleSubscriber.class
AbdulelahAdam Feb 29, 2020
e5f2c3c
Delete SphereVolume.class
AbdulelahAdam Feb 29, 2020
0071696
Delete Topic.class
AbdulelahAdam Feb 29, 2020
bee9bdb
Function takes a double instead of int.
AbdulelahAdam Feb 29, 2020
33c6e0c
adding new class CircleArea
mernaezzat Mar 1, 2020
520b6b1
adding new class CircleArea by 20170282
Mar 1, 2020
779391e
Initialversion
amrmagdy12 Mar 1, 2020
c6a4b90
Function now takes the radius instead of a diameter.
AbdulelahAdam Mar 1, 2020
0ebc25c
20160219-MultiplicationSeise
DevMagdi Mar 1, 2020
42dbb22
Initial code for two power N
Mar 1, 2020
bea26a3
Merge pull request #1 from ahmed-dardery/20170034-SphereCircumference
ahmed-dardery Mar 1, 2020
8cebf6c
Merge branch 'master' into Fibonacci
ahmed-dardery Mar 1, 2020
2fa8601
no packaging
ahmed-dardery Mar 1, 2020
7430a18
do NOT violate the subscriber format
ahmed-dardery Mar 1, 2020
a2a7201
Update Main.java
ahmed-dardery Mar 1, 2020
9c20c22
spacing
ahmed-dardery Mar 1, 2020
0988cce
Merge pull request #4 from ahmed-dardery/Fibonacci
ahmed-dardery Mar 1, 2020
88055a9
Merge branch 'master' into 20170416-SphereVolume
ahmed-dardery Mar 1, 2020
c050fe0
Merge pull request #3 from ahmed-dardery/20170416-SphereVolume
ahmed-dardery Mar 1, 2020
a31215f
Merge branch 'master' into 20170193-CircleCircumference
ahmed-dardery Mar 1, 2020
f5dd853
Merge pull request #2 from ahmed-dardery/20170193-CircleCircumference
ahmed-dardery Mar 1, 2020
37d2b51
broken fibonacci
ahmed-dardery Mar 1, 2020
8ddacdc
broken fibonacci
ahmed-dardery Mar 1, 2020
2259809
changed input to int.
ahmed-dardery Mar 1, 2020
74ac686
Merge pull request #5 from ahmed-dardery/20170034-SphereCircumference
ahmed-dardery Mar 1, 2020
1885714
preperation for bonus
ahmed-dardery Mar 1, 2020
835de41
Merge branch 'master' into bonus-test
ahmed-dardery Mar 1, 2020
c5ac022
Change type of input to integer.
fatima196 Mar 1, 2020
291b910
Merge pull request #8 from ahmed-dardery/20170193-CircleCircumference
ahmed-dardery Mar 2, 2020
b62da27
Update CircleArea.java
Marim-medhat Mar 2, 2020
f9aec7a
Update CircleArea.java
Marim-medhat Mar 2, 2020
68d428b
Merge branch 'master' into 20170282-CircleArea
ahmed-dardery Mar 2, 2020
d6544cb
Merge pull request #9 from ahmed-dardery/20170282-CircleArea
ahmed-dardery Mar 2, 2020
e80e370
20170270-Adding SummationSeries class
mahmoud-mohamed-abozied Mar 2, 2020
d15b7bd
Merge pull request #11 from ahmed-dardery/20170270/SummationSeries
ahmed-dardery Mar 2, 2020
8867a5f
Modification of class name
Mar 2, 2020
c56c806
TowPowerN.java was deleted
Abdulazizsayed Mar 2, 2020
377f89e
Version 2
Mina1998 Mar 2, 2020
e779e23
Merge branch 'master' into 20170154-TwoPowerN
ahmed-dardery Mar 2, 2020
993d813
unnecessary files
Mina1998 Mar 2, 2020
1ff66ae
Merge branch 'master' into 20170307-CircleVolume
ahmed-dardery Mar 2, 2020
d4a8592
Merge pull request #15 from ahmed-dardery/20170307-CircleVolume
ahmed-dardery Mar 2, 2020
cb9f54c
Merge branch 'master' into 20170154-TwoPowerN
ahmed-dardery Mar 2, 2020
ac21c8a
Merge pull request #14 from ahmed-dardery/20170154-TwoPowerN
ahmed-dardery Mar 2, 2020
c467b6d
MulitiplicationSeries-20160219
DevMagdi Mar 2, 2020
d36757b
20170285 Adding class SphereArea
Mar 2, 2020
bc391e3
removed unnecessary files
ahmed-dardery Mar 2, 2020
1c503c3
Merge pull request #17 from ahmed-dardery/20170285SphereArea
ahmed-dardery Mar 2, 2020
63194c4
MultiplicationSeries-20160219
DevMagdi Mar 2, 2020
734ce1c
deleting unnecessary files
ahmed-dardery Mar 3, 2020
ad8d2b8
removing IDE files
ahmed-dardery Mar 3, 2020
36b05b3
multiplicationSeries-20160219
DevMagdi Mar 3, 2020
9d85211
MultiplicationSeries-20160219
DevMagdi Mar 3, 2020
9dfc835
Merge branch 'master' into bonus-test
ahmed-dardery Mar 3, 2020
e22dc5e
Merge pull request #6 from ahmed-dardery/bonus-test
ahmed-dardery Mar 3, 2020
0f5a4c6
Circle Volume Bonus
Mina1998 Mar 3, 2020
55b86d3
Merge branch 'master' into MultiplicationSeries-20160219
DevMagdi Mar 3, 2020
d3d7e7d
Update workspace.xml
DevMagdi Mar 3, 2020
bdbc36b
removing unnecessary files
ahmed-dardery Mar 3, 2020
f61e528
Merge branch 'MultiplicationSeries-20160219' of https://github.com/ah…
ahmed-dardery Mar 3, 2020
46d3da0
Update workspace.xml
DevMagdi Mar 3, 2020
d5e5e1c
Merge branch 'MultiplicationSeries-20160219' of https://github.com/ah…
ahmed-dardery Mar 3, 2020
9804b20
Merge branch 'MultiplicationSeries-20160219' into MultiplicationSerie…
ahmed-dardery Mar 3, 2020
7f12d98
Merge pull request #16 from devmagdyy/MultiplicationSeries-20160219
ahmed-dardery Mar 3, 2020
667924e
Merge preperation
ahmed-dardery Mar 3, 2020
0f1bd83
Update CircleCircumference.java
fatima196 Mar 3, 2020
92cefcf
code cleanup and multiple choices in main
ahmed-dardery Mar 3, 2020
b4e230a
Merge branch 'master' into MultiplicationSeries-20160219
ahmed-dardery Mar 3, 2020
26aad8c
Merge pull request #18 from ahmed-dardery/MultiplicationSeries-20160219
ahmed-dardery Mar 3, 2020
87f66ea
Merge branch 'master' into 20170193-CircleCircumference-Bonus
ahmed-dardery Mar 3, 2020
7054d02
Merge pull request #20 from ahmed-dardery/20170193-CircleCircumferenc…
ahmed-dardery Mar 3, 2020
12b9355
Merge branch 'master' into 20170307---CircleVolume-Bonus-Edit
ahmed-dardery Mar 3, 2020
92e9de1
Merge pull request #19 from ahmed-dardery/20170307---CircleVolume-Bon…
ahmed-dardery Mar 3, 2020
fc037b7
SphereVolume Bonus Version
AbdulelahAdam Mar 3, 2020
fa1a1ea
Update CircleArea.java
Marim-medhat Mar 3, 2020
4e54275
Merge branch 'master' into 20170282-CircleArea
ahmed-dardery Mar 3, 2020
8d0c509
Merge pull request #23 from ahmed-dardery/20170282-CircleArea
ahmed-dardery Mar 3, 2020
c924b7b
Merge pull request #21 from ahmed-dardery/20170416-SphereVolumeBonus
ahmed-dardery Mar 3, 2020
564b9e5
20170270-SummationSeries-Adding Bonus
mahmoud-mohamed-abozied Mar 3, 2020
38ccbc5
Merge pull request #24 from ahmed-dardery/20170270-SummationSeries-Bo…
ahmed-dardery Mar 3, 2020
d689404
removing simple subscribers.
ahmed-dardery Mar 3, 2020
7bd7c9f
Update .gitignore
ahmed-dardery Mar 3, 2020
128624a
Merge pull request #25 from ahmed-dardery/SimpleSubscriberRemoval
mahmoud-mohamed-abozied Mar 3, 2020
168c6f5
20160219-MultiplicationSeries-Adding-Bonus
DevMagdi Mar 3, 2020
58a4e5a
20170188-Fibonacci-Bonusadded
amrmagdy12 Mar 3, 2020
2493ee0
20160219-MultiplicationSeries-Adding-Bonus
DevMagdi Mar 3, 2020
15d488b
20160219-MultiplicationSeries-Adding-Bonus
DevMagdi Mar 3, 2020
356660f
Updated-with-bonus
amrmagdy12 Mar 3, 2020
05736f6
20160219MultiplicationSeries-Adding-Bonus
DevMagdi Mar 3, 2020
b30fb9e
Merge branch 'master' into 20160219-MultiplicationSeries-Adding-Bonus
ahmed-dardery Mar 3, 2020
e06640c
Merge pull request #26 from ahmed-dardery/20160219-MultiplicationSeri…
ahmed-dardery Mar 3, 2020
cb6e058
Revert "Updated-with-bonus"
amrmagdy12 Mar 3, 2020
5ee3bd5
Updated-with-bonus
amrmagdy12 Mar 3, 2020
2c40605
Delete Fibonacci.java
amrmagdy12 Mar 3, 2020
9e5f579
syntax-updated
amrmagdy12 Mar 3, 2020
52fdbb3
Update Fibonacci.java
amrmagdy12 Mar 5, 2020
f556798
Update Main.java
amrmagdy12 Mar 5, 2020
635d69d
Updated
amrmagdy12 Mar 5, 2020
7ea0a03
merge-main
ahmed-dardery Mar 5, 2020
a8483ab
merge attempt
ahmed-dardery Mar 5, 2020
bfac4ec
Merge branch 'master' into Fibonacci
ahmed-dardery Mar 5, 2020
78071d0
Merge pull request #27 from ahmed-dardery/Fibonacci
ahmed-dardery Mar 5, 2020
740da0d
reformatting, loop input, fixes
ahmed-dardery Mar 5, 2020
3b2c92d
Create README.md
ahmed-dardery Mar 5, 2020
ef3e50b
Merge pull request #28 from ahmed-dardery/finalization
fatima196 Mar 5, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,11 @@ local.properties
# Scala IDE specific (Scala & Java development for Eclipse)
.cache-main
.scala_dependencies
.worksheet
.worksheet
*.xml

# IDE folders
.idea/

#iml
GitAssignmentObserver.iml
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Git Assignment for Team 15

| Name | ID | Task | Completed? | Bonus Design? |
| ----------- | ------------ | ----- | ---------- | ------------- |
| @Moustafa878 | 20170285 | SphereArea | :heavy_check_mark: | :x: |
| @devmagdyy | 20160219 | MultiplicationSeries | :heavy_check_mark: | :heavy_check_mark: |
| @amrmagdy12 | 20170188 | Fibonacci | :heavy_check_mark: | :heavy_check_mark: |
| @Marim-medhat | 20170282 | CircleArea | :heavy_check_mark: | :heavy_check_mark: |
| @AbdulelahAdam | 20170416 | SphereVolume | :heavy_check_mark: | :heavy_check_mark: |
| @mahmoud-mohamed-abozied | 20170270 | SummationSeries | :heavy_check_mark: | :heavy_check_mark: |
| @Abdulazizsayed | 20170154 | 2PowerN | :heavy_check_mark: | :x: |
| @ahmed-dardery | 20170034 | SphereCircumference | :heavy_check_mark: | :heavy_check_mark: |
| @Mina1998 | 20170307 | CircleVolume | :heavy_check_mark: | :heavy_check_mark: |
| @fatima196 | 20170193 | CircleCircumference | :heavy_check_mark: | :heavy_check_mark: |
16 changes: 16 additions & 0 deletions src/CircleArea.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
public class CircleArea extends DoubleSubscriber {
@Override
public void preProcess(int input) throws Exception {
System.out.print("Hello, I'm CircleArea , and I'm notified with: " + input + " as radius. ");
if (input < 0) throw new Exception("Negative radius is invalid!"); }

@Override
public double doCalculation(int input) {
return Math.PI * input *input;
}

@Override
public void printAnswer(double output) {
System.out.println("Circle Area is: " + output);
}
}
17 changes: 17 additions & 0 deletions src/CircleCircumference.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
public class CircleCircumference extends DoubleSubscriber {

@Override
public void preProcess(int input) throws Exception {
System.out.print("Hello, I'm CircleCircumference, and I'm notified with: " + input + " as radius. ");
if (input < 0) throw new Exception("Negative radius is invalid!"); }

@Override
public double doCalculation(int input) {
return 2 * Math.PI * input;
}

@Override
public void printAnswer(double output) {
System.out.println("Circle Circumference is: " + output);
}
}
17 changes: 17 additions & 0 deletions src/CircleVolume.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
public class CircleVolume extends DoubleSubscriber {
@Override
public void preProcess(int input) throws Exception {
System.out.print("Hello, I'm CircleVolume, and I'm notified with: " + input + " as radius. ");
if (input < 0) throw new Exception("Negative radius is invalid!");
}

public double doCalculation(int input) {
return (4.0 / 3.0) * Math.PI * Math.pow(input, 3);
}

@Override
public void printAnswer(double output) {
System.out.println("Circle Volume is: " + output);
}

}
13 changes: 13 additions & 0 deletions src/DoubleSubscriber.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
public abstract class DoubleSubscriber implements ISubscriber {
public void notifySubscriber(int input) throws Exception {
preProcess(input);
double ans = doCalculation(input);
printAnswer(ans);
}

public abstract void preProcess(int input) throws Exception;

public abstract double doCalculation(int input);

public abstract void printAnswer(double output);
}
49 changes: 49 additions & 0 deletions src/Fibonacci.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
public class Fibonacci extends IntegerSubscriber{

@Override
public void preProcess(int input) throws Exception {

if(input < 1 ) throw new Exception("0 and Negative values are invalid ") ;

System.out.println("I'am Fibonnacii and I'am notified with >> " + input);
}

@Override
public int doCalculation(int n) {

if (n == 1 || n == 2) return 1 ;

int pascTriangle[][] = new int [n][n] ;

// drawing pascal's triangle as a base for Fibonnacii

for (int i = 2; i < n; i++) {
pascTriangle[i][0] = 1;
for (int j = 1; j <= i; j++) {
pascTriangle[i][j] = pascTriangle[i - 1][j - 1] + pascTriangle[i - 1][j];
}
pascTriangle[i][i] = 1;
}

int i = n - 1;
int j = 0;
int result = 0;

while (j <= i)
{
result += pascTriangle[i][j];
i--;
j++;

}

return result ;

}

@Override
public void printAnswer(int out) {

System.out.println("the answer is " + out );
}
}
2 changes: 1 addition & 1 deletion src/ISubscriber.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

public interface ISubscriber {
public abstract void notifySubscriber(String input);
public abstract void notifySubscriber(int input) throws Exception;
}
13 changes: 13 additions & 0 deletions src/IntegerSubscriber.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
public abstract class IntegerSubscriber implements ISubscriber {
public void notifySubscriber(int input) throws Exception {
preProcess(input);
int ans = doCalculation(input);
printAnswer(ans);
}

public abstract void preProcess(int input) throws Exception;

public abstract int doCalculation(int input);

public abstract void printAnswer(int output);
}
70 changes: 56 additions & 14 deletions src/Main.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,59 @@
import java.util.Scanner;

public class Main {
private static ISubscriber subscribers [] = {
new SimpleSubscriber(),
new ReallySimpleSubscriber(),
};
public static void main(String[] args) {
Topic mathTopic = new Topic();
for (ISubscriber sub : subscribers) {
mathTopic.addSubscriber(sub);
}
Scanner sc = new Scanner(System.in);
String input = sc.next();
mathTopic.dispatchEvent(input);
}
}
private static ISubscriber subscribers[] = {
new MultiplicationSeries(),
new SummationSeries(),

new CircleCircumference(),
new CircleArea(),
new CircleVolume(),

new SphereCircumference(),
new SphereArea(),
new SphereVolume(),

new Fibonacci(),
new TwoPowerN(),
};

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

Topic mathTopic = new Topic();
for (ISubscriber sub : subscribers) {
mathTopic.addSubscriber(sub);
}

try {
while (true) {


for (int i = 0; i < subscribers.length; ++i) {
System.out.println((i + 1) + " - " + subscribers[i].getClass().getName());
}
System.out.println("0 - Run all functions");
System.out.println("X - Exit application");

System.out.println("Choose your option:");
String input = sc.next();
if (input.equals("X")) break;
int choice = Integer.parseInt(input);

System.out.println("Enter input number: ");
int n = Integer.parseInt(sc.next());

if (choice < 0 || choice > subscribers.length) throw new Exception("Invalid choice.");
if (choice != 0)
subscribers[choice - 1].notifySubscriber(n);
else
mathTopic.dispatchEvent(n);

}
} catch (NumberFormatException ignored) {
System.out.println("Your input is not a valid integer.");
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
22 changes: 22 additions & 0 deletions src/MultiplicationSeries.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
public class MultiplicationSeries extends IntegerSubscriber {

@Override
public void preProcess(int input) throws Exception {
System.out.println("Hello, I'm MultiplicationSeries, and I'm notified with: " + input + " as input. ");
if (input < 0) throw new Exception("Negative input is invalid!");
}

@Override
public int doCalculation(int input) {
int result = 1;
for (int i = 1; i <= input; i++) {
result = result * i;
}
return result;
}

@Override
public void printAnswer(int output) {
System.out.println("The Multiplication Series = " + output);
}
}
8 changes: 0 additions & 8 deletions src/ReallySimpleSubscriber.java

This file was deleted.

10 changes: 0 additions & 10 deletions src/SimpleSubscriber.java

This file was deleted.

16 changes: 16 additions & 0 deletions src/SphereArea.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@

public class SphereArea implements ISubscriber {
@Override
public void notifySubscriber(int input) {


double radius = input;
double Area = 4 * (Math.PI) * Math.pow(radius, 2);
System.out.println("The Area of Sphere = " + Area + " square meters");


}

}


16 changes: 16 additions & 0 deletions src/SphereCircumference.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
public class SphereCircumference extends DoubleSubscriber {
@Override
public void preProcess(int input) throws Exception {
System.out.print("Hello, I'm SphereCircumference, and I'm notified with: " + input + " as radius. ");
if (input < 0) throw new Exception("Negative radius is invalid!");
}

public double doCalculation(int input) {
return 2 * Math.PI * input;
}

@Override
public void printAnswer(double output) {
System.out.println("Sphere Circumference is: " + output);
}
}
34 changes: 34 additions & 0 deletions src/SphereVolume.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import java.lang.Math;
public class SphereVolume extends DoubleSubscriber {

private static double value = 4.0/3.0;

@Override
public void preProcess(int input) throws Exception {
System.out.print("Hello, I'm SphereVolume, and I'm notified with: " + input + " as radius. ");
if (input < 0) throw new Exception("Negative radius is invalid!");

}



@Override
public double doCalculation(int input) {
return value*(Math.PI)*Math.pow(input, 3);

}



@Override
public void printAnswer(double output) {
System.out.println("Sphere Volume is: " + output);


}





}
19 changes: 19 additions & 0 deletions src/SummationSeries.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
public class SummationSeries extends IntegerSubscriber {

@Override
public void preProcess(int input) throws Exception {
System.out.print("Hello, I'm SummationSeries, and I'm notified with: " + input + " as input. ");
if (input < 0) throw new Exception("Negative input is invalid!");
}

@Override
public int doCalculation(int input) {
return (input * (input + 1)) / 2;
}

@Override
public void printAnswer(int output) {
System.out.println("The Summation Series = " + output);
}

}
Loading