万年历设计3.docx

上传人:lao****ou 文档编号:409105 上传时间:2023-10-26 格式:DOCX 页数:13 大小:146.15KB
下载 相关 举报
万年历设计3.docx_第1页
第1页 / 共13页
万年历设计3.docx_第2页
第2页 / 共13页
万年历设计3.docx_第3页
第3页 / 共13页
万年历设计3.docx_第4页
第4页 / 共13页
万年历设计3.docx_第5页
第5页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《万年历设计3.docx》由会员分享,可在线阅读,更多相关《万年历设计3.docx(13页珍藏版)》请在第一文库网上搜索。

1、陕西师范大学远程教育学院题目:java万年历设计学习中心,陕西省咸阳教苜科技培训学院学号:层次:一高一中起点专科姓名王遥俊一、设计内容2二、设计过程22.1 需求分析22.2 概要设计22.3 详细设计32.4 程序运行与发布5三、总结7四、参考文献7一、设计内容万年历是一个强大的日历系统,通过它可以实现对过去,现在以及将来日期的查找,通过在年份对话框中输入要查询的年份,再相应的在月份对应的下拉菜单选择要查询的月份,则可得到相应的日历。本实验是对图形用户界面,布局管理器的综合运用,理解JAVA的时间处理机制,编写独立运行的窗口。二、设计过程2.1 需求分析本程序的要求为:1.使用图形用户界面本

2、程序能够实现日期与星期的查询。3.随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用JaVa语言编写一个简单的万年历,可以实现查询日期和显示时间的功能,满足日常基本的工作学习和娱乐需要。2.2 概要设计1 .总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,令总天数S=1否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且

3、该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。2 .输出月份第一天为星期几的算法:使总天数除以7取余加2得几既为星期几,若是7,则为星期日。3 .算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得O换行,即可完整的输出该月的日历。4 .如果年份小于1582年则程序不予判断。2.3详细设计1 .流程图23 .初始化组件:importjava.app1et.App1et;importjava.awt.*;importjava.u

4、ti1.*;4 .初始化数据:pub1icc1assCa1endarApp1etextendsApp1etstaticfina1intTOP=70;顶端距离staticfina1intCE11WIDTH=50,CE11HEIGHT=30;单元格尺寸staticfina1intMARGIN=3;边界距离staticfina1intFEBRUARY=1;TextFie1dIfYear=newTextFie1d(,2004,5);/显示年份的文本域ChoicemonthChoice=newChoice();月份选择下拉框ButtonbtUpdate=newBUtton(“更新”);更新按钮Grego

5、rianCa1endarca1endar=newGregorianCa1endar();日历对象FontSma11Font=newFont(,TimesRoman,Font.P1A1N,15);显示小字体FontbigFont=newFont(TimesRoman,Font.BO1D,50);显示大字体Stringdays=星期日星期一”,”星期二星期三”,”星期四星期五一星期六”);Stringmonths=一月二“二月“,“三月“,“四月五月“,“六月“,“七月“,“八月”,“九月”,“十月:H月”,“十二月”;intdaysInMonthU=31,28,31,30,31,30,31,31

