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

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

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

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

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

    1、Java万年历课程设计报告 This model paper was revised by the Standardization Office on December 10, 2020Java万年历课程设计报告Java课程设计设计题目:万年历系 别: 计算机科学与工程学院 专 业: 信息管理与信息系统 学 号: 姓 名: 岑少兵 指导教师: 汪华澄 时 间: 2013-6-29 摘要3系统功能结构图31 系统模块设计41.1 需求设计41.2 开发和运行环境41.3 功能设计42 万年历详细设计思路4 2.1 程序设计思路5 2.2 程序运行主界面52.3 流程图63 各模块功能实现及代码说

    2、明6 3.1 MainFramel类6 3.2 Lunar类14 3.3 national类22 3.4 SetClock类26 4 小结 345 参考文献 34基于Myeclipse的万年历摘要:万年历是日常生活中不可或缺的小工具,用万年历我们可以准确地查到当前,以后或是过去的日期,极大地方便了我们的生活。在万年历上添加了显示本地时间以后会更加准确地显示时间。无论是对于我们学生还是上班族或是自由职业者需要经常查看和查找万年历来规划自己将要做得一些事情,或是回忆在过去的时间里已经做过的事情,使之更加有利于提升我们的学习或是工作进度。系统功能结构图:主要描述系统要实现的各个模块的功能。1系统模块

    3、设计11需求分析本程序的要求为:1.使用图形用户界面 2.能够实现日期与星期的查询 3.能够显示农历 4.能够查看世界时间5.能够添加闹钟 12 开发和运行环境开发工具:Myeclipse运行环境: windows 7 13功能设计 本程序要构建的万年历程序,其功能有以下几个方面: (1)通过MainFrame类,实现图形界面和公历日期。(2)提供年份、月份的下拉形式菜单来选择年份和月份。(3)通过Lunar类实现农历日期。(4)通过national类实现世界时间。(5)能以月历形式显示日期与星期。 (6)通过SetClock类来实现闹钟功能。(7)通过点击世界时间按钮查询世界时间(8) 通过

    4、点击闹钟按钮设置闹钟(9)显示系统当前时间和日期。(10)显示作者信息。 2 万年历详细设计思路2.1程序设计思路1. 总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。 2. 输出月份第一天为星期几的算法:使总天数除以7取余加2得几既为星期几,若是7,则为星期日。3

    5、. 算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。4. 如果年份小于1900年则程序不予判断。2.2程序运行主界面2.3流程图3 各模块功能实现及代码说明3.1 MainFrame类import aa.Lunar;public class MainFrame extends JFrame implements ItemListener/建立主界面 JPanel panel=new JPanel(new BorderLayout();/

    6、建立中层容器并布局 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 JLabel(月); JLabel dashao =new JLabel(时间总是在不经意间溜走,我们还得向前走,JLabel.CENTER); JLabel bing =new J

    7、Label(希望在回首时候,不带任何遗憾!,JLabel.CENTER); JLabel feng =new JLabel(桂电大烧饼制作!,JLabel.CENTER); JLabel labelTime=new JLabel(,JLabel.CENTER); JComboBox com1=new JComboBox();/下拉窗口 JComboBox com2=new JComboBox(); JButton but1=new JButton(闹钟); /按钮 JButton but2=new JButton(世界时间); Calendar now=Calendar.getInstance

    8、(); 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); panel1.add(but2); panel3.add(dashao); panel3.add(bing); panel3.add(feng); panel3.add(la

    9、belTime); 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); setContentPane(panel); setVisible(true); init(); com1.addItemListener(this);/对下拉组件监听 com

    10、2.addItemListener(this); but1.addActionListener(new ActionListener() /按钮动作监听 public void actionPerformed(ActionEvent e) new aa.SetClock(); /闹钟类 ); but2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) new aa.national();/世界时间类 ); Timer timer = new Timer(1000, new Acti

    11、onListener()/获得系统时间,并将其显示在主界面下方 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 init()/设置日期标签函数 int year,month,first_day_num; String log= 星期日, 星期一, 星期二, 星期三, 星期四, 星期五

    12、, 星期六; 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+)/将年份的下拉设置为1800-2100年 com1.addItem(+i); for(int i=1;i13;i+)/讲月份下拉设置为12月 com2.addItem(+i); first_

    13、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);/将月份设置为当前月 Resetday(first_day_num,year,month);/调用Resetday函数 public int use(int year2,int month

    14、2)/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().toString(); month3=Integer.parseInt(com2.getSelectedItem().toString()-1; week3=use(year3

    15、,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 LunarDate=new String49;/农历标签 month_day_score = 0; count = 1; for (int i = 0; i 49; i +) /将农历跟公

    16、历一起显示 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(year_log, month_log + 1, 1); / now MONTH是从0开始的, 对于一月第几天来说,DAY_OF_MONTH第一天就是1. 对于一年第几个月来

    17、说,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 (int i = 7; i 49; i+) / 初始化标签 labeli.setText(); week_log = week_log + 6; / 将星期数加6,使显示正确

    18、 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 0x8; i = 1) if (lunarInfoy - 1900 & i) != 0) sum += 1; return (sum + leapDays(y); /= 传回农历 y年闰月的天数 final private static int leapDays(int y) if (leapMonth(y) != 0) if (lunarInfoy - 1900 & 0x10000) != 0) return 30; else return 29; else return 0; /= 传回农历 y年闰哪个月 1-12 , 没闰传回 0 final private static int leapMonth(int y) return (int) (lunarInfoy - 1900 & 0xf); /= 传


    注意事项

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

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




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

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开