0329单元测试--复利计算器(组员:冯铭杰 梁毅乾)

测试要求:

  对我们和复利计算程序,写单元测试。

  有哪些场景?

  期待的返回值

  写测试程序

  运行测试

场景测试:

  1、测试输入值是否为空

  2、测试输入值是否为负数

  3、输出结果是否正确?

期待值:

  1、提示输入错误

  2、提示输入错误,重新输入

  3、提示输出正确

功能模块  数据类型  具体数据  运行结果
 复利计算  (本金,利率,年限)  (100,0.03,5)  115.9274
 测试输入值为空  (本金,利率,年限)  (0,0,0)  错误
测试输入值为负数 (本金,利率,年限) (-100,-0.03,-5) 错误
测试输出结果 (本金,利率,年限) (100,0.03,5) 正确
........ ..... ..... ......

运行结果:

  1 #include<stdio.h>
  2 #include<math.h>
  3 void Jisuan();
  4 double p,i,f;
  5 int n;
  6
  7 void Danli()
  8 {
  9     while(1)
 10     {
 11         printf("请输入本金:");
 12         scanf("%lf",&p);
 13         if(p<=0)
 14             printf("本金输入错误,请重新输入!\n");
 15         else
 16             break;
 17     }
 18     while(1)
 19     {
 20         printf("请输入年利率(百分比):");
 21         scanf("%lf",&i);
 22         if(i<=0 || i>=1)
 23             printf("年利率输入错误,请重新输入!\n");
 24         else
 25             break;
 26     }
 27     while(1)
 28     {
 29         printf("请输入存储年限:");
 30         scanf("%d",&n);
 31         if(n<=0)
 32             printf("存储年限输入错误,请重新输入!\n");
 33         else
 34             break;
 35     }
 36     f = p+p*i*n;
 37     printf("单利终值为:%0.2lf\n",f);
 38 }
 39
 40 double Fuli()
 41 {
 42
 43     while(1)
 44     {
 45         printf("请输入本金:");
 46         scanf("%lf",&p);
 47         if(p<=0)
 48             printf("本金输入错误,请重新输入!\n");
 49         else
 50             break;
 51     }
 52     while(1)
 53     {
 54         printf("请输入年利率(百分比):");
 55         scanf("%lf",&i);
 56         if(i<=0 || i>=1)
 57             printf("年利率输入错误,请重新输入!\n");
 58         else
 59             break;
 60     }
 61     while(1)
 62     {
 63         printf("请输入存储年限:");
 64         scanf("%d",&n);
 65         if(n<=0)
 66             printf("存储年限输入错误,请重新输入!\n");
 67         else
 68             break;
 69     }
 70     f = p*(pow(1+i,n));
 71     printf("复利终值为:%lf\n",f);
 72     return(f);
 73 }
 74
 75 void Need()
 76 {
 77     while(1)
 78     {
 79         printf("请输入目标金额:");
 80         scanf("%lf",&f);
 81         if(f<=0)
 82             printf("目标金额输入错误,请重新输入!\n");
 83         else
 84             break;
 85     }
 86     while(1)
 87     {
 88         printf("请输入年利率(百分比):");
 89         scanf("%lf",&i);
 90         if(i<=0 || i>=1)
 91             printf("年利率输入错误,请重新输入!\n");
 92         else
 93             break;
 94     }
 95     while(1)
 96     {
 97         printf("请输入目标年限:");
 98         scanf("%d",&n);
 99         if(n<=0)
100             printf("目标年限输入错误,请重新输入!\n");
101         else
102             break;
103     }
104     p = f/pow(1+i,n);
105     printf("需要投入的本金为:%0.2lf\n",p);
106 }
107
108 void Year()
109 {
110     while(1)
111     {
112         printf("请输入本利和:");
113         scanf("%lf",&f);
114         if(f<=0)
115             printf("本利和输入错误,请重新输入!\n");
116         else
117             break;
118     }
119     while(1)
120     {
121         printf("请输入年回报率(百分比):");
122         scanf("%lf",&i);
123         if(i<=0 || i>=1)
124             printf("年回报率输入错误,请重新输入!\n");
125         else
126             break;
127     }
128     while(1)
129     {
130         printf("请输入本金:");
131         scanf("%lf",&p);
132         if(p<=0)
133             printf("本金输入错误,请重新输入!\n");
134         else
135             break;
136     }
137     for(n=1;;n++) //穷举法求满足的计息期数
138     {
139         if((p*(pow((1+i),n)))>=f)
140         {
141             printf("最低年限为:%d\n\n",n);
142             break;
143         }
144     }
145 }
146
147 void YearRate()
148 {
149     while(1)
150     {
151         printf("请输入本利和:");
152         scanf("%lf",&f);
153         if(f<=0)
154             printf("本利和输入错误,请重新输入!\n");
155         else
156             break;
157     }
158     while(1)
159     {
160         printf("请输入本金:");
161         scanf("%lf",&p);
162         if(p<=0)
163             printf("本金输入错误,请重新输入!\n");
164         else
165             break;
166     }
167     while(1)
168     {
169         printf("请输入目标年限:");
170         scanf("%d",&n);
171         if(n<=0)
172             printf("目标年限输入错误,请重新输入!\n");
173         else
174             break;
175     }
176     i = pow((f/p),1.0/n)-1;
177     printf("年回报率为:%0.2lf\n",i);
178 }
179
180 void Getgains()
181 {
182     while(1)
183     {
184         printf("请输入每年定投金额:");
185         scanf("%lf",&p);
186         if(p<=0)
187             printf("每年定投金额输入错误,请重新输入!\n");
188         else
189             break;
190     }
191     while(1)
192     {
193         printf("请输入年收益(百分比):");
194         scanf("%lf",&i);
195         if(i<=0 || i>=1)
196             printf("年收益输入错误,请重新输入!\n");
197         else
198             break;
199     }
200     while(1)
201     {
202         printf("请输入定投年数:");
203         scanf("%d",&n);
204         if(n<=0)
205             printf("定投年数输入错误,请重新输入!\n");
206         else
207             break;
208     }
209     f = p*(1+i)*(pow((1+i),n)-1)/i;
210     printf("基金定投收益为:%0.2lf\n",f);
211 }
212
213 void Text1(double f)  //测试复利计算
214 {
215     double a = 115;
216     double n =(int)f;
217     if(n==a)
218         printf("正确\n");
219     else
220         printf("错误\n");
221 }
222
223 main()
224 {
225
226     int num=0;
227     double f;
228     while(1){
229         printf("\t\t\t|************复利计算器************|\n");
230         printf("\t\t\t|------------1.单利----------------|\n");
231         printf("\t\t\t|------------2.复利----------------|\n");
232         printf("\t\t\t|------------3.计算本金------------|\n");
233         printf("\t\t\t|------------4.年限估算------------|\n");
234         printf("\t\t\t|------------5.估算年回报率--------|\n");
235         printf("\t\t\t|------------6.定额定投收益计算----|\n");
236         printf("\t\t\t|----------------------------------|\n");
237         printf("请输入选择:");
238         scanf("%d",&num);
239         switch(num)
240         {
241         case 1:
242             Danli();
243             break;
244         case 2:
245             f=Fuli();
246             Text1(f);
247             break;
248         case 3:
249             Need();
250             break;
251         case 4:
252             Year();
253             break;
254         case 5:
255             YearRate();
256             break;
257         case 6:
258             Getgains();
259             break;
260         default:
261             return 0;
262         }
263     }
264 }
时间: 2024-12-11 07:56:30

