what is the solution for this java programming exercise Java

what is the solution for this java programming exercise?

Java Programming

The final project will be used to solve the problem of gathering information about a person’s financial investments. Investments a person may have include stocks, mutual funds, and real estate. This program will be limited to gathering information about a person’s share assets: stock and mutual fund investments.
The information about a share assets which would need to be known is: the symbol, number of shares owned, price paid per share, and the current price. There are stocks that pay dividends and those that do not. Stocks that pay a dividend would need the amount of dividends paid. The difference between a mutual fund and a stock is that a person can own parts of a share of a mutual fund, while entire shares of stock must be owned. (Hint: An OO concept applies here.) The user should be able to find out the current market value of an asset as well as the profit or loss of the asset.
Design a program that keeps track of a person’s share assets. The program must meet the following requirements:
1. The project must use user defined classes and inheritance.
2. A GUI interface must be used for user I/O.
3. A person may own shares of multiple stocks as well as participate in multiple mutual funds.
4. A given stock asset object should only have information about one asset – stock, dividend stock, or mutual fund.
5. Exception handling must be used where appropriate.
6. The stock and mutual fund information (portfolio) must be stored in a text file.
7. The user should have the option to display the portfolio information contained in the text file.

Solution

Solution:

//StockInfo.java

// class stock to represent the investments
public class StockInfo
{
   // declare the required variables
   protected String stksymbol;
   protected int stk_num_stocks;
   protected double stk_purchasePrice;
   protected double stk_currentPrice;

   // constructor
   public StockInfo()
   {
       stksymbol=null;
       stk_num_stocks=0;
       stk_purchasePrice=0.0;
       stk_currentPrice=0.0;
   }

   // parameterized constructor
   public StockInfo(String stksymbol, int numberofstkUnits, double stk_purchasePrice, double stk_currentPrice)
   {
       super();
       this.stksymbol = stksymbol;
       this.stk_num_stocks = numberofstkUnits;
       this.stk_purchasePrice = stk_purchasePrice;
       this.stk_currentPrice = stk_currentPrice;
   }

   // method to return stock symbol
   public String get_stkSymbol()
   {
       return stksymbol;
   }

   // method to set the stock symbol
   public void set_stkSymbol(String stksymbol) {
       this.stksymbol = stksymbol;
   }

   // method to get number of stocks
   public int getNumberOfStocks() {
       return stk_num_stocks;
   }

   // method to set number of stocks
   public void setNumStocks(int numberofstkUnits) {
       this.stk_num_stocks = numberofstkUnits;
   }

   // method to get the stock purchase price
   public double getstkPurchasePrice() {
       return stk_purchasePrice;
   }

// method to set the stock purchase price
   public void setPurchasePrice(double stk_purchasePrice) {
       this.stk_purchasePrice = stk_purchasePrice;
   }

   // method to get the current stock price
   public double getstkCurrentPrice() {
       return stk_currentPrice;
   }

   // method to set the current stock price
   public void setCurrentPrice(double stk_currentPrice) {
       this.stk_currentPrice = stk_currentPrice;
   }

   // method to get the stock investment value
   public double getstkInvestmentValue()
   {
       return (stk_num_stocks*stk_purchasePrice);
   }

   // method to get the stock current investment value
   public double getstkCurrentInvestmentValue()
   {
       return (stk_num_stocks*stk_currentPrice);
   }

   // method to get the overall stock gain
   public double getOverallstkGain()
   {
       return (getstkCurrentInvestmentValue()-getstkInvestmentValue());
   }

   // method to print the values as string
   public String toString()
   {
       String stkString=null;
       stkString=\"Symbol:\"+get_stkSymbol()+\" \"
        +\"Number of stocks:\"+getNumberOfStocks()+\" \"
        +\"Purchase price:\"+getstkPurchasePrice()+\" \"
        +\"Investments:\"+getstkInvestmentValue()+\" \"
        +\"Current price:\"+getstkCurrentPrice()+\" \"
        +\"Current Value:\"+getstkCurrentInvestmentValue()+\" \"
        +\"Overall gain:\"+getOverallstkGain();
       return stkString;
   }
}

