0805060228 周琼瑶 集装箱优化设计之代码设计1.docx

上传人:b****7 文档编号:9758508 上传时间:2023-02-06 格式:DOCX 页数:12 大小:187.13KB
下载 相关 举报
0805060228 周琼瑶 集装箱优化设计之代码设计1.docx_第1页
第1页 / 共12页
0805060228 周琼瑶 集装箱优化设计之代码设计1.docx_第2页
第2页 / 共12页
0805060228 周琼瑶 集装箱优化设计之代码设计1.docx_第3页
第3页 / 共12页
0805060228 周琼瑶 集装箱优化设计之代码设计1.docx_第4页
第4页 / 共12页
0805060228 周琼瑶 集装箱优化设计之代码设计1.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

0805060228 周琼瑶 集装箱优化设计之代码设计1.docx

《0805060228 周琼瑶 集装箱优化设计之代码设计1.docx》由会员分享,可在线阅读,更多相关《0805060228 周琼瑶 集装箱优化设计之代码设计1.docx(12页珍藏版)》请在冰豆网上搜索。

0805060228 周琼瑶 集装箱优化设计之代码设计1.docx

0805060228周琼瑶集装箱优化设计之代码设计1

武汉工程大学

计算机科学与工程学院

《集装箱优化设计之代码设计》实验报告

专业班级

08计算计双特色02

实验地点

503

学生学号

0805060228

指导教师

王庆春

学生姓名

周琼瑶

实验时间

11.26

实验项目

集装箱优化设计需求分析报告

实验类别

操作性()验证性()设计性(√)综合性()其它()

实验目的及要求

 

1、了解集装箱优化设计的模型。

2、编写集装箱优化设计的代码,实现集装箱的优化。

成绩评定表

类别

评分标准

分值

得分

合计

上机表现

积极出勤、遵守纪律

主动完成实验设计任务

30分

程序代码

比较规范、基本正确

功能达到实验要求

30分

实验报告

及时递交、填写规范

内容完整、体现收获

40分

说明:

评阅教师:

日期:

2008年月日

实验内容

一、设计方案

1.以下是集装箱装载货物的三种模型:

对应输入的数据分别表示描述货物形状的参数。

具体如下图一所示:

图一

2.装载方案一的装载示意图,如图二所示:

图二

由图可知,装载方案一是根据用户输入的数据,依次进行如图所示的装箱过程,即:

1、从第一列开始,将两个直角三角形拼凑成为一个矩形沿着集装箱的底部(集装箱的宽)进行存放,如果不能继续存放三角形,则转到下一列,开始摆放长方形。

2、类似三角形的摆放过程,沿着集装箱的宽,依次摆放长方形,如果不能继续摆放长方形,则转到下一列,开始摆放正方形。

3、类似上面的摆放过程,沿着集装箱的宽,依次摆放正方形,如果不能继续摆放正方形,则转到下一列。

如此循环执行摆放过程,直至集装箱不能继续装载货物为止。

 

3.装载方案二的装载示意图,如图三所示:

图三

由图示可知,装载方案二是在装载方案一的基础上,将三角形的摆放由装载方案一中的竖放,调整为横放。

4.装载方案三的装载示意图,如图四所示:

图四

由图示可知,装载方案三是在装载方案二的基础上,将长方形的摆放由装载方案二中的横放,调整为竖放。

5.装载方案的不足

在上述的三种装在方案中,存在一个很大的缺陷。

这一缺陷可能会造成较大的空间浪费。

如下图五所示:

 

图五

由图示可知,当沿着集装箱的某一列摆放某种货物时,如果不能继续摆放该货物的,但它存在较大的空间,足以存放其他货物,(如图五中,虚线框所示),而在上述上中装载方案中,均没有考虑到这种情形,所以当遇到这种情况是,集装箱的装载量受到限制,严重影响了集装箱的装载量,造成了极大的浪费。

 

二、设计代码

#include

#include

usingnamespacestd;

voidDoTriangle(float,float);

voidDoRectangle(float,float);

voidDoSquare(float);

floatMax(float,float);

voidCompare(float,float,float);

floata=0.03;

floatLength=40;

floatWidth=20;

intTriangle=0,Rectangle=0,Square=0;

voidmain()

