[求助]设计一个能实现把小写金额转换为大写金额的类。比如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;
}