zoukankan      html  css  js  c++  java
  • 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("本金输入错误,请重新输入!
    ");
     15         else
     16             break;
     17     }
     18     while(1)
     19     {
     20         printf("请输入年利率(百分比):");
     21         scanf("%lf",&i);
     22         if(i<=0 || i>=1)
     23             printf("年利率输入错误,请重新输入!
    ");
     24         else
     25             break;
     26     }
     27     while(1)
     28     {
     29         printf("请输入存储年限:");
     30         scanf("%d",&n);
     31         if(n<=0)
     32             printf("存储年限输入错误,请重新输入!
    ");
     33         else
     34             break;
     35     }
     36     f = p+p*i*n;
     37     printf("单利终值为:%0.2lf
    ",f);
     38 }
     39 
     40 double Fuli()
     41 {
     42     
     43     while(1)
     44     {
     45         printf("请输入本金:");
     46         scanf("%lf",&p);
     47         if(p<=0)
     48             printf("本金输入错误,请重新输入!
    ");
     49         else
     50             break;
     51     }
     52     while(1)
     53     {
     54         printf("请输入年利率(百分比):");
     55         scanf("%lf",&i);
     56         if(i<=0 || i>=1)
     57             printf("年利率输入错误,请重新输入!
    ");
     58         else
     59             break;
     60     }
     61     while(1)
     62     {
     63         printf("请输入存储年限:");
     64         scanf("%d",&n);
     65         if(n<=0)
     66             printf("存储年限输入错误,请重新输入!
    ");
     67         else
     68             break;
     69     }
     70     f = p*(pow(1+i,n));
     71     printf("复利终值为:%lf
    ",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("目标金额输入错误,请重新输入!
    ");
     83         else
     84             break;
     85     }
     86     while(1)
     87     {
     88         printf("请输入年利率(百分比):");
     89         scanf("%lf",&i);
     90         if(i<=0 || i>=1)
     91             printf("年利率输入错误,请重新输入!
    ");
     92         else
     93             break;
     94     }
     95     while(1)
     96     {
     97         printf("请输入目标年限:");
     98         scanf("%d",&n);
     99         if(n<=0)
    100             printf("目标年限输入错误,请重新输入!
    ");
    101         else
    102             break;
    103     }
    104     p = f/pow(1+i,n);
    105     printf("需要投入的本金为:%0.2lf
    ",p);
    106 }
    107 
    108 void Year()
    109 {
    110     while(1)
    111     {
    112         printf("请输入本利和:");
    113         scanf("%lf",&f);
    114         if(f<=0)
    115             printf("本利和输入错误,请重新输入!
    ");
    116         else
    117             break;
    118     }
    119     while(1)
    120     {
    121         printf("请输入年回报率(百分比):");
    122         scanf("%lf",&i);
    123         if(i<=0 || i>=1)
    124             printf("年回报率输入错误,请重新输入!
    ");
    125         else
    126             break;
    127     }
    128     while(1)
    129     {
    130         printf("请输入本金:");
    131         scanf("%lf",&p);
    132         if(p<=0)
    133             printf("本金输入错误,请重新输入!
    ");
    134         else
    135             break;
    136     }
    137     for(n=1;;n++) //穷举法求满足的计息期数
    138     {
    139         if((p*(pow((1+i),n)))>=f)
    140         {
    141             printf("最低年限为:%d
    
    ",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("本利和输入错误,请重新输入!
    ");
    155         else
    156             break;
    157     }
    158     while(1)
    159     {
    160         printf("请输入本金:");
    161         scanf("%lf",&p);
    162         if(p<=0)
    163             printf("本金输入错误,请重新输入!
    ");
    164         else
    165             break;
    166     }
    167     while(1)
    168     {
    169         printf("请输入目标年限:");
    170         scanf("%d",&n);
    171         if(n<=0)
    172             printf("目标年限输入错误,请重新输入!
    ");
    173         else
    174             break;
    175     }
    176     i = pow((f/p),1.0/n)-1;
    177     printf("年回报率为:%0.2lf
    ",i);
    178 }
    179 
    180 void Getgains()
    181 {
    182     while(1)
    183     {
    184         printf("请输入每年定投金额:");
    185         scanf("%lf",&p);
    186         if(p<=0)
    187             printf("每年定投金额输入错误,请重新输入!
    ");
    188         else
    189             break;
    190     }
    191     while(1)
    192     {
    193         printf("请输入年收益(百分比):");
    194         scanf("%lf",&i);
    195         if(i<=0 || i>=1)
    196             printf("年收益输入错误,请重新输入!
    ");
    197         else
    198             break;
    199     }
    200     while(1)
    201     {
    202         printf("请输入定投年数:");
    203         scanf("%d",&n);
    204         if(n<=0)
    205             printf("定投年数输入错误,请重新输入!
    ");
    206         else
    207             break;
    208     }
    209     f = p*(1+i)*(pow((1+i),n)-1)/i;
    210     printf("基金定投收益为:%0.2lf
    ",f);
    211 }
    212 
    213 void Text1(double f)  //测试复利计算
    214 {
    215     double a = 115;
    216     double n =(int)f;
    217     if(n==a)
    218         printf("正确
    ");
    219     else
    220         printf("错误
    ");
    221 }
    222 
    223 main()
    224 {
    225     
    226     int num=0;
    227     double f;
    228     while(1){
    229         printf("			|************复利计算器************|
    ");
    230         printf("			|------------1.单利----------------|
    ");
    231         printf("			|------------2.复利----------------|
    ");
    232         printf("			|------------3.计算本金------------|
    ");
    233         printf("			|------------4.年限估算------------|
    ");
    234         printf("			|------------5.估算年回报率--------|
    ");
    235         printf("			|------------6.定额定投收益计算----|
    ");
    236         printf("			|----------------------------------|
    ");
    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 }
  • 相关阅读:
    Unicode编码
    第2章 词法结构
    ubuntu thrift
    Django admin 忘记密码
    STL中的优先级队列priority_queue
    哈希表面试题-转载
    C++中基于成员函数是否是const重载成员函数
    printf格式输出知识整理
    Linux dns和网络连接配置方法
    Linux下高效并发服务器的常用方法和案例(转)
  • 原文地址:https://www.cnblogs.com/55fmj/p/5339315.html
Copyright © 2011-2022 走看看