第12周报告3 --- 计算存款利息

简介: 任务3:输入存款金额并选择存款种类,计算出利息(不计利息税)。如果是活期存款,需要补充输入天数。利息=金额×年利率×存期(单位:年,活期一年按360天计)。要求使用switch语句,根据选择的存款种类,确定利率和存期后计算。利率使用2011年7月7日公布的最新年利率:活期  0.50%,3个月  3.10%,6个月 3.30%,一年 3.50%,二年 4.40%,三年 5.00%,五年 5

任务3:输入存款金额并选择存款种类,计算出利息(不计利息税)。如果是活期存款,需要补充输入天数。利息=金额×年利率×存期(单位:年,活期一年按360天计)。要求使用switch语句,根据选择的存款种类,确定利率和存期后计算。利率使用2011年7月7日公布的最新年利率:活期  0.50%,3个月  3.10%,6个月 3.30%,一年 3.50%,二年 4.40%,三年 5.00%,五年 5.50%。
完整的利息计算器可以参考http://www.bankrate.com.cn/tools/saving-interest-calculator.html。

第一部分是我的解答,第二部分总结同学们的做法。

 【第一部分 我的报告】

实验目的:学会使用switch语句解决实际问题

实验内容:计算存款利息。

/* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c)2011, 烟台大学计算机学院
* All rightsreserved.
* 文件名称: interest.cpp
* 作    者: 贺利坚
* 完成日期:  2011 年 11 月 15 日
* 版 本 号:  V1.0
 
* 对任务及求解方法的描述部分
* 输入描述:金额与存期
* 问题描述:输入存款金额并选择存款种类,计算出利息(不计利息税)。如果是活期存款,需要补充输入天数。利息=金额×年利率×存期(单位:年,活期一年按360天计)。要求使用switch语句,根据选择的存款种类,确定利率和存期后计算。利率使用2011年7月7日公布的最新年利率:活期  0.50%,3个月  3.10%,6个月 3.30%,一年 3.50%,二年 4.40%,三年 5.00%,五年 5.50%。
* 程序输出:利息及本息合计
*/
#include<iostream>
#include<iomanip>
using namespacestd;
int main( )
{
  double money,rate,years,interest;  //取有意义的变量名将使你自己受益
  int term,days;                  //每一个变量的含义均要明确
 cout<<setiosflags(ios::fixed)<<setprecision(2);
  cout<<" 请输入存款金额(元):";
  cin>>money;
  do
  {
    cout<<"  ************************"<<endl;
    cout<<"  1 - 一年"<<endl;     //1,2,3,5和定期年限联系起来,考虑用户方便,直观些
    cout<<"  2 - 二年"<<endl;
    cout<<"  3 - 三年"<<endl;
    cout<<"  5 - 五年"<<endl;
    cout<<"  0 - 活期"<<endl;     //用统一的公式计算,不必将定活期分开,减轻用户负担
    cout<<"  8 - 3个月"<<endl;
    cout<<"  9 - 6个月"<<endl;
    cout<<"请选择存期:";
    cin>>term;
    if(term<0||term==4||term==6||term==7||term>9) //不允许非法选项
    {
      cout<<"请重新选择存期!"<<endl;
      continue;
    }
    else
      break; //term是合法的值,跳出去,接着执行下面的工作
  }while(1);
 
  switch(term)  //根据存期,确定在计算利息时需要用到的参数的值
  {
  case 1:
    rate=0.035; years=1;break;
  case 2:
    rate=0.044; years=2;break;
  case 3:
    rate=0.05; years=3;break;
  case 5:
    rate=0.055; years=5;break;
  case 0:   //活期时有些特殊性,但也仅是由输入的天数变年数而已
    rate=0.005;
    cout<<"请输入天数:";
    cin>>days;
    years=double(days)/360;
    break;
  case 8:   //存期3月
    rate=0.031; years=0.25;break;
  case 9:  //存期6月
    rate=0.033; years=0.5;break;
  }
  interest=money*rate*years;
  cout<<"本金"<<money<<"元,"<<"利息"<<interest<<"元,本息合计"<<interest+money<<"元"<<endl;
  return 0;
}

运行结果:


经验积累:

1. 学会了switch语句

2. 有多种选择时,做个菜单挺方便,但人机交互的设计也有很多道道

 

【第二部分 同学们做法的点评】

同学们的问题主要在于想不出这个过程是什么。将来你从事开发时,客户可能和你说不清楚,需要你的精准理解,积累经验吧。

活期对应定期,不是死期。一人这样写,大家就跟上,全不顾老师指导书中的说法。copy程序不能这么干,没受重视的老湿郁闷了一星期。

 dqybzs 同学的解法很清楚,推荐看一看:http://blog.sina.com.cn/s/blog_8d7d3fc10100uux1.html


目录
相关文章
|
7月前
银行定期存款利率,输入金额,输入年限,计算本息总额
银行定期存款利率,输入金额,输入年限,计算本息总额
121 0
|
7月前
7-66 计算工资 (15 分)
7-66 计算工资 (15 分)
66 0
|
7月前
每日一题:统计天数
每日一题:统计天数
44 0
【SQL开发实战技巧】系列(十四):计算消费后的余额&计算银行流水累计和&计算各部门工资排名前三位的员工
本篇文章讲解的主要内容是:***通过模拟计算消费流水账及计算银行流水累计和讲解sum()over()函数使用场景、通过计算各部门工资排名前三位的员工小案例来介绍ROW_NUMBER、RANK、DENSE_RANK使用方法及区别***
【SQL开发实战技巧】系列(十四):计算消费后的余额&计算银行流水累计和&计算各部门工资排名前三位的员工
|
机器学习/深度学习
某销售公司在年末的时候会向员工发放红包,发放的红包金额共有5种,获取的条件各不相同:   1) 五颗星红包,每人8000元,平均月绩效大于80件商品(>80),并且在本年度满勤; 2) 四颗星红包,每
某销售公司在年末的时候会向员工发放红包,发放的红包金额共有5种,获取的条件各不相同:   1) 五颗星红包,每人8000元,平均月绩效大于80件商品(>80),并且在本年度满勤; 2) 四颗星红包,每
238 0
SAP MM 并非奇怪现象之MB5B报表里期初库存余额或者期末库存余额为负数?
SAP MM 并非奇怪现象之MB5B报表里期初库存余额或者期末库存余额为负数?
SAP MM 并非奇怪现象之MB5B报表里期初库存余额或者期末库存余额为负数?
|
存储 架构师 关系型数据库
用 float 存储金额,老板说损失从工资里扣!
公司最近在做交易系统,交易系统肯定是要和钱打交道的,和钱有关,自然而然很容易想到用float存储,但是使用float存储金额做的计算是近似计算。老板,用float做计算造成公司损失的钱都往你工资里扣。