import java.util.Random;defines the Stock class public class S.pdf
1. import java.util.Random;
//defines the Stock class
public class Stock {
private String symbol;
private String name;
private double nextPrice;
private double currentPrice;
private double priceChange;
private double priceChangePercentage;
public Stock(String s, String n, double CP, double NP) {
symbol = s;
name = n;
nextPrice = NP;
currentPrice = CP;
}
public Stock() {
name = "Microsoft";
symbol = "MSFT";
nextPrice = 46.87;
currentPrice = 46.87;
}
public void setNextPrice(double nextPrice) {
if (nextPrice > 0)
this.nextPrice = nextPrice;
else
this.nextPrice = 0;
}
public void setCurrentPrice(double cPrice) {
if (currentPrice > 0) {
currentPrice = cPrice;
} else {
currentPrice = 0;
}
}
public double getCurrentPrice() {
2. return currentPrice;
}
public String getName() {
return name;
}
public void setName(String n) {
name = n;
}
public double getNextPrice() {
Random rand = new Random();
nextPrice = rand.nextDouble();
return nextPrice;
}
public String getSymbol() {
return symbol;
}
public void setSymbol(String s) {
symbol = s;
}
public double getChange() {
// formula : (current - next) / next * 100
priceChange = (currentPrice - nextPrice) / nextPrice * 100;
return priceChange;
}
public double SimulatePrice() {
Random rand = new Random();
priceChangePercentage = rand.nextInt(10) + 1;
if (priceChangePercentage % 2 == 0)
currentPrice += (currentPrice * (priceChangePercentage / 100.0));
else
currentPrice -= (currentPrice * (priceChangePercentage / 100.0));
return priceChangePercentage;
}
/*
* (non-Javadoc)
*
3. * @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Stock [getCurrentPrice()=" + getCurrentPrice() + ", getName()="
+ getName() + ", getNextPrice()=" + getNextPrice()
+ ", getSymbol()=" + getSymbol() + ", getChange()="
+ getChange() + "]";
}
}
import java.util.Scanner;
public class StockPriceSimulator {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String symbol;
String name;
double nextPrice;
double currentPrice;
System.out.print("Please enter the name of the stock:");
name = input.nextLine();
System.out.print("Please enter the symbol of the stock: ");
symbol = input.nextLine();
System.out.print("Please enter Current price of " + name + ":");
currentPrice = input.nextDouble();
System.out.print("Please enter next price of " + name + ":");
nextPrice = input.nextDouble();
Stock stock;
if (name.equals("NONE") || symbol.equals("NA") || currentPrice == 0.0
|| nextPrice == 0.0)
stock = new Stock();
else
stock = new Stock(symbol, name, currentPrice, nextPrice);
for (int i = 0; i < 30; i++) {
stock.SimulatePrice();
System.out.println(stock);
4. }
input.close();
}
}
OUTPUT:
Please enter the name of the stock:NONE
Please enter the symbol of the stock: DD
Please enter Current price of NONE:99
Please enter next price of NONE:98
Stock [getCurrentPrice()=51.556999999999995, getName()=Microsoft,
getNextPrice()=0.22684389480238243, getSymbol()=MSFT,
getChange()=22627.964552413654]
Stock [getCurrentPrice()=52.588139999999996, getName()=Microsoft,
getNextPrice()=0.8209357260355085, getSymbol()=MSFT, getChange()=6305.877869874233]
Stock [getCurrentPrice()=49.958732999999995, getName()=Microsoft,
getNextPrice()=0.36265111054409815, getSymbol()=MSFT,
getChange()=13675.976840397692]
Stock [getCurrentPrice()=53.95543163999999, getName()=Microsoft,
getNextPrice()=0.9724883297228907, getSymbol()=MSFT, getChange()=5448.182943786535]
Stock [getCurrentPrice()=49.0994427924, getName()=Microsoft,
getNextPrice()=0.43696372926786653, getSymbol()=MSFT,
getChange()=11136.503055909514]
Stock [getCurrentPrice()=51.063420504096, getName()=Microsoft,
getNextPrice()=0.11437740167806576, getSymbol()=MSFT, getChange()=44544.67609416631]
Stock [getCurrentPrice()=46.467712658727365, getName()=Microsoft,
getNextPrice()=0.08938738995292295, getSymbol()=MSFT, getChange()=51884.63976093294]
Stock [getCurrentPrice()=44.144327025791, getName()=Microsoft,
getNextPrice()=0.5339893602734628, getSymbol()=MSFT, getChange()=8166.892621827545]
Stock [getCurrentPrice()=46.79298664733846, getName()=Microsoft,
getNextPrice()=0.47925834918788124, getSymbol()=MSFT, getChange()=9663.624718615896]
Stock [getCurrentPrice()=46.325056780865076, getName()=Microsoft,
getNextPrice()=0.8851188863349135, getSymbol()=MSFT, getChange()=5133.766615543269]
Stock [getCurrentPrice()=50.957562458951585, getName()=Microsoft,
getNextPrice()=0.3060326511633442, getSymbol()=MSFT, getChange()=16551.021472788245]
Stock [getCurrentPrice()=48.409684336004005, getName()=Microsoft,
getNextPrice()=0.8275324836988968, getSymbol()=MSFT, getChange()=5749.883272209794]
6. Stock [getCurrentPrice()=40.07543518663619, getName()=Microsoft,
getNextPrice()=0.4424235337399539, getSymbol()=MSFT, getChange()=8958.16081885725]
Solution
import java.util.Random;
//defines the Stock class
public class Stock {
private String symbol;
private String name;
private double nextPrice;
private double currentPrice;
private double priceChange;
private double priceChangePercentage;
public Stock(String s, String n, double CP, double NP) {
symbol = s;
name = n;
nextPrice = NP;
currentPrice = CP;
}
public Stock() {
name = "Microsoft";
symbol = "MSFT";
nextPrice = 46.87;
currentPrice = 46.87;
}
public void setNextPrice(double nextPrice) {
if (nextPrice > 0)
this.nextPrice = nextPrice;
else
this.nextPrice = 0;
}
public void setCurrentPrice(double cPrice) {
if (currentPrice > 0) {
currentPrice = cPrice;
} else {
7. currentPrice = 0;
}
}
public double getCurrentPrice() {
return currentPrice;
}
public String getName() {
return name;
}
public void setName(String n) {
name = n;
}
public double getNextPrice() {
Random rand = new Random();
nextPrice = rand.nextDouble();
return nextPrice;
}
public String getSymbol() {
return symbol;
}
public void setSymbol(String s) {
symbol = s;
}
public double getChange() {
// formula : (current - next) / next * 100
priceChange = (currentPrice - nextPrice) / nextPrice * 100;
return priceChange;
}
public double SimulatePrice() {
Random rand = new Random();
priceChangePercentage = rand.nextInt(10) + 1;
if (priceChangePercentage % 2 == 0)
currentPrice += (currentPrice * (priceChangePercentage / 100.0));
else
currentPrice -= (currentPrice * (priceChangePercentage / 100.0));
return priceChangePercentage;
8. }
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Stock [getCurrentPrice()=" + getCurrentPrice() + ", getName()="
+ getName() + ", getNextPrice()=" + getNextPrice()
+ ", getSymbol()=" + getSymbol() + ", getChange()="
+ getChange() + "]";
}
}
import java.util.Scanner;
public class StockPriceSimulator {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String symbol;
String name;
double nextPrice;
double currentPrice;
System.out.print("Please enter the name of the stock:");
name = input.nextLine();
System.out.print("Please enter the symbol of the stock: ");
symbol = input.nextLine();
System.out.print("Please enter Current price of " + name + ":");
currentPrice = input.nextDouble();
System.out.print("Please enter next price of " + name + ":");
nextPrice = input.nextDouble();
Stock stock;
if (name.equals("NONE") || symbol.equals("NA") || currentPrice == 0.0
|| nextPrice == 0.0)
stock = new Stock();
else
9. stock = new Stock(symbol, name, currentPrice, nextPrice);
for (int i = 0; i < 30; i++) {
stock.SimulatePrice();
System.out.println(stock);
}
input.close();
}
}
OUTPUT:
Please enter the name of the stock:NONE
Please enter the symbol of the stock: DD
Please enter Current price of NONE:99
Please enter next price of NONE:98
Stock [getCurrentPrice()=51.556999999999995, getName()=Microsoft,
getNextPrice()=0.22684389480238243, getSymbol()=MSFT,
getChange()=22627.964552413654]
Stock [getCurrentPrice()=52.588139999999996, getName()=Microsoft,
getNextPrice()=0.8209357260355085, getSymbol()=MSFT, getChange()=6305.877869874233]
Stock [getCurrentPrice()=49.958732999999995, getName()=Microsoft,
getNextPrice()=0.36265111054409815, getSymbol()=MSFT,
getChange()=13675.976840397692]
Stock [getCurrentPrice()=53.95543163999999, getName()=Microsoft,
getNextPrice()=0.9724883297228907, getSymbol()=MSFT, getChange()=5448.182943786535]
Stock [getCurrentPrice()=49.0994427924, getName()=Microsoft,
getNextPrice()=0.43696372926786653, getSymbol()=MSFT,
getChange()=11136.503055909514]
Stock [getCurrentPrice()=51.063420504096, getName()=Microsoft,
getNextPrice()=0.11437740167806576, getSymbol()=MSFT, getChange()=44544.67609416631]
Stock [getCurrentPrice()=46.467712658727365, getName()=Microsoft,
getNextPrice()=0.08938738995292295, getSymbol()=MSFT, getChange()=51884.63976093294]
Stock [getCurrentPrice()=44.144327025791, getName()=Microsoft,
getNextPrice()=0.5339893602734628, getSymbol()=MSFT, getChange()=8166.892621827545]
Stock [getCurrentPrice()=46.79298664733846, getName()=Microsoft,
getNextPrice()=0.47925834918788124, getSymbol()=MSFT, getChange()=9663.624718615896]
Stock [getCurrentPrice()=46.325056780865076, getName()=Microsoft,
getNextPrice()=0.8851188863349135, getSymbol()=MSFT, getChange()=5133.766615543269]