欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    Java万年历课程设计报告剖析.docx

    • 资源ID:3316825       资源大小:121.19KB        全文页数:38页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java万年历课程设计报告剖析.docx

    1、Java万年历课程设计报告剖析Java课程设计设计题目:万年历系 别: 计算机科学与工程学院 专 业: 信息管理与信息系统 学 号: 1100340116 姓 名: 岑少兵 指导教师: 汪华澄 时 间: 2013-6-29 摘要3系统功能结构图31 系统模块设计41.1 需求设计41.2 开发和运行环境41.3 功能设计42 万年历详细设计思路4 2.1 程序设计思路5 2.2 程序运行主界面52.3 流程图63 各模块功能实现及代码说明6 3.1 MainFramel类6 3.2 Lunar类14 3.3 national类22 3.4 SetClock类26 4 小结 345 参考文献 3

    2、4基于Myeclipse的万年历摘要:万年历是日常生活中不可或缺的小工具,用万年历我们可以准确地查到当前,以后或是过去的日期,极大地方便了我们的生活。在万年历上添加了显示本地时间以后会更加准确地显示时间。无论是对于我们学生还是上班族或是自由职业者需要经常查看和查找万年历来规划自己将要做得一些事情,或是回忆在过去的时间里已经做过的事情,使之更加有利于提升我们的学习或是工作进度。系统功能结构图:主要描述系统要实现的各个模块的功能。1系统模块设计11需求分析本程序的要求为:1.使用图形用户界面 2.能够实现日期与星期的查询 3.能够显示农历 4.能够查看世界时间5.能够添加闹钟 12 开发和运行环境

    3、开发工具:Myeclipse运行环境: windows 7 13功能设计 本程序要构建的万年历程序,其功能有以下几个方面: (1) 通过MainFrame类,实现图形界面和公历日期。(2) 提供年份、月份的下拉形式菜单来选择年份和月份。(3) 通过Lunar类实现农历日期。(4) 通过national类实现世界时间。(5) 能以月历形式显示日期与星期。 (6) 通过SetClock类来实现闹钟功能。(7) 通过点击世界时间按钮查询世界时间(8) 通过点击闹钟按钮设置闹钟(9) 显示系统当前时间和日期。(10) 显示作者信息。 2 万年历详细设计思路2.1程序设计思路1. 总天数的算法:首先用i

    4、f语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。 2. 输出月份第一天为星期几的算法:使总天数除以7取余加2得几既为星期几,若是7,则为星期日。3. 算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数

    5、加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。4. 如果年份小于1900年则程序不予判断。2.2程序运行主界面2.3流程图3 各模块功能实现及代码说明3.1 MainFrame类import java.awt.BorderLayout;import java.awt.Color;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.ev

    6、ent.ItemListener;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.Timer;import aa.Lunar;public class MainFrame ext

    7、ends JFrame implements ItemListener/建立主界面 JPanel panel=new JPanel(new BorderLayout();/建立中层容器并布局 JPanel panel1=new JPanel(); JPanel panel2=new JPanel(new GridLayout(8,7); JPanel panel3=new JPanel(new GridLayout(4,1); JLabel label=new JLabel49;/标签 JLabel y_label=new JLabel(年); JLabel m_label=new JLabe

    8、l(月); JLabel dashao =new JLabel(时间总是在不经意间溜走,我们还得向前走,JLabel.CENTER); JLabel bing =new JLabel(希望在回首时候,不带任何遗憾!,JLabel.CENTER); JLabel feng =new JLabel(桂电大烧饼制作!,JLabel.CENTER); JLabel labelTime=new JLabel(,JLabel.CENTER); JComboBox com1=new JComboBox();/下拉窗口 JComboBox com2=new JComboBox(); JButton but1=

    9、new JButton(闹钟); /按钮 JButton but2=new JButton(世界时间); Calendar now=Calendar.getInstance(); public MainFrame()/设置主界面,并添加各组件 super(大烧饼万年历); setSize(500,600); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); panel1.add(but1); panel1.add(y_label); panel1.add(com1); panel1.add(m_label); panel1.add(com2); p

    10、anel1.add(but2); panel3.add(dashao); panel3.add(bing); panel3.add(feng); panel3.add(labelTime); for(int i=0;i49;i+)/日期标签 labeli=new JLabel(,JLabel.CENTER); panel2.add(labeli); panel.add(panel1,BorderLayout.NORTH);/中层容器布局 panel.add(panel2,BorderLayout.CENTER); panel.add(panel3,BorderLayout.SOUTH); se

    11、tContentPane(panel); setVisible(true); init(); com1.addItemListener(this);/对下拉组件监听 com2.addItemListener(this); but1.addActionListener(new ActionListener() /按钮动作监听 public void actionPerformed(ActionEvent e) new aa.SetClock(); /闹钟类 ); but2.addActionListener(new ActionListener() public void actionPerfo

    12、rmed(ActionEvent e) new aa.national();/世界时间类 ); Timer timer = new Timer(1000, new ActionListener()/获得系统时间,并将其显示在主界面下方 public void actionPerformed(ActionEvent evt) String s1= new SimpleDateFormat(yyyy-MM-dd HH:mm:ss).format(new Date(); labelTime.setText(现在时间是:+s1); ); timer.start();/线程启动 public void

    13、init()/设置日期标签函数 int year,month,first_day_num; String log= 星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六; for(int i=0;i7;i+) labeli.setText(logi); for(int i=0;i49;i=i+7) labeli.setForeground(Color.red);/将星期天设置为红色 for(int i=6;i49;i=i+7) labeli.setForeground(Color.red);/将星期六设置为红色 for(int i=1800;i=2100;i+)/将年份的下拉设置

    14、为1800-2100年 com1.addItem(+i); for(int i=1;i13;i+)/讲月份下拉设置为12月 com2.addItem(+i); first_day_num=(int)(now.get(Calendar.DAY_OF_WEEK);/获得日期 month=(int)(now.get(Calendar.MONTH);/获得月份 year=(int)(now.get(Calendar.YEAR);/获得年份 com1.setSelectedIndex(year-1800);/将年份设置为当前年份 com2.setSelectedIndex(month);/将月份设置为当

    15、前月 Resetday(first_day_num,year,month);/调用Resetday函数 public int use(int year2,int month2)/use函数 int first_day; now.set(year2, month2,1); first_day=(int)(now.get(Calendar.DAY_OF_WEEK); return first_day; public void stateChanged() int year3,month3,week3; year3=Integer.parseInt(com1.getSelectedItem().to

    16、String(); month3=Integer.parseInt(com2.getSelectedItem().toString()-1; week3=use(year3,month3); Resetday(week3,year3,month3);/调用函数 public void Resetday(int week_log, int year_log, int month_log) /Resetday函数 int month_day_score; / 存储月份的天数 int count; Lunar lunar;/定义lunar int month_day; String LunarDat

    17、e=new String49;/农历标签 month_day_score = 0; count = 1; for (int i = 0; i 49; i +) /将农历跟公历一起显示 for(int j=0;j49;j=j+7) if(i!=j&i!=j+6) labeli.setForeground(Color.black); for(int j=0;i49;i=i+7) labeli.setForeground(Color.red); for(int j=6;i49;i=i+7) labeli.setForeground(Color.red); Date date = new Date(y

    18、ear_log, month_log + 1, 1); / now MONTH是从0开始的, 对于一月第几天来说,DAY_OF_MONTH第一天就是1. 对于一年第几个月来说,MONTH一月份是0,二月份是1. Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.MONTH, -1); / 前个月 month_day_score = cal.getActualMaximum(Calendar.DAY_OF_MONTH);/ 最后一天 month_day=month_day_score; for (

    19、int i = 7; i 49; i+) / 初始化标签 labeli.setText(); week_log = week_log + 6; / 将星期数加6,使显示正确 month_day_score = month_day_score + week_log; lunar=new aa.Lunar();/调用Lunar类 for(int i=0;imonth_day;i+) LunarDatei=lunar.getLunarDate( year_log, month_log+1, i+1);/农历的实现 for (int i = week_log; i month_day_score; i

    20、+, count+) /一些假期 if(month_log=9&count=1) labeli.setText(count +国庆 ); labeli.setForeground(Color.red); else if(month_log=0&count=1) labeli.setText(count +元旦 ); labeli.setForeground(Color.red); else if(month_log=11&count=24) labeli.setText(count +平安夜 ); labeli.setForeground(Color.red); else if(month_l

    21、og=11&count=25) labeli.setText(count +圣诞 ); labeli.setForeground(Color.red); else if(month_log=1&count=14) labeli.setText(count +情人节 ); labeli.setForeground(Color.red); else if(month_log=4&count=1) labeli.setText(count +劳动节 ); labeli.setForeground(Color.red); else if(LunarDatei-week_log.equals(春节)|L

    22、unarDatei-week_log.equals(元宵)|LunarDatei-week_log.equals(端午)|LunarDatei-week_log.equals(中秋) labeli.setText(n+count +LunarDatei-week_log ); labeli.setForeground(Color.red); else labeli.setText(count +LunarDatei-week_log ); public void itemStateChanged(ItemEvent e) stateChanged();/调用函数 public static v

    23、oid main(String args)/主函数 new MainFrame(); 3.2 Lunar类package aa;import java.awt.Color;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class Lunar private int year; private int month; private int day; private boolean leap; final

    24、 static String chineseNumber = 一, 二, 三, 四, 五, 六, 七, 八, 九, 十, 十一, 十二; static SimpleDateFormat chineseDateFormat = new SimpleDateFormat(yyyy年MM月dd日); final static long lunarInfo = new long 0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2, 0x04ae0, 0x0a5b6, 0x0a4

    25、d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977, 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, 0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0,

    26、 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5d0, 0x14573, 0x052d0, 0x0a9a8, 0x0e950, 0x06aa0, 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b5a0, 0x

    27、195a6, 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x055c0, 0x0ab60, 0x096d5, 0x092e0, 0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, 0x05aa0, 0x076a3, 0x096d0, 0x04bd7, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0


    注意事项

    本文(Java万年历课程设计报告剖析.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开