Java课程设计--大整数运算.docx

上传人:王** 文档编号:777441 上传时间:2024-01-14 格式:DOCX 页数:16 大小:89.55KB
下载 相关 举报
Java课程设计--大整数运算.docx_第1页
第1页 / 共16页
Java课程设计--大整数运算.docx_第2页
第2页 / 共16页
Java课程设计--大整数运算.docx_第3页
第3页 / 共16页
Java课程设计--大整数运算.docx_第4页
第4页 / 共16页
Java课程设计--大整数运算.docx_第5页
第5页 / 共16页
Java课程设计--大整数运算.docx_第6页
第6页 / 共16页
Java课程设计--大整数运算.docx_第7页
第7页 / 共16页
Java课程设计--大整数运算.docx_第8页
第8页 / 共16页
Java课程设计--大整数运算.docx_第9页
第9页 / 共16页
Java课程设计--大整数运算.docx_第10页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Java课程设计--大整数运算.docx》由会员分享,可在线阅读,更多相关《Java课程设计--大整数运算.docx(16页珍藏版)》请在优知文库上搜索。

1、第1章课题概述11.1 课题的目的11.2 课题的要求错误!未定义书签。第2章概要设计22.1整个程序的模块结构及流程22.2年历显示的结构及方法22. 2.1主体构思33. 2.2方法构思4第3章程序功能的实现53.1 主函数的实现53.2 主要功能模块的实现63. 2.1年份显示的实现63. 2.2月份显示的实现74. 2.3日期距今天天数的实现7第4章调试及发现问题的解决H4.1 调试中发现的问题114.2 问题的解决1错误!未定义书签。第5章程序测试125.1某年月份显示测试125.2某一月份显示测试135.3某一日期显示测试13第6章总结14参考文献15第1章课题概述本次课程设计的题

2、目是年历显示。1.1课题的目的年历显示掌握java基本编程,熟悉常见的方法,结构。是在学习完课程后进行的一次全面的综合练习。本课程设计的目的和任务.巩固和加深学生对java语言课程的基本知识的理解和掌握.掌握java语言编程和程序调试的基本技能.利用java语言进行基本的软件设计,掌握书写程序设计说明文档的能力,提高运用java语言解决实际问题的能力.1. 2课题的要求年历显示要求做个简单的年历,输入不同格式的年月日会输出不同功能要求的结果,其功能大体有3个。1 .输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。2 .输入年月,输出该月的日历。3 .输入年

3、月日,输出距今天还有多少天,星期几,是否是公历节日。通过显示年日历程序的设计,培养学生综合利用java语言进行程序设计的能力,加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归纳总结的能力。通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固java语言程序设计课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力。第2章概要设计2.1整个程序的模块结构及流程依据课程设计的要求,需要设计一个菜单功能,进入程序后,有菜单可以提供选择,选择L进入年历显示阶段,年历显示完毕,再次进入菜单选择。选择2,进入月历显示阶段,月历显示完

4、毕,再次进入菜单选择。选择3,进入日期查询阶段,日期查询完毕,再次进入菜单。选择0,退出程序。(图2-1整个程序各功能模块间的流程)2. 2年历显示的结构及方法2. 2.1主体构思先采用数组来实现年月的显示,因为1月,3月,5月,7月,8月,10月,12月都是有31天,而4月,6月,9月,11月都是30天。二月比较特殊,如果是闺年就29天,平年就29天。用数组方法:intmonthday12=31,28,31,30,31,30,31,31,30,31,30,31;charmonthname1220=,Janurayl7February2z,March3,April4,zMay5,June6,J

5、uly7,August8z,September9,October10zNovember!/December12;charweekname7(10=,Sun7,Mon7,Tue,7WedzThu,7Fri7Sat);可以实现输出每月的天数显示。本代码用的事SWitCh方法,这更容易理解。;switch(m)case1:case3:case5:case 7:case 8:case10:case12:return31;case4:case6:case9:case11:return30;case2:if(isLeapYear(year)return29;elsereturn28;)default:re