{

floatx1,y1,x2,y2,x;

floatAreaSum1,AreaSum2,AreaSum3,t1,t2;

cout<<"***声明:

本程序中只考虑三角形为直角三角形的情况!

***"<

cout<

cout<<"*******货物形状基本信息*******"<

Cout<<"集装箱的体积为:

"<

cout<

cout<<"请输入直角三角形的底:

";

cin>>x1;

cout<<"请输入直角三角形的高:

";

cin>>y1;

cout<<"输入长方形的长:

";

cin>>x2;

cout<<"输入长方形的宽:

";

cin>>y2;

cout<<"输入正方形的边长:

";

cin>>x;

cout<<"******************************"<

cout<

cout<

floatAreaTri=x1*y1/2;

floatAreaRec=x2*y2;

floatAreaSqu=x*x;

cout<<"************方案一************"<

cout<

while(Length>=x1+a||Length>=x2+a||Length>=x+a)

{

DoTriangle(x1,y1);

DoRectangle(x2,y2);

DoSquare(x);

}

cout<<"三角形的个数:

"<

cout<<"长方形的个数:

"<

cout<<"正方形的个数:

"<

AreaSum1=AreaTri*Triangle+AreaRec*Rectangle+AreaSqu*Square;

cout<

cout<<"方案一装载货物总面积为:

"<

cout<<"******************************"<

cout<

cout<

cout<<"************方案二************"<

cout<

Length=40;

Width=20;

Triangle=0;

Rectangle=0;

Square=0;//重新初始化

t1=x1;

x1=y1;

y1=t1;

while(Length>=x1+a||Length>=x2+a||Length>=x+a)

{

DoTriangle(x1,y1);

DoRectangle(x2,y2);

DoSquare(x);

}

cout<<"三角形的个数:

"<

cout<<"长方形的个数:

"<

cout<<"正方形的个数:

"<

AreaSum2=AreaTri*Triangle+AreaRec*Rectangle+AreaSqu*Square;

cout<

cout<<"方案二装载货物总面积为:

"<

cout<<"******************************"<

cout<

cout<

cout<<"************方案三************"<

cout<

Length=40;

Width=20;

Triangle=0,Rectangle=0,Square=0;//重新初始化

t2=x2;

x2=y2;

y2=t2;

while(Length>=x1+a||Length>=x2+a||Length>=x+a)

{

DoTriangle(x1,y1);

DoRectangle(x2,y2);

DoSquare(x);

}

cout<<"三角形的个数:

"<

cout<<"长方形的个数:

"<

cout<<"正方形的个数:

"<

AreaSum3=AreaTri*Triangle+AreaRec*Rectangle+AreaSqu*Square;

cout<

cout<<"方案三装载货物总面积为:

"<

cout<<"******************************"<

cout<

cout<

/**********比较各种方案**********/

cout<<"*********比较各种方案*********"<

cout<

Compare(AreaSum1,AreaSum2,AreaSum3);

cout<<"******************************"<

cout<

}

voidDoTriangle(floatx,floaty)//x,y分别表示三角形的底和高

{

floatm,n;

m=x+a;

n=y+a;

if((Length>=m)&&(Width>=n))

{

while(n<=Width)

{

Triangle+=2;

n+=y+a;

}

Length=Length-x-a;

}

}

voidDoRectangle(floatx,floaty)//x,y分别表示长方形的长和宽

{

floatm=x+a;

floatn=y+a;

if((Length>=m)&&(Width>=n))

{

while(n<=Width)

{

Rectangle++;

n+=y+a;

}

Length=Length-x-a;

}

}

voidDoSquare(floatx)//x表示正方形的边长

{

floatm=x+a;

if(Length>=m)

{

while(m<=Width)

{

Square++;

m+=(x+a);

}

Length=Length-x-a;

}

}

voidCompare(floatm,floatn,floato)

{

floatt,Option;

t=Max(m,n);

Option=Max(t,o);

if(Option==m)

cout<<"最佳装载方案为:

方案一"<

else

{

if(Option==n)

cout<<"最佳装载方案为:

方案二"<

else

cout<<"最佳装载方案为:

方案三"<

}

}

floatMax(floatx,floaty)

{

returnx>y?

x:

y;

}

 

三、代码运行结果

1.根据提示信息输入货物的一些基本信息,输出结果如图

(一)所示:

(一)

 

2.根据上述的设计方案,输出设计方案一得设计结果,即输出所装的不同形状货物的个数如图

(二)所示:

(二)

 

3.根据设计方案,输出设计方案三的结果,如图(三)所示:

4.根据设计方案以及输出的基本信息,方案三的结果如图(四)所示:

 

5.根据设计方案以及货物形状的基本信息,比较这三种方案的结果如图(五)所示:

 

4、参考文献

1.张海藩..软件工程导论(第3版).北京:

清华大学出版社,1998

2.李伟波,刘永祥,王庆春..软件工程..武汉:

武汉大学出版社,2006

3.张敬,宋广军等..软件工程教程..北京:

北京航空航天大学出版社,2003

4.李芷,窦万峰等..软件工程方法与实践..北京:

电子工业出版社,2004

 

五、实验总结

通过本次实验,更多的了解了软件工程项目开发的相关过程,对软件工程专业有了一个相对较全面的认识。

我明白了软件工程设计是一个复杂的过程,其中的每一个环节必不可少,然而,我们需要更广博的知识来作为设计的基础。

这次集装箱优化设计过程中利用了有关集装箱的知识,因此,我们必须掌握相关集装箱的必备知识。

此外,这次代码设计给我们提供了一个既动手又动脑、自学、独立实践的机会,使我们养成了勤翻阅查找各种相关资料,了解各方面的知识。

将书本上的理论知识和实际有机结合起来,锻炼了实际分析问题和解决问题的能力,提高了适应实际、实践编写能力,为今后学习和实践打下了良好的基础。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 辩护词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1