您好,欢迎访问三七文档
陕西师范大学远程教育学院计算机科学与技术管理系题目:万年历课程设计专业班级:122班姓名:冯建学学号:61701220314001指导教师:成绩:序言1Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大范围的Internet上。1995年,Java语言的名字从Oak编程了Java。1997年J2SE1.1发布。1998年J2SE1.2发布,标志Java2的诞生。十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。Java的体系结构由Java语言、Javaclass、JavaAPI、Java虚拟机组成。它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。Java的平台标准有JavaME,JavaSE和JavaEE。Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。目前在众多的支持Java的开发工具中主要的7有JavaDevelopmentKit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中JavaDevelopmentKit简称JDK是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。我做的课程题目是万年历的设计,万年历在我们的手机,电脑,MP4等电子产品中随处可见,其功能也十分简单,最核心的是提供某年某月的日历,在我的设计中,还增加了具体的时刻以及不同时区不同国家的时刻,简单的设计确是复杂的代码实现,不过万年历确实给予我们生活的诸多方便!目录2摘要......................................................................................................................3正文......................................................................................................................41.系统分析与设计.........................................................................................4(1)需求分析...................................................................................................4(2)功能设计...................................................................................................42.详细分析.....................................................................................................53.系统测试...................................................................................................104.软件使用说明书.......................................................................................13总结....................................................................................................................14参考文献................................................................................................................15致谢....................................................................................................................16附件Ⅰ源程序代码................................................................................................173摘要这学期我们学习了Java语言,Java语言是面向对象的开发方法是当今世界最流行的开发方法,是当今流行的网络编程语言。它具有面向对象、跨平台、分布应用等特点。它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。很多程序开发人员得第一选择。为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。让学生自己动手动脑,将书本上得知识运用到实践当中去,使知识能更好得融会贯通。为了达到这个目的,我们需要自己动手做一个Java的课程设计,在这个课程设计里我们需要根据我们手中现有得软件与知识基础,独立得将它完成,只有这样,我们才能把理论变成实践,将知识真正得做到学以致用。这次课程设计我主要研究了利用已学的Java知识编辑一个电子万年历。通过此次课程设计,来巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。并通过自己动手,自主得学习,对Java这门课程有更深得了解与认识。关键词:万年历Java语言日历算法4正文1.系统分析与设计(1)需求分析本程序的要求为:1.使用图形用户界面;2.本程序能够实现日期与星期的查询;3.可以显示不同时区的时刻;4.模拟一个计时器,不断地输出下一秒;(2)功能设计(1)定义一个时间类Time,能提供时、分、秒组成的时间,并提供时间增加的方法(按秒);(2)定义一个日期类Date,记录年、月、日,并提供日期增加的方法(按天);(3)由类Time和日期类Date,派生出DateTime类,除具有年、月、日、时、分、秒外,还增加国名和与格林威治时间的差;(4)输入年、月、日、时、分、秒,在屏幕上模拟显示一电子计时器,不断输出下一秒的时间和日期,以及格林威治的日期和时间。52.详细分析3.Windows类中的成员函数:4.FrameB=newFrame(万年历);5.Panela1=newPanel();6.Panela2=newPanel();7.Panela3=newPanel();8.Panela4=newPanel();9.TextFieldT1,T2,P1,P2,P3,P4,P5,P6;10.TextFieldp[]=newTextField[7];//时间输出框11.LabelR1,R2;12.ButtonS1;//查询按钮13.TextFielda[];//月份查询表按钮14.inti,yy;15.intk=0,mouth1[];16.17.int[]y1={0,31,28,31,30,31,30,31,31,30,31,30,31};//平年的月份天数18.int[]y2={0,31,29,31,30,31,30,31,31,30,31,30,31};//闰年的月份天数19.ButtonS2=newButton(北京);//启动北京时间按钮20.ButtonS3=newButton(夏威夷);//启动夏威夷时间按钮21.ButtonS4=newButton(伦敦);//启动伦敦时间按钮22.LabelR3,R4,R5,R6,R7,R8,R9,R10,R11,R12;23.finalTextFieldK1,K2,K3;24.finalTextFieldK4;25.finalTextFieldK5;26.finalTextFieldK6;627.28.ButtonS5=newButton(开始计算);//计算格林威治时间所有按钮和文本框29.30.Windows成员方法:31.voidgetmessage(intx,inty)//获取年月并进行判断32.publicvoidgo()//运行主要程序33.34.35.Time类成员变量:36.Booleant=true;//模拟时钟必要成员变量37.inth=0,m=0,s=0;//时分秒的成员变量38.Time类成员方法:39.voidgettime(inta,intb,intc)//获得时分秒40.publicvoidrun()//时间增加方法41.42.43.Date类成员变量44.DATE拥有TIME中所有成员变量和方法45.int[]y1={0,31,28,31,30,31,30,31,31,30,31,30,31};//平年的月份天数46.int[]y2={0,31,29,31,30,31,30,31,31,30,31,30,31};//闰年的月份天数47.inty=0,mo=0,d=0;//年月日成员变量48.749.50.Date类成员方法51.voidgetdate(inta,intb,intc)//获得年月日52.53.54.55.DateTime类成员变量56.继承了Date57.intgy,gmo,gd,gh,gm,gs;//格林威治时间的成员变量58.Stringname;//城市名称59.intctime=0;//时差60.intL=0;//文本框组的下标61.DateTime类成员方法62.publicStringreturnname()//返回城市名63.publicintreturnctmie()//返回时差64.voidGtimechange()//通过北京时间计算格林威治时间65.publicvoidcountrytime()//转换为国家时间66.publicvoidcountrytoGL()//通过国家时间计算格林威治时间67.publicvoidnum(inti)//为L赋值68.publicvoidstartswap()//输出前的准备69.publicvoidrun()//方法重写,用于输出时间8(1)主要框架:(2)S3鼠标点击事件流程图Panel万年输入框Panel万年历表Panel电子钟Frame“万年历”Panel万年历查询输入Panel万年历表Panel电子钟Panel计时器创建DateTime对象XW,创建Calender类d。用d的方法获取年月日时分秒并用XW.gettime()和XW.getdate()为成员变量赋值。调用XW.Gtimechange()得出格林威治时间调用XW.startswap()将得出时间赋值给时钟成员变量调用XW.countrytime()得出夏威夷时间信息输出9(3)DateTime中run()方法图noyesnoyesnoyesnoyesyesno开始s=60?睡眠1S,s+1s=0,m+1m=60?m=0,h+1h=24?h=0,d+1dmouth[mo]?h=0,d+1d=1,mo+1mo12?mo=1,y+1,判断新的y是闰年还是平年,并启用相应月份数组。输出信息到p[]文本框103.系统测试图1输入2012年11月后得到的万年历表图2输入时间显示电子钟11图3显示此时与北京的时差以及此时北京时间图4显示此时与伦敦的时差以及此时伦敦时间12图4显示此时与纽约的时差以及此时
本文标题:万年历报告
链接地址:https://www.777doc.com/doc-6350896 .html