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

2023-10-25 06:50

本文主要是介绍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 }

 

转载于:https://www.cnblogs.com/55fmj/p/5339315.html

这篇关于0329单元测试--复利计算器(组员:冯铭杰 梁毅乾)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/280771

相关文章

用Java打造简易计算器的实现步骤

《用Java打造简易计算器的实现步骤》:本文主要介绍如何设计和实现一个简单的Java命令行计算器程序,该程序能够执行基本的数学运算(加、减、乘、除),文中通过代码介绍的非常详细,需要的朋友可以参考... 目录目标:一、项目概述与功能规划二、代码实现步骤三、测试与优化四、总结与收获总结目标:简单计算器,设计

springboot+maven搭建的项目,集成单元测试

springboot+maven搭建的项目,集成单元测试 1.在pom.xml文件中引入单元测试的依赖包 <!--单元测试依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></depen

PowerMock 单元测试总结与常见坑解决方案

PowerMock 单元测试总结与常见坑解决方案 官方文档: PowerMock GitHub PowerMock 在单元测试中能够帮助我们解决静态类、final 方法、私有方法等无法轻易 mock 的问题。下面是我在实际使用 PowerMock 时踩过的一些坑,并结合 PowerMock 的一些方法进行总结。 基本依赖和设置 在 Maven 中添加 PowerMock 依赖。在测试

QT学习之计算器

网格布局初尝试,快速构建计算器 项目结构: wident.h拖动建立界面,20个button,一个lineedit 布局好后整体网格布局调整,依次给每个案件输入文本,并改objectname方便后期辨识 为了在lineedit显示数字,转到槽,编辑点击事件,如显示“1” void Widget::on_pushButton1_clicked(){expression += "1";u

Arcgis字段计算器:随机生成规定范围内的数字

选择字段计算器在显示的字段计算器对话框内,解析程序选择Python,勾选上显示代码块, 半部分输入: import random; 可修改下半部分输入: random.randrange(3, 28) 表示生成3-28之间的随机数 字段计算器设置点击确定完成随机数的生成,生成的随机数如下图所示。

Vue初学-简易计算器

最近在学习Vue的指令,做了一个简易计算器,比较适合刚入门的人参考学习。用到的知识点有: 1.插值表达式 2.v-model,双向绑定+、-、*、/、**等操作符 3.v-show,控制操作数2是否显示,乘方时不显示操作数2 4.methods选项,定义了calculate ()方法,实现各种运算 5.watch选项,监听selected的值的变化。 下面是程序的执行效果: 如果选择的是**乘

JAVA—单元测试

单元测试:就是针对最小的功能单元(方法),编写测试代码对其进行正确性测试     之前是使用main函数调用来进行检测,无法实现自动化测试 也会影响其他方法的测试 目录 1.junit框架概述 2.junit框架的常见注解 1.junit框架概述 package High_junit;//字符串工具类 用于测试public class String_ju

idea单元测试报错找不到主类

报错截图 主要是单测中没有配置类 在下面的command line 中选择jar manifest 因为条参数过长,这里设置只使用主类 详细解释见: https://www.jianshu.com/p/8322b3b17040

每日OJ_牛客_Emacs计算器(逆波兰表达式)

目录 牛客_Emacs计算器(逆波兰表达式) 解析代码 牛客_Emacs计算器(逆波兰表达式) Emacs计算器__牛客网 解析代码 逆波兰表达式(后缀表达式)求值,需要借助栈,思路: 循环输入,获取逆波兰表达式,然后进行以下补助,直到测试完所有的测试用例: 遇到数字字符串,将该数字字符串转化为数字然后入栈。遇到操作符时,从栈顶取两个数字,然后进行该运算符所对应运算

Django 中的用户界面 - 创建速度计算器

在 Django 中创建一个用户界面来计算速度,可以通过以下步骤完成。这个速度计算器将允许用户输入距离和时间,计算并显示速度。 一、问题背景 一位 Django 新手希望使用 Django 构建一个用户界面,以便能够计算速度(速度 = 距离/时间)。用户创建了一个名为 “speed” 的 Django 项目。但是,在运行服务器时遇到了错误,无法获取速度的用户界面。 二、解决方案 1、检