?? bestfit.cpp
字號:
void CBinpackDlg::OnButtonBfd()
{
// TODO: Add your control notification handler code here
float b[20];
float s[8]; // 存儲每個物品的重量
int num[8]; // 存儲每個物品存入的箱子號
memset(b,0.0,sizeof(b)); // 賦初值
s[0] = m_weigh1;
s[1] = m_weigh2;
s[2] = m_weigh3;
s[3] = m_weigh4;
s[4] = m_weigh5;
s[5] = m_weigh6;
s[6] = m_weigh7;
s[7] = m_weigh8;
sort(s,s+8,compare);
int i,j,k,flag;
float max,temp;
for(i = 0; i < 8; i++){
max = 0;
flag = 0; // flag為0代表需要重新開一個箱子
for(j = 1; ; j++){
temp = b[j] + s[i];
if (temp > max && temp <= 1.0){
max = temp;
k = j;
flag = k;
}
if (b[j+1] == 0 && temp > 1.0 && (flag==0)){
num[i] = j + 1;
b[j+1] += s[i];
break;
}
if (b[j+1] == 0 && max <= 1.0){
num[i] = k;
b[k] += s[i];
break;
}
}
}
j = 1;
while(b[j] != 0)
j = j + 1;
m_count_bfd = j - 1;
UpdateData(false);
CString str;
str.Format("各個物品存放的箱子編號為:%d%d%d%d%d%d%d%d",num[0],num[1],num[2],
num[3],num[4],num[5],num[6],num[7],num[8]);
AfxMessageBox(str);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -