2_4.cpp
上传用户:zipjojo
上传日期:2009-07-20
资源大小:70k
文件大小:2k
源码类别:

文章/文档

开发平台:

C/C++

  1. #include <iostream.h>
  2. #include <math.h>
  3. void main()
  4. { double x,i=10000000;
  5.     int j=0;
  6. unsigned int quotient,remainder;
  7. bool beginFlag=0,zeroFlag=0;
  8. cout<<"请输入预转换数额(小于1亿):";
  9. cin>>x;
  10.     while (x>=100000000 )
  11. {
  12. if (j>=2)
  13. {
  14. cout<<"你的错误输入已达3次,你无权再输入!"<<endl;
  15.     return;
  16. }
  17. cout<<"你输入的金额超出转换范围,请重新输入!"<<endl;
  18.         cout<<"请输入预转换数额(小于1亿):";
  19.     cin>>x;
  20. j++;
  21. }
  22. if (x<=0)
  23. {
  24. cout<<"零元整"<<endl;
  25. return;
  26. }    x=floor(x*100 +0.5)/100; //小数点后2位四舍五入
  27. while (i>0.001)
  28. {
  29. if (i>0.9)
  30. quotient=(unsigned int)floor(x/i);
  31. else
  32. {
  33. if (i>=0.099)
  34. quotient=(unsigned int)floor(x*10);
  35. else
  36. quotient=(unsigned int)floor(x*100);
  37. }
  38. remainder=quotient%10;
  39. if (remainder!=0)
  40. beginFlag=1;
  41. if ((zeroFlag==1) && (beginFlag==1) && (i>1000) && (remainder>0)) 
  42. cout<<"零";
  43. switch (remainder) //输出大写数字
  44. {
  45. case 0:
  46. break;
  47. case 1:
  48. cout<<"壹";
  49. break;
  50. case 2:
  51. cout<<"贰";
  52. break;
  53. case 3:
  54. cout<<"叁";
  55. break;
  56. case 4:
  57. cout<<"肆";
  58. break;
  59. case 5:
  60. cout<<"伍";
  61. break;
  62. case 6:
  63. cout<<"陆";
  64. break;
  65. case 7:
  66. cout<<"柒";
  67. break;
  68. case 8:
  69. cout<<"捌";
  70. break;
  71. case 9:
  72. cout<<"玖";
  73. break;
  74. }
  75. if (remainder>0)
  76. zeroFlag=0;
  77. else if (beginFlag==1)
  78. zeroFlag=1;
  79. if (beginFlag==1)        //输出单位
  80. {
  81. if ((i==10000000) && (remainder>0))
  82. cout<<"仟";
  83. if ((i==1000000) && (remainder>0))
  84. cout<<"百";
  85. if ((i==100000) && (remainder>0))
  86. cout<<"十";
  87. if (i==10000)
  88. cout<<"万";
  89. if ((i==1000) && (remainder>0))
  90. cout<<"仟";
  91. if ((i==100) && (remainder>0))
  92. cout<<"百";
  93. if ((i==10) && (remainder>0))
  94. cout<<"十";
  95. if (i==1)
  96. cout<<"元";
  97. if ((i>=0.09) && (i<1) && (remainder>0))
  98. cout<<"角";
  99. if ((i>=0.009) && (i<0.1) && (remainder>0))
  100. cout<<"分";
  101. }
  102. i=i/10;
  103. }
  104. cout<<"整"<<endl;
  105. }