高手进!!!!!!!!
apm80 2007-08-20 08:43:08 没写完,不知道错在什么地方?
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
class moneyChange
{
private:
char *cMoney;
char *money;
char *dot;
public:
moneyChange(char *tMoney);
void moneyGet();
void moneyGet(char *tMoney);
void moneyPut();
void run();
char *comChange();
char *intChange();
char *floChange();
};
moneyChange::moneyChange(char *tMoney)
{
money=tMoney;
}
void moneyChange::moneyGet()
{
cout<<"请输入钱的数目:";
cin>>money;
}
void moneyChange::moneyGet(char *tMoney)
{
money=tMoney;
}
void moneyChange::moneyPut()
{
cout<<"转换后的结果是:"<<cMoney<<endl;
}
void moneyChange::run()
{
while(*money=='0'&&*(money+1)!='.')
money=money+1;
if(dot=strchr(money,'.'))
if(*(dot-1)=='0'&&*money=='0')
cMoney=floChange();
else
cMoney=comChange();
else
cMoney=intChange();
}
char *moneyChange::comChange()
{
int fig;
char *sig;
fig=strlen(money)-3;
free(cMoney);
for(int i=0;cMoney[i]!='元';i++)
{
switch(money[i])
{
case '1': cMoney[i]='壹';break;
case '2': cMoney[i]='贰';break;
case '3': cMoney[i]='叁';break;
case '4': cMoney[i]='肆';break;
case '5': cMoney[i]='伍';break;
case '6': cMoney[i]='陆';break;
case '7': cMoney[i]='柒';break;
case '8': cMoney[i]='捌';break;
case '9': cMoney[i]='玖';break;
case '0': cMoney[i]='零';break;
}
switch(fig--)
{
case 1:
cMoney[++i]='元';break;
case 2: case 6: case 10:
cMoney[++i]='拾';break;
case 3: case 7: case 11:
cMoney[++i]='佰';break;
case 4: case 12: case 8:
cMoney[++i]='仟';break;
case 5:
cMoney[++i]='万';break;
case 9:
cMoney[++i]='亿';break;
case 13:
cMoney[++i]='兆';break;
}
}
if(*cMoney=='壹'&&*(cMoney+1)=='拾')
cMoney=cMoney+1;
sig=strchr(cMoney,'元')+1;
for(int j=0;j<strlen(dot)-1;j++)
{
switch(dot[j])
{
case '1': sig[j]='壹';break;
case '2': sig[j]='贰';break;
case '3': sig[j]='叁';break;
case '4': sig[j]='肆';break;
case '5': sig[j]='伍';break;
case '6': sig[j]='陆';break;
case '7': sig[j]='柒';break;
case '8': sig[j]='捌';break;
case '9': sig[j]='玖';break;
case '0': sig[j]='零';break;
}
switch(j)
{
case 0: sig[j]='角';sig[j+1]='\0';break;
case 1: sig[j]='分';sig[j+1]='\0';break;
}
}
if(*sig=='零'&&*(sig+1)=='角')
{
*(sig+1)=*(sig+2);
*(sig+2)=*(sig+3);
*(sig+3)='\0';
}
return cMoney;
}
char *moneyChange::intChange()
{
}
char *moneyChange::floChange()
{
}
void main()
{
moneyChange red;
red.moneyGet();
red.moneyPut();
}