6、turn0;)但代码数量较多。2.2.2方法构思所选月份天数的算法:用SWitCh语句实现。一三五七八十二月份为31天,四六九十一月份为30天对于二月份进行闰年与非闰年的讨论。先算出输入年份的第一天即firstDay,再根据firstDay计算出该输出多少空格,输出空格后依次输出天数到把改月天数全部输完。这样输出第一月,再循环增加月份到12月。这样输入某一年后将依次输出该年的12月每个月的日历。当输入某一年某一月时将特定地输出改月的日历,只输出改月的天数对应的日历。当输入年月日时,调用方法LocaIDateId=LocaIDate.now();将时间对象转换成字符串,再将字符串转换成毫秒,又调

7、用方法算出现在时间的毫秒。用方法longdiff=datel.getTime()-date2.getTime();longdays=diff/(24*60*60*1000);算出距离今天的天数。再有switch方法判断是否为公历节日,若是则输出该节日。输出月份第一天为星期几的算法:使总天数除以7取余得几既为星期几,若是0则为星期日。3.算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。第3章程序功能的实现3.1主函数的实现importja

8、va.text.DateFormat;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.time.LocalDate;importjava.time,format.DateTimeFormatter;importjava.util.Calendar;importjava.util.Date;importjava.util.GregorianCalendar;importjava.util.Scanner;publicclassastaticintyear,monthday;/得到各月份的天数pu

9、blicstaticintmonthDay(intm)switch(m)case1:case3:case5:case7:case8:case10:case12:return31;case4:case6:case9:case11:return30;case2:if(iSLeapYear(year)return29;elsereturn28;)default:return0;)publicstaticbooleanisLeapYear(inty)/计算该年第一天是星期几(1年1月1日是星期一,计算y年到它的天数和7取余来算星期几return(y%4=O&y%100!=O)(y%400=O);)pu

10、blicstaticintfirstDay(inty)(longn=y*365;for(inti=1;iy;i+)/计算y年到公元一年的年份中有多少个闰年,然后加1if(isLeapYear(i)(n+;)return(int)n%7;)publicstaticvoidmain(Stringargs)(intchoice;outer:while(true)SyStCln.out.println(请选择功能:”);System, out. PrintIr(“ ”);System, out. PrintIn(System, out. Println( 是否是公历节口);L输入一个年份,输出是在屏幕

11、上显示该年的日历。2 .输入年月,输出该月的日历。);3 .输入年月日,输出距今天还有多少天,星期几,Scannerscanner=newScanner(System,in);choice=scanner,nextlnt();System,out.println();3.2主要功能模块的实现3.2.1年份显示的实现switch(choice)case1:Scannersc=newScanner(SystemJn);SyStem.out.print(请输入年(yyyy);Strings=sc.nextLine();year=Integenparselntfs);intfd=firstDay(ye

12、ar);System.out.println(n+year+年+n,+,);for(intm=1;m=12;m+)System.out.println(n+m+”月”+”0*”+”*)System.out.println(0一二三四五六);for(inti=1;i=fd;i+)System.out.print();)monthday=monthDay(m);for(inti=1;i=monthday;i+)if(i10)System.out.print(i+);elseSystem.out.print(i+);)fd=(fd+1)%7;if(fd=0)System.out.println();

13、)System.out.println();)break;3.2.2月份显示的实现case2:System.out.print(2s请输入年月(yyyy-mm);Scannersc2=newScanner(System.in);Stringtemp=sc2.nextLine();DateFormatformat2=newSimpleDateFormat(yyyy-MM);tr(Datedate=format2.parse(temp);Calendarcalendar=newGregorianCaIendarO;calendar.setTime(date);intday=calendar.get

14、(Calendar.DAE);calendar.set(Calendar.DATEz1);intmaxDate=calendar.getActualMaximum(Calendar.DAE);SyStem.out.println(temp+月);SyStemoutprjtln(,1*),System.out.println(Ht一t二tt四t五t六);for(inti=1;icalendar.get(Calendar.DAY_OF_WEEK);i+)System.out.print(t,);)for(inti=1;i=maxDate;i+)System.out.print(i+t);intw=calendar.get(Calendar.DAY_OF_WEEK);if(w=CaIendanSzvrURDAY)System.out.print(n);)calendar.add(Calendar.DATEz1);)catch(ParseExceptione)e.printStackTrace();)Sy

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 课程设计

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!