版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学城市学院实验报告课程名称面向对象程序设计实验项目名称类与对象基础实验(三)学生姓名专业班级学号一.实验目的和要求1.掌握大数处理与BigInteger类2.掌握时间处理Date类与SimpleDateFormat类、Calendar类3.掌握异常处理与Exception类二.实验内容1.编程实现:大整数的数值计算2.编程实现:用大整数求阶乘之和3.编程实现:计算两个日期的天数之差4.编程实现:计算生日信息5.编程实现:数字转换的异常处理三.实验结果与分析(可将程序运行结果截屏,也可分析运行结果)1.编程实现:大整数的数值计算。编写一个Java应用程序,计算两个大整数的和、差、积和商,并计算一个大整数的因子个数。(部分源码参考讲义)请分析并回答以下问题:程序源码如下:importjava.math.*;classBigIntegerExample{publicstaticvoidmain(Stringargs[]){BigIntegern1=newBigInteger("987654321987654321987654321"),n2=newBigInteger("123456789123456789123456789"),result=null;result=n1.add(n2);//n1和n2做加法运算System.out.println("和:"+result.toString());result=n1.subtract(n2);//n1和n2做减法运算System.out.println("差:"+result.toString());result=n1.multiply(n2);//n1和n2做乘法运算System.out.println("积:"+result.toString());result=n1.divide(n2);//n1和n2做除法运算System.out.println("商:"+result.toString());BigIntegerm=newBigInteger("1968957"),COUNT=newBigInteger("0"),ONE=newBigInteger("1"),TWO=newBigInteger("2");System.out.println(m.toString()+"的因子有:");for(BigIntegeri=TWO;pareTo(m)<0;i=i.add(ONE)){if((n1.remainder(i).compareTo(BigInteger.ZERO))==0){COUNT=COUNT.add(ONE);System.out.print(""+i.toString());}}System.out.println("");System.out.println(m.toString()+"一共有"+COUNT.toString()+"个因子");}}请将运行结果截图:请比较BigInteger和long的主要区别,并简要说明BigInteger的主要用途。答:如果使用浮点型表示大整数,往往需要容忍精度的损失,但是运算速度相对快很多;而用BigInteger表示大整数则不会损失数据位,但是运算速度相对较慢2.编程实现:用大整数求阶乘之和。编写一个Java应用程序,用BigInteger计算1!+2!+3!+…+n!。要求n的值从键盘输入。请分析并回答以下问题:程序源码如下:importjava.util.*;importjava.math.BigInteger;publicclassBigIntegerFa{ publicstaticvoidmain(String[]args){ intn; BigIntegernum=BigInteger.ZERO; System.out.println("请输入整数n:"); Scannerscanner=newScanner(System.in); n=scanner.nextInt(); inti; for(i=1;i<=n;i++){ num=num.add(factorialBig(i)); } for(i=1;i<n;i++){ System.out.print(i+"!+"); } System.out.println(i+"!="+num); } publicstaticBigIntegerfactorialBig(intn){ BigIntegerresult=BigInteger.ONE; inti; for(i=1;i<=n;i++){ BigIntegerk=BigInteger.valueOf(i); result=result.multiply(k); } returnresult;}}请将运行结果截图:3.编程实现:计算两个日期的天数之差。编写Java应用程序,来计算任意两个日期的天数之差。要求:两个日期用字符串形式输入(比如输入“20100101”表示2010年1月1日),需要将日期字符串的年、月、日分别转换为数字形式。程序源码如下:importjava.text.SimpleDateFormat;importjava.util.*;publicclassDateSub{ publicstaticvoidmain(String[]args){ Scannerscanner=newScanner(System.in); System.out.println("请输入第一个日期,格式如20100310:"); Stringnum=scanner.nextLine(); Stringyear=num.substring(0,4); Stringmonth=num.substring(4,6); Stringday=num.substring(6); Calendarcalendar=Calendar.getInstance(); calendar.set(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day)); Datedate1=calendar.getTime(); System.out.println("请输入第二个日期,格式如20100310:"); num=scanner.nextLine(); year=num.substring(0,4); month=num.substring(4,6); day=num.substring(6); calendar.set(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day)); Datedate2=calendar.getTime(); longSubDay=(date1.getTime()-date2.getTime())/(24*60*60*1000); if(SubDay<0) SubDay=(date2.getTime()-date1.getTime())/(24*60*60*1000); System.out.println("两个日期之间相差"+SubDay+"天"); }}请将运行结果截图:4.编程实现:生日信息。编写Java应用程序,计算你的生日还有多少天,你的生日是星期几。程序源码如下:importjava.util.*;publicclassBirthDay{ publicstaticvoidmain(String[]args){ Scannerscanner=newScanner(System.in); System.out.println("请输入你的生日,格式形如:2007-09-21:"); Calendarcalendar=Calendar.getInstance(); Stringstr=scanner.nextLine(); Stringyear=str.substring(0,4); Stringmonth=str.substring(5,7); Stringday=str.substring(8); calendar.set(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day)); System.out.println("输出对应的是星期几:"); intweek=calendar.get(Calendar.DAY_OF_WEEK); switch(week) { case1:System.out.println("MONDAY");break; case2:System.out.println("TUESDAY");break; case3:System.out.println("WEDNSSDAY");break; case4:System.out.println("THESDAY");break; case5:System.out.println("FIRDAY");break; case6:System.out.println("SATUATFAY");break; default:System.out.println("SUNDAY");break; } Datedate2=newDate(); calendar.set(2012,Integer.parseInt(month),Integer.parseInt(day)); Datedate1=calendar.getTime(); longcountDay=(date1.getTime()-date2.getTime())/(24*60*60*1000);if(countDay<0){calendar.set(2013,Integer.parseInt(month),Integer.parseInt(day)); date1=calendar.getTime();countDay=(date1.getTime()-date2.getTime())/(24*60*60*1000);} System.out.println("距离你的生日还有"+countDay+"天。"); }}请将运行结果截图:5.编程实现:数字转换的异常处理。输入两个数,计算两个数想除的结果(考虑除数为0的异常情况)。程序源码如下:importjava.util.*;classDivide{ publicstaticvoidmain(String[]args){ Scannerscanner=newScanner(System.in); System.out.println("请输入两个数字:"); doublea=scanner.nextDouble(); doubleb=scanner.nextDouble(); try{ Syste
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年产36亿支一次性使用胰岛素笔用针头生产项目可行性研究报告
- 农村乡镇直流充电桩建设项目可行性研究报告
- 年产13套钒电池储能安全阀生产项目可行性研究报告
- 2026年贵阳市公安局招聘警务辅助人员笔试试题(含答案)
- 2026年中国高性能三相混合式步进电机行业市场规模及投资前景预测分析报告
- 2026年中国高强力人造丝行业市场规模及投资前景预测分析报告
- 2026年税务数字化转型合同
- 2025年光气化装置安全考核练习卷
- 伦理困境与护理决策
- 一级护理的护理实践与理论
- 中考英语1600词汇(背诵版)
- 2025年苏州市职业大学单招职业适应性考试题库(夺冠系列)含答案
- 渝22TS02 市政排水管道附属设施标准图集 DJBT50-159
- 2《宁夏闽宁镇昔日干沙滩今日金沙滩》公开课一等奖创新教案+(共40张)+随堂练习(含答案)
- 新疆金川矿业有限公司堆浸场扩建技改项目环评报告
- 个人长期借车合同协议书
- 2025年内蒙古民航机场集团有限责任公司招聘笔试参考题库附带答案详解
- 高教版《管理学》重点知识
- 机器学习在农业生产中的应用
- 团险理赔培训
- 2024年“新华三杯”全国大学生数字技术大赛备赛试题库(含答案)
评论
0/150
提交评论