《人民币大小写转换课程设计(共15页).doc》由会员分享,可在线阅读,更多相关《人民币大小写转换课程设计(共15页).doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上学 号武 汉 科 技 大 学 城 市 学 院课 程 设 计 报 告 课程名称 可视化编程(VC+)课程设计 题 目 人民币大小写软件的实现 学 部 信息工程学部 专 业 信息管理与信息系统 班 级 信管1班 姓 名 指导教师 曾志华 2014年4月17日编号012 可视化编程(VC+)课程设计任务书题目 人民币大小写转换器软件的设计与实现1 开发平台 :Visual studio 2010 + SQL Server20052 设计任务 编写一个简易人民币大小写转换器的程序,要求用户输入数据,要求转换器可以获取数据,并且可以以大写的方式显示出来,如 1对应 。3 课程设
2、计报告书主要内容1)需求分析2)总体设计21 设计的总体思想与算法描述 22 模块结构图23 各功能模块的功能与处理流程描述24 界面设计3)各功能模块程序设计按照功能模块的功能与处理流程描述给出详细的程序代码,并给出重点语句的注释.4)小结4 课程设计要求1)按时到机房签到,在指定机位上机。遵守机房纪律。2)独立完成课程设计任务。指导教师到机位上指导学生和分时段验收学生完成的程序,按时提交打印的课程设计报告书5 课程设计参考书1 张海蕃. 软件工程导论. 北京:清华大学出版社, 20082 杨正甫. 面向对象分析与设计. 北京:中国铁道出版社, 200撰写者:曾志华 李聪 审定者 聂玉峰目
3、录专心-专注-专业1需求分析人民币转换器问题是算法中的一个经典命题之一,研究此类型的问题对提高我们的算法提升是有所帮助,有关这个问题的讲述在讲解循环控制和switch基本都将涉及本系统,同样选择使用这些方法实现该过程。1.1系统概述该程序运用的是基于对话框的类。建立对话框并添加相应的编辑框,用来存储输入的数据和显示结果。1.2问题分析(1)当接收数为整数时直接进行转换。(2)当接受数为不是整数时,分别提出整数部分和小数部分再进行处理。(3)求得整数部分的长度,根据长度定制循环。(a)循环中小写数字变成相应的大写字符。(b)根据整数位数在大写数字后面添加相应的单位。(c)若无小数部分则在字符串末
4、尾添加字符“整”。(4)求得小数部分的长度,根据长度制定循环。(a)循环中小写数字变成相应的大写字符。(b)根据整数位数在大写数字后面添加相应的单位。(5)但当小数位为0或00或输入错误只有“.”而没有数字时,根据“.”判断是否添加“整”。2系统总体设计 在对于整数划分系统的设计中,需要添加一个对话框,在对话框中添加两个编辑框,绑定相应的变量,通过算法,然后实现编辑框的数据向另一个编辑框中输出。2.1功能模块图 人民币大小写转换软件分为显示功能和转换功能。人民币转换界面人民币转换按钮部分显示过程图2-1功能模块图2.2系统流程图进入软件界面,输入你要转换的金额,点击转换则会在下方编辑框中显示大
5、写结果,再次输入点击转换可再次转换,点击退出则退出软件。 第一步:进入界面 第二步:输入金额 第三步:显示大写结果第四步:再来一次或退出 图2-1功能模块图3系统实现 3.1登陆界面点击程序进入程序界面,在上面的编辑框中输入要转换的金额,点击转换则可转换为大写金额。图3-1:登陆界面图3.2转换功能 在编辑框中输入要转换的金额大小,点击转换按钮,再在编辑框中输入数字可进行第二次转换。 图3-2:输入金额界面图图3-3 :结果图4.关键程序代码 void CtestDlg:OnBnClickedButton1()true);CString dest, num, NUM1;/num整数部分,NUM
6、输入数,NUM1小数部分 0; len1);(.)!=-1) j=0j.;j+)num=num+NUMj; /获取整数int a=NUM.Find(.);int b=NUM.GetLength();NUM1=NUM.Right(b-a-1);/获取小数elsenum=NUM;len=num.GetLength();dest=dest+人民币;for(int i=0;ilen;i+) /处理整数部分switch(numi) 1: dest=dest+ 壹; break; case 2: dest=dest+ 贰; break; case 3: dest=dest+ 叁; break; case
7、4: dest=dest+ 肆; break; case 5: dest=dest+ 伍; break; case 6: dest=dest+ 陆; break; case 7: dest=dest+ 柒; break; case 8: dest=dest+ 捌; break; case 9: dest=dest+ 玖; break;case 0:if(numi+1=0|i=len-1)break;elsedest=dest+ 零;len-i)case 12:if(numi=0)break;dest=dest+ 仟;case 11:if(numi)=0)break;elsedest=dest+
8、 佰;break;case 10:if(numi)=0)break;elsedest=dest+ 拾;break;case 9: dest=dest+ 亿;break;case 8:if(numi)=0)break;elsedest=dest+ 仟;break;case 7:if(numi)=0)break;elsedest=dest+ 佰;break; case 6:if(numi)=0)break;elsedest=dest+ 拾;break;case 5:dest=dest+ 万;break;case 4:if(numi)=0)break;elsedest=dest+ 仟;break;c
9、ase 3:if(numi)=0)break;elsedest=dest+ 佰;break;case 2:if(numi)=0)break;elsedest=dest+ 拾;break;case 1:if(numi)!=0)dest=dest+ 元;else (numi)=0&len!=1)dest=dest+ 元;elsebreak;case 0:if(NUM.Find(.)=-1|NUM.Right(1)=.)dest=dest+整;if(NUM1.Compare(00)=0|NUM1.Compare(0)=0)dest=dest+整;elseint c=NUM1.GetLength();
10、for(int i=0;i=c;i+) /处理小数部分NUM1i)case 1: dest=dest+ 壹; break; case 2: dest=dest+ 贰; break; case 3: dest=dest+ 叁; break; case 4: dest=dest+ 肆; break; case 5: dest=dest+ 伍; break; case 6: dest=dest+ 陆; break; case 7: dest=dest+ 柒; break; case 8: dest=dest+ 捌; break; case 9: dest=dest+ 玖; break;case 0:
11、break;if(c=2)switch(c-i) 2:=0);dest=dest+ 角; 1:=0);dest=dest+ 分;break;if(c=1)switch(c-i)case 1:if(NUM1i=0)break;elsedest=dest+ 角;break;int m=dest.Find(万);int n=dest.Find(零);if(m-n=2)dest.Delete(m-2,2);/去除y的零int l=dest.Find(亿);int h=dest.Find(零);=2)dest.Delete(l-2,2);/去除的零num1=dest;();5总结 在这次的实训的过程中,
12、我借用的是别人的代码,我不断地阅读分析、修改代码,将别人的不完善的代码进行不断的完善,将其为我所用。我经常遇到很多难题,比如读不懂某一句代码或知道思路写不出代码等问题,但我的学习欲望都很高,每天都来到机房,和老师同学一起学习交流,遇到问题课后一起进行探讨,取长补短,这大大提高了我的学习热情。其次,通过一周的实训,我深深的体会到细心的重要心,因为在编写的过程中一个小小的括号或一个字母大小写都将可能会花费你一个上午的时间去修改它,这也提醒我在以后的编程过程中我应该更加的细心,要小心翼翼的去查看每一个标点、字母。在这个过程中我也弄清楚了许多以前不懂的或似是而非的地方,形成了一个完整的框架结构,而不再
13、是零散的知识。通过这次VC+实训,让我对VC+有了一个更深的认识,也从这次实到更多的东西,对一些平常在课堂实践不了的东西做了更深的了解,让我以后对VC+有了很浓的兴趣。一个星期的实训结束了,基本的任务已经达到,对于我来说,认为还有很多东西没有做好,例如整数分划的时候如果反复点击的时候就会出先重复的代码,因此我们把他限制在只能进行一次划分的基础上如果要进行再次的划分就必须点击再来一次后再进行操作,这就带来了极大的不便。其次就是在实训中,自我编程的代码少,如果没有借鉴别人的代码,自己所写的运行后总是达不到预期的而结果,总是存在这样或那样的问题。在这次VC+实训中,虽然收获较大,但自己这次与实训的计
14、划安排与目的的要求还有一定的差距,主要是:1)做程序设计题时对题意分析不够准确,思路不够清晰,总要通过老师或同学的点播才行;2)时常有点惰性,遇到问题总是希望找到老师或同学解决;3)独立编写代码的能力有待提高。总之我要在C+学习上不断努力,提高自己分析问题和解决问题的能力,争取有更大的进步!6参考文献 1 杨家海,任宪坤,.网络管理原理与实现技术.清华大学出版社,2000年2.基于SNMP/MIB的信息采集.南华大学计算机科学与技术学院,20043Andrew S.Tanenbaum.计算机网络(第4版).清华大学出版社,20044张白一,崔尚森.面对对象程序设计.西安电子科技大学出版社,20
15、065(美)Steven Holzner.Java技术内幕.机械工业出版社,20026印晏.java语言与面向对象程序设计.清华大学出版社,2000课程设计评分表评分标准:1. 学生是否严格遵守课程设计纪律,按照规定时间完成设计任务(占30%)2. 课程设计报告书质量:(占40%)(1)是否采用了良好的设计方法,独立完成课程设计。 (2)课程设计各分段的任务是否按时完成及完成的质量。(3)是否完成课程设计任务书指定的全部要求。 3. 课程设计报告书的撰写规范 (占30%)课程设计报告书的撰写规范要求与毕业设计(论文)的要求相同。教师评分:1. 学生出勤得分: _2. 内容质量得分: _3. 撰写规范得分: _最终评定成绩(以优、良、中、及格、不及格评定):_ 教师评语: 根据该生参加课程设计的考勤记录和提交的课程设计报告撰写质量,给予该生课程设计评分等级为: 签字: 日期: 年 月 日