地毯尺寸固定(此处例子为1.88*0.76米),房屋面积假设为正方形,计算需要多少块地毯,边角位置需要切割,计算出每种尺寸的地毯各要多少块。
private void button2_Click(object sender, EventArgs e)
{
double 长, 宽;
if (double.Parse(textBox2.Text) > double.Parse(textBox3.Text))
{
长 = double.Parse(textBox2.Text);
宽 = double.Parse(textBox3.Text);
}
else
{
宽 = double.Parse(textBox2.Text);
长 = double.Parse(textBox3.Text);
}
textBox1.Text = 铺满(长, 宽);
}
private string 铺满(double 长,double 宽)
{
int 长边除长边整数 = int.Parse(Math.Floor(长 / 1.88).ToString());
double 长边除长边余数 = Math.Round(长 % 1.88, 2);
int 短边除短边整数 = int.Parse(Math.Floor(宽 / 0.76).ToString());
double 短边除短边余数 = Math.Round(宽 % 0.76, 2);
string 整块板="", 补长边="", 补短边="", 边角="",结果="";
if (长边除长边整数>0 && 短边除短边整数>0)
{
整块板 = "1.88x0.76x" + (长边除长边整数 * 短边除短边整数).ToString();
结果 = 整块板;
}
if (长边除长边余数 > 0 && 短边除短边整数 > 0)
{
补长边 = "0.76x"+长边除长边余数.ToString() + "x"+ 短边除短边整数.ToString();
结果 = 结果 + ";" + 补长边;
}
if (短边除短边余数 > 0 && 长边除长边整数 > 0)
{
补短边 = "1.88x" + 短边除短边余数.ToString() + "x" + 长边除长边整数.ToString();
结果 = 结果 + ";" + 补短边;
}
if (长边除长边余数 > 0 && 短边除短边余数 > 0)
{
边角 = 长边除长边余数.ToString() + "x" + 短边除短边余数.ToString() + "x" + "1";
结果 = 结果 + ";" + 边角;
}
return 结果;
}