// StockDividend.java

//class represent the dividend of a stock
class StockDividend extends StockInfo
{

   private double stkdividend;

   // constructor
   public StockDividend() {
       super();
       stkdividend=0.0;
   }

   // parameterized constructor
   public StockDividend(String stksymbol, int numberofstkUnits, double stk_purchasePrice, double stk_currentPrice, double stkdividend) {
       super(stksymbol, numberofstkUnits, stk_purchasePrice, stk_currentPrice);
       this.stkdividend=stkdividend;
   }

   // method to return the dividend of a stock
   public double getstkDividend() {
       return stkdividend;
   }

   // method to set the dividend of a stock
   public void setDividend(double stkdividend) {
       this.stkdividend = stkdividend;
   }

   // method to set the over all dividend of a stock
   public double getOverallDividend()
   {
       return (stk_num_stocks*stkdividend);
   }

   // method to get overall stock gain
   @Override
   public double getOverallstkGain() {
    
       return (super.getOverallstkGain()+(getNumberOfStocks()*getstkDividend()));
   }

   // method to print the values as string
   public String toString()
   {
       String stkString=null;
       stkString=\"Symbol:\"+get_stkSymbol()+\" \"
       +\"Number of stocks:\"+getNumberOfStocks()+\" \"
       +\"Purchase price:\"+getstkPurchasePrice()+\" \"
       +\"Investments:\"+getstkInvestmentValue()+\" \"
       +\"Current price:\"+getstkCurrentPrice()+\" \"
       +\"Current Value:\"+getstkCurrentInvestmentValue()+\" \"
       +\"Dividend:\"+getstkDividend()+\" \"
       +\"Total stkdividend paid:\"+getOverallDividend()+\" \"
       +\"Overall gain:\"+getOverallstkGain();
       return stkString;
   }
}

// MutualFundInvest.java

// class to represent the mutual fund
class MutualFundInvest extends StockInfo
{
   // declare the required variables
    private double numberofstkUnits;

   // constructor
   public MutualFundInvest() {
       stksymbol=null;
       numberofstkUnits=0.0;
       stk_purchasePrice=0.0;
       stk_currentPrice=0.0;
   }

   // parameterized constructor
   public MutualFundInvest(String stksymbol, double numberofstkUnits, double stk_purchasePrice, double stk_currentPrice) {
       this.stksymbol=stksymbol;
       this.numberofstkUnits=numberofstkUnits;
       this.stk_purchasePrice=stk_purchasePrice;
       this.stk_currentPrice=stk_currentPrice;
   }

   // method to get number of mutualFunds units
   public double getNum_mutUnits() {
       return numberofstkUnits;
   }

   // method to get number of mutualFunds units
   public void setNum_mutUnits(double numberofstkUnits) {
       this.numberofstkUnits = numberofstkUnits;
   }

   // method to get mutualFunds investment value
   @Override
   public double getstkInvestmentValue() {
       return (numberofstkUnits*stk_purchasePrice);
   }

   // method to get mutualFunds current value
   @Override
   public double getstkCurrentInvestmentValue() {
       return (numberofstkUnits*stk_currentPrice);
   }

// method to get mutualFunds gain value
   @Override
   public double getOverallstkGain() {
       return (getstkCurrentInvestmentValue()-getstkInvestmentValue());
   }

// method to print the values as string
   public String toString()
   {
       String MfundString=null;
        MfundString=\"Symbol:\"+get_stkSymbol()+\" \"
                    +\"Number of units:\"+getNum_mutUnits()+\" \"
                    +\"Purchase price:\"+getstkPurchasePrice()+\" \"
                    +\"Investments:\"+getstkInvestmentValue()+\" \"
                    +\"Current price:\"+getstkCurrentPrice()+\" \"
                    +\"Current Value:\"+getstkCurrentInvestmentValue()+\" \"
                    +\"Overall gain:\"+getOverallstkGain();
       return MfundString;
   }
}

// Inv_Portfolio.java

-------------------------------
import java.util.ArrayList;
import java.util.Iterator;
import java.io.PrintWriter;

// class Inv_Portfolio to get persons investment details
public class Inv_Portfolio {

