欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    java万年历课程设计报告.doc

    • 资源ID:4219765       资源大小:107KB        全文页数:10页
    • 资源格式: DOC        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    java万年历课程设计报告.doc

    西安科技大学程序设计综合实训课程设计报告 题目: 万 年 历 班级: 学号: 姓名: 2103年12月 目 录1 绪论11.1选题目的及意义11.2 系统概述 11.3 人员组成及分工12 需求分析13 总体设计14 详细设计15 系统实现2 5.1 开发环境3 5.2 关键技术36.运行结果67.软件测试78.总结79 参考文献8 1.绪论1.1选题目的及意义选题目的:本次课程设计为课本后设计题目任选一题进行设计。思考一段时间后,我们组决定做一个万年历的设计。主要考虑到以前时间少课程内容多,JAVA课程基础内容掌握并不是很抓实,而对于设计一个万年历程序,由于其功能简单设计也相对较易,对于我们组每个人的学习情况比较合适,并且通过设计这样的一个日历小组件,也能使自己对JAVA的一些基础知识掌握的更加牢固。 1.2 系统概述 随着电子技术的不断发展,人们的不断创新,万年历已经不再局限于书本形式,而是以电脑软件或者电子产品的形式出现。让其更加便捷。在学习了JAVA课程后,将以JAVA形式编译出一个简易的万年历。 1.3 人员组成及分工付 磊:负责搜集查找资料王杜超:调试程序两人共同负责程序的编写与修改2.需求分析本程序的要求为:1.使用图形用户界面;2.本程序能够实现日期与星期的查询。3.可以添加或者删除日志3.总体设计(1)可以通过图形界面显示日历。(2)能以月历形式显示日期与星期。 (3)支持用户自己输入年份,可以通过上一年,下一年等按钮来选择年份和月份。(4)可以添加或者删除并且点击对应日期显示日志。4.详细设计1. 总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。  2. 输出月份第一天为星期几的算法:使总天数除以7取余得几既为星期几,若是0,则为星期日。3. 算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。4. 查询年份必须为四位有效数字,否则不予显示。5.显示系统时间。程序初始化获取当前系统时间年份等数据提交年月变更数据 是否输入年份或选择月份开始计算,绘制屏幕结束 6.流程图 流程图5.系统实现5.1 开发环境myeclipse-8.5.0-win325.2 关键技术(1)界面的绘制与显示 public class wannianli extends JFrame implements ActionListener, MouseListener private Calendar cld = Calendar.getInstance(); private String astr = "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日" private DefaultTableModel dtm = new DefaultTableModel(null,astr); private JTable table = new JTable(dtm); /装日期的表格 private JScrollPane sp = new JScrollPane(table); private JButton bLastYear = new JButton("上一年"); private JButton bNextYear = new JButton("下一年"); private JButton bLastMonth = new JButton("上月"); private JButton bNextMonth = new JButton("下月"); private JTextField jtfYear = new JTextField(5);/jtfYear年份显示和输入文本框 private JTextField jtfMonth = new JTextField(2);/jtfMonth月份显示文本框 private JPanel p1 = new JPanel(); /装入控制日期按钮的模块 private JPanel p2 = new JPanel(); private JPanel p3 = new JPanel(new BorderLayout(); private JPanel p4 = new JPanel(new GridLayout(2,1); private JPanel p5 = new JPanel(new BorderLayout(); private JButton bAdd = new JButton("保存日志"); private JButton bDel = new JButton("删除日志"); 背景颜色,字体的显示 table.setGridColor(Color.GRAY); /星期之间的网格线是灰色的 table.setColumnSelectionAllowed(true); table.setSelectionBackground(Color.BLACK);/当选定某一天时这一天背景黑色 table.setSelectionForeground(Color.GREEN);/选定的日期字体是绿色的 table.setBackground(new Color(184,207,229);/日期显示表格颜色浅蓝色 table.setFont(new Font("黑体",Font.BOLD,24);/日期数字字体格式 table.setRowHeight(30);/表格的高度 table.addMouseListener(this); /鼠标监听器 (2)根据月份判断每个月的天数以及判断是否为闰年判断2月的天数public int getDaysOfMonth(int year, int Month) /显示所选月份的天数 if(Month = 1 | Month = 3 | Month = 5 | Month = 7 | Month = 8 | Month = 10 | Month = 12) return 31; if(Month = 4 | Month = 6 | Month = 9 | Month = 11) return 30; if(year%4 = 0 && year%100 != 0 | year%400 = 0)/闰年 return 29; else return 28; (3)日志的添加与删除 if(e.getSource() = bDel) int r = table.getSelectedRow(); int c = table.getSelectedColumn(); File filedel = new File(ld.getText() + ".txt"); if(filedel.exists() if(filedel.delete() jta.setText("日志删除成功"); else jta.setText("日志删除失败"); else jta.setText("没有找到日志文件"); (4)判断年份输入是否正确public void actionPerformed(ActionEvent e) if(e.getSource() = jtfYear | e.getSource() = bLastYear | e.getSource() = bNextYear | e.getSource() = bLastMonth | e.getSource() = bNextMonth) int m, y; try/控制输入的年份正确,异常控制 if (jtfYear.getText().length() != 4) throw new NumberFormatException(); y = Integer.parseInt(jtfYear.getText(); m = Integer.parseInt(jtfMonth.getText(); catch (NumberFormatException ex) JOptionPane.showMessageDialog(this, "请输入4位0-9的数字!", "年份有误", JOptionPane.ERROR_MESSAGE); return; (5)显示系统时间lass Timer extends Thread/显示系统时间 private JLabel lt; private SimpleDateFormat fy = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z"); private SimpleDateFormat fn = new SimpleDateFormat("yyyy.MM.dd G 'at' HH mm ss z"); private boolean b = true; public Timer(JLabel lt) this.lt = lt; public void run() while (true) try if (b) lt.setText(fy.format(new Date(); else lt.setText(fn.format(new Date(); b = !b; this.sleep(500); catch (InterruptedException ex) ex.printStackTrace(); 6.运行结果7.软件测试 年份输入错误显示 闰年2月份演示以及日志保存8.总结对于本程序的设计,首先考虑其功能有哪些,需要显示什么,如何进行窗体构建布局,需要用哪些知识点,如相关的类和对象等。最后,就是根据初步设计的功能和布局构架,考虑用源代码进行实现了。经过了长时间的反复编写调试,课本和网上查阅相关资料相关文章,终于完成了整个课程设计。在这个过程中,在把书本上的知识给系统的复习了一下的同时,同时也发现了自己的太多不足,对JAVA语言整体知识构架不够熟悉,不能灵活地运用所学的知识点。自己的编程方式也不是太标准,经常出现代码写错而调试很久的低级错误情况出现。 通过这次课程设计,我明白了编写程序,不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。还要熟悉常用的编程技巧和编程思想,不能只关心程序的运行结果,更要注重程序代码的结构,编程者更要有严谨地态度。还有通过设计过程中大量地查阅网络文章,对一些关键知识点逐个地了解并解决相关问题。所以网络这个强大的工具,确实是我们学习之中可以借助的一个很好的帮手。网络是我们学习的最好的老师之一。有问题,问网络,是一个很好的习惯。9.参考文献1. 赤金 聂松 JavaApplet实例编程2.部分资料来源于网络

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开