When a share of common stock of some company is sold, the capital gain (or, some
ID: 3649892 • Letter: W
Question
When a share of common stock of some company is sold, the capital gain (or, sometimes, loss) is the difference between the shareExplanation / Answer
import java.util.Scanner; import java.lang.Integer; public class StockTran { String command = ""; String[] stockParts = null; CircleArrayQueue Q= new CircleArrayQueue(size); boolean quit = false; public StockTran(String inputCommand) { try { Scanner conReader = new Scanner(System.in); this.command = inputCommand.toLowerCase(); this.stockParts = command.split("\s"); // splits the input into three parts buyShares(Integer.parseInt(stockParts[1]), Integer.parseInt(stockParts[2])); //testing purpose only while (quit == false) { if (this.stockParts[0] == "q") { // ends transaction and terminates program System.out.println("Share trading successfully cancelled."); quit = true; } if (this.stockParts == null || this.stockParts.length > 3) { throw new Exception("Bad input."); } if (stockParts[0] == "b") { // checks to see if it is a buying of shares int shares = Integer.parseInt(stockParts[1]); // stores share amount int value = Integer.parseInt(stockParts[2]); // stores selling value buyShares(shares, value); // calls buyShares method and adds share to queue } else if (stockParts[0] == "s") { // checks to see if it is a selling of shares int shares = Integer.parseInt(stockParts[1]); // stores share amount int value = Integer.parseInt(stockParts[2]); // stores selling value sellShares(shares, value); // calls sellShares method } else if (stockParts[0] == "c") { // checks to see if it is capital gain capitalGain(); // calls capitalGain and calculates net gain } System.out.println("Enter your next command or press 'q' to quit: "); command = conReader.nextLine().toLowerCase(); stockParts = command.split("\s"); } } catch (Exception e) { e.printStackTrace(); } } public void buyShares(int shareAmout, int shareValue) { // takes in share total and values for each share Node temp = new Node(shareAmout, shareValue); // stores values into node try { Q.enqueue(temp); // enqueues the node into the CircularArrayQueue //System.out.println(Q.toString()); } catch (FullQueueException e) { e.printStackTrace(); } } public void sellShares(int shareAmount, int sharePrice) { // ToDo } public int capitalGain() { // ToDo return 0; } public static void main(String[] args) { String inputCommand = ""; Scanner mainReader = new Scanner(System.in); System.out.println("Enter 'b' to purchase share, 's' to sell share, 'c' for capital gain, or 'Q' to quit: "); inputCommand = mainReader.nextLine(); StockTran tran = new StockTran(inputCommand); } } public class CircleArrayQueue implements Queue { protected Node Q[]; // initializes an empty array for any element type private int MAX_CAP = 0; // initializes the value for the maximum array capacity private int f, r; public CircleArrayQueue(int maxCap) { MAX_CAP = maxCap; Q = new Node[MAX_CAP]; // sets Q to be a specific maximum size specified f = 0; // sets front value to be 0 r = 0; // sets rear value to be 0; } public int size() { return (MAX_CAP - f + r) % MAX_CAP; // returns the size of the CircularArrayQueue } public boolean isEmpty() { // if front and rear are of equal value, Queue is empty return f == r; } public Node front() throws EmptyQueueException { // method to get the front value of the CircularArrayQueue if (isEmpty()) throw new EmptyQueueException("Queue is empty."); return Q[f]; // returns object at front of CircularArrayQueue } public Node dequeue() throws EmptyQueueException { // method to remove from the front of the CircularArrayQueue if (isEmpty()) throw new EmptyQueueException("Queue is empty."); Node temp = Q[f]; // stores front object in local variable Q[f] = null; // sets the value to be null in the array f = (f + 1) % MAX_CAP; // sets the new front value to be this return temp; // returns the object that was originally in the front } public void enqueue(Node element) throws FullQueueException { // method to add to the end of the CircualarArrayQueue if (size() == MAX_CAP - 1) throw new FullQueueException("Queue has reached maximum capacity."); Q[r] = element; // stores the new element at the rear of array r = (r + 1) % MAX_CAP; // sets the new rear value to be the location after element insertion } }
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.