AXzhz

专注ASP.NET!
        写软件的都是小姐,用软件的都是大爷。真TMD说的正确!
                嫖妓不给钱,反说被强奸!___中国共享软件的无奈!
读小学的时候大学不要钱,读大学了小学不要钱。
没工作时国家有分福利房,工作了后全是高价房!!

                        此软件能有效的破解QQ密码。(注:破解QQ密码是违法行为,请不要将软件用于违法行为)
“安得广厦千万间,大庇天下寒士俱欢颜,风雨不动安如山。”1200多年前,诗人杜甫的理想,如今被一帮享受着电脑和互联网带来的快捷生活方式的受过高等教育的大孩子憧憬着。

统计

常用链接

留言簿

积分与排名

.NET学习网址

English

Novel/eBook

非编程类

工具箱

极具价值的链接

阅读排行榜

评论排行榜

数字转换为大写人民币(附源码)_AX

【咳咳】注意了,这个也是一道笔试题.今天新安装了VS2005,拿它开刀,竟然发现不是想像中那么简单.
【分析】
①用if...else.........是编程的吗?你
②用swtch,我当初就这些写的,常规方法,结果笔试失败!!
③刚刚想到的,用枚举+for
④................还没想到,期待你的发散思维
【思路】
枚举类型学编程的都学过,但感觉不是很常用,以至于我们都忽略了它的存在,今天终于轮到它表现了.
用两个枚举类型,把1,2,3转化为壹,贰,叁     另一个存放{圆,拾,佰.....}
通过for语句判断具体的单位
【处理的问题及总结】
①定义枚举类(下个帖子具体分析一下其中的一个Bug)
②字符串相连  【+=】  具体是怎么连?
string s="AX"; 
    s+="zhz";     //等价于   s=s+"zhz";   而非  s="zhz"+s
基础不扎实啊,..惭愧...
字符转化为数字问题,头一次遇到.
从下图,我们可以清楚的看出:
Convert.ToInt32()不会转化字符,或者说它把字符转化为了ASCII码中对应的号,,,但是在开发环境中提示可以有char类型的参数,因为程序中用到了char类型的参数,才偶然发现这个问题



【源码】

 1using System;
 2using System.Data;
 3using System.Configuration;
 4using System.Web;
 5using System.Web.Security;
 6using System.Web.UI;
 7using System.Web.UI.WebControls;
 8using System.Web.UI.WebControls.WebParts;
 9using System.Web.UI.HtmlControls;
10
11
12/*只做简单实现,没有对输入进行验证是否合法(非法字符/长度等)*/
13public partial class _Default : System.Web.UI.Page 
14{
15    protected void Page_Load(object sender, EventArgs e)
16    {
17    }

18    //定义一个枚举类型:数字    
19    enum Number
20    {
21        零,壹, 贰, 叁, 肆, 伍, 陆, 柒, 捌, 玖
22    }

23    //定义一个枚举类型:单位
24    enum UnitPrice_AX_Made_In_China
25    {
26        圆,拾,佰,仟,万
27    }

28    protected void btnSubmit_Click(object sender, EventArgs e)
29    {
30        //把输入的数字打散(txtNumber是一个文本框,用来输入数字)
31        char[] n =(this.txtNumber.Text).ToCharArray();
32        //用来存放显示结果
33        string show = "";
34        for (int i = 0; i <n.Length; i++)
35        {
36            //show+=k  等价于  show=show+k  ,不是我想要的字符串连接
37            show = ((Number)(Convert.ToInt32(n[n.Length - i-1].ToString()))).ToString()+((UnitPrice_AX_Made_In_China)i).ToString()+show;
38        }

39        //lbShow是一个Lable,用来输出结果
40        this.lbShow.Text=show;
41    }

42}

少帮主的斧头好久不饮血了!

posted on 2006-10-26 19:24 斧头帮少帮主 阅读(2653) 评论(23)  编辑 收藏 网摘 所属分类: 经验总结

评论

#1楼  2006-10-27 18:06 David      

为什么要用 char[] 呢?
怎么所有人都喜欢在一行代码里面写完所有的东西呢?
:),几个问题而已。
不过,还是不错,挺简单的。   回复  引用  查看    

#2楼 [楼主] 2006-10-28 09:56 斧头帮少帮主      

不是为什么用char[],而是必须用,因为ToCharArray()这个方法返回的是char[],当然,你也可以对用户输入的数字进行其它字符串操作,但可能要用到循环,比较复杂,效率也不是很高,既然有这个方法了为什么不用????

如果这句话不写在一行里,有点麻烦.
show =数字+单位+show;//从"圆"开始的
如果写成两行,
show=单位+show;
show=数字+show;
也是可以的,当时没想到....
至于这么长,还不是类型转换惹的祸!!~


  回复  引用  查看    

#3楼  2006-10-28 13:15 David      

但你还不是用到了循环?好像也不复杂呀?
string本不就是一个char[]?呵呵,可能我搞错了。
不过能分开写还是挺好的呀。:)   回复  引用  查看    

#4楼 [楼主] 2006-10-30 11:15 斧头帮少帮主      

@David
string本不就是一个char[]?呵呵,可能我搞错了。
5555555555都哭了,你没搞错.
刚才测试了一下,可以取字符串的索引.

string s="AX";
Console.WriteLine(s[1]);

输出结果是:X
【看来把它转化为字符数组是多此一举了!!!!】
  回复  引用  查看    

#5楼  2006-11-08 13:54 谢谢 [未注册用户]

思路不错!!!学习下!   回复  引用    

#6楼  2006-11-25 23:52 Robin[匿名] [未注册用户]

我有完整版的算法,可以精确到万亿位,甚至更高,而且解决小数问题。
壹拾贰万叁千肆百伍拾陆点柒捌玖圆   回复  引用    

#7楼  2007-08-13 23:40 kkhuman [未注册用户]

你这个程序有问题吧,楼主测试了吗?我怎么得到的结果不对啊
我输入"12"
他给我返回了"贰圆壹拾贰圆 "   回复  引用    

#8楼  2008-08-18 16:23 断情戒爱 [未注册用户]

要的单独联系我 249508020
客户端的也可以   回复  引用    

#9楼  2008-08-27 15:53 千龙      

老兄,有没有测试过吗?对兄弟们要负责!

输入:10000
结果:壹万零仟零佰零拾零圆

输入:1000000
结果:壹6零5零万零仟零佰零拾零圆   回复  引用  查看    





标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索


China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!

相关文章:

相关链接:
 
Google
 
站内搜索:        
园内搜索:
金山词霸: