南昌航空大学实验报告
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);
}
XX大学学生实验报告册课程名称:软件测试技术专业班级:学生学号:999999999学生姓名:所属院部:信息技术学院指导教师:209…
南昌航空大学实验报告20xx年11月30日课程名称软件测试与质量保证实验名称被测程序的设计班级姓名同组人指导教师评定签名一实验目的…
实验一测试实例1.实验题目一般软件系统登录页面测试或其它软件简单操作测试。2.实验目的⑴熟悉.Net测试环境;(2)了解软件黑盒测…
南京理工大学软件测试实验报告课程系别班级学号姓名课题名称测试环境起止时间指导教师软件测试技术基础计算机科学与技术学院0706230…
沈阳理工大学应用技术学院软件测试综合实验实验报告题目基于NET的鲜花礼品店管理系统的测试用例设计院别信息与控制学院专业计算机科学与…
河北工业大学毕业实习报告姓名:XXX学号:093532专业班级:XXXXXXXXXX实习单位:北京北阳电子技术有限公司实习时间:2…
实习报告一.实习目的通过实习提高自己的对社会的认知能力,同时理论联系实际,让自己迅速适应社会,跟上IT前进的快速步伐。通过理论与实…
摘要毕业前夕的实习是为了提高自己的对社会的认知能力,同时理论联系实际,让自己迅速适应社会,跟上IT前进的快速步伐。通过理论与实际的…
实习目的:通过实习提高自己的对社会的认知能力,同时理论联系实际,让自己迅速适应社会,跟上IT前进的快速步伐。通过理论与实际的结合、…
实习报告实习公司:----科技股份有限公司实习职位:软件测试姓名:----------班级:-----------专业:-----…
实习总结20xx年x月x日。我怀着对提高并实现自我价值的心态,走进深圳走秀网络科技有限公司的大门,开始了自己大学里兼职实习工作。转…