Java课程设计-万年历

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

万年历设计摘要Java语言自1995年面世以来,以其与平台无关性、安全性、面向对象等特性被越来越多的人使用,是目前应用非常广泛的一门面向对象的程序设计语言,本次课程设计的万年历是一个强大的日历系统,通过它可以实现对过去,现在以及将来日期的查找,在开发的过程中,首先对相应的数据和图形界面初始化,并获取系统当前的年和月,如果要进行查找,可以通过在年份对话框中输入要查询的年份,再相应的在月份对应的下拉菜单选择要查询的月份,则可得到相应的日历。本设计是对图形用户界面,布局管理器的综合运用,理解JAVA的时间处理机制,编写独立运行的窗口。该万年历采用Myeclipse为基本开发环境和java语言进行编写,首先可在短时间内建立系统应用原型,然后,对程序进行不断修正和改进,直到形成可行系统。关键词:java、面向对象、万年历目录1、前言....................................................................................................12、设计内容...........................................................................................13、设计过程...........................................................................................13.1需求分析........................................................................................13.2概要设计.......................................................................................13.3详细设计.......................................................................................23.4代码实现.......................................................................................43.5运行结果.......................................................................................84、总结....................................................................................................95、参考文献.........................................................................................1011、前言Java的体系结构由Java语言、Javaclass、JavaAPI、Java虚拟机组成。它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。Java的平台标准有JavaME,JavaSE和JavaEE。Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。目前在众多的支持Java的开发工具中主要的工具有JavaDevelopmentKit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中JavaDevelopmentKit简称JDK是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。本次万年历就是通过JAVA语言来完成的。2、设计内容万年历是一个强大的日历系统,通过它可以实现对过去,现在以及将来日期的查找,通过在年份对话框中输入要查询的年份,再相应的在月份对应的下拉菜单选择要查询的月份,则可得到相应的日历。本设计是对图形用户界面,布局管理器的综合运用,理解JAVA的时间处理机制,编写独立运行的窗口。3、设计过程3.1需求分析本次设计的要求为通过使用图形用户界面,从而能够实现日期与星期的查询。本程序的具体功能为如下几个方面:(1)能够实现图形界面(2)能以月历形式显示日期与星期(3)支持用户自己输入年份,并提供月份的下拉形式菜单来选择月份(4)通过点击“update”按钮来更新和刷新日历3.2概要设计(1)总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为2闰年,是闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。(2)输出月份第一天为星期几的算法:使总天数除以7取余加2得几既为星期几,若是7,则为星期日。(3)算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。(4)如果年份小于1582年则程序不予判断。3.3详细设计(1)流程图3图1程序流程图(2)导入程序所需的类importjava.applet.Applet;importjava.awt.*;importjava.util.*;(3)初始化数据publicclassWanNianLiextendsApplet{staticfinalintTOP=70;//顶端距离staticfinalintCELLWIDTH=50,CELLHEIGHT=30;//单元格尺寸staticfinalintMARGIN=3;//边界距离staticfinalintFEBRUARY=1;TextFieldtfYear=newTextField(2004,5);//显示年份的文本域ChoicemonthChoice=newChoice();//月份选择下拉框ButtonbtUpdate=newButton(update);//更新按钮GregorianCalendarcalendar=newGregorianCalendar();//日历对象4FontsmallFont=newFont(TimesRoman,Font.PLAIN,15);//显示小字体FontbigFont=newFont(TimesRoman,Font.BOLD,50);//显示大字体Stringdays[]={星期日,星期一,星期二,星期三,星期四,星期五,星期六};Stringmonths[]={1,2,3,4,5,6,7,8,9,10,11,12};intdaysInMonth[]={31,28,31,30,31,30,31,31,30,31,30,31};//每个月的天数intsearchMonth,searchYear;//查询的年份及月份}(4)绘制程序的界面publicvoidinit(){setBackground(Color.green);//设置背景颜色searchMonth=calendar.get(Calendar.MONTH);//得到系统年份,当前的年份searchYear=calendar.get(Calendar.YEAR);//得到系统月份,当前的月份add(newLabel(Year:));//增加组件到ApplettfYear.setText(String.valueOf(searchYear));//设置文本域文字add(tfYear);add(newLabel(Month:));monthChoice.setFont(smallFont);//设置月份选择下拉框的显示字体for(inti=0;i12;i++){monthChoice.addItem(months[i]);//增加下拉框选项}monthChoice.select(searchMonth);//设置下拉框当前选择项add(monthChoice);add(btUpdate);intcomponentCount=this.getComponentCount();//得到Applet中的组件数量for(inti=0;icomponentCount;i++){getComponent(i).setFont(smallFont);//设置所有组件的显示字体}}3.4代码实现packagess2;importjava.applet.Applet;importjava.awt.*;importjava.util.*;publicclassWanNianLiextendsApplet{staticfinalintTOP=70;//顶端距离staticfinalintCELLWIDTH=50,CELLHEIGHT=30;//单元格尺寸staticfinalintMARGIN=3;//边界距离staticfinalintFEBRUARY=1;5TextFieldtfYear=newTextField(2004,5);//显示年份的文本域ChoicemonthChoice=newChoice();//月份选择下拉框ButtonbtUpdate=newButton(update);//更新按钮GregorianCalendarcalendar=newGregorianCalendar();//日历对象FontsmallFont=newFont(TimesRoman,Font.PLAIN,15);//显示小字体FontbigFont=newFont(TimesRoman,Font.BOLD,50);//显示大字体Stringdays[]={星期日,星期一,星期二,星期三,星期四,星期五,星期六};Stringmonths[]={1,2,3,4,5,6,7,8,9,10,11,12};intdaysInMonth[]={31,28,31,30,31,30,31,31,30,31,30,31};//每个月的天数intsearchMonth,searchYear;//查询的年份及月份publicvoidinit(){setBackground(Color.green);//设置背景颜色searchMonth=calendar.get(Calendar.MONTH);//得到系统年份,当前的年份searchYear=calendar.get(Calendar.YEAR);//得到系统月份,当前的月份add(newLabel(Year:));//增加组件到ApplettfYear.setText(String.valueOf(searchYear));//设置文本域文字add(tfYear);add(newLabel(Month:));monthChoice.setFont(smallFont);//设置月份选择下拉框的显示字体for(inti=0;i12;i++){monthChoice.addItem(months[i]);//增加下拉框选项}monthChoice.select(searchMonth);//设置下拉框当前选择项add(monthChoice);add(btUpdate);intcomponentCount=this.getComponentCount();//得到Applet中的组件数量for(inti=

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功