编写一个股票买卖收益计算器

设计一个股票买卖收益计算器(程序不需要图形界面),要求使用java-queue。对于股票的买入和卖出过程的解释:假设,第一天,股价是20元,买入了100股。第二天,股价是... 设计一个股票买卖收益计算器(程序不需要图形界面),要求使用java-queue。

对于股票的买入和卖出过程的解释:假设,第一天,股价是20元,买入了100股。第二天,股价是24元,买入了20股。第三天,股价是36元,买入了200股。然后,在第四天,要卖出150股在股价是30的情况下。所以计算收益时就要考虑:在第一天买了100股,第二天买了20股,第三天买了200股(但是我们从中取出30股,用前三天买的凑成第四天要卖掉的150股)。所以这里就要用到java queue的先进先出协议。

收益=100*(30-20)+20*(30-24)+30*(30-36)=940 元

编写一个queue的队列(LinkedQueue class),这个queue需要使用generic类型,因此任何类型value都可以存储。将此段代码保存在LinkedQueue.java中。(注意这个queue队列可以储存任何类型的value)

编写主程序(CapitalGain class),用于输入和输出,输入和输出的格式如下:
buy x stocks(股票) at $y each.
or
sell x stocks at $y each.
当你输入完,买了多少股票在价格为多少的时候(需要能多次买入),value存储在queue中(调用LinkedQueue class),然后再输入卖出多少股票在价格为多少的时候,最后输出收益情况。(x和y都为整数类型)将此段代码保存为CapitalGain.java.

最好能在程序每一句代码上添加注释。
谢谢了!
展开
 我来答
娱乐这个feel倍爽儿
推荐于2016-08-06 · 人生如戏,戏如人生 娱百家事,乐万千户
娱乐这个feel倍爽儿
采纳数:47982 获赞数:334160

向TA提问 私信TA
展开全部
  股票收益即股票投资收益,是指企业或个人以购买股票的形式对外投资取得的股利,转让、出售股票取得款项高于股票帐面实际成本的差额,股权投资在被投资单位增加的净资产中所拥有的数额等。
  股票收益包括股息收入、资本利得和公积金转增收益。
  股票收益率是反映股票收益水平的指标
  1,是反映投资者以现行价格购买股票的预期收益水平。它是年现金股利与现行市价之比率。
  本期股利收益率=(年现金股利/本期股票价格)*100%
  2,股票投资者持有股票的时间有长有短,股票在持有期间获得的收益率为持有期收益率。
  持有期收益率=[(出售价格-购买价格)/持有年限+现金股利]/购买价格*100%
  3,公司进行拆股必然导致股份增加和股价下降,正是由于拆股后股票价格要进行调整,因而拆股后的持有期收益率也随之发生变化。
山羊吃草草
2009-10-12
知道答主
回答量:12
采纳率:0%
帮助的人:0
展开全部
胜负彩09081期完全交战记录:勒沃汉堡榜首大战
本期胜负彩为“英超6+德甲7+意甲1”组合,开售时间为2009年10月14日(周三),停售时间为2009年10月17日(周六)21点。注:本期为14场胜负游戏指定派奖期。

1.阿森纳vs伯明翰

两队在历史上总共交战10场,阿森纳6胜3平1负占上风。两队在阿森纳的主场总共交战5场,阿森纳3胜2平0负占上风。两队最近1次交手2比2握手言和,当时盘口为阿森纳让一球/球半。阿森纳最近8场比赛6胜0平2负,赢盘率为50%,近6场走势:赢赢走赢赢输。最近8场比赛2胜1平5负,赢盘率为37.5%,近6场走势:输输输赢输赢。

时间 赛事 主队 比分 客队

2008-02-23 英超 伯明翰 2-2 阿森纳

2008-01-12 英超 阿森纳 1-1 伯明翰

2006-02-04 英超 伯明翰 0-2 阿森纳

2005-10-02 英超 阿森纳 1-0 伯明翰

2005-05-15 英超 伯明翰 2-1 阿森纳

更多内容查看网站

云博网站
https://www 6yun268 com/user_bwyun268/?referral=2983
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sb55154634
推荐于2016-06-17 · TA获得超过150个赞
知道小有建树答主
回答量:172
采纳率:100%
帮助的人:159万
展开全部
这么快就课程设计了?? 呵呵 看到我以前交作业的也苦苦求代码上弄了近1个小时终于弄出来了 我简单调试了你举的那个例子 没问题 其他的你自己调试吧
import java.io.*;
import java.util.*;

public class QueueTest {
public int value;
public int num;

public QueueTest(int value, int num) {
this.value = value;
this.num = num;
}

public static void main(String args[]) {
Queue list = new LinkedList();

InputStreamReader isr = null;
BufferedReader br = null; //从命令行读取数据用的

try {
while(true) {
System.out.println("1 买股票");
System.out.println("2 卖股票");
System.out.println("3 退出");

isr = new InputStreamReader(System.in);
br = new BufferedReader(isr);

int i = -1;
int value = 0;
int num = 0;

try {
i = Integer.parseInt(br.readLine()); //读取命令操作代号
} catch(NumberFormatException ne) {
System.out.println("输入错误");
}

if(i == 1) {
System.out.println("请输入股价");
isr = new InputStreamReader(System.in);
br = new BufferedReader(isr);

try {
value = Integer.parseInt(br.readLine());
} catch(NumberFormatException ne) {
System.out.println("输入错误");
continue; //读取所输入股价 股票数目
}

System.out.println("请输入买入数目");
isr = new InputStreamReader(System.in);
br = new BufferedReader(isr);

try {
num = Integer.parseInt(br.readLine());
} catch(NumberFormatException ne) {
System.out.println("输入错误");
continue;
}
list.add(new QueueTest(value, num)); //向队列中加入购股记录
} else if(i == 2) {
int income = 0;
System.out.println("请输入股价");
isr = new InputStreamReader(System.in);
br = new BufferedReader(isr);

try {
value = Integer.parseInt(br.readLine());
} catch(NumberFormatException ne) {
System.out.println("输入错误");
continue;
}

System.out.println("请输入卖出数目");
isr = new InputStreamReader(System.in);
br = new BufferedReader(isr);

try {
num = Integer.parseInt(br.readLine());
} catch(NumberFormatException ne) {
System.out.println("输入错误"); //与上同
continue;
}

while (list.peek() != null) {
QueueTest t = (QueueTest)list.peek();
if(t.num > num) {
t.num -= num;
income += num * (value - t.value);
System.out.println("收益是:" + income);
break; //当购股记录股数大于卖出剩余量时,添加收益,退出队列访问
} else {
num -= t.num;
income += t.num * (value - t.value);
list.poll(); //当购股记录股数大于卖出剩余量时,添加收益,继续访问
}
}
if (list.peek() == null) { //现存股总数小于卖出数,将存货全卖出,输出还需要但没卖出的股数以及收益
System.out.println("已将剩余全部股票卖出,还缺少卖出股票数目:" + num);
System.out.println("收益是:" + income);
}
} else if(i == 3) {
return;
} else {
System.out.println("输入错误");
}

}
} catch(IOException e) {
e.printStackTrace();
} finally {
try {
if(br != null) br.close();
if(isr != null) isr.close();
} catch(IOException e) {
e.printStackTrace();
}
}

}

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xionglijun715
2009-10-12 · 贡献了超过122个回答
知道答主
回答量:122
采纳率:0%
帮助的人:17万
展开全部
很好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式