首页 > > 详细

Java辅导:CS300581 Shareholder讲解Java

Java,。

Project Details

Background information and description

By definition, a shareholder owns one or more shares of stock in a public or private corporation. A shareholder may own shares in multiple companies, this is known as a portfolio. Shares of stock for the corporation are traded (bought and sold) on the stock market where the price of the stock fluctuates due to supply and demand. A shareholder is not able to trade shares of stock directly themselves but must use the services of an agent, commonly known as a broker or stockbroker, to trade the shares on their behalf. The broker charges the shareholder a fee for each of the trades they transact on their behalf.

In this assignment, your task is to create an object-oriented, menu-driven Java program that implements a limited set of functionalities (i.e., the program will not be a completely real-world implementation) that a broker can use to buy and sell shares for its customers, generate reports, and retrieve and save data in secondary storage. In general, your program will need to read data from the keyboard and from certain text files in secondary storage, store the data in appropriate data structures using objects, sort and search the data, and write output data to both the screen and to secondary storage. The specific functional requirements are described in section B(ii) of this document. The text files that are to be used for this assignment are described in section B(iii). The classes that must be used as a minimum are described in section B(iv).

Program Requirements/Functionality

The Java program must

  • a) be object-oriented utilising the classes described in section B (iv) as a minimum. Other classes may also be needed to solve the program requirements;
  • b) be menu-driven. The main menu must have the following menu items:
    • Trade Shares
    • Portfolio Report
    • Save
    • Exit Program
  • c) be able to process the defined text files. The text files and their formats are described in section B (iii).

Program Start Up

When the java program starts it must perform the following file related operations:

  • d) Read the data from the shareholder.txt file into computer memory into an appropriate array of objects (see section B (iii) for a description of the shareholder text file and section B (iv) for a description of the shareholder class). If the shareholder file does not exist then the user should be informed of this and given the opportunity to provide an alternative filename that contains the shareholder data;
  • e) Read the data from the portfolios.txt file into computer memory into an appropriate array of objects (see section B (iii) for a description of the portfolios text file and section B (iv) for a description of the Portfolio class). If the portfolios file does not exist then the user should be informed of this and given the opportunity to provide an alternative filename that contains the portfolios data;
  • f) Read the data from the shares.txt file into computer memory into an appropriate array of objects (see section B (iii) for a description of the shares text file and section B (iv) for a description of the Shares class). If the shares file does not exist then the user should be informed of this and given the opportunity to provide an alternative filename that contains the shares data.

After processing these three files the program should display the main menu identified in section B(ii)(b) above.

The required functionality for each menu item is described as follows:

  1. Trade Shares - when this menu option is selected the following actions should be performed by the program:
    • Find the customer for which shares are to be traded
    • Identify which share stock they wish to trade. If the customer already owns shares in the chosen company then shares may be either bought or sold. However, if they wish to trade in shares which they don’t yet own then shares may only be bought.
    • determine if the shares are to be bought or sold for the customer, and how many shares
    • transact the trade (ensure your program takes into account all logical validation conditions when doing so).
    • generate an on-screen summary of the trade. The summary of the trade must show the customer name and address, portfolio ID, current date, share code, company name, number of shares bought or sold, share price, total of the trade. Make sure that this is displayed in a clear and logical format on the screen.
  2. Portfolio Report - when this menu option is selected the following actions should be performed:
    • Determine if the report is for all customers or for a specific customer
    • generate the Portfolio Report for either all customers or the specified customer.
  3. Save - the program must write the portfolios data back to the Portfolios text file (customer and share data will not have changed so it doesn’t need to be written back to the files).
  4. Exit Program - the program must terminate when this menu item is selected. The program should not terminate until this option is chosen. If the portfolio data has changed since the last save then do not exit the program. Instead, warn the user that they should choose the Save option, then return program control to the main menu.

Text files to be processed