   private ArrayList<StockInfo> stocksdet;
   private ArrayList<StockDividend> dvntStocks;
   private ArrayList<MutualFundInvest> mutualFnd;

   // constructor
   public Inv_Portfolio() {
     
       // Auto-generated constructor
       stocksdet=new ArrayList<StockInfo>();
       dvntStocks=new ArrayList<StockDividend>();
       mutualFnd=new ArrayList<MutualFundInvest>();
   }

   // method to get stock details
   public ArrayList<StockInfo> getStocksdet() {
       return stocksdet;
   }

   // method to get dividend of a stock
   public ArrayList<StockDividend> getDividendStocksdet() {
       return dvntStocks;
   }

   // mnethod to get mutualFunds information
   public ArrayList<MutualFundInvest> getMutualFundsdet() {
       return mutualFnd;
   }

   // method to add the stocks details
   public void addStock(StockInfo stock)
   {
       stocksdet.add(stock);
   }

   // method to add the dividend of stocks
   public void addDividendStock(StockDividend stock)
   {
       dvntStocks.add(stock);
   }

   // method to add the mutualFunds
   public void addMutualFunddet(MutualFundInvest fund)
   {
       mutualFnd.add(fund);
   }

   // method to get the stock values
   public double getStocksValuedet()
   {
       double value=0.0;
       Iterator<StockInfo> iterator=stocksdet.iterator();
       while(iterator.hasNext())
       {
           StockInfo stock=iterator.next();
           value+=stock.getstkCurrentInvestmentValue();
       }
       return value;
   }

   // method to return the dividend of stocks
   public double getDividendStocksdetail()
   {
       double value=0.0;
       Iterator<StockDividend> iterator=dvntStocks.iterator();
       while(iterator.hasNext())
       {
           StockDividend stock=iterator.next();
           value+=stock.getstkCurrentInvestmentValue();
       }
       return value;
   }

   // method to return mutual fund value
   public double getMutualFundsdetail()
   {
       double value=0.0;
       Iterator<MutualFundInvest> iterator=mutualFnd.iterator();
       while(iterator.hasNext())
       {
           MutualFundInvest fund=iterator.next();
           value+=fund.getstkCurrentInvestmentValue();
       }
       return value;
   }

   // method to return overall value of a profile
   public double getPortfolio()
   {
       return (getStocksValuedet()+getDividendStocksdetail()+getMutualFundsdetail());
   }

   public String toString()
   {
       String portfolioString=null;
       portfolioString=\"Stocks value:\"+getStocksValuedet()+\"\ \"
       +\"Dividend stocks value:\"+getDividendStocksdetail()+\"\ \"
       +\"Mutual funds value:\"+getMutualFundsdetail()+\" \"
       +\"Overall value:\"+getPortfolio();     
       return portfolioString;    
   }  

   // method to save the portfolio details into file
   public void savePortfolio(String portfolioFileName)
   {
          try
       {
           PrintWriter pwrtr = new PrintWriter(\"portfolio.txt\", \"UTF-8\");
           pwrtr.println(getStocksValuedet()+\"\\t\" +getDividendStocksdetail()+\"\\t\" +getMutualFundsdetail()+\"\\t\" +\"\\t\" + getPortfolio());          
           pwrtr.close();
       } catch (Exception e)
       {
           System.out.println(\"File write error\")
       }
   }
}


Note:

            GUI design not included inthis solution due to time bound.

what is the solution for this java programming exercise? Java Programming The final project will be used to solve the problem of gathering information about a p
what is the solution for this java programming exercise? Java Programming The final project will be used to solve the problem of gathering information about a p
what is the solution for this java programming exercise? Java Programming The final project will be used to solve the problem of gathering information about a p
what is the solution for this java programming exercise? Java Programming The final project will be used to solve the problem of gathering information about a p
what is the solution for this java programming exercise? Java Programming The final project will be used to solve the problem of gathering information about a p
what is the solution for this java programming exercise? Java Programming The final project will be used to solve the problem of gathering information about a p
what is the solution for this java programming exercise? Java Programming The final project will be used to solve the problem of gathering information about a p

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site