您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 人民币大小写转换课程设计
学号武汉科技大学城市学院课程设计报告课程名称可视化编程(VC++)课程设计题目人民币大小写软件的实现学部信息工程学部专业信息管理与信息系统班级信管1班姓名指导教师曾志华2014年4月17日可视化编程(VC++)课程设计任务书题目人民币大小写转换器软件的设计与实现1开发平台:Visualstudio2010+SQLServer20052设计任务编写一个简易人民币大小写转换器的程序,要求用户输入数据,要求转换器可以获取数据,并且可以以大写的方式显示出来,如1对应。3课程设计报告书主要内容1)需求分析2)总体设计2.1设计的总体思想与算法描述2.2模块结构图2.3各功能模块的功能与处理流程描述2.4界面设计3)各功能模块程序设计按照功能模块的功能与处理流程描述给出详细的程序代码,并给出重点语句的注释.4)小结4课程设计要求1)按时到机房签到,在指定机位上机。遵守机房纪律。2)独立完成课程设计任务。指导教师到机位上指导学生和分时段验收学生完成的程序,按时提交打印的课程设计报告书5课程设计参考书[1]张海蕃.软件工程导论.北京:清华大学出版社,2008[2]杨正甫.面向对象分析与设计.北京:中国铁道出版社,200撰写者:曾志华李聪审定者聂玉峰编号012目录1需求分析...............................................11.1系统概述..........................................11.2问题分析..........................................12系统总体设计............................................22.1功能模块图........................................22.2系统流程图........................................23系统实现...............................................33.1登陆界面..........................................33.2转换功能..........................................34.关键程序代码...........................................45总结..................................................106参考文献..............................................1111需求分析人民币转换器问题是算法中的一个经典命题之一,研究此类型的问题对提高我们的算法提升是有所帮助,有关这个问题的讲述在讲解循环控制和switch基本都将涉及本系统,同样选择使用这些方法实现该过程。1.1系统概述该程序运用的是基于对话框的类。建立对话框并添加相应的编辑框,用来存储输入的数据和显示结果。1.2问题分析(1)当接收数为整数时直接进行转换。(2)当接受数为不是整数时,分别提出整数部分和小数部分再进行处理。(3)求得整数部分的长度,根据长度定制循环。(a)循环中小写数字变成相应的大写字符。(b)根据整数位数在大写数字后面添加相应的单位。(c)若无小数部分则在字符串末尾添加字符“整”。(4)求得小数部分的长度,根据长度制定循环。(a)循环中小写数字变成相应的大写字符。(b)根据整数位数在大写数字后面添加相应的单位。(5)但当小数位为0或00或输入错误只有“.”而没有数字时,根据“.”判断是否添加“整”。22系统总体设计在对于整数划分系统的设计中,需要添加一个对话框,在对话框中添加两个编辑框,绑定相应的变量,通过算法,然后实现编辑框的数据向另一个编辑框中输出。2.1功能模块图人民币大小写转换软件分为显示功能和转换功能。图2-1功能模块图2.2系统流程图进入软件界面,输入你要转换的金额,点击转换则会在下方编辑框中显示大写结果,再次输入点击转换可再次转换,点击退出则退出软件。图2-1功能模块图人民币转换界面人民币转换按钮部分显示过程第一步:进入界面第二步:输入金额第三步:显示大写结果第四步:再来一次或退出33系统实现3.1登陆界面点击程序进入程序界面,在上面的编辑框中输入要转换的金额,点击转换则可转换为大写金额。图3-1:登陆界面图3.2转换功能在编辑框中输入要转换的金额大小,点击转换按钮,再在编辑框中输入数字可进行第二次转换。图3-2:输入金额界面图4图3-3:结果图4.关键程序代码voidCtestDlg::OnBnClickedButton1(){true);CStringdest,num,NUM1;//num整数部分,NUM输入数,NUM1小数部分0;len1);(.)!=-1){j=0[j]'.';j++){num=num+NUM[j];//获取整数}inta=NUM.Find(.);intb=NUM.GetLength();NUM1=NUM.Right(b-a-1);//获取小数}elsenum=NUM;len=num.GetLength();dest=dest+人民币;5for(inti=0;ilen;i++)//处理整数部分{switch(num[i]){'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':{if(num[i+1]=='0'||i==len-1)break;elsedest=dest+零;}6}len-i){case12:if((num[i]='0')break;dest=dest+仟;;case11:if((num[i])=='0')break;elsedest=dest+佰;break;case10:if((num[i])=='0')break;elsedest=dest+拾;break;case9:dest=dest+亿;break;case8:if((num[i])=='0')break;elsedest=dest+仟;break;case7:if((num[i])=='0')break;elsedest=dest+佰;break;case6:if((num[i])=='0')break;elsedest=dest+拾;break;case5:7dest=dest+万;break;case4:if((num[i])=='0')break;elsedest=dest+仟;break;case3:if((num[i])=='0')break;elsedest=dest+佰;break;case2:if((num[i])=='0')break;elsedest=dest+拾;break;case1:if((num[i])!='0')dest=dest+元;else(num[i])=='0'&&len!=1)dest=dest+元;elsebreak;case0:if(NUM.Find(.)==-1||NUM.Right(1)=='.')dest=dest+整;}}if(NUM1.Compare(00)==0||NUM1.Compare(0)==0)dest=dest+整;else{intc=NUM1.GetLength();for(inti=0;i=c;i++)//处理小数部分{NUM1[i]){case'1':dest=dest+壹;8break;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':break;}if(c==2){switch(c-i){2:='0');9dest=dest+角;;1:=='0');dest=dest+分;break;}}if(c==1){switch(c-i){case1:if(NUM1[i]=='0')break;elsedest=dest+角;break;}}}}intm=dest.Find(万);intn=dest.Find(零);if(m-n==2)dest.Delete(m-2,2);//去除y的零intl=dest.Find(亿);inth=dest.Find(零);==2)dest.Delete(l-2,2);//去除的零num1=dest;();}105总结在这次的实训的过程中,我借用的是别人的代码,我不断地阅读分析、修改代码,将别人的不完善的代码进行不断的完善,将其为我所用。我经常遇到很多难题,比如读不懂某一句代码或知道思路写不出代码等问题,但我的学习欲望都很高,每天都来到机房,和老师同学一起学习交流,遇到问题课后一起进行探讨,取长补短,这大大提高了我的学习热情。其次,通过一周的实训,我深深的体会到细心的重要心,因为在编写的过程中一个小小的括号或一个字母大小写都将可能会花费你一个上午的时间去修改它,这也提醒我在以后的编程过程中我应该更加的细心,要小心翼翼的去查看每一个标点、字母。在这个过程中我也弄清楚了许多以前不懂的或似是而非的地方,形成了一个完整的框架结构,而不再是零散的知识。通过这次VC++实训,让我对VC++有了一个更深的认识,也从这次实到更多的东西,对一些平常在课堂实践不了的东西做了更深的了解,让我以后对VC++有了很浓的兴趣。一个星期的实训结束了,基本的任务已经达到,对于我来说,认为还有很多东西没有做好,例如整数分划的时候如果反复点击的时候就会出先重复的代码,因此我们把他限制在只能进行一次划分的基础上如果要进行再次的划分就必须点击再来一次后再进行操作,这就带来了极大的不便。其次就是在实训中,自我编程的代码少,如果没有借鉴别人的代码,自己所写的运行后总是达不到预期的而结果,总是存在这样或那样的问题。在这次VC++实训中,虽然收获较大,但自己这次与实训的计划安排与目的的要求还有一定的差距,主要是:1)做程序设计题时对题意分析不够准确,思路不够清晰,总要通过老师或同学的点播才行;2)时常有点惰性,遇到问题总是希望找到老师或同学解决;3)独立编写代码的能力有待提高。总之我要在C++学习上不断努力,提高自己分析问题和解决问题的能力,争取有更大的进步!116参考文献[1]杨家海,任宪坤,.网络管理原理与实现技术.清华大学出版社,2000年[2].基于SNMP/MIB的信息采集.南华大学计算机科学与技术学院,2004[3]AndrewS.Tanenbaum.计算机网络(第4版).清华大学出版社,2004[4]张白一,崔尚森.面对对象程序设计.西安电子科技大学出版社,2006[5](美)StevenHolzner.Java技术内幕.机械工业出版社,2002[6]印晏.java语言与面向对象程序设计.清华大学出版社,200012课程设计评分表评分标准:1.学生是否严格遵守课程设计纪律,按照规定时间完成设计任务(占30%)2.课程设计报告书质量:(占40%)(1)是否采用了良好的设计方法,独立完成课程设计。(2)课程设计各分段的任务是否按时完成及完成的质量。(3)是否完成课程设计任务书指
本文标题:人民币大小写转换课程设计
链接地址:https://www.777doc.com/doc-6294235 .html