[求助]设计一个能实现把小写金额转换为大写金额的类。比如5002.30,转换为“伍仟零贰元叁角整”。并设计完整的程序进行演示。
不是发过了吗???
代码:#include<iostream>using namespace std;
void main(){char s[10]; //设置数组,最大长度为10;
cout<<"输入数字:\t";cin>>s;int i=0,l=0; //设置两个记数器;
while(s[i]=='0') //防止地第一位元素为0;{ i++;}
for(int n=i;s[n]!='.';) //变量L是为了记录该数字的位数;{ l++; n++;}
for(;s[i]!='.';i++) //整数部分{switch(s[i]) //对数字进行分类操作{case'1':cout<<"一";break;case'2':cout<<"二";break;case'3':cout<<"三";break;case'4':cout<<"四";break;case'5':cout<<"五";break;case'6':cout<<"六";break;case'7':cout<<"七";break;case'8':cout<<"八";break;case'9':cout<<"九";break;case'0': { if(s[i+1]=='.') break; else if(s[i-1]!='0') {cout<<"零";break;} }}if(s[i]!='0') //0的话不需要读出位数{switch(l) //对位数进行分类操作{case 9 :cout<<"亿";break;case 8 :cout<<"千万";break;case 7 :cout<<"百万";break;case 6 :cout<<"十万";break;case 5 :cout<<"万";break;case 4 :cout<<"千";break;case 3 :cout<<"百";break;case 2 :cout<<"十";break;default:break;}}l--;
}cout<<"元"; //最后输出单位“元”;
i++;for(n=0;s[i]!='\0';i++) //小数部分{ switch(s[i]) { case'1':cout<<"一";n++;break; case'2':cout<<"二";n++;break; case'3':cout<<"三";n++;break; case'4':cout<<"四";n++;break; case'5':cout<<"五";n++;break; case'6':cout<<"六";n++;break; case'7':cout<<"七";n++;break; case'8':cout<<"八";n++;break; case'9':cout<<"九";n++;break; case'0':n++;break; } if(s[i]!='0') //因为小数后只有两个单位; { if(n==1) cout<<"角"; else if(n==2) cout<<"分"; }}cout<<"整";cout<<endl;}