人民币大小写转换课程设计_第1页
人民币大小写转换课程设计_第2页
人民币大小写转换课程设计_第3页
人民币大小写转换课程设计_第4页
人民币大小写转换课程设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论