股票市场投资者模拟

时间:2017-03-16 21:13:55

标签: java oop

我必须编写一个模拟投资者在股票市场买卖股票的程序。投资者需要工具来展示他的投资组合以及买卖股票。股票价值可以上下波动,因此不应该实施市场的基础模拟。

有七个级别都必须分阶段完成:

1级 - 包括屏幕输出和键盘输入以及基本类。 程序中至少有三个主要类的java源文件。 对于代码的所有实现部分,预计会有良好的源代码注释和代码缩进

示例:程序读取并打印共享名称及其基本特征。

2级 - 包括至少三个主要类的方法和变量,以及上述所有结构。

至少有3种主要方法完全实施并适用于每个班级 示例:如上所述,还显示了买卖股票的概念。

等级3 - 将实施至少三个主要的计划类,方法有效且设计精良,以及上述所有结构 使用至少一个超类和三个子类的继承 类,方法和变量命名将清晰一致

示例:如上所述,但也有股票市场的基本模拟,但大多数细节,评论等可能非常简单

4级 - 多态性应该用于至少三个子类,以及上面的所有结构

将实施至少四个主要的计划类,方法运作良好,设计精良,评论清晰,并始终如一地应用于班级和方法水平

示例:如上所述,但模拟更自然,有一个运行评论的值的变化 报道了重大事件。

第5级 - 在程序的所有部分以及上面的所有构造中使用来自Java的Collection Framework的ArrayLists或其他类。在程序的所有部分中适当地执行异常处理继承正确地应用于程序的所有部分

示例:如上所述,但现在所有类型的帐户和功能都将包含在模拟中。现在,模拟主要由基本GUI决定。

6级 - 包括文件输入和/或输出,以及上述所有结构 模拟(包括玩家移动)将在GUI上显示多态性将在程序的所有部分完全实现

示例:如上所述,现在使用完整的GUI控制模拟的所有方面;应该从文件中读取数据。

等级7 - 包括A等级所需的所有内容,但也包括特殊内容(使用其他更高级的结构或算法, 或者你刚才读到的东西)。把它作为一个人真正想要使用的程序!

示例:..真实历史数据,移动平均线,......

这是我的代码,我得到的错误是找不到分享部分的数组:

import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Arrays;

public class StockMarketInvestor
{

    public StockMarketInvestor()
    {

    }

    public static void main(String[]args)
    {
        String name;
        int numberShares;
        double buyPrice,sellPrice;
        create String; array

        String[] shares = new String[]{"ARM", "IBM", "Google", "Facebook", "Twitter", "Samsung", "Lenovo", "Intel"};

        ArrayList list = (ArrayList) Arrays.asList(shares);

        System.out.println("String array converted to List");

        for(int i=0; i < list.size(); i++)
        {
            System.out.println(list.get(i));
        }

        Scanner input = new Scanner(System.in);
        System.out.print("Which share would you like to purchase?");
        name=input.nextLine();

        System.out.print("How many shares bought?");
        numberShares=input.nextInt();
        System.out.print("Buy price?");
        buyPrice=input.nextDouble();       
        System.out.print("Sale price?");
        sellPrice=input.nextDouble();        
        input.close();       

        System.out.println(name + "here is the information of your stock transactions:");
        System.out.println("Number of shares:" + numberShares);        
        System.out.println("Amount of purchase:" + buyPrice*numberShares);      
        System.out.println("Amount of sell:" + sellPrice*numberShares);      
        System.out.println("Transaction fee paid:" + 15 + 15);
        System.out.println("Net profit:" + (sellPrice*numberShares-buyPrice));

    }

}

任何建议都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

如果您只使用一个简单的数组,它会工作,为什么还需要从数组转换为ArrayList的额外步骤?

通过列表迭代可以正常工作,如下所示:

public class StockMarketInvestor {

    public StockMarketInvestor() {

    }

    public static void main(String[] args) {
        String name;
        int numberShares;
        double buyPrice, sellPrice;

        String[] shares = new String[] { "ARM", "IBM", "Google", "Facebook", "Twitter", "Samsung", "Lenovo", "Intel" };

        System.out.println("Going trough the list: ");

        for (int i = 0; i < shares.length; i++) {
            System.out.println(shares[i]);
        }

        Scanner input = new Scanner(System.in);
        System.out.print("Which share would you like to purchase?");
        name = input.nextLine();

        System.out.print("How many shares bought?");
        numberShares = input.nextInt();
        System.out.print("Buy price?");
        buyPrice = input.nextDouble();
        System.out.print("Sale price?");
        sellPrice = input.nextDouble();
        input.close();

        System.out.println(name + "here is the information of your stock transactions:");
        System.out.println("Number of shares:" + numberShares);
        System.out.println("Amount of purchase:" + buyPrice * numberShares);
        System.out.println("Amount of sell:" + sellPrice * numberShares);
        System.out.println("Transaction fee paid:" + 15 + 15);
        System.out.println("Net profit:" + (sellPrice * numberShares - buyPrice));

    }

}