程序实践设计报告.doc_第1页
程序实践设计报告.doc_第2页
程序实践设计报告.doc_第3页
程序实践设计报告.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序实践设计报告自动化072班 许云 0702100208一、题目计算基尼系数基本数据:广西2008年度全区在岗职工年平均工资25660元,月平均工资为2138元。2008年南宁市均工资26142元,市月均工资2718.5元。南宁市最低工资标准670元(自2008年8月起执行)(年工资12*670=8040元)。据2009年02月06日广西新闻网-南国早报:“2008年南宁市各行业间就业者收入差距有所扩大,人均就业收入最高收入行业是最低收入行业的8.4倍(去年为5.5倍),这是记者2月5日从国家统计局南宁调查队获悉的消息。”题目:随机生成100个人的年工资(8040元30万元),并使平均工资接近于26142元,再计算基尼系数。附:基尼系数基本知识及计算方法20世纪初意大利经济学家基尼,根据洛伦茨曲线找出了判断分配平等程度的指标(如右图所示)。设实际收入分配曲线和收入分配绝对平等曲线之间的面积为A,实际收入分配曲线右下方的面积为B。并以A除以A+B的商表示不平等程度。这个数值被称为基尼系数或称洛伦茨系数。如果A为0,基尼系数为0,表示收入分配完全平等;如果B为0则系数为1,收入分配绝对不平等。该系数可在0和1之间取任何值。收入分配越是趋向平等,洛伦茨曲线的弧度越小,基尼系数也越小,反之,收入分配越是趋向不平等,洛伦茨曲线的弧度越大,那么基尼系数也越大。如果个人所得税能使收入均等化,那么,基尼系数即会变小。联合国有关组织规定:若低于0.2表示收入绝对平均;0.2-0.3表示比较平均;0.3-0.4表示相对合理;0.4-0.5表示收入差距较大;0.6以上表示收入差距悬殊。基尼系数的国际警戒标准是0.4。基尼系数的直接计算方法如下:其中:u平均收入,n总人数,Y个人收入。二、概要设计在Microsoft Visual C+ 6.0的平台上,通过C语言将基尼系数的计算公式翻译成计算机可编译执行的代码,并随机生成题目所要求的100个人的工资样本,作为模拟计算基尼系数的实际参数。整个过程在编写代码时预先设计完成,执行代码就可直接得到符合题目要求的结果。三、详细设计 程序代码功能概要:(1) 随机生成100个人的工资样本(使用“while”语句使得平均工资接近于26142元), 并计算该样本的平均值。(2) 查找资料简化基尼系数计算公式,并按照简化算法对100个人的工资进行升序排列,然后先进行求和的计算,最终再进行剩下的计算。(3) 显示程序执行结果。附基尼系数计算公式简化算法:第一步,分解 n n | j=1 i=1YjYi设将收入按从低到高排列Y1、Y2、Yn,则上式可以分解为矩阵A:Y1 Y2 Yn1 YnY1Y2Yn1Yn 0 Y2Y1 Yn1Y1 YnY1Y2Y1 0 Yn1Y2 YnY2 Yn1Y1 Yn1Y2 0 YnYn1YnY1 YnY2 0将矩阵中各项加总得到:2(n1)Yn(n2)Yn1Y2(n1)Y1(n2)Y2Yn1 2(n1)Yn(n3)Yn1(n5)Yn2(1n)Y2(n1)Y1第二步,计算 1 2n2u 取样本均值u= Y1Y2Yn n = nYi n 1 2n2u 1 2n nYi 综上,第一步、第二步,得到G 1 n nYi (n1)Yn(n3)Yn1(n5)Yn2(1n)Y2(n1)Y1四、效果及存在问题代码编译没有出现问题,执行后得到符合题目要求的数据结果。五、心得体会这次程序实践设计的题目的主要难点在于如何通过代码实现利用计算机强大的计算能力来计算基尼系数。起初直接对题目所给公式进行计算,结果发现出错,而且找不到代码错误的地方。之后通过查找有关资料,另外找到了简化该公式的证明步骤,并得到易于进行编写代码的基尼系数计算公式。虽然此次题目难度不大,但是编写代码的过程对于我是再一次学习认识C语言的过程,也是一次熟悉算法、操作、编程步骤的过程。计算机的优势在于可以通过简单的计算机语言实现复杂繁琐的数学计算,将现实世界的复杂多样性较为准确的映射到计算机中。程序设计一般经过需求分析、概要设计、详细设计、软件编码、软件测试、软件维护几个步骤。通过实践,我熟悉了以上一个步骤,一定程度提高了动手能力。在以后的学习中,我不仅得继续学习各种常用代码的使用方法和编程、调试经验,最重要的是还得发散自己的思维,力求能够创造出更短更实用更优化的代码,这也是每个程序员的终极追求,是这次程序实践带给我的最大收获。六、程序代码#include#include#include#includevoid main()int a100,i,j,k,sum(0),u,s,t;srand(unsigned)time(NULL);/使生成的随机数每次都不相同while( u26200 )/使样本的平均工资接近于26142元for(i=0;i100;i+)ai=rand()%291961+8040;/在8040300000的范围内随机生成100个样本sum=sum+ai;/100个样本求和u=sum/100;/求平均工资for(i=0;i100;i+)/利用两重循环将100个人的工资升序排列 for(j=i+1;j100;j+) if(aiaj) t=ai; ai=aj; aj=t; for(i=0;i99;i+)/根据化简的公式分步计算基尼系数s=s+(100-i)*a100-i; for(i=0;i99;i+)/根据化简的公式分步计算基尼系数k=k+(100-i)*ai; cout平均工资为:uendl;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论