6、,30,31,30,31;每个月的天数intSearchMonth,searchYear;查询的年份及月份5 .绘制程序界面:pub1icvoidinit()SetBackground(Co1oEwhite);设置背景颜色SearchMonth=ca1endar.get(Ca1endar.MONTH);得至IJ系统年份SearchYear=ca1endar.get(Ca1endar.YEAR);得至IJ系统月份add(new1abe1(年:);增加组件到App1ettfYear.setText(String.va1ueOf(searchYear);设置文本域文字add(tfYear);add(

7、new1abe1(月monthChoice.setFont(sma11Font);设置月份选择下拉框的显示字体for(inti=0;i12;i+)monthChoice.add1tem(monthsi);增加下拉框选项)monthChoice.se1ect(SearchMonth);设置下拉框当前选择项add(monthChoice);add(btUpdate);intComPOnentCoUnt=this.getComponentCount();得至IJApp1et中的组件数for(inti=0;icomponentCount;i+)getComponeHi).SetFont(Sma11Fo

8、nt);/设置所有组件的显示字体)6 .4程序运行与发布在年份输入框内输入2012后点击查看后的情况:月份下拉列表框:小程序已启动.选择月份后的情况:点击查看按钮后显示的结果:B小程序查看器:Ca1endarApp1et.c1assApp1et年:2018月:I七月T1查登|星期日星期一星期二星期三星期四星期五星期六12345678910111213141516171819202122232425262728293031小程序已启动.三、总结(1)选题目的:本次课程设计为课本后设计题目任选一题进行设计。思考一段时间后,我决定做一个万年历的设计。主要考虑到本学期时间少课程内容多,JAVA课程基础

9、内容掌握并不是很抓实,而对于设计一个万年历程序,由于其功能简单设计也相对较易,对于我个人的学习情况比较合适,并且通过设计这样的一个日历小组件,也能使自己对JAVA的一些基础知识掌握的更加牢固。(2)对于本程序的设计,首先考虑其功能有哪些,需要显示什么,如何进行窗体构建布局,需要用哪些知识点,如相关的类和对象等。最后,就是根据初步设计的功能和布局构架,考虑用源代码进行实现了。经过了长时间的反复编写调试,课本和网上查阅相关资料相关文章,终于完成了整个课程设计。在这个过程中,在把书本上的知识给系统的复习了一下的同时,同时也发现了自己的太多不足,对JAVA语言整体知识构架不够熟悉,不能灵活地运用所学的

10、知识点。自己的编程方式也不是太标准,经常出现代码写错而调试很久的低级错误情况出现。通过这次课程设计,我明白了编写程序,不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。还要熟悉常用的编程技巧和编程思想,不能只关心程序的运行结果,更要注重程序代码的结构,编程者更要有严谨地态度。还有通过设计过程中大量地查阅网络文章,对一些关键知识点逐个地了解并解决相关问题。所以网络这个强大的工具,确实是我们学习之中可以借助的一个很好的帮手。网络是我们学习的最好的老师之一。有问题,问网络,是一个很好的习惯。四、参考文献代码实现importjava.app1et.App1et;importj

11、ava.awt.*;importjava.uti1.*;pub1icc1assCa1endarApp1etextendsApp1etstaticfina1intTOP=70;顶端距离staticfina1intCE11WIDTH=50,CE11HEIGHT=30;单元格尺寸staticfina1intMARGIN=5;边界距离staticfina1intFEBRUARY=1;TextFie1dtfYear=newTextFie1d(2004,5);显示年份的文本域ChoicemonthChoice=newChoice();月份选择下拉框ButtonbtUpdate=newBUtton(查看);

12、更新按钮GregorianCa1endarca1endar=newGregOrianCa1endar();日历对象FontSma11Font=newFOntCTimeSROman,Font.P1AIN,15);显示小字体FontbigFont=newFont(TimesRoman,Font.BO1D,50);显示大字体Stringdays=星期日星期一:星期二,“星期三”J星期四星期五7星期六”;Stringmonths=“一月“,“二月“,三月四月”,”五月六月七月”,八月:九月十月:H一月”,“十二月”;intdaysInMonth=31,28,31,30,31,30,31,31,30,3

13、1,30,31;每个月的天数intSearchMonthiSearchYear;查询的年份及月份pub1icvoidinit()SetBackground(Co1o1ye11ow);/设置背景颜色SearchMonth=ca1endar.get(Ca1endar.MONTH);得至U系统年份SearchYear=ca1endar.get(Ca1endar.YEAR);得到系统月份add(new1abe1(年:);/增加组件到App1ettfYear.setText(String.Va1ueOf(SearchYear);设置文本域文字add(tfYear);add(new1abe1(u月mont

14、hChoice.setFont(sma!IFont);设置月份选择下拉框的显示字体for(inti=0;i12;i+)monthChoice.addItem(monthsi);增加下拉框选项)monthChoice.se1ect(searchMonth);设置下拉框当前选择项add(monthChoice);add(btUpdate);intcomponentCount=this.getComponentCount();得至IJApp1et中的组件数量for(inti=0;icomponentCount;i+)getComponenp).SetFont(Sma11Font);/设置所有组件的显

15、示字体)1pub1icvoidpaint(Graphicsg)FontMetricsfontMetric;/显示字体的FontMetrics对象intfontAscent;intdayPos;inttota1Width,tota1Height;总的宽度,高度intnumRows;行数intxNum,yNum;水平和垂直方向单元格数量intnumDays;StringdayStr;显示天数字符串intmargin;g.setCo1or(Co1or.IightGray);设置当前颜色g.setFont(bigFont);设置当前使用字体g.drawString(searchYear+年,60,TOP+70);绘制字符串g

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

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

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



客服