该程序是在VS2005编写的,所以想看效果,最好用VS2005进行编译。
很多时候,老师会让学生写这样一些题目,我遇到过这样的事,用很多语言,包括脚本语言写过,下面是C#实现的代码,缺陷是有的,希望发现的网友提出宝贵的意见!谢谢!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace 货币转换
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
string Str = this.textBox1.Text;
Boolean flag= true;
string strArr = "";
char [] strAr=strArr.ToCharArray();
string[] zheng = Str.Split('.');
for (int i = 0; i < zheng[0].Length - 1; i++)
{
char cha0 = char.Parse(zheng[0].Substring(i, 1));
if ('0' > cha0 || cha0 > '9')
{
MessageBox.Show("请你正确输入!");
this.textBox1.Text = "";
flag = false;
}
}
if (flag == true && double.Parse(this.textBox1.Text) != Convert.ToInt64(double.Parse(this.textBox1.Text)))
for ( int i = 0; i < zheng[1].Length - 1; i++)
{
char cha0 = char.Parse(zheng[1].Substring(i, 1));
if ('0' > cha0 || cha0 > '9')
{
MessageBox.Show("请你正确输入!");
this.textBox1.Text = "";
flag = false;
}
}
if (flag)
{
this.label1.Text = MoneyNumtoCap(Str);
}
}
private void button2_Click(object sender, EventArgs e)
{
this.textBox1.Text = "";
this.label1.Text = "";
Capstr = "";
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
this.textBox1.Text = "";
this.label1.Text = "";
}
private string Capstr;/
public string MoneyNumtoCap(string str)
{
string Cap = "零壹贰叁肆伍陆柒捌玖";
string Numstr = "0123456789";
string MoneyNumstr = str;
int Pint = MoneyNumstr.IndexOf(".");
int Numint;
string Moneyint = null;
string Moneydec = null;
string Intstr = null;
string MoneyCap = null;
string Moneyintstr = null;
string Moneydecstr = null;
// Capstr=Pint.ToString();
if (Pint != -1)
{
string strArr = ".";
char[] charArr = strArr.ToCharArray();
string[] MoneyNumArr = MoneyNumstr.Split(charArr);
Moneyint = MoneyNumArr[0].ToString();
Moneydec = MoneyNumArr[1].ToString();
}
else
{
Moneyint = MoneyNumstr;
Moneydec = "00";
}
if (Moneyint.Length > 16)
{
MessageBox.Show("数值超界");
}
else
{
//--- 处理整数部分--------
for (int j = 1; j <= Moneyint.Length; j++)
{
Moneyintstr = Moneyint.Substring(j - 1, 1);
for (int i = 0; i <= 9; i++)
{
Intstr = Numstr.Substring(i, 1);
MoneyCap = Cap.Substring(i, 1);
if (Moneyintstr == Intstr)
{
switch (Intstr)
{
case "0":
Capstr = Capstr + MoneyCap;
break;
case "1":
Capstr = Capstr + MoneyCap;
break;
case "2":
Capstr = Capstr + MoneyCap;
break;
case "3":
Capstr = Capstr + MoneyCap;
break;
case "4":
Capstr = Capstr + MoneyCap;
break;
case "5":
Capstr = Capstr + MoneyCap;
break;
case "6":
Capstr = Capstr + MoneyCap;
break;
case "7":
Capstr = Capstr + MoneyCap;
break;
case "8":
Capstr = Capstr + MoneyCap;
break;
case "9":
Capstr = Capstr + MoneyCap;
break;
}
}
}
Numint = Moneyint.Length - j + 1;
switch (Numint)
{
case 16:
Capstr = Capstr + "仟万";
break;
case 15:
Capstr = Capstr + "佰万";
break;
case 14:
Capstr = Capstr + "拾万";
break;
case 13:
Capstr = Capstr + "万";
break;
case 12:
Capstr = Capstr + "仟";
break;
case 11:
Capstr = Capstr + "佰";
break;
case 10:
Capstr = Capstr + "拾";
break;
case 9:
Capstr = Capstr + "亿";
break;
case 8:
Capstr = Capstr + "仟";
break;
case 7:
Capstr = Capstr + "佰";
break;
case 6:
Capstr = Capstr + "拾";
break;
case 5:
Capstr = Capstr + "万";
break;
case 4:
Capstr = Capstr + "仟";
break;
case 3:
Capstr = Capstr + "佰";
break;
case 2:
Capstr = Capstr + "拾";
break;
case 1:
Capstr = Capstr + "元";
break;
}
}
//------处理小数部分-----
for (int j = 1; j <= Moneydec.Length; j++)
{
Moneydecstr = Moneydec.Substring(j - 1, 1);
for (int i = 0; i <= 9; i++)
{
Intstr = Numstr.Substring(i, 1);
MoneyCap = Cap.Substring(i, 1);
if (Moneydecstr == Intstr)
{
switch (Intstr)
{
case "0":
Capstr = Capstr + MoneyCap;
break;
case "1":
Capstr = Capstr + MoneyCap;
break;
case "2":
Capstr = Capstr + MoneyCap;
break;
case "3":
Capstr = Capstr + MoneyCap;
break;
case "4":
Capstr = Capstr + MoneyCap;
break;
case "5":
Capstr = Capstr + MoneyCap;
break;
case "6":
Capstr = Capstr + MoneyCap;
break;
case "7":
Capstr = Capstr + MoneyCap;
break;
case "8":
Capstr = Capstr + MoneyCap;
break;
case "9":
Capstr = Capstr + MoneyCap;
break;
}
}
}
switch (j)
{
case 1:
Capstr = Capstr + "角";
break;
case 2:
Capstr = Capstr + "分";
break;
}
}
}
return Capstr;
}
}
}