软件测试实验报告一

南昌航空大学实验报告

20##年11月30日

课程名称:    软件测试与质量保证      实验名称:    被测程序的设计      

班级:            姓名:               同组人:                      

指导教师评定:                                      签名:               

一、 实验目的

通过对于被测程序的设计,为后续实验的实施做好准备。

二、 实验内容

1、设计三角形问题的程序

2、设计Nextdate函数的程序

3、设计佣金问题的程序

三、 概要设计

1、  设计三角形问题的程序

实现的功能主要是通过C语言代码实现通过用户输入的三角形三条边的值来确定符合这三条边的三角形是那种三角形或者是非三角形。

2、  设计Nextdate函数的程序

该程序的功能就是实现根据今天日期来得出明天的日期。

3、设计佣金问题的程序

       该程序主要是解决佣金问题,也就是要生成月份销售报表,汇总出该销售人员当月枪机、枪托和枪管的销售总量、总销售额以及应得佣金。

四、 详细设计

1、 设计三角形问题的程序

该程序的核心代码为判断三角形的代码,位于TRIANGLE.C主函数中:

if(a<b+c && b<a+c && c<a+b)//给出满足三角形的条件

flag=1;

   else

flag=0;

   if(flag==1)

   {

if(a==b && b==c)//在满足时三角形的条件下判断其为等边三角形

    printf("The triangle is equailateral triangle!\n");

else if(a!=b && b!=c && a!=c)//不为等边三角形的条件

    printf("The triangle is isoscele triangle!\n");

     else

    printf("The triangle is isosceles triangele!\n");

   }

   else

printf("The triangle is not a triangle!\n");

}

2、 设计Nextdate函数的程序

该程序的主要代码就是在DATE.C文件下主函数中的switch分支判断:

switch(month){//通过switch来选择不同的月份下的情况

case 1:

case 3:

case 5:

case 7:

case 8:

case 10://上面的月份都是31天的,下面代码实现31天情况下的月份

     if(day<31){

    tomorrowDay=day+1;

    tomorrowMonth=month;

    tomorrowYear=year;

     }

     else

     {

    tomorrowDay=1;

    tomorrowMonth=month+1;

    tomorrowYear=year;

     }

     break;

case 4:

case 6:

case 9:

case 11://上面的月份都是30天的,下面代码实现30天情况下的月份

     if(day<30)

     {

    tomorrowDay=day+1;

    tomorrowMonth=month;

    tomorrowYear=year;

     }

     else

     {

    tomorrowDay=1;

    tomorrowMonth=month+1;

    tomorrowYear=year;

     }

     break;

case 12://由于12月一过,年份要加一,故单独把12月拿出

     if(day<31)

     {

    tomorrowDay=day+1;

    tomorrowMonth=month;

    tomorrowYear=year;

     }

     else

     {

    tomorrowDay=1;

    tomorrowMonth=1;

    if(year==2012){

         printf("The 20## is over!\n");

         exit(0);

    }

    else

         tomorrowYear=year+1;

      }

      break;

 case 2://根据是否闰年来判断二月的天数,故把二月单独拿出来

      if(day<28)

      {

    tomorrowDay=day+1;

    tomorrowMonth=month+1;

    tomorrowYear=year+1;

      }

      else if(day==28)

      {

       if((year/4==0 && year/100!=0) || year/400==0){

         tomorrowDay=29;

         tomorrowMonth=month;

         tomorrowYear=year;

       }

       else

       {

           tomorrowDay=1;

           tomorrowMonth=3;

           tomorrowYear=year;

       }

      }

      else if(day==29)

      {

       tomorrowDay=1;

       tomorrowMonth=3;

       tomorrowYear=year;

      }

      else

       printf("Feb can not have %d day\n",day);

      }

3、 设计佣金问题的程序

改程序的主要代码在COMMISSI.C文件主函数中:

while(locks!=-1)//做为退出程序的条件,即当枪管卖完了

    {

printf("Please input stocks' and barrels' number...\n");

scanf("%d %d",&stocks,&barrels);

totalLocks=totalLocks+locks;

totalStocks=totalStocks+stocks;

totalBarrels=totalBarrels+barrels;

printf("Please input the locks' number...\n");

scanf("%d",&locks);

     }

     printf("Locks sold:%d\n",totalLocks);

     printf("Stocks sold:%d\n",totalStocks);

     printf("Barrels sold:%d\n",totalBarrels);

     lockSales=lockPrice*totalLocks;

     stockSales=stockPrice*totalStocks;

     barrelSales=barrelPrice*totalBarrels;

     sales=lockSales+stockSales+barrelSales;

     printf("The sales:%f\n",sales);

     if(sales>1800.0)//当销售员卖到的金额超过$1800后的佣金值

     {

commission=0.10*1000.0;

commission=commission+0.15*800.0;

commission=commission+0.20*(sales-1800.0);

     }

     else if(sales>1000.0)//当销售员卖到的金额超过$1000但低于$1800后的佣金值

     {

commission=0.10*1000.0;

commission=commission+0.15*(sales-1000.0);

     }

     else//当销售员卖到的金额低于$1000的佣金值

commission=0.10*sales;

五、 程序调试

1、  设计三角形问题的程序

实验结果如下:

2、  设计Nextdate函数的程序