The data that is to be manipulated by your Java program for this assignment is contained in the text files shareholders.txt, portfolios.txt, and shares.txt. Examples of these text files are found in the zip file for the assignment. The data within these text files will need to be read into memory by your program so that it may be manipulated to solve many aspects of the required functionality of the assignment. The text files have been created to conform to a particular format. The format for each file is described below:

File: shareholders.txt

This file contains a full record of all customers for the broker. Each line within the file represents an individual customer, and has the following format:

Customer ID, Customer Name, Customer Address, Portfolio ID where each data item is separated by a comma (,). 

A brief explanation of each of these data items:

Customer ID: a unique numeric identifier for a customer Customer Name: the customer name in the format: firstname surname Customer Address: the customer address Portfolio ID: a unique identifier for the customer share portfolio 

Two (2) shareholders.txt file has been provided in the assignment zip file.

File: portfolios.txt

This file contains a full record of all portfolios for customers. Each line within this file represents an individual portfolio of shares for a shareholder, and has the following format:

Portfolio ID, [Sharecode, Number of shares] {10} 

where each data item is separated by a comma (,). Note: A portfolio can have up to 10 different share stocks hence the Share Code and Number of shares may be repeated up to 10 times.

A brief explanation of each of these data items:

Portfolio ID: a unique identifier for the customer share portfolio Sharecode: code used to identify the share stock Number of Shares: the number of shares for the share held 

Two (2) portfolios.txt file has been provided in the assignment zip file.

File: shares.txt

This file contains a full record of all shares that can be traded by the broker. Each line within the file represents a share stock, and has the following format:

Sharecode, Company Name, price 

where each data item is separated by a comma (,).

A brief explanation of each of these data items:

Sharecode: code used to identify the share stock Company Name: the name of the company of the share code price: the closing price of the share stock 

One (1) shares.txt file has been provided in the assignment zip file.
Notes:

  1. When reading the text files into memory the data should be read into appropriate array(s) of objects. The classes for these objects are briefly outlined in section B(iv).
  2. For the purpose of marking the assignment the number of lines of data and the data values in the text files will be replaced with different data by the marker. This is to ensure that your solution has not relied upon specific data values or the number of lines in the text files to work. You should therefore test your program with different data files of varying length and varying data before submission.

Required Classes

To write your solution for this assignment it is a requirement that you write appropriate code for at least the following java Classes:

  • a) Shareholder
  • b) Portfolio
  • c) Share

These classes are described in general terms as follows:

  • a) Shareholder class: The Shareholder class represents an individual shareholder (customer). The Shareholder class needs data fields for the Customer ID, first name, surname, address, portfolio id. Implement appropriate constructors, accessors, and mutators where necessary and other appropriate methods for this class based upon the general requirements of the assignment specification - that is, you will need to identify if the shareholder class is required to perform any other actions and implement the identified methods in the class.
  • b) Portfolio class: The Portfolio class represents a collection of one or more Shares that an individual Shareholder owns. The Portfolio class needs data fields for the Portfolio ID, Share Code, the number of shares. Implement appropriate constructors, accessors, and mutators where necessary and other appropriate methods for this class based upon the general requirements of the assignment specification - that is, you will need to identify if the portfolio class is required to perform any other actions and implement the identified methods in the class. Note: A portfolio can have up to 10 different share stocks, hence the Share Code and number of shares may need to be stored up to 10 times.
  • c) Share class: The Share class represents an individual Share stock that is traded on the stock market by the broker. The Share class needs data fields for the Share Code, the Company name, the Share price. Implement appropriate constructors, accessors, and mutators where necessary and other appropriate methods for this class based upon the general requirements of the assignment specification - that is, you will need to identify if the share class is required to perform any other actions and implement the identified methods in the class.

Apart from the above three classes it is possible that you will also need to write other classes depending upon your solution method.

联系我们 - QQ: 99515681 微信:codinghelp
程序辅导网!