java程序课程设计日历记事本.doc_第1页
java程序课程设计日历记事本.doc_第2页
java程序课程设计日历记事本.doc_第3页
java程序课程设计日历记事本.doc_第4页
java程序课程设计日历记事本.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

J Ja av va a 程程序序设设计计 课课程程设设计计报报告告 2010 2011 年度第年度第 1 学期学期 日历记事本日历记事本 专业专业计算机应用技术计算机应用技术 学生姓名学生姓名韩梅梅韩梅梅 班级班级计算机计算机 1 班班 学号学号25 教师教师杨琴杨琴 完成日期完成日期2011 年年 7 月月 5 日日 日历记事本 目目 录录 目 录 2 1 概 述 1 1 1 课程设计目的 1 1 2 课程设计内容 1 2 系统需求分析 1 2 1 系统目标 1 2 2 主体功能 1 2 3 开发环境 1 3 系统概要设计 1 3 1 系统的功能模块划分与系统流程图 1 4 系统详细设计 2 5 测试 4 5 1 测试方案 4 5 2 测试结果 4 6 小结 6 参考文献 8 附 录 9 附录 1 源程序清单 9 Java 程序设计课程设计报告 2011 1 学生成绩管理系统的设计学生成绩管理系统的设计 1 概 述 1 1 课程设计目的 1 巩固和提高 java 编程技术 2 培养掌握成学设计的基本思路和方法 3 加强研发 调试程序的能力 4 增强分析 解决问题的能力 5 提高科技论文写作能力 1 2 课程设计内容 设计 GUI 界面的日历记事本 系统将日历 记事本功能结合在一起 用户可 以方便地在任何日期记录下有关内容或查看某个日期的记录内容 2 系统需求分析 2 1 系统目标 1 系统界面的左侧是日历 该日历可以按年份前后翻动 鼠标单击 上年 按钮时 当前的日历的年份减一 当鼠标左键单击 下年 按钮 当前日历年份 加一 2 该日历也可以在某年内按月前后翻动 鼠标单击 上月 按钮时 当前的 日历的月份减一 当鼠标左键单击 下月 按钮 当前日历月份加一 3 使用鼠标左键单击选定的日期 如已有记录内容 系统将弹出对话框提示 该日已有记录内容 并询问用户是否用记事本显示该内容 2 2 主体功能 用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容 通过按按钮 上年 和 下年 对年份进行翻页 通过按按钮 上月 和 下月 对月份进行翻页 用户可以通过输入年份来查看自己的日志 2 3 开发环境 Windows XP jdk1 5 0 0 05 ultraedit 开发工具 3 系统概要设计 3 1 系统的功能模块划分与系统流程图 本日历记事本共有 4 个 java 源文件 日历记事本 2 CalendarPad javaCalendarPad java 该 java 文件生成的类负责创建本日历记事本程序主窗口 该类含有 main 方 法 程序从该类开始执行 Year javaYear java 该文件负责创建管理年份的对象 Month javaMonth java 该文件负责创建管理月份的类对象 NotePad javaNotePad java 该文件负责创建记事本 4 系统详细设计 主类主类 CanlendarPadCanlendarPad 1 成员变量成员变量 成员变量描述成员变量描述 变量类型变量类型 名称名称 年 月 日 int year month day 保存日志的散列表 Hanshtable hanshtable 存放散列表的文件 File file 显示日期 JtextFile showDay 日历对象 Calendar 日历 记事本对象 NotePad notepad 月 Month 负责改变月 年 Year 负责改变年 2 方法方法 名称名称 功能功能 备注备注 CalendarPad 创建窗口主程序 构造方法 设置日历牌 设置日立的年份 月份 排列号码 排列月份中的号码 mousePressed 处理 MouseEvent 事件 接口方法 main 程序开始运行 CalendarPa 主 类 NotepadYearMonth Java 程序设计课程设计报告 2011 3 记事本记事本 NoteNote 1 成员变量 成员变量 描述描述 变量类型变量类型 名称名称 文本输入区 JTextArea text 保存 删除日志的按钮 Button 保存日志 删除日志 保存日志的散列表 Hashtable table 保存散列表的文件 File file 记录日志的人年 月 日 int year month day 2 方法 方法 名称名称 功能功能 备注备注 NotaPad 创建记事本对象 构造方法 setYear 设置年份 getYear 获取年份 setMonth 设置月份 getMonth 获取月份 setDay 设置日期 getDay 获取日期 获取日志内容 获取日志内容 保存日志 保存日志 删除日志 删除日志 actionPerformed 处理 ActionEvent 事件 接口方法 年年 YearYear 1 成员变量成员变量 描述描述 变量类型变量类型 名称名称 表示年份的整数 int year 显示年份的文本条 JtextFiled showYear 负责增减年份的按钮 Jbutton 明年 去 年 2 方法方法 名称名称 功能功能 备注备注 Year 创建年对象 构造方法 setYear 设置年份 getYear 获取年份 actionPerformed 处理 ActionEvent 事件 接口方法 日历记事本 4 月月 MonthMonth 1 成员变量成员变量 描述描述 变量类型变量类型 名称名称 表示月份的整数 int month 显示月份的文本条 JtextFiled showMonth 负责增减月份的按钮 Jbutton 下月 上月 2 方法方法 5 测试 5 1 测试方案 1 打开主界面 鼠标左键点击 查看日历界面 2 选定一个日期写日志 3 对日历添加 删除日志 4 修改年份 查看一些日志 5 2 测试结果 1 打开主界面 鼠标左键点击 查看日历界面 如图 名称名称 功能功能 备注备注 Month 创建 月 对象 构造方法 SetMonth 设置月份 getMonth 获取月份 actionPerformed 处理 ActionEvent 接口方法 Java 程序设计课程设计报告 2011 5 2 下图为选择的在 2011 年 1 月 1 日写的日志 3 添加删除日志 如图 添加日志 添加日志 日历记事本 6 删除日志 删除日志 4 修改年份 查看日志 6 小结 经过几天的努力 基本上完成了我的 java 课程设计 也基本上实现了我在需 求分析时所预料的功能 通过这次的课程设计 将我从课本上学到的理论知识用 到了实践上 从而进一步巩固和丰富了我所学过的知识 也让我更深层次的认识 了 java 及其功能的强大 同时做这门课程设计也进一步加强了我的动手能力 为 了完成好这次课程设计 做了较多的准备 上网查阅了好多的相关资料 也翻阅 Java 程序设计课程设计报告 2011 7 了许多的相关的书籍 在这些过程中也无形的锻炼了我的思维分析 遇到问题及 想方设法通过各种偶那个途径解决问题的能力 从理论到实践 在整整几天的日子里 可以说得是苦多于甜 但是可以学到 很多很多的的东西 同时不仅可以巩固了以前所学过的知识 而且学到了很多在 书本上所没有学到过的知识 通过这次课程设计使我懂得了理论与实际相结合是 很重要的 只有理论知识是远远不够的 只有把所学的理论知识与实践相结合起 来 从理论中得出结论 才能真正为社会服务 从而提高自己的实际动手能力和 独立思考的能力 在设计的过程中遇到问题 可以说得是困难重重 这毕竟第一 次做的 难免会遇到过各种各样的问题 同时在设计的过程中发现了自己的不足 之处 对以前所学过的知识理解得不够深刻 掌握得不够牢固 所以我们一定要 好好学习理论知识 为以后的实践打下良好的基础 通过这次课程设计 我收获的不仅仅是课本上的知识的实际应用 还有编程 的基本习惯和开发系统是应注意的流程 日历记事本 8 参考文献参考文献 1 耿祥义 张跃平 Java2 实用教程 第三版 M 北京 清华大学出版社 2006 2 耿祥义 Java 课程设计 第三版 M 北京 清华大学出版社 2004 3 张跃平 Java2 实用教程实验指导与习题解答 第三版 M 北京 清华大学 出版社 2004 Java 程序设计课程设计报告 2011 9 附附 录录 附录 1 源程序清单 日历记事本的源程序代码日历记事本的源程序代码 主类主类 CalendarPad CalendarPad Java import java util Calendar import javax swing import java awt import java awt event import java io import java util Hashtable public class CalendarPad extends JFrame implements MouseListener int year month day Hashtable hashtable File file JTextField showDay JLabel title Calendar 日历 int 星期几 NotePad notepad null Month 负责改变月 Year 负责改变年 String 星期 星期日 星期一 星期二 星期三 星期四 星期五 星期六 JPanel leftPanel rightPanel public CalendarPad int year int month int day leftPanel new JPanel JPanel leftCenter new JPanel JPanel leftNorth new JPanel leftCenter setLayout new GridLayout 7 7 rightPanel new JPanel this year year this month month this day day 负责改变年 new Year this 负责改变年 setYear year 负责改变月 new Month this 负责改变月 setMonth month title new JLabel 7 showDay new JTextField 42 for int j 0 j 7 j title j new JLabel title j setText 星期 j title j setBorder BorderFactory createRaisedBevelBorder leftCenter add title j 日历记事本 10 title 0 setForeground Color red title 6 setForeground Color blue for int i 0 i 42 i showDay i new JTextField showDay i addMouseListener this showDay i setEditable false leftCenter add showDay i 日历 Calendar getInstance Box box Box createHorizontalBox box add 负责改变年 box add 负责改变月 leftNorth add box leftPanel setLayout new BorderLayout leftPanel add leftNorth BorderLayout NORTH leftPanel add leftCenter BorderLayout CENTER leftPanel add new Label 请在年份输入框输入所查年份 负数表示公元前 并回车确定 BorderLayout SOUTH leftPanel validate Container con getContentPane JSplitPane split new JSplitPane JSplitPane HORIZONTAL SPLIT leftPanel rightPanel con add split BorderLayout CENTER con validate hashtable new Hashtable file new File 日历记事本 txt if file exists try FileOutputStream out new FileOutputStream file ObjectOutputStream objectOut new ObjectOutputStream out objectOut writeObject hashtable objectOut close out close catch IOException e notepad new NotePad this rightPanel add notepad 设置日历牌 year month addWindowListener new WindowAdapter public void windowClosing WindowEvent e System exit 0 setVisible true setBounds 100 50 524 285 Java 程序设计课程设计报告 2011 11 validate public void 设置日历牌 int year int month 日历 set year month 1 1 星期几 日历 get Calendar DAY OF WEEK 1 if month 1 month 2 month 3 month 5 month 7 month 8 month 10 month 12 排列号码 星期几 31 else if month 4 month 6 month 9 month 11 排列号码 星期几 30 else if month 2 if year 4 0 else 排列号码 星期几 28 public void 排列号码 int 星期几 int 月天数 for int i 星期几 n 1 i 星期几 月天数 i showDay i setText n if n day showDay i setForeground Color green showDay i setFont new Font TimesRoman Font BOLD 20 else showDay i setFont new Font TimesRoman Font BOLD 12 showDay i setForeground Color black if i 7 6 showDay i setForeground Color blue if i 7 0 showDay i setForeground Color red n for int i 0 i 星期几 i showDay i setText for int i 星期几 月天数 i 42 i showDay i setText public int getYear return year public void setYear int y year y notepad setYear year 日历记事本 12 public int getMonth return month public void setMonth int m month m notepad setMonth month public int getDay return day public void setDay int d day d notepad setDay day public Hashtable getHashtable return hashtable public File getFile return file public void mousePressed MouseEvent e JTextField source JTextField e getSource try day Integer parseInt source getText notepad setDay day notepad 设置信息条 year month day notepad 设置文本区 null notepad 获取日志内容 year month day catch Exception ee public void mouseClicked MouseEvent e public void mouseReleased MouseEvent e public void mouseEntered MouseEvent e public void mouseExited MouseEvent e public static void main String args Calendar calendar Calendar getInstance int y calendar get Calendar YEAR int m calendar get Calendar MONTH 1 int d calendar get Calendar DAY OF MONTH new CalendarPad y m d 记事本记事本 NotePad NotePad java import java awt Java 程序设计课程设计报告 2011 13 import java awt event import java util import javax swing import javax swing event import java io public class NotePad extends JPanel implements ActionListener JTextArea text JButton 保存日志 删除日志 Hashtable table JLabel 信息条 int year month day File file CalendarPad calendar public NotePad CalendarPad calendar this calendar calendar year calendar getYear month calendar getMonth day calendar getDay table calendar getHashtable file calendar getFile 信息条 new JLabel year 年 month 月 day 日 JLabel CENTER 信息条 setFont new Font TimesRoman Font BOLD 16 信息条 setForeground Color blue text new JTextArea 10 10 保存日志 new JButton 保存日志 删除日志 new JButton 删除日志 保存日志 addActionListener this 删除日志 addActionListener this setLayout new BorderLayout JPanel pSouth new JPanel add 信息条 BorderLayout NORTH pSouth add 保存日志 pSouth add 删除日志 add pSouth BorderLayout SOUTH add new JScrollPane text BorderLayout CENTER public void actionPerformed ActionEvent e if e getSource 保存日志 保存日志 year month day else if e getSource 删除日志 删除日志 year month day public void setYear int year this year year public int getYear return year public void setMonth int month this month month public int getMonth 日历记事本 14 return month public void setDay int day this day day public int getDay return day public void 设置信息条 int year int month int day 信息条 setText year 年 month 月 day 日 public void 设置文本区 String s text setText s public void 获取日志内容 int year int month int day String key year month day try FileInputStream inOne new FileInputStream file ObjectInputStream inTwo new ObjectInputStream inOne table Hashtable inTwo readObject inOne close inTwo close catch Exception ee if table containsKey key String m year 年 month 月 day 这一天有日志记载 想看吗 int ok JOptionPane showConfirmDialog this m 询问 JOptionPane YES NO OPTION JOptionPane QUESTION MESSAGE if ok JOptionPane YES OPTION text setText String table get key else text setText else text setText 无记录 public void 保存日志 int year int month int day String 日志内容 text getText String key year month day String m year 年 month 月 day 保存日志吗 int ok JOptionPane showConfirmDialog this m 询问 JOptionPane YES NO OPTION JOptionPane QUESTION MESSAGE if ok JOptionPane YES OPTION try FileInputStream inOne new FileInputStream file ObjectInputStream inTwo new ObjectInputStream inOne table Hashtable inTwo readObject inOne close inTwo close Java 程序设计课程设计报告 2011 15 table put key 日志内容 FileOutputStream out new FileOutputStream file ObjectOutputStream objectOut new ObjectOutputStream out objectOut writeObject table objectOut close out close catch Exception ee public void 删除日志 int year int month int day String key year month day if table containsKey key String m 删除 year 年 month 月 day 日的日志吗 int ok JOptionPane showConfirmDialog this m 询问 JOptionPane YES NO OPTION JOptionPane QUESTION MESSAGE if ok JOptionPane YES OPTION try FileInputStream inOne new FileInputStream file ObjectInputStream inTwo new ObjectInputStream inOne table Hashtable inTwo readObject inOne close inTwo close table remove key FileOutputStream out new FileOutputStream file ObjectOutputStream objectOut new ObjectOutputStream out objectOut writeObject table objectOut close out close text setText null catch Exception ee else String m year 年 month 月 day 无日志记录 JOptionPane showMessageDialog this m 提示 JOptionPane WARNING MESSAGE 年年 Year Year java import javax swing import java awt import java awt event public class Year extends Box implements ActionListener int year JTextField showYear null 日历记事本 16 JButton 明年 去年 CalendarPad 日历 public Year CalendarPad 日历 super BoxLayout X AXIS showYear new JTextField 4 showYear setForeground Color blue showYear setFont new Font TimesRomn Font BOLD 14 this 日历 日历 year 日历 getYear 明年 new JButton 下年 去年 new JButton 上年 add 去年 add showYear add 明年 showYear addActionListener this 去年 addActionListener this 明年 addActionListener this public void setYear int year this year year showYear setText year public int getYear return year public void actionPerformed ActionEvent e if e getSource 去年 year year 1 showYear setText year 日历 setYear year 日历 设置日历牌 year 日历 getMonth else if e getSource 明年 year year 1 showYear setText year 日历 setYear year 日历 设置日历牌 year 日历 getMonth else if e getSource showYear try year Integer parseInt showYear getText showYear setT

温馨提示

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

评论

0/150

提交评论