实验结果如下:

3、设计佣金问题的程序

实验结果如下:

六、 实验总结

   通过本次实验,让我暂时把下次实验要测试的程序先写好并做了简单的实验结果的测试,这样就为后续实验带来了方便。

七、 附录

TRIANGLE.C

#include<stdio.h>

void main()

{

   int a,b,c,flag;//设置三条边的变量以及判断是否为三角形的标识符

   printf("Please input three integers which are sides of a triangle...\n");

   scanf("%d,%d,%d",&a,&b,&c);

   printf("Side A is %d\n",a);

   printf("Side B is %d\n",b);

   printf("Side C is %d\n",c);

   if(a<b+c && b<a+c && c<a+b)//给出满足三角形的条件

flag=1;

   else

flag=0;

   if(flag==1)

   {

if(a==b && b==c)//在满足时三角形的条件下判断其为等边三角形

    printf("The triangle is equailateral triangle!\n");

else if(a!=b && b!=c && a!=c)//不为等边三角形的条件

    printf("The triangle is isoscele triangle!\n");

     else

    printf("The triangle is isosceles triangele!\n");

   }

   else

printf("The triangle is not a triangle!\n");

}

DATE.C

#include<stdio.h>

void main()

{

    int tomorrowDay,tomorrowMonth,tomorrowYear,day,month,year;//设置程序需要的变量

    printf("Please input today's date is from MM DD YYYY...\n");

    scanf("%d %d %d",&month,&day,&year);

    switch(month){//通过switch来选择不同的月份下的情况

case 1:

case 3:

case 5:

case 7:

case 8:

case 10://上面的月份都是31天的,下面代码实现31天情况下的月份

     if(day<31){

    tomorrowDay=day+1;

    tomorrowMonth=month;

    tomorrowYear=year;

     }

     else

     {

    tomorrowDay=1;

    tomorrowMonth=month+1;

    tomorrowYear=year;

     }

     break;

case 4:

case 6:

case 9:

case 11://上面的月份都是30天的,下面代码实现30天情况下的月份

     if(day<30)

     {

    tomorrowDay=day+1;

    tomorrowMonth=month;

    tomorrowYear=year;

     }

     else

     {

    tomorrowDay=1;

    tomorrowMonth=month+1;

    tomorrowYear=year;

     }

     break;

case 12://由于12月一过,年份要加一,故单独把12月拿出

     if(day<31)

     {

    tomorrowDay=day+1;

    tomorrowMonth=month;

    tomorrowYear=year;

     }

     else

     {

    tomorrowDay=1;

    tomorrowMonth=1;

    if(year==2012){

         printf("The 20## is over!\n");

         exit(0);

    }

    else

         tomorrowYear=year+1;

      }

      break;

 case 2://根据是否闰年来判断二月的天数,故把二月单独拿出来

      if(day<28)

      {

    tomorrowDay=day+1;

    tomorrowMonth=month+1;

    tomorrowYear=year+1;

      }

      else if(day==28)

      {

       if((year/4==0 && year/100!=0) || year/400==0){

         tomorrowDay=29;

         tomorrowMonth=month;

         tomorrowYear=year;

       }

       else

       {

           tomorrowDay=1;

           tomorrowMonth=3;

           tomorrowYear=year;

       }

      }

      else if(day==29)

      {

       tomorrowDay=1;

       tomorrowMonth=3;

       tomorrowYear=year;

      }

      else

       printf("Feb can not have %d day\n",day);

      }

 printf("Tomorrow's date is %d %d %d\n",tomorrowMonth,tomorrowDay,tomorrowYear);

}

COMMISSI.C

#include<stdio.h>

void main()

{

    int locks,stocks,barrels;

    float lockPrice,stockPrice,barrelPrice;

    int totalLocks,totalStocks,totalBarrels;

    float lockSales,stockSales,barrelSales;

    float sales,commission;

    lockPrice=45.0;

    stockPrice=30.0;

    barrelPrice=25.0;

    totalLocks=0;

    totalStocks=0;

    totalBarrels=0;

    printf("Please input locks' number...\n");

    scanf("%d",&locks);

    while(locks!=-1)

    {

printf("Please input stocks' and barrels' number...\n");

scanf("%d %d",&stocks,&barrels);

totalLocks=totalLocks+locks;

totalStocks=totalStocks+stocks;

totalBarrels=totalBarrels+barrels;

printf("Please input the locks' number...\n");

scanf("%d",&locks);

     }

     printf("Locks sold:%d\n",totalLocks);

     printf("Stocks sold:%d\n",totalStocks);

     printf("Barrels sold:%d\n",totalBarrels);

     lockSales=lockPrice*totalLocks;

     stockSales=stockPrice*totalStocks;

     barrelSales=barrelPrice*totalBarrels;

     sales=lockSales+stockSales+barrelSales;

     printf("The sales:%f\n",sales);

     if(sales>1800.0)

     {

commission=0.10*1000.0;

commission=commission+0.15*800.0;

commission=commission+0.20*(sales-1800.0);

     }

     else if(sales>1000.0)

     {

commission=0.10*1000.0;

commission=commission+0.15*(sales-1000.0);

     }

     else

commission=0.10*sales;

     printf("Commission is $%f",commission);

}

相关推荐