Java课程设计-万年历_第1页
Java课程设计-万年历_第2页
Java课程设计-万年历_第3页
Java课程设计-万年历_第4页
Java课程设计-万年历_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档 1 欢迎下载 河北科技大学河北科技大学 课程设计报告 学生姓名 学 号 专业班级 课程名称 Java 程序设计课程设计 学年学期 2 014 2 015 学年第 2 学期 指导教师 刘伟 2 0 年 月 精品文档 2 欢迎下载 课程设计成绩评定表课程设计成绩评定表 学生姓名学 号成绩 专业班级起止时间 设计题目 指 导 教 师 评 语 学习态度 端正 较端正 一般 较差 学习纪律 好 较好 一般 较差 出勤情况 好 较好 一般 较差 程序设计 好 较好 一般 较差 动手能力 强 较强 一般 较差 团队精神 好 较好 一般 较差 创新意识 强 较强 一般 较差 课程设计完成情况 优秀 好 一般 较差 课程设计报告完成情况 优秀 好 一般 较差 指导教师 年 月 日 精品文档 3 欢迎下载 目 录 1 课程设计目的 1 2 需求分析 1 3 总体设计 1 4 详细设计 1 5 软件测试 10 6 课程设计总结 11 精品文档 4 欢迎下载 精品文档 55欢迎下载 一 课程设计目的 1 熟练使用 java 语言编写程序 解决实际问题 2 初步掌握软件开发过程的问题分析 系统设计 程序编码 测试等基本方法和 技能 3 学会自己调试程序的方法并掌握一定的技巧 二 需求分析 本程序的要求为 1 使用图形用户界面 2 本程序能够实现日期与星期的查询 三 总体设计 1 可以通过图形界面显示日历 2 能以月历形式显示日期与星期 3 支持用户自己输入年份 可以通过上一年 下一年等按钮来选择年份和月份 四 详细设计 1 总天数的算法 首先用 if 语句判断定义年到输入年之间每一年是否为闰年 是 闰年 该年的总天数为 366 否则 为 365 2 输出月份第一天为星期几的算法 使总天数除以 7 取余得几既为星期几 若是 0 则为星期日 3 算出输出月份第一天为星期几的算法 算出输出月份第一天为星期几后 把该 日期以前的位置用空格补上 并总该日起一次输出天数直到月底 该月中的天数加上 该月一日为星期几的数字再除以 7 得 0 换行 即可完整的输出该月的日历 4 查询年份必须为四位有效数字 否则不予显示 程序源代码 importimport java awt BorderLayout 精品文档 66欢迎下载 importimport java awt Color importimport java awt FlowLayout importimport java awt Font importimport java awt GridLayout importimport java awt event ActionEvent importimport java awt event ActionListener importimport java awt event ItemEvent importimport java sql Date importimport java text DateFormat importimport java text SimpleDateFormat importimport java util Calendar importimport java awt importimport java awt event importimport java text importimport java time Clock importimport java util importimport javax swing importimport javax swing table importimport javax swing importimport javax swing table DefaultTableModel publicpublic classclass wannianli extendsextends JFrame implementsimplements ActionListener privateprivate Calendar cal Calendar getInstance privateprivate String str 星期一 星期二 星期三 星期四 星期五 星期六 星期日 privateprivate DefaultTableModel dtm newnew DefaultTableModel nullnull str privateprivate JTable table newnew JTable dtm 装日 期的表格 privateprivate JScrollPane sp newnew JScrollPane table privateprivate JButton bLastYear newnew JButton 上一年 精品文档 77欢迎下载 privateprivate JButton bNextYear newnew JButton 下一年 privateprivate JButton bLastMonth newnew JButton 上月 privateprivate JButton bNextMonth newnew JButton 下月 privateprivate JTextField Year newnew JTextField 4 jtfYear 年份显示和 输入文本 privateprivate JLabel jla newnew JLabel 年 privateprivate JTextField month newnew JTextField 4 privateprivate JLabel jla1 newnew JLabel 月 privateprivate JTextField jtfMonth newnew JTextField 2 jtfMonth 月份显 示文本框 privateprivate JComboBox comb privateprivate JPanel p1 newnew JPanel 装入控制日期按钮的模块 privateprivate JPanel p2 newnew JPanel privateprivate JPanel p3 newnew JPanel newnew GridLayout 2 1 privateprivate JPanel p4 newnew JPanel privateprivate JPanel p5 newnew JPanel privateprivate JLabel l newnew JLabel 文本框中可直接键入要查找的年份 以 提高查询效率 privateprivate JLabel lt newnew JLabel privateprivate JLabel com newnew JLabel 请选择月份 privateprivate intint lastTime privateprivate wannianli supersuper 万年历 框架命名 thisthis setDefaultCloseOperation JFrame EXIT ON CLOSE 窗口关闭函数 table setGridColor Color GRAY 星期之间的网格线是灰色的 table setColumnSelectionAllowed truetrue table setSelectionBackground Color BLACK 当选定某一天时这一天背景黑 色 精品文档 88欢迎下载 table setSelectionForeground Color GREEN 选定的日期字体是绿色的 table setBackground newnew Color 184 207 229 日期显示表格颜色浅蓝色 table setFont newnew Font 黑体 Font BOLD 24 日期数字字体格式 table setRowHeight 30 表格的高度 Year addActionListener thisthis 可输入年份的文本框 month addActionListener this 可输入年份的文本框 为各个 按钮添加监听函数 bLastYear addActionListener thisthis bNextYear addActionListener thisthis bLastMonth addActionListener thisthis bNextMonth addActionListener thisthis 将按钮添加到 String str 1 2 3 4 5 6 7 8 9 10 11 12 comb newnew JComboBox str p1 add bLastYear p1 add Year 年份输入文本框 p1 add jla p1 add month 年份输入文本框 p1 add jla1 p1 add bNextYear p1 add bLastMonth p1 add jtfMonth p1 add bNextMonth p1 add com p1 add comb p2 setLayout newnew FlowLayout p2 add p4 BorderLayout EAST p2 add sp BorderLayout CENTER 精品文档 99欢迎下载 p2 add p5 BorderLayout WEST p3 add l p3 add lt thisthis add p3 BorderLayout SOUTH thisthis add p2 BorderLayout CENTER thisthis add p1 BorderLayout NORTH String strDate DateFormat getDateInstance format newnew java util Date split cal set Integer parseInt strDate 0 Integer parseInt strDate 1 1 0 showCalendar Integer parseInt strDate 0 Integer parseInt strDate 1 cal jtfMonth setEditable falsefalse 设置月份的文本框为不可编辑 Year setText strDate 0 month setText strDate 1 comb setToolTipText strDate 1 comb addItemListener newnew ItemListener publicpublic voidvoid itemStateChanged ItemEvent e jtfMonth setText String comb getSelectedItem month setText String comb getSelectedItem intint m y trytry 控制输入的年份正确 异常控制 ifif Year getText length 4 throwthrow newnew NumberFormatException y Integer parseInt Year getText m Integer parseInt jtfMonth getText 精品文档 1010欢迎下载 catchcatch NumberFormatException ex JOptionPane showMessageDialog this 请输入 4 位 0 9 的数字 年份有误 JOptionPane ERROR MESSAGE returnreturn forfor intint i 0 i lastTime 1 i dtm removeRow 0 cal set y m 1 0 showCalendar y m cal jtfMonth setText 1 month setText 1 thisthis setBounds 200 200 700 320 thisthis setResizable falsefalse thisthis setVisible truetrue publicpublic staticstatic voidvoid main String args newnew wannianli publicpublic voidvoid showCalendar intint localYear intint localMonth Calendar cld intint Days getDaysOfMonth localYear localMonth cld get Calendar DAY OF WEEK 2 精品文档 1111欢迎下载 Object ai newnew Object 7 lastTime 0 forfor intint i cld get Calendar DAY OF WEEK 1 i Days i ai i 7 String valueOf i cld get Calendar DAY OF WEEK 2 ifif i 7 6 dtm addRow ai ai newnew Object 7 lastTime dtm addRow ai publicpublic intint getDaysOfMonth intint year intint Month 显示所选月份的 天数 ifif Month 1 Month 3 Month 5 Month 7 Month 8 Month 10 Month 12 returnreturn 31 ifif Month 4 Month 6 Month 9 Month 11 returnreturn 30 ifif year 4 0 elseelse returnreturn 28 publicpublic voidvoid actionPerformed ActionEvent e ifif e getSource Year e getSource bLastYear e getSource bNextYear e getSource bLastMonth e getSource bNextMonth intint m y trytry 控制输入的年份正确 异常控制 ifif Year getText length 4 throwthrow newnew NumberFormatException y Integer parseInt Year getText m Integer parseInt jtfMonth getText catchcatch NumberFormatException ex JOptionPane showMessageDialog thisthis 请输入 4 位 0 9 的数字 年份有误 JOptionPane ERROR MESSAGE returnreturn forfor intint i 0 i lastTime 1 i 精品文档 1313欢迎下载 dtm removeRow 0 ifif e getSource bLastYear Year setText String valueOf y ifif e getSource bNextYear Year setText String valueOf y ifif e getSource bLastMonth ifif m 1 Year setText String valueOf y m 12 jtfMonth setText String valueOf m elseelse jtfMonth setText String valueOf m ifif e getSource bNextMonth ifif m 12 Year setText String valueOf y m 1 精品文档 1414欢迎下载 jtfMonth setText String valueOf m elseelse jtfMonth setText String valueOf m cal set y m 1 0 showCalendar y m cal month setText String valueOf m comb setToolTipText String valueOf m 五 软件测试 图 1 界面图 精品文档 1515欢迎下载 图 2 界面图 下拉选择 2 月份 六 课程设计总结 本次 Java 课程设计我们这组做的课题是万年历 刚开始拿到题目我们组员都不知 如何下手 经过小组成员一起查找资料 并且开会讨论 我们确定了设计的设计目标 以及具体实现方式 包括如何将 Java 的思想运用到实际系统的详细设计之中 实验过程中 首先要将系统要实现的功能分为几大模块 然后每个组员分别完成 在此过程中使我加深了对 Java 的理解 以及如何进行团队工作的划分 学会发现各组 员的长处并将其发挥出来 虽然大家没怎么学过 Java 但大家都有 C 语言基础 所以 通过努力实验 进一步培养我们利用 Java 语言进行编程和调试程序的能力 同时使我 们能够学会将 C 语言与 Java 语言结合起来编写较复杂具有实际意义和算法复杂度较小 的程序 与此同时熟练掌握 Java 语言的编辑 编译 调试程序 并将算法转变为程序 实现 正确理解各种数据结构的逻辑特性和存储表示和基本操作的算法实现 掌握算 法的时间分析和空间分析的技术 针对问题的特点选择合适的数据结构 设计实用高 效的算法 提高大家的算法设计的能力和动手实验的技能 通过这次课程设计 使我灵活应用所学 Java 知识 独立完成问题分析 结合数据 结构理论知识 编写程序求解指定问题 初步掌握软件开发过程的问题分析 系统设 计 程序编码 测试等基本方法和技能 提高综合运用所学的理论知识和方法独立分 析和解决问题的能力 并用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论