1、长 春 工 业 大 学课程设计程序代码课程设计名称 运筹学课程设计 专 业 信息管理与信息系统 班 级 130506 班 学 生 姓 名 于 松 南 、 张 鑫 蕊 、赵 改 玲 、 赵 海 潮 指 导 教 师 王亚君、王忠吉 2015年 7月 3日#include#includeint m; /记录约束条件方程组的个数int n; /记录未知量的个数float M=1000000.0;float A100100; /用于记录方程组的数目和系数float C100; /用于存储目标函数中各个变量的系数float b100; /用于存储常约束条件中的常数float CB100; /用于存储基变量
2、的系数float seta100; /存放出基与入基的变化情况float cn100; /存储检验数矩阵float x100;int num100; /用于存放出基与进基变量的情况float Z=0; /记录目标函数值void shuru();void print();int mincz();int find_line(int a);void exchange(int a,int b);int main()int i,j=0;int p,q,temp; /q:换入,p:换出shuru();printf(“n-n“);printf(“ tCBtXBtbt“);for(i=0; i=0)flag=
3、1;else flag=0;break;if(flag=1)return -1;/进行到此处,说明存在cni) min=cni;k=i;return k;int find_line(int a)int i,k,j;int flag=0;float min;k=a;for(i=0; i0)setai=bi/Aik;else setai=M;min=M;for(i=0; i=setai) min=setai;j=i;numj=k+1;CBj=Ck;return j;void exchange(int p,int q)int i,j,c,l;float temp1,temp2,temp3;c=p;
4、/行号,换出l=q; /列号,换入temp1=Acl; /Acl主元bc=bc/temp1;for(j=0; jn; j+)Acj=Acj/temp1; /主元化为 1for(i=0; im; i+) if(i!=c)if(Ail!=0) temp2=Ail;bi=bi-bc*temp2;/主元所在列,其余元素化为 0for(j=0; jn; j+)Aij=Aij-Acj*temp2;temp3=cnl;for(i=0; in; i+)cni=cni-Aci*temp3;void print()int i,j=0;printf(“n-n“);for(i=0; im; i+) printf(“%
5、8.2ftX(%d) %8.2f “,CBi,numi,bi);for(j=0; jn; j+)printf(“%8.2f “,Aij);printf(“n“);printf(“n-n“);printf(“ttt“);for(i=0; in; i+)printf(“ %8.2f“,cni);printf(“n-n“);void shuru()int i,j; /循环变量int k;printf(“请输入线性规划问题的约束条件个数 M:“);scanf(“%d“,printf(“请输入线性规划问题的决策变量个数 N:“);scanf(“%d“,printf(“n 请输入方程组的系数矩阵 A(%d 行%d 列):n“,m,n);for(i=0; im; i+)for(j=0; jn; j+)scanf(“%f“,printf(“n 请输入初始基变量的数字代码矩阵 :n“);for(i=0; im; i+)scanf(“%d“,printf(“n 请输入方程组右边的值矩阵 b:n“);for(i=0; im; i+)scanf(“%f“,printf(“n 请输入目标函数各个变量的系数所构成的系数阵 C:n“);for(i=0; in; i+)scanf(“%f“,for(i=0; in; i+)cni=-Ci;for(i=0; im; i+) k=numi-1;CBi=Ck;