源代码如下:

model层

package zlc.model;/***
* @author 信1705-1班赵路仓
* @version 1.0
*/public class Data {private double r;    //贴现率private double y;    //贴现因子private double rmb;    //现金public double getR() {return r;}public void setR(double r) {this.r = r;}public double getY() {return y;}public void setY(double y) {this.y = y;}public double getRmb() {return rmb;}public void setRmb(double rmb) {this.rmb = rmb;}}

view层

package zlc.view;/***
* @author 信1705-1班赵路仓
* @version 1.0
*/public class View {public void print(double sum) {System.out.println(sum);}}

Controller层

package zlc.controller;import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;import zlc.model.Data;
import zlc.view.View;/***
* @author 信1705-1班赵路仓
* @version 1.0
*/public class Controller {DecimalFormat format = new DecimalFormat("#.00");Scanner sc = new Scanner(System.in);private Data data;private View view;public Controller(Data data,View view) {this.data=data;this.view=view;}public static double formatDouble1(double d) {return (double)Math.round(d*10000)/10000;}//键盘输入数据public List<Data> Scin() {List<Data> datas =new ArrayList<Data>();try {System.out.println("请输入年数:");int x = sc.nextInt();System.out.println("请输入贴现率:");double y = sc.nextDouble();for(int i=0;i<=x;i++) {Data data=new Data();System.out.println("请输入第"+i+"年的盈亏金额:");double rmb = sc.nextDouble();data.setR(y);//贴现率data.setRmb(rmb);//本年金额data.setY(1/Math.pow((1+y), i));//,第一年的贴现因子是rmb本身,所以无需讨论初始投资年的情况System.out.println("第"+i+"年,"+"贴现率"+y+"贴现因子"+formatDouble1((1/Math.pow((1+y), i)))+"金额:"+rmb+"计算后"+rmb*formatDouble1((1/Math.pow((1+y), i))));datas.add(data);}}catch(Exception e) {System.out.println("输入格式错误!");}return datas;}//计算净现值public double count() {List<Data> datas =new ArrayList<Data>();double sum = 0;datas=Scin();for(Data d:datas) {sum+=formatDouble1(d.getRmb())*formatDouble1(d.getY());//System.out.println(d.getRmb());//System.out.println(d.getY());//System.out.println(d.getRmb()*d.getY());//System.out.println("净现值为:"+sum);}return sum;}public Data getData() {return data;}public void setData(Data data) {this.data = data;}public View getView() {return view;}public void setView(View view) {this.view = view;}}

Demo测试类

package demo;import zlc.controller.Controller;
import zlc.model.Data;
import zlc.view.View;public class Demo {public static void main(String[] args) {Data data=new Data();View view=new View();Controller controller=new Controller(data,view);System.out.println("程序开始");view.print(controller.count());System.out.println("程序结束");}
}

测试步骤:

[Java] MVC 编写程序计算净现值 2020.2.25 Java相关推荐

  1. 用java语言编写程序计算九宫图

    前言 对于程序员来说,用程序解决数学问题是最有趣的事情之一.本人研究了一个能够轻易计算九宫图的算法,并且用java语言编写程序得以实现.现将算法和代码公布,欢迎广大程序爱好者前来阅读.交流. 九宫图简 ...

  2. 方法重载例题 编写程序计算两个同类型的数之和 Java

    方法的重载: 方法重载是指在同一作用域内,可以有一组具有相同方法名,不同参数表,返回值类型可以相同也可以不同的方法.重载方法通常用来命名一组功能相似的方法,这样做减少了方法名的数量,提高程序的可读性和 ...

  3. j1_8。实现打折功能关键算法。编写程序计算购买图书的总金额。

    j1_8_01 编写程序计算购买图书的总金额:用户输入图书的定价和购买图书的数量,并分别保存到一个 float 和一个 int 类型的变量中,然后根据用户输入的定价和购买图书的数量,计算购书的总金额并 ...

  4. c语言用函数求和与差,编写程序计算输入的两个实数的和与差.要求自定义一个函数]...

    编写一个程序,输入两个整数,计算并输出它们的和,乘积,差,商和余数,C语言, #includevoidmain(){inta,b;printf("Inputtwointegers:" ...

  5. python计算圆柱体的表面积和体积_java设计:问题是编写程序计算圆柱体的体积和表面积...

    题目: java设计:问题是编写程序计算圆柱体的体积和表面积 编写程序计算圆柱体的体积和表面积. 提示: 1.读入半径和高. 2.表面积=半径×半径×π+2×半径×π×高. 3.体积=底面积×高 4. ...

  6. python星座转换程序代码_0009 如何编写程序计算所属星座,一看就懂

    原标题:0009 如何编写程序计算所属星座,一看就懂 这节课,仍然是复习input输入和if判断的用法,要做一个根据输入月份和日期输出是什么星座的程序. 先来做一下上节课的练习: 输入数字1-7判断是 ...

  7. C语言学习之分别用while、for 编写程序,计算2*4*6*......*100的值

    分别用while.for 编写程序,计算246*-*100的值 for语句 #include <stdio.h> void main(){int x,multiply=1;for(x=1; ...

  8. C语言学习之分别用while、for 编写程序,计算1+2+3+......+100的值

    分别用while.for 编写程序,计算1+2+3+-+100的值 for语句 #include <stdio.h> void main(){int x,add=0;for(x=1;x&l ...

  9. 编写python程序、计算账户余额_小明有20w存款存在余额宝中,按余额宝年收益为3.35%计算,用Python编写程序计算,多少年后小明的存款达到30w?...

    [判断题]卤素灯泡是在灯泡内充入氟.氯等卤素气体. [单选题]我国刑法第12条关于溯及力的规定采取的是( ). [填空题]本地局域网 LAN 内, () 和无绳电话速率较低,主流带宽是 100kbps ...

最新文章

  1. Python 标准库之 os (获取当前目录、读取/设置环境变量、重命名文件、运行shell命令、创建/删除/查看目录文件、判断目录/文件/存在、获取绝对路径、获取文件名、获取换行符、获取路径分隔符)
  2. 如何快速融入团队(二)
  3. 负载均衡沙龙活动第二期现场问答汇集
  4. 程序员,为什么如此迷茫?
  5. C#常用类库(100多个)
  6. win10下安装和卸载Ubuntu双系统
  7. navicat for mysql 用户_Navicat for MySQL 怎么/怎么添加管理用户?Navicat for MySQL 添加管理用户教程_37游游网...
  8. ieee5节点系统图_存储系统的的关键技术之自精简技术
  9. vba excel 取得chart保存图片_保存Excel中的图片
  10. js中数据结构数组Array、映射Map、集合Set、对象、JSON
  11. 缺少链接库报错:ld: symbol(s) not found for architecture x86_64
  12. (转)比特币基金难产 区块链基金成首发
  13. 百度街景瓦片下载器1.1.5
  14. 中职计算机英语教学大纲,中等职业学校英语教学大纲
  15. JAVA定义矩形类 方法二
  16. 什么是数据安全,为什么它很重要?
  17. 扩展点系列之ApplicationContextAwareProcessor普通类获取Spring Bean - 第433篇
  18. 深信服AD应用交付管理维护
  19. 发票查验|身份证实名认证增强版API开发文档
  20. 【虹科】人工智能和工业相机助力瓶盖质量控制

热门文章

  1. 云计算系统运用了许多技术,最主要的核心技术是什么
  2. 2. MATLAB 画图
  3. CodeForces - 366C Dima and Salad (01背包)
  4. LTE Cognitive Femtocell scenario
  5. 人物访谈|扎根社区的工程师,月影的前端人生
  6. 怎样解决张力控制的难点?
  7. docker修改容器内nginx配置文件
  8. python与pdf与word(datawhale组队学习task3)
  9. 关于java操作zebraZT230打印机
  10. 小黑子—多媒体技术与运用基础知识二:数字音频处理技术