版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章课题概述本次软件开发基础JAVA课程设计的题目目的是寻找到能除尽1至n的的每个数字的最小整数。1.1课题的目的为什么1小时有60分钟,而不是100分钟呢?这是历史上的习惯导致。但也并非纯粹的偶然:60是个优秀的数字,它的因子比较多。事实上,它是1至6的每个数字的倍数。即1,2,3,4,5,6都是可以除尽60。我们希望寻找到能除尽1至n的的每个数字的最小整数。不要小看这个数字,它可能十分大,比如n=100,则该数为:69720375229712477164533808935312303556800通过计算机编程来解决我们无法计算求出的庞大的最小公倍数是具有一定意义的。1.2课题的要求请编写程序,实现对用户输入的n(n<100)求出1~n的最小公倍数。例如:用户输入:6程序输出:60用户输入:10程序输出:2520第2章概要设计2.1整个程序的模块结构及流程根据课题要求,整个程序在输入的整数情况不同时会有不同的处理方法。程序各功能模块的划分及主要流程如图2-1所示。图2-1整个程序各功能模块间的流程2.2数据存储格式数据存储格式采用的是BigInteger类型,你可以看到仅仅输入数字:10,运算结果就已经非常庞大,所以基本的数据类型无法再满足该程序的实现,因此我们才采用了BigInteger类型进行存储。2.3输入数据合法性的检测及处理由于输入的数据范围有限定,所以需要对输入的数据进行检测及处理,当输入的数字超过100或者小于等于0时,显示“请输入1-100的整数”,当输入的n为1时,由于方法中会用到n-1,为了避开报错,直接输出1,当输入其他整数时,就可以算出1-n的最小公倍数。2.4各个方法的描述2.4.1最大公约数两个数的最大公约数可以使用辗转相除法来求解,先定义两个变量m,n,将较大的数赋给n,将较小的数赋给m,然后大数除以小数,小数除以余数,最后余数为零时,所求得的数就是最大公约数。2.4.2最小公倍数求一系列整数的最小公倍数,可以先求出前两个数的公倍数,然后求它们的公倍数与第三个数的公倍数,以此类推,最后求出的数就是这一系列数的最小公倍数。第3章程序功能的实现3.1主函数的实现输入一个数,赋给它int类型的值,建立一个扫描器,定义一个BigInteger的类,封装bi,采用for循环,,调用getcommon的方法,先求第一个数和第二个数的最小公倍数,再将这个最小公倍数去和第三个数求最小公倍数,直到最后一个。主函数实现的代码如下:publicstaticvoidmain(String[]args){ System.out.println("请输入一个数:"); intm; Scannersc=newScanner(System.in); m=sc.nextInt(); BigIntegerbi=newBigInteger("1"); for(intj=1;j<=m;j++){ Commonc=newCommon(bi); bi=c.getCommon(newBigInteger(j+"")); } sc.close(); System.out.println("它的公倍数为:"+bi.toString());3.2各个方法的实现3.2.1求最大公约数和最小公倍数辗转相除法,定义两个变量m和n,将较大的数赋值给n,较小的数赋值给m,然后大数除以小数,小数除以余数,最后直到余数为零的时候所求得数就是最大公约数求最大公约数和最小公倍数的代码实现如下:publicclassCommon{ privateBigIntegern; Common(BigIntegern){ this.n=n; } publicBigIntegergetCommon(BigIntegerm){ BigIntegerM=m.multiply(n); BigIntegerr=n.remainder(m); Stringstr=r.toString(); while(!str.equals("0")){ n=m; m=r; r=n.remainder(m); str=r.toString(); } returnM.divide(m); } }第4章调试及发现问题的解决虽然在程序的编写过程中遇到了很多问题,但通过网络资源和请教同学,问题得到了解决,程序实现及调试过程中遇到的主要问题及解决方法如下。1、最初采用long类型来作为存储结构,但输入10后得到的数字却与正确答案差异很大。解决方法:使用BigInteger类型存储数据。该类型可以满足程序的正确实现。2、采用什么方法来计算前两个数的最小公倍数与第三个数的最小公倍数?解决方法:可以采用for循环来依次计算出第一个数至最后一个数的最小公倍数,方法简便且清晰明了。第5章程序测试及分析运行程序,直接弹出请用户输入,此时用户可以输入一个自己所需要的整数。图5-1程序运行后的界面图5-2所示,是在输入的数为1的时候的情况,直接输出1。可以直接输入下一个数。图5-2输入的数为1图5-3所示,是在输入的数在范围内的情况。可以直接输入下一个数。图5-3输入的数在限定范围内第6章总结为期一周的课程设计画上了句号,虽然做得并不是很满意,但也是一次锻炼自己能力的体验,在这一次的课程设计中,也学到了很多东西。首先,遇到自己难以解决的问题要通过自己可利用的资源来解答疑问,例如去网上找相关知识的视频,或是请教周围同学。其次,现在我们写的代码可能会有很多错误的地方,通过答辩,老师给你提出修改要求后就要积极修改。通过这次课程设计,也发现了自学能力的重要性,大学是一个需要自我管理的地方,很多程序需要用到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年秦皇岛市北戴河区街道办人员招聘笔试备考题库及答案详解
- 2026年广州市芳村区中小学教师招聘考试参考题库及答案详解
- 2026年宁夏回族自治区中小学教师招聘笔试模拟试题及答案详解
- 2026年淮安市淮阴区法检系统书记员招聘考试参考题库及答案详解
- 2026年抚顺市望花区法检系统书记员招聘考试模拟试题及答案详解
- 2026年包头市白云矿区中小学教师招聘考试模拟试题及答案详解
- 2026年淄博市周村区中小学教师招聘笔试参考试题及答案详解
- 2025年湖南省湘潭市中小学教师招聘笔试试题及答案详解
- 2026年乌鲁木齐市头屯河区街道办人员招聘笔试参考试题及答案详解
- 2026四川泸州市纳溪区考核招聘教师1人考试备考试题及答案详解
- 工艺纪律检查方案
- 汽车维修管理制度大全
- 合作办刊协议7篇
- 游戏公司游戏IP授权合同
- 电气工程施工进度及保证措施
- 《U20Mn2SiCrNiMo贝氏体钢钢轨技术条件》
- 机场申办控制区通行证准入考试题库
- 国企集团公司各岗位廉洁风险点防控表格(廉政)范本
- 虎扑产品体验分析报告
- 无单放货担保函
- 打印设备维护服务投标方案
评论
0/150
提交评论