《万年历设计3.docx》由会员分享,可在线阅读,更多相关《万年历设计3.docx(16页珍藏版)》请在第一文库网上搜索。
1、陕西师范大学远程教育学院题目:java万年历设计学习中心L 陕西省咸阳教育科技培训学院学号:Jx 4 i_L !-专 姓名:王遥俊.2.2.2.2.3 .7.7一、设计内容.、设vF 不王2.1 需求分析2.2 概要设计2.3 详细设计2.4 程序运行与发布三、总结四、参考文献一、设计内容万年历是一个强大的日历系统,通过它可以实现对过去,现在以及将来日期的查找,通过在年份对话框中输入要查询的年份,再相应的在月份对应的下拉菜单选择要查询的月份,则可得到相应的日历。本实验是对图形用户界面,布局管理器的综合运用,理解JAVA的时间处理机制,编写独立运行的窗口。二、设计过程2.1 需求分析本程序的要求
2、为:L使用图形用户界面;2.本程序能够实现日期与星期的查询。3.随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。文本编辑器是个人计算机最司空见惯的应用程序了,在学习了 Java语言之后,我决定使用Java语言编写一个简单的万年历,可以实现查询日期和显示时间的功能,满足日常基本的工作学习和娱乐需要。2.2 概要设计1 .总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,令总天数S=l,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数
3、累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。2 .输出月份第一天为星期几的算法:使总天数除以7取余加2得几既为星期几,若是7,则为星期日。3 .算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。4 .如果年份小于1582年则程序不予判断。2.3详细设计1 .流程图2 .初始化组件:import java.applet Applet;import java.
4、awt.*;import java.util.*;3 .初始化数据:public class CalendarApplet extends Appletstatic final int TOP = 70; 顶端距离static final int CELLWIDTH=50,CELLHEIGHT = 30; 单元格尺寸static final int MARGIN = 3; 边界距离static final int FEBRUARY = 1;TextField tfYear = new TextField(2004, 5); 显示年份的文本域Choice monthChoice = new Ch
5、oice(); 月份选择下拉框Button btUpdate = new Button。更新)更新按钮GregorianCalendar calendar=new GregorianCalendar(); 日历对象Font smallFont = new Font(,TimesRoman, Font.PLAIN, 15); /显示小字体Font bigFont = new Font(,TimesRoman, Font.BOLD, 50); /显示大字体String days = “星期日“,“星期一“,星期二星期三”,“星期四“,“星期五二”星期六”;String months = “一月“,
6、”二月三月四月五月六月七月八月:九月十月:月“,“十二月“;int daysInMonth = 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31; /每个月的天数int searchMonth,searchYear; /查询的年份及月份4 .绘制程序界面:public void init()setBackground(Color.white); 设置背景颜色searchMonth = calendar.get(Calendar.MONTH); 得至!系统年份search Year = calendar.get(Calendar.YEAR); 得至 J
7、 系统月份add(new Label(年:);增加组件到 ApplettfYear.setText(Sting.valueOf(searchYear)X /设置文本域文字add(tfYear);add(new Label(月monthChoice.setFont(smallFont); 设置月份选择下拉框的显示字体for (int i = 0; i 12; i+) monthChoice.addItem(monthsi); 增加下拉框选项monthChoice.select(searchMonth); S T 拉框当前选择项add(monthChoice);add(btUpdate);int
8、componentCount=this.getComponentCount(); 得至J Applet 中的组件数for (int i=0;icomponentCount;i+) getComponent(i).setFont(smallFont); /设置所有组件的显示字体)2.4程序运行与发布在年份输入框内输入2012后点击查看后的情况:月份下拉列表框:选择月份后的情况:小程序查看器:Calendar Applet. classApplet年:2018星期日星期一星期二星期三星期四星期五星期六123456一 78910111213141516171819202122232425262728
9、293031小程序已启动。点击查看按钮后显示的结果:小程序查看器:Calendar Applet, classApplet年:2018月:I七月勺Ml星期日星期一星期二星期三星期四星期五星期六12345678910111213141516171819202122232425262728293031小程序已启动。三、总结(1)选题目的:本次课程设计为课本后设计题目任选一题进行设计。思考一段时间后,我决定做一个万年历的设计。主要考虑到本学期时间少课程内容多,JAVA课程基础内容掌握并不是很抓实,而对于设计一个万年历程序,由于其功能简单设计也相对较易,对于我个人的学习情况比较合适,并且通过设计这样的
10、一个日历小组件,也能使自己对JAVA的一些基础知识掌握的更加牢固。(2)对于本程序的设计,首先考虑其功能有哪些,需要显示什么,如何进行窗体构建布局,需要用哪些知识点,如相关的类和对象等。最后,就是根据初步设计的功能和布局构架,考虑用源代码进行实现了。经过了长时间的反复编写调试,课本和网上查阅相关资料相关文章,终于完成了整个课程设计。在这个过程中,在把书本上的知识给系统的复习了一下的同时,同时也发现了自己的太多不足,对JAVA语言整体知识构架不够熟悉,不能灵活地运用所学的知识点。自己的编程方式也不是太标准,经常出现代码写错而调试很久的低级错误情况出现。通过这次课程设计,我明白了编写程序,不仅要求
11、对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。还要熟悉常用的编程技巧和编程思想,不能只关心程序的运行结果,更要注重程序代码的结构,编程者更要有严谨地态度。还有通过设计过程中大量地查阅网络文章,对一些关键知识点逐个地了解并解决相关问题。所以网络这个强大的工具,确实是我们学习之中可以借助的一个很好的帮手。网络是我们学习的最好的老师之一。有问题,问网络,是一个很好的习惯。四、参考文献1曾令明索望宋波,Java程序设计教程,西安电子科技大学出版社,2007. 82 .孙全党 王吴迪 赵枫朝,Java程序设计应用教程,电子工业出版社,2006. 23 .赵玉阳,Java从入门到精通
12、,清华大学出版社,2006.8代码实现import java.applet. Applet;import java.awt.*;import java.util.*;public class CalendarApplet extends Applet static final int TOP = 70; 顶端距离static final int CELLWIDTH=50,CELLHEIGHT = 30; 单元格尺寸static final int MARGIN = 5; 边界距离static final int FEBRUARY = 1;TextField tfYear = new TextF
13、ield(2004, 5); 显示年份的文本域Choice monthChoice = new ChoiceQ; 月份选择下拉框Button btUpdate = new Button。查看);更新按钮GregorianCalendar calendar=new GregorianCalendar。; 日历对象Font smallFont = new Font(,TimesRoman, Font.PLAIN, 15); 显示小字体Font bigFont = new Font(,TimesRoman, Font.BOLD, 50); /显示大字体String days = “星期日“,“星期一
14、“,星期二星期三”,“星期四“,“星期五二”星期六”;String months = 一月一二月三月“,“四月“,“五月六月七月八月:九月十月:月“,“十二月“;int daysInMonth = 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31;每个月的天数int searchMonth,searchYear; /查询的年份及月份public void init()setBackground(Color.yellow); 设置背景颜色searchMonth = calendar.get(Calendar.MONTH); 得到系统年份searchYear = calendar.get(Calendar.YEAR); 得到系统月份add(new Label(年:);增加组件到 ApplettfYear.setText(Strin