大众信息网

建立数学模型分析如何改革收入分配制度以体现社会公平。

关注:283  答案:2  手机版
解决时间 2021-02-23 07:54
建立数学模型分析如何改革收入分配制度以体现社会公平。
最佳答案
悲剧啊,去也在找答案!我也在找答案!
全部回答
4.模型的程序实现 对于物资分配问题,用软件来实现,其流程如下: 所以程序主要分为三个模块:数据读入模块;分配处理模块和结果保存输出模块。 4.1数据读入模块代码: 定义对象cdaodatabase m_db;用于数据库操作。定义全局变量m_applyarray、m_galleryarray、m_distributionarray,分别用于保存申请计划信息、库存信息和分配结果输出信息。定义全局变量float class[10];用于保存各个优先级类的权系数变量。 在读写数据库前,首先要打开数据库。 //打开数据库 if(m_db.isopen())m_db.close();m_db.open("数据库名"); 读取申请数据、物资库存数据,并将单位信息存储到结果输出m_distributionarray结构中。 cdaorecordset m_set(&m_db);colevariant var; m_set.open(dbopendynaset,"select * from apply"); m_applyarray.removeall(); m_distributionarray.removeall(); while(!m_set.iseof()) { apply* m_apply= =new apply; distribution *m_distribution=new distribution; var = m_set.getfieldvalue(0); m_apply ->code=var.intval; m_distribution->code=var.intval; var = m_set.getfieldvalue(1); m_apply ->name=ccrack::strvariant(var); m_distribution->name=m_apply ->name; var = m_set.getfieldvalue(2); m_apply ->class=var.intval; var = m_set.getfieldvalue(3); m_apply ->nq1= var.fltval; var = m_set.getfieldvalue(4); m_apply ->nq2= var.fltval; … var = m_set.getfieldvalue(i+2); m_apply ->nqi= var.fltval; m_applyarray.add(m_apply); m_distributionarray.add(m_distribution); m_set.movenext(); } m_set.close(); m_set.open(dbopendynaset,"select * from gallery"); while(!m_set.iseof()) { gallery* m_gallery = =new gallery; var = m_set.getfieldvalue(0); m_gallery ->code=var.intval; var = m_set.getfieldvalue(1); m_gallery ->name=ccrack::strvariant(var); var = m_set.getfieldvalue(2); m_gallery ->sq1=var.fltval; var = m_set.getfieldvalue(3); m_gallery ->sq2= var.fltval; … var = m_set.getfieldvalue(i+1); m_gallery ->sqi= var.fltval; var = m_set.getfieldvalue(i+2); m_gallery ->rq1=var.fltval; var = m_set.getfieldvalue(i+3); m_gallery ->rq2= var.fltval; … var = m_set.getfieldvalue(2i+1); m_gallery ->rqi= var.fltval; m_galleryarray.add(m_gallery); m_set.movenext(); } m_set.close(); if(m_db.isopen())m_db.close(); 4.2物资分配模型主要函数 ①第种物资的总申请量函数为 float q() { float q=0;//对第 种物资的总申请量 int a=m_applyarray.getsize(); for(int j=0;jnqi;} return q; } ②第种物资的总可供量函数为 float s() {float s=0; //第 种物资的总可供量 a=m_applyarray.getsize(); for(j=0;jsqi-m_gallery->rqi; } } ③分配算法主函数: 由于我们考虑到实际应用中,不同情况下会有不同的分配原则(讨论如前),所以软件应该允许用户根据实际情况灵活选择分配方法。我们定义一个全局变量int method;它的取值为1、2、3、4,分别表示用户采用按照满足单位最多的原则、按照申请比例进行分配的原则、按优先级逐级保障分配法、按优先级削减分配法四种分配方法。对应的分配函数为disfunciont1()、disfunciont2()、disfunciont3()、disfunciont4(). void distribution() { float s=s();float q=q(); if(s>=q) {//各单位分得的物资量等于其申请量 int a=m_distributionarray.getsize(); int b=m_applyarray.getsize(); for(int i=0;icode; for(int j=0;jcode;) m_distributionarray.getat(i)->dqi =m_applyarray.getat(j)->nqi } } }else { if(method==1) disfunciont1();else if(method==2) disfunciont2();else if(method==3) disfunciont3();else if(method==4) disfunciont4();else ::afxmessagebox("出错啦!"); } } 四个分配函数的模型前面已经讨论过了,这里就不一一写出代码了。 4.3分配结果数据存储模块 //打开数据库 if(m_db.isopen())m_db.close();m_db.open("数据库名"); cstring strsql; int a=m_distributionarray.getsize(); for(int i=0;icode, m_distributionarray.getat(i)->name, m_distributionarray.getat(i)->dq1, m_distributionarray.getat(i)->dq2,…, m_distributionarray.getat(i)->dqi); m_db.execute(strsql); } if(m_db.isopen())m_db.close(); 把上述函数打包成模块,可以在需要的时候调用用于保存分配结果数据。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!