0805060228 周琼瑶 集装箱优化设计之代码设计1.docx
- 文档编号:9758508
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:12
- 大小:187.13KB
0805060228 周琼瑶 集装箱优化设计之代码设计1.docx
《0805060228 周琼瑶 集装箱优化设计之代码设计1.docx》由会员分享,可在线阅读,更多相关《0805060228 周琼瑶 集装箱优化设计之代码设计1.docx(12页珍藏版)》请在冰豆网上搜索。
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 五、实验总结 通过本次实验,更多的了解了软件工程项目开发的相关过程,对软件工程专业有了一个相对较全面的认识。 我明白了软件工程设计是一个复杂的过程,其中的每一个环节必不可少,然而,我们需要更广博的知识来作为设计的基础。 这次集装箱优化设计过程中利用了有关集装箱的知识,因此,我们必须掌握相关集装箱的必备知识。 此外,这次代码设计给我们提供了一个既动手又动脑、自学、独立实践的机会,使我们养成了勤翻阅查找各种相关资料,了解各方面的知识。 将书本上的理论知识和实际有机结合起来,锻炼了实际分析问题和解决问题的能力,提高了适应实际、实践编写能力,为今后学习和实践打下了良好的基础。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 0805060228 周琼瑶 集装箱优化设计之代码设计1 集装箱 优化 设计 代码