灵敏度分析C#程序代码.docx

上传人:b****3 文档编号:4972189 上传时间:2022-12-12 格式:DOCX 页数:14 大小:18.15KB
下载 相关 举报
灵敏度分析C#程序代码.docx_第1页
第1页 / 共14页
灵敏度分析C#程序代码.docx_第2页
第2页 / 共14页
灵敏度分析C#程序代码.docx_第3页
第3页 / 共14页
灵敏度分析C#程序代码.docx_第4页
第4页 / 共14页
灵敏度分析C#程序代码.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

灵敏度分析C#程序代码.docx

《灵敏度分析C#程序代码.docx》由会员分享,可在线阅读,更多相关《灵敏度分析C#程序代码.docx(14页珍藏版)》请在冰豆网上搜索。

灵敏度分析C#程序代码.docx

灵敏度分析C#程序代码

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

namespace灵敏度分析尝试

{

publicpartialclassForm1:

Form

{

publicForm1()

{

InitializeComponent();

}

publicbooljiansuo(doublex,double[]y)

{

boolcunzai=false;;

for(inti=0;i

if(y[i]==x)

cunzai=true;

returncunzai;

}

publicdoubleqiumax(Listarray)

{

doublemax=-9999;

for(inti=0;i

{

if(array[i]>max)

max=array[i];

}

returnmax;

}

publicdoubleqiumin(Listarray)

{

doublemin=9999;

for(inti=0;i

{

if(array[i]

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;i

for(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;i

if(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;j

if(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;j

if(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;i

z=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)

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

当前位置:首页 > 法律文书 > 调解书

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

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