0329单元测试--复利计算器(组员:冯铭杰 梁毅乾)的相关文章

复利计算器4.0之再遇JUnit

复利计算器4.0之再遇JUnit 前言    虽然之前的复利计算器版本已经尝试过使用JUnit单元测试,但由于没有系统性地学习过JUnit的使用,用得并不好,主要问题表现在测试的场景太少,并没有达到测试所需的全面性,没能体现JUnit这一神器的精髓所在,为此本版本的复利计算器在JUnit单元测试方面做了一些完善. 源代码包结构 如上图所示,我把测试类统一放在新建的test源码文件下(test打错了,已改),以便和程序代码分离,方便操作. 细心看你就能发现,test目录下的包和程序SRC目录下相应

复利计算器(软件工程)及Junit测试———郭志豪

计算:1.本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30 客户提出: 2.如果按照单利计算,本息又是多少呢? 3.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢? 4.利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢? 5.如果我希望在十年内将100万元变

复利计算器(软件工程)———郭志豪

计算:本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30 客户提出: 2.如果按照单利计算,本息又是多少呢? 3.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢? 代码如下: 1 public static void main(String[] args) { 2 // TODO Auto-generated method stub 3 Sy

复利计算器3.01

1 此版本的复利计算器对输入的数据进行了限制,只能输入数字字符,并对输入的数据进行判断是否完整 2 package JSQ; 3 4 import java.awt.EventQueue; 5 6 import javax.swing.JFrame; 7 import javax.swing.JPanel; 8 import javax.swing.border.EmptyBorder; 9 import javax.swing.ButtonGroup; 10 import javax.swin

对复利计算器和股票投资的总结

这两次的实验都是用eclipse工具.java语言来写的,编写复利计算器时一共写了70行代码, 在复利计算器的基础上再进行修改和增加功能,最后得到的股票投资程序一共是82行代码. 编写复利计算器时预计是用3~4个小时,实际上却用了5个小时左右,可能是因为刚开始编写的 时候有很多java语言都忘记怎么写了,所以就花了比较多的时间去复习回以前的东西,其实 编写复利计算器程序也并不是很难,只要懂得java输出输入语言怎么写和计算复利终值的公式, 那么问题就变得简单很多了:关于股票投资的程序我本来是预计

java版复利计算器升级

github地址:https://github.com/iamcarson/Carson 伙伴:彭宏亮 学号:201406114148 与伙伴工作帅照: 本次升级的地方: 1.改善了界面显示,让界面整体看起来比较的简洁 2.原本使用Stringbuffer来存储结果然后显示的,升级后使用数据库显示 3.实现了一个清空的功能 效果如下: : 本次使用MVC的模式,有数据层,控制层,显示层 总结:复利计算器原理不难,但是想做好却不是那么的简单,好像这一次,还有分页的功能.删除某条记录等功能还没有能力

复利计算器(4)——界面美化、自动补全

一.分工 这次终于可以跟小伙伴合作了,经过讨论,我负责界面的美化和输入框自动补全,小伙伴擅长安卓,于是将复利计算器弄成app的任务就交给了小伙伴. 二.界面美化 1.弹框提示 思路:弹框提示显示是浏览器自带,所以难免会难看些(如图一),因此引进一些jQuery的插件,将弹框美化(如图二) 图一 图二 实现:从网上下载相应的插件的jar包,将jar包引用到相应的项目中,只要在项目中写就可以实现layer.alert("请在复利金额输入框输入正数(保留两位小数)!", {icon: 100

0316复利计算器3.0

#include<stdio.h> #include<math.h> double benjin=0,W=0; double year=0; int N=1; double lilv; void danli(){ printf("请输入要存入的本金:"); scanf("%lf",&benjin); printf("请输入年利率:"); scanf("%lf",&lilv); print

复利计算器--结对编程

import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; public class calcutor extends JFrame { private static final long serialVersionUID = 1L; File file1 = new File("fuli.txt"); File file2 = new File("danli.txt&