min=array[i];
}
returnmin;
}
privatevoidbutton1建立表格_Click(objectsender,EventArgse)
{
if(dataGridView1.Columns.Count>0||dataGridView2.Columns.Count>0||dataGridView3.Columns.Count>0||dataGridView4.Columns.Count>0||dataGridView5.Columns.Count>0)
{
dataGridView1.Columns.Clear();
dataGridView2.Columns.Clear();
dataGridView3.Columns.Clear();
dataGridView4.Columns.Clear();
dataGridView5.Columns.Clear();
}
if(dataGridView1.Rows.Count>0||dataGridView2.Rows.Count>0||dataGridView4.Rows.Count>0||dataGridView5.Rows.Count>0)
{
dataGridView1.Rows.Clear();
dataGridView2.Rows.Clear();
dataGridView3.Rows.Clear();
dataGridView4.Rows.Clear();
dataGridView2.Rows.Clear();
}
intm,n;
m=int.Parse(textBox1production.Text);//m=3
n=int.Parse(textBox2resource.Text);//n=3
for(inti=1;i<=m+n;i++)
{
dataGridView5.Columns.Add("","C"+i.ToString());
}
for(inti=1;i<=m+n;i++)
{
dataGridView4.Columns.Add("","X"+i.ToString());
}
dataGridView4.Rows.Add(n+1);
dataGridView3.Columns.Add("","C");
dataGridView1.Columns.Add("","Cb");
dataGridView1.Columns.Add("","Xb(下标)");
dataGridView1.Columns.Add("","B-1b");
dataGridView1.Rows.Add(n);
dataGridView2.Columns.Add("","C");
dataGridView2.Rows.Add
(1);
}
privatevoidsplitContainer3_SplitterMoved(objectsender,SplitterEventArgse)
{
}
privatevoidsplitContainer6_Panel2_Paint(objectsender,PaintEventArgse)
{
}
privatevoidbutton1产品_Click(objectsender,EventArgse)
{
double[]Xb=newdouble[dataGridView1.Rows.Count];//用于存放Xb的下标;
for(inti=0;i{
if(dataGridView1.Rows[i].Cells[1].Value!
=null)
Xb[i]=double.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString());
}
double[,]A=newdouble[dataGridView4.Rows.Count,dataGridView4.Columns.Count];//A矩阵存放后面的
for(inti=0;ifor(intj=0;j{
if(dataGridView4.Rows[i].Cells[j].Value!
=null)
A[i,j]=double.Parse(dataGridView4.Rows[i].Cells[j].Value.ToString());
}
intpro=0;
if(textBox3输入产品.Text!
="")
pro=int.Parse(textBox3输入产品.Text);
if(pro<=0||pro>int.Parse(textBox1production.Text)+int.Parse(textBox2resource.Text))
MessageBox.Show("输入的数据必须大于0小于产品总数+资源数!
请重新输入!
");
else
{
if(jiansuo(pro,Xb))
{
Listzuo=newList();
Listyou=newList();
doublezuomax=0,youmin=0;
for(intj=0;j{
if(pro==Xb[j])//pro是基变量,且第i列是非基变量
{
for(inti=0;i(1);i++)
{
if(jiansuo(i+1,Xb)==false)
{
doubleshang=0;
if(A[j,i]>0)
{
shang=A[A.GetLength(0)-1,i]/A[j,i];
zuo.Add(Math.Round(shang,2));//非基变量的检验数除以Cj(j就是pro)对应的变量Xj那一行
}
if(A[j,i]<0)
{
shang=A[A.GetLength(0)-1,i]/A[j,i];
you.Add(Math.Round(shang,2));
}
}
}
}
}
if(zuo.Count>0)
zuomax=qiumax(zuo);
if(you.Count>0)
youmin=qiumin(you);
if(zuo.Count==0&&you.Count==0)
textBox1产品结果.Text="";
if(zuo.Count>0&&you.Count==0)
textBox1产品结果.Text="产品"+pro+"的变化量>="+Convert.ToString(zuomax);
if(zuo.Count==0&&you.Count>0)
textBox1产品结果.Text="产品"+pro+"的变化量<="+Convert.ToString(youmin);
if(zuo.Count>0&&you.Count>0)
textBox1产品结果.Text="产品"+pro+"的变化范围为"+Convert.ToString(zuomax)+"到"+Convert.ToString(youmin);
}
if(jiansuo(pro,Xb)==false)
{
inthangbiao=dataGridView4.Rows.Count-1;
if(dataGridView4.Rows[hangbiao].Cells[pro-1].Value!
=null)
{
doublejieguo=-(double.Parse(dataGridView4.Rows[hangbiao].Cells[pro-1].Value.ToString()));
textBox1产品结果.Text="产品"+pro+"的变化量<="+Convert.ToString(jieguo);
}
}
}
}
privatevoidbutton资源计算_Click(objectsender,EventArgse)
{
double[]B_1b=newdouble[dataGridView1.Rows.Count];//用于存放B-1b列;
for(inti=0;i{
if(dataGridView1.Rows[i].Cells[2].Value!
=null)
B_1b[i]=double.Parse(dataGridView1.Rows[i].Cells[2].Value.ToString());
}
intRes=0;
if(textBox3输入资源.Text!
="")
Res=int.Parse(textBox3输入资源.Text);
if(Res<=0||Res>int.Parse(textBox2resource.Text))
MessageBox.Show("输入的数据必须大于0小于等于资源数!
请重新输入!
");
else
{
double[]Xnaddi=newdouble[dataGridView4.Rows.Count-1];//用于存放Xnaddi列
for(inti=0;iif(dataGridView4.Rows[i].Cells[int.Parse(textBox1production.Text)+Res-1].Value!
=null)
Xnaddi[i]=double.Parse(dataGridView4.Rows[i].Cells[int.Parse(textBox1production.Text)+Res-1].Value.ToString());
doubleshang=0;
Listzuo=newList();
Listyou=newList();
doublezuomax=0,youmin=0;
for(inti=0;i{
if(Xnaddi[i]>0)
{
shang=-(B_1b[i])/Xnaddi[i];
zuo.Add(Math.Round(shang,2));//非基变量的检验数除以Cj(j就是pro)对应的变量Xj那一行
}
if(Xnaddi[i]<0)
{
shang=-(B_1b[i])/Xnaddi[i];
you.Add(Math.Round(shang,2));
}
}
if(zuo.Count>0)
zuomax=qiumax(zuo);
if(you.Count>0)
youmin=qiumin(you);
if(zuo.Count==0&&you.Count==0)
textBox2资源结果.Text="";
if(zuo.Count>0&&you.Count==0)
textBox2资源结果.Text="资源"+Res+"的变化量>="+Convert.ToString(zuomax);
if(zuo.Count==0&&you.Count>0)
textBox2资源结果.Text="资源"+Res+"的变化量<="+Convert.ToString(youmin);
if(zuo.Count>0&&you.Count>0)
textBox2资源结果.Text="资源"+Res+"的变化范围为"+Convert.ToString(zuomax)+"到"+Convert.ToString(youmin);
}
}
privatevoidbutton1影子价格_Click(objectsender,EventArgse)
{
intm;
m=Convert.ToInt32(textBox1production.Text);
intn;
n=Convert.ToInt32(textBox2resource.Text);
double[]Aend=newdouble[dataGridView4.Columns.Count];//A矩阵存放后面的
for(intj=0;jif(dataGridView4.Rows[dataGridView4.Rows.Count-1].Cells[j].Value!
=null)
Aend[j]=double.Parse(dataGridView4.Rows[dataGridView4.Rows.Count-1].Cells[j].Value.ToString());
intresource=0;
if(textBox1输入资源.Text!
="")
{
resource=int.Parse(textBox1输入资源.Text);
if(resource<=0||resource>n)
MessageBox.Show("输入的数据必须大于0小于等于资源数!
请重新输入!
");
if(resource>0&&resource<=n)
{
intresource111=resource+m-1;
doubleyinzi=Math.Abs(Aend[resource111]);
textBox2影子价格.Text="资源"+resource111+"的影子价格为"+Convert.ToString(yinzi);
}
}
}
privatevoidtextBox1影子价格_TextChanged(objectsender,EventArgse)
{
}
privatevoidbuttonNewSet_Click(objectsender,EventArgse)
{
if(dataGridView6.Rows.Count>0||dataGridView6.Columns.Count>0)
{
dataGridView6.Rows.Clear();
dataGridView6.Columns.Clear();
}
dataGridView6.Columns.Add("","单位利润");
for(inti=1;i<=int.Parse(textBox2resource.Text);i++)
dataGridView6.Columns.Add("","消耗资源"+i.ToString());
dataGridView6.Rows.Add
(1);
}
privatevoidsplitContainer9_Panel1_Paint(objectsender,PaintEventArgse)
{
}
privatevoidbuttonCount_Click(objectsender,EventArgse)
{
intm,n;
m=int.Parse(textBox1production.Text);//m=3
n=int.Parse(textBox2resource.Text);//n=3
double[]A=newdouble[n];//A矩阵存放后面的
for(intj=0;jif(dataGridView4.Rows[dataGridView4.Rows.Count-1].Cells[j+m].Value!
=null)
A[j]=Math.Abs(double.Parse(dataGridView4.Rows[dataGridView4.Rows.Count-1].Cells[j+m].Value.ToString()));
double[]XbN=newdouble[n+1];
for(inti=0;i{
if(dataGridView6.Rows[0].Cells[i].Value!
=null)
XbN[i]=double.Parse(dataGridView6.Rows[0].Cells[i].Value.ToString());
}
doublez=XbN[0];
for(inti=0;iz=z-A[i]*XbN[i+1];
if(z>0)
textBox1.Text="生产该商品盈利";
else
textBox1.Text="生产该商品亏本";
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
inti=0,j=0;
if(textBox6i.Text!
=""&&textBox5j.Text!
="")
{
i=int.Parse(textBox6i.Text);
j=int.Parse(textBox5j.Text);
}
if(j<=0||j>(int.Parse(textBox1production.Text)+int.Parse(textBox2resource.Text))||i<=0||i>int.Parse(textBox2resource.Text))
MessageBox.Show("输入的产品必须大于0小于产品总数+资源数;输入的资源必须大于0小于资源数!
请输入正确的数字!
");
else
{
doubleshang=0;
double[]Azuihouyihang=newdouble[dataGridView4.Columns.Count];
for(intn=0;n{
if(dataGridView4.Rows[dataGridView4.Rows.Count-1].Cells[n].Value!
=null)
Azuihouyihang[n]=double.Parse(dataGridView4.Rows[dataGridView4.Rows.Count-1].Cells[n].Value.ToString());
}
doublex=Azuihouyihang[int.Parse(textBox1production.Text)+i-1];
doubley=Azuihouyihang[j-1];
if(Math.Abs(x)>0)
{
i=int.Parse(textBox6i.Text);
j=int.Parse(textBox5j.Text);
shang=y/Math.Abs(x);
textBox4Aij结果.Text="A"+i+j+"的变化量>="+Convert.ToString(Math.Round(shang,2));
i=int.Parse(textBox6i.Text);
j=int.Parse(textBox5j.Text);
}
else
textBox4Aij结果.Text="A"+i+j+"的变化量为"+"R";
}
}
privatevoidbutton1产品计算_Click(objectsender,EventArgse)