Download presentation
Presentation is loading. Please wait.
Published byAllyson Daniels Modified over 8 years ago
1
Distributed Systems Lab
3
It is extremely simplified application will be realized with the aid of various middleware technologies. It allows the retrieval of information on market prices and exchange rate developments, as well as managing the stock deposit. The application will also allows the user to play a game during observing the prices of the stock market. ▪ such Sudoku, Zuma or else. 3 June 20163Distributed Systems Lab
4
It will be MySQL database stores the companies prices in the market and users login and balance details. The database tables will be: CO_Name ▪ CO_ID (primary key): ID of the limited company and it is an integer. ▪ CO_NAME: String, name of the company. CO_Data: ▪ ID (primary key): it is an integer. ▪ C_ID: ID of the company, which is integer also. ▪ DAY: we will assume that has taken place every working day trade and day as an integer number (1.. 31). ▪ SHARE_VALUE: Current share price that day and it is a double number (0.01 to 9999.99 EUR). 3 June 20164Distributed Systems Lab
5
Application Database Cont. USER ▪ U_ID (primary key): ID of the limited company and it is an integer. ▪ U_NAME: String, name of the company. ▪ U_PSWD: USER_TRANS: // user transaction history ▪ ID (primary key): it is an integer. ▪ C_ID: ID of the company, which is integer also. ▪ U_ID: ▪ DAY: we will assume that has taken place every working day trade and day as an integer number (1.. 31). ▪ TRANS_TYPE: ▪ AMOUNT: int amount 3 June 20165Distributed Systems Lab
6
Application will be implemented as following: ConnectDB Class exchangeClient Class GameClass Note: Interface or abstract class. Which one should you use on the project. 3 June 20166Distributed Systems Lab
8
/ / Constructor, loads the DB driver public ConnectDB () MySql DB url: jdbc:mysql://host_name:port/dbname MySql Driver: com.mysql.jdbc.Driver Class.forName("com.mysql.jdbc.Driver").newInstance(); //load the driver Connection dcon = DriverManager.getConnection(DB url, “username", “password");//start a connection / / Opens a connection to the database public boolean OpenDB () if(!dcon.isClosed()) // check if the connection is open / / Closes an existing connection to the database public boolean CloseDB () dcon.close(); 3 June 20168Distributed Systems Lab
9
/ / Takes the SQL string from the open DB and return ResultSet. on error SQLException is thrown public ResultSet executeDB (String SQL) //define statement object to execute sql query Statement stat = dcon.createStatement(); //results of sql query returns in a ResultSet object ResultSet rs = stat.executeQuery("select * from table where “); if (!rs.next()) { //if no results found rs.close(); stat.close(); dcon.close(); } else { // action code } / / Returns the error message of the last executed SQL command. if the command was successful, "OK" would be returned public String getStatus () 3 June 20169Distributed Systems Lab
11
exchangeClient Class public String CreateUser(String name, String pwrd) It returns string on success like “your account is created successfully ”, or if there is any problem during the creation such as the duplication of the user name, empty field it returns message of that problem. public String Login (String name, String pwrd) If there is any problem during the login process such as the name is not exist in the DB it returns message of it. Otherwise it returns welcoming message. 3 June 2016Distributed Systems Lab11
12
exchangeClient Class Cont. public String [] GetAllCompanies () Returns a list of all Company names in an array of strings. public double GetValue (int x, String Company) It returns the price of the share of the Company on day X (1.. 31). When entering an invalid date and / or Company-name is not exist will return "-1.0". 3 June 2016Distributed Systems Lab12
13
exchangeClient Class Cont. public double BigWinnerGain (int X, int Y) Investigated the stock during the period between the 2 days X (1.. 30) and Y (X... 31) the largest percentage gain With Y > X and K (X) = price at the date X has generated. The output is the percentage value of the price. 3 June 2016Distributed Systems Lab13
14
exchangeClient Class Cont. public String BigWinnerCompany (int X, int Y) As the previous method, but the name of the concerned Company is returned. 3 June 2016Distributed Systems Lab14
16
exchangeClient Class Cont. public double Variance (String Company) Calculates the sensitivity of the price of a given Company-Name over the entire month. First, calculate the arithmetic mean with all the prices of the share x i of n days. The standard deviation can then be calculated from the following equation. 3 June 2016Distributed Systems Lab16
17
exchangeClient Class Cont. public int Tendency (int X1) Sums the overall performance by all the companies on a given day X1 (1.. 30). The same happens for the following day X2 = X1 +1. The trend is as Integer value returned from the following equations: 0 - strongly positive (Sum X2 > Sum X1 + 250) 1 - positive (Sum X2 > Sum X1 + 80) AND (Sum X2 ≤ Sum X1 +250) 2 - neutral (Sum X2 > Sum X1 - 80) AND (Sum X2 ≤ Sum X1 +80) 3 - negative (Sum X2 > Sum X1 -250) AND (Sum X2 ≤ Sum X1 -80) 4 - strongly negative (Sum X2 < Sum X1 -250) 3 June 2016Distributed Systems Lab17
18
exchangeClient Class Cont. public boolean Buy ( String Company, int amount ) * Buy a quantity of shares of a corporation at the current rate on 31 Day. Upon successful transaction, it returns true, otherwise false. public void Sell (String Company, int amount) * Selling a set M of shares of a corporation at the current rate on 31 Day. Upon successful transaction, it returns true, otherwise false. 3 June 2016Distributed Systems Lab18
19
exchangeClient Class Cont. public int StockAmount (String CO) * Returns the number of the shares of the Company CO, which one has in its custody. public double StockValue (String CO) * Returns the value of the shares of the Company CO, which one has in its custody. By the price of 31 Day is used. 3 June 2016Distributed Systems Lab19
20
These guides to help you implementing your project. You can add or edit if you think it convenient to your project in which you will mention it in your report. 3 June 201620Distributed Systems Lab
21
http://www.roseindia.net/jdbc/jdbc.shtml http://www.stardeveloper.com/articles/displa y.html?article=2003090401&page=1 3 June 201621Distributed Systems Lab
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.