Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
4d7e81a
Islam branch 20170048
islammarcelo Mar 1, 2020
2e2f548
Merge pull request #1 from islammarcelo/islam-branch
islammarcelo Mar 1, 2020
2551a6d
alaabranch20170056
oalaa Mar 1, 2020
a9affd8
helmy-branch 20170261
Mohamedyasserhelmy Mar 1, 2020
ad20400
hekmat branch 20170096
Mar 1, 2020
7ef8be1
Merge pull request #3 from hmaher-max/hekmat-branch
islammarcelo Mar 1, 2020
1895b68
remove conflict 20170048
islammarcelo Mar 2, 2020
2a91bd0
some codes 20170048
islammarcelo Mar 2, 2020
606fef8
resolve conflict 20170048
islammarcelo Mar 2, 2020
275237a
Edit at class twoPowerN 20170048
islammarcelo Mar 2, 2020
d7ebd68
Add the Fibonancci class that contains function to colcolate the fibo…
GObranAsker12 Mar 2, 2020
dab0727
Merge branch 'master' into 20160389
islammarcelo Mar 2, 2020
475ce1b
Merge pull request #4 from GObranAsker12/20160389
islammarcelo Mar 2, 2020
e2583d2
hekmat- branch 20170096
islammarcelo Mar 2, 2020
3e2945c
Create SphereArea.java
Omar-Hassan-37 Mar 2, 2020
615bad0
Update Main.java
Omar-Hassan-37 Mar 2, 2020
660fd85
changed SphereArea and main Classes
Omar-Hassan-37 Mar 3, 2020
dd010fe
Delete SphereArea.java
Omar-Hassan-37 Mar 3, 2020
9c5005c
Merge pull request #6 from islammarcelo/omar(20170174)-branch
islammarcelo Mar 3, 2020
4743c7e
Add Summation Series Class
mmrashad96 Mar 3, 2020
736760b
omar 20170174
Omar-Hassan-37 Mar 3, 2020
08cea20
Merge pull request #7 from islammarcelo/omar(20170174)-branch
Omar-Hassan-37 Mar 3, 2020
820246c
Merge pull request #8 from mmrashad96/20150325
islammarcelo Mar 3, 2020
c74980c
SummationSeries
islammarcelo Mar 3, 2020
ee0bbb5
gobran branch 20160389
islammarcelo Mar 3, 2020
6294819
gobran branch 20160389
islammarcelo Mar 7, 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
20 changes: 20 additions & 0 deletions src/BallVolume.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@


public class BallVolume extends ThreadSubscriber {

String in;
@Override
public void notifySubscriber() {
in = topic.getInput();
System.out.println("Ball Volume = " + execute());

}

@Override
public String execute() {
double PI = 3.14159265359;
double diameter = Double.parseDouble(in);
double res = (4.0/3.0) * PI * Math.pow(diameter, 3.0);
return String.valueOf(res);
}
}
25 changes: 25 additions & 0 deletions src/Fibonacci.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
public class Fibonacci extends ThreadSubscriber{
String input;
@Override
public void notifySubscriber() {
input = topic.getInput();
System.out.println("Result of Fibonacci series at "+input+": "+execute());
}
@Override
public String execute() {
int num1 = 0;
int num2 = 1;
int sum = 0;
int n = Integer.parseInt(input);
if(n<=1)
sum = n;
for(int i=1 ; i < n ; i++) {
sum = num1 + num2;
num1 = num2;
num2 = sum;
}
String str = String.valueOf(sum);

return str;
}
}
4 changes: 2 additions & 2 deletions 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();
public abstract String execute();
}
38 changes: 25 additions & 13 deletions src/Main.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,29 @@
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);
}

