• 复利计算单元测试


                 因为在网上下了CUnit但是找不到在windows教程的使用方法,只好通过手动测试统计C语言下程序运行结果。

    测试模块

    测试输入

    预期结果

    运行结果

    复利计算

    (本金,年限,利率,次数)

    终值

     

    测试运算结果

    (100,2,0.1,10)

    122.019

    122.019004

     测试输出正数

    (100,3,0.05,1)

    115

    115.00

     测试输入负数

     (-100,3,0.05,1)  输入错误!请检查输入的数据是否正确!  √
    测试输出正数   (-100, -2 , 0.01 ,1) 输入错误!请检查输入的数据是否正确!  √
    投资年限 (本金,总值,利率,复利次数)    
    测试运算结果 (100,200,0.2,5)
    ...... 以下结果与上表一致    

    #include <windows.h>
    #include<stdio.h>
    #include<math.h>
    void count(){
    int a,b;
    double x,sum,y;
    system("cls");
    printf(" 欢迎进入复利计算软件v3: ");
    printf("请输入需要计算的本金:");
    scanf("%lf",&y);
    printf("输入所要存储的时间(年):");
    scanf("%d",&a);
    printf("输入利率:");
    scanf("%lf",&x);
    printf("输入复利次数:");
    scanf("%d",&b);
    printf("Loading...:");
    x=pow((1+x/b),b)-1;
    sum=y*(pow(1+x,a));
    if(sum>=0&&a>=0&&b>0)
    printf("%lf",sum);
    else
    printf("输入错误!请检查输入的数据是否正确!");
    printf(" ");
    }

    void count1(){
    int n;
    double x,sum,y;
    system("cls");
    printf(" 欢迎进入复利计算软件v3: ");
    printf("请输入需要计算的本金:");
    scanf("%lf",&y);
    printf("输入所要存储的时间(年):");
    scanf("%d",&n);
    printf("输入利率:");
    scanf("%lf",&x);
    printf("正在输出:");
    sum=y+y*n*x;
    printf("所得%lf",sum);
    printf(" ");
    }

    void count3(){
    int a,i;
    double c,sum,b;
    system("cls");
    printf(" 欢迎进入复利计算软件v3: ");
    printf("请输入你所需要的总值:");
    scanf("%lf",&sum);
    printf("请输入你所需要的存储年:");
    scanf("%d",&a);
    printf("请输入利率:");
    scanf("%lf",&c);
    printf("请输入复利次数:");
    scanf("%d",&i);
    c=pow((1+c/i),i)-1;
    b=sum/pow(1+c,i);
    printf("正在输出:");
    printf("所需要本金%lf",b);
    printf(" ");
    }

    void count4(){
    int i;
    double a,sum,b,n;
    system("cls");
    printf(" 欢迎进入复利计算软件v3: ");
    printf("请输入本金:");
    scanf("%lf",&b);
    printf("请输入你所需要的总值:");
    scanf("%lf",&sum);
    printf("输入利率:");
    scanf("%lf",&a);
    printf("输入复利次数:");
    scanf("%d",&i);
    printf("正在输出:");
    a=pow((1+a/i),i)-1;
    n=log(sum/b)/log(1+a);
    printf("所得:%lf",n);
    printf(" ");
    }

    void x(){
    int n,i;
    double a,sum,b;
    system("cls");
    printf(" 欢迎进入复利计算软件v3: ");
    printf("请输入本金:");
    scanf("%lf",&b);
    printf("请输入你所需要的总值:");
    scanf("%lf",&sum);
    printf("输入所要存储年:");
    scanf("%d",&n);
    printf("输入复利次数:");
    scanf("%d",&i);
    printf("正在输出:");
    a=i*(pow(pow(sum/b,1.0/n),1.0/i)-1);
    printf("所得:%lf",a);
    printf(" ");
    }

    void count5(){
    double sum,b,a;
    int n;
    system("cls");
    printf(" 欢迎进入复利计算软件v3: ");
    printf("请输入年投入:");
    scanf("%lf",&b);
    printf("请输入年复合增长率:");
    scanf("%lf",&a);
    printf("请输入持续投入年数:");
    scanf("%d",&n);
    sum=b*(1+a)*pow((1+a),n-1)/a;
    printf(" 得出:%lf ",sum);
    }


    main(){
    int a;
    do{
    printf(" 欢迎进入复利计算软件v3: ");
    printf(" 1.单利计算");
    printf(" 2.复利计算");
    printf(" 3.求本金");
    printf(" 4.求时间");
    printf(" 5.求利率");
    printf(" 6.投资");
    printf(" 请输入你的选项:");
    scanf("%d",&a);
    switch (a){
    case 1:
    count1();
    break;
    case 2:
    count();
    break;
    case 3:
    count3();
    break;
    case 4:
    count4();
    break;
    case 5:
    x();
    break;
    case 6:
    count5();
    break;
    default:
    return 0;
    }
    }while(a>=0);
    }

    github已提交 trans.md 测试结果文档。

  • 相关阅读:
    spring查看生成的cglib代理类源码详解
    java-jdk动态代理生成的代理类源码
    约瑟夫斯问题-java版数组解法和链表解法
    HashMap源码解析(简单易懂)
    windows云服务器发布项目
    java学习
    TTL macro登陆linux服务器
    c#笔记
    C#笔记
    git merge
  • 原文地址:https://www.cnblogs.com/whitestar/p/5338608.html
Copyright © 2020-2023  润新知