public static void main(String[] args) {

while (true) {
ThreadSubscriber subscribers[] = {
new SphereCircumference(),
new multiplicationSeries(),
new BallVolume(),
new twoPowerN(),
new Fibonacci(),
new SphereArea(),
new SummationSeries()
};

Topic mathTopic = new Topic();
for (ThreadSubscriber sub : subscribers) {
mathTopic.addSubscriber(sub);
sub.setTopic(mathTopic);
}
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
mathTopic.setInput(input);
mathTopic.dispatchEvent();
}
}
}
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.

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

public class SphereArea extends ThreadSubscriber{

String input;
@Override
public void notifySubscriber() {
input = topic.getInput();
System.out.println("Sphere Area = " + execute());
}

@Override
public String execute() {
double n = Integer.parseInt(input);
double pi = 3.14;
double sphereArea = 4 * pi * n * n;
return String.valueOf(sphereArea);
}


}
15 changes: 15 additions & 0 deletions src/SphereCircumference.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
public class SphereCircumference extends ThreadSubscriber{
String input;
@Override
public void notifySubscriber() {
input =topic.getInput();
System.out.println("Sphere Circumference = "+execute());
}


@Override
public String execute() {
double result = Double.parseDouble(input)*2*3.14159265359;
return String.valueOf(result);
}
}
15 changes: 15 additions & 0 deletions src/SummationSeries.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
public class SummationSeries extends ThreadSubscriber {
String input;
@Override
public void notifySubscriber() {
input = topic.getInput();
System.out.println("SummationSeries = " + execute());
}

@Override
public String execute() {
int in = Integer.parseInt(input);
int res = in * (in + 1) / 2;
return String.valueOf(res);
}
}
24 changes: 24 additions & 0 deletions src/ThreadSubscriber.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
public abstract class ThreadSubscriber extends Thread implements ISubscriber {
Topic topic;

public ThreadSubscriber(){

}

public Topic getTopic() {
return topic;
}

public void setTopic(Topic topic) {
this.topic = topic;
}

@Override
public abstract void notifySubscriber();
public abstract String execute();

@Override
public void run() {
notifySubscriber();
}
}
48 changes: 28 additions & 20 deletions src/Topic.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,32 @@
import java.util.List;

public class Topic {

private List<ISubscriber> subscribers;

public Topic() {
subscribers = new ArrayList<ISubscriber>();
}

public void addSubscriber(ISubscriber sub) {
subscribers.add(sub);
}

public List<ISubscriber> getSubscribers() {
return subscribers;
}

public void dispatchEvent(String input) {
for (ISubscriber sub : this.getSubscribers()) {
sub.notifySubscriber(input);
}
}
private List<ThreadSubscriber> subscribers;
String input;

public Topic() {
subscribers = new ArrayList<ThreadSubscriber>();
}

public void addSubscriber(ThreadSubscriber sub) {
subscribers.add(sub);
}

public List<ThreadSubscriber> getSubscribers() {
return subscribers;
}

public String getInput() {
return input;
}

public void setInput(String input) {
this.input = input;
}

public void dispatchEvent() {
for (ThreadSubscriber sub : this.getSubscribers()) {
sub.start();
}
}
}
21 changes: 21 additions & 0 deletions src/multiplicationSeries.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import java.util.Scanner;

public class multiplicationSeries extends ThreadSubscriber{
String input;
@Override
public void notifySubscriber() {
input =topic.getInput();
System.out.println("MultiplicationSeries = "+execute());
}


@Override
public String execute() {
int Number = Integer.parseInt(input);
int result = 1 ;
for (int i = 1; i <= Number; i++) {
result *= i;
}
return String.valueOf(result);
}
}
25 changes: 25 additions & 0 deletions src/twoPowerN.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
public class twoPowerN extends ThreadSubscriber{
String input;
@Override
public void notifySubscriber() {
input =topic.getInput();
System.out.println("two power n = "+execute());
}

@Override
public String execute() {
int exponent = Integer.parseInt(input);
int product = 2;

switch (exponent) {
case 0:
product = 1;
break;
}

for (int i = 1; i < exponent; i++) {
product = product * 2;
}

return String.valueOf(product) ;
}