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

下载本文档

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

文档简介

Java 程程序序设设计计课课程程设设计计报报告告 XXX 日历记事本日历记事本 专业专业XXX 学生姓名学生姓名XXX 班级班级XXX 学号学号XXX 指导教师指导教师XXX 完成日期完成日期XXX 日历记事本 目目 录录 1 概 述 1 1 1 课程设计目的 1 1 2 课程设计内容 1 2 系统需求分析 1 2 1 系统目标 1 2 2 主体功能 1 2 3 开发环境 1 3 系统概要设计 2 3 1 系统的功能模块划分与系统流程图 2 4 系统详细设计 2 5 测 试 4 5 1 测试方案 4 5 2 测试结果 4 6 小结 6 参考文献 7 附 录 8 附录 1 源程序清单 8 Java 程序设计课程设计报告 2011 1 日历记事本日历记事本 1 概 述 1 1 课程设计目的 1 巩固和提高 java 编程技术 2 培养掌握成学设计的基本思路和方法 3 加强研发 调试程序的能力 4 增强分析 解决问题的能力 5 提高科技论文写作能力 1 2 课程设计内容 设计 GUI 界面的日历记事本 系统将日历 记事本功能结合在一起 用户可 以方便地在任何日期记录下有关内容或查看某个日期的记录内容 2 系统需求分析 2 1 系统目标 1 系统界面的左侧是日历 该日历可以按年份前后翻动 鼠标单击 上年 按钮时 当前日历的年份减一 当鼠标左键单击 下年 按钮 当前日历的年份 加一 2 该日历也可以在某年内按月前后翻动 当鼠标左键单击 上月 按钮时 当前日历的月份减一 当鼠标左键单击 下月 按钮时 当前日历的月份加一 3 使用鼠标左键单击选定的日期 如已有记录内容 系统将弹出对话框提示 该日已有记录内容 并询问用户是否用记事本显示该内容 4 用户选择具体日期后 可以将记事本的当前内容保存起来 形成日志 2 2 主体功能 用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容 通过按按钮 上年 和 下年 对年份进行翻页 通过按按钮 上月 和 下月 对月份进行翻页 用户可以通过输入年份来查看自己的日志 2 3 开发环境 Windows XP jdk1 5 0 0 05 ultraedit 开发工具 日历记事本 2 3 系统概要设计 3 1 系统的功能模块划分与系统流程图 本日历记事本共有 4 个 java 源文件 CalendarPad java 该 java 文件生成的类负责创建本日历记事本程序主窗口 该类含有 main 方法 程序从该类开始执行 Year java 该文件负责创建管理年份的对象 Month java 该文件负责创建管理月份对象 NotePad java 该文件负责创建记事本 4 系统详细设计 主类CalendarPad 1 成员变量 成员变量描述变量类型名称 年 月 日intYear month day 保存日志的散列表Hashtablehashtable 存放散列表的文件Filefile 显示日期JTextField showDay 日历对象Calendar日历 记事本对象NotePadnotepad 月Month负责改变月 年Year负责改变年 2 方法 名称功能备注 CalendarPad创建程序主窗口构造方法 设置日历牌设置日历的年份 月份 排列号码排列月份中的号码 mousePressed处理 MouseEvent 事件接口方法 mian程序开始运行 CalendarPad 主类 NotePadYearMonth Java 程序设计课程设计报告 2011 3 记事本 NotePad 1 成员变量 描述变量类型名称 文本输入区JTextAreatext 保存 删除日志的按钮Button保存日志 删除日志 保存日志的散列表Hashtabletable 保存散列表的文件Filefile 记录日志的年 月 日intyear month day 2 方法 名称功能备注 NotePad创建记事本对象构造方法 setYear设置年份 getYear获取年份 setMonth设置月份 getMonth获取月份 setDay设置日期 getDay获取日期 获取日志内容获取日志内容 保存日志保存日志 删除日志删除日志 actionPerformed处理 ActionEvent 事件接口方法 年 Year 1 成员变量 描述变量类型名称 表示年份的整数 负数表示 公元前 intyear 显示年份的文本条JTextFieldshowYear 负责增减年份的按钮JButton明年 去年 2 方法 名称功能备注 Year创建 年 对象构造方法 setYear设置年份 getYear获取年份 actionPerformed处理 ActionEvent 事件接口方法 月 Month 1 成员变量 描述变量类型名称 表示月份的整数 负数表示 公元前 intmonth 显示月份的文本条JTextFieldShowMonth 负责增减月份的按钮JButton上月 下月 2 方法 名称功能备注 Month创建 月 对象构造方法 set Month 设置月份 get Month 获取月份 actionPerformed处理 ActionEvent 事件接口方法 日历记事本 4 5 测试 5 1 测试方案 1 打开主界面 鼠标左键右击 查看日历界面 2 选定一个日期写日志 3 对日历添加 删除日志 4 修改年份 查看一些日志 5 2 测试结果 1 打开主界面 鼠标左键点击 查看日历界面 如图 2 下图为选择在 2012 年 1 月 5 日写的日志 3 添加 删除日志 如图 添加日志 Java 程序设计课程设计报告 2011 5 删除日志 4 修改年份 查看日志 如图 日历记事本 6 6 小结 经过几天的努力 基本上完成了我的 java 课程设计 通过这次的课程设计 基本上将书本 上的知识运用到实践上 从而进一步巩固和丰富所学知识 也让我更加深层次的认识了 java 及其功能的强大 为了更好地完成这次课程设计 我做了很多准备 上网查阅资料 到图书馆 翻阅书籍 这个过程中也锻炼了我的思维分析 遇到问题及想法设法通过各种途径解决问题的 能力 从理论到实践 在整整几天的时间里 可以说 是苦大于甜 但确实学到很多东西 同时 不仅巩固了以前的知识 而且学到了许多书上学不到的知识 通过这次课程设计使我懂得了理 论与实践相结合是很重要的 只有理论知识是不够的 只有把所学的理论知识和实践结合起来 从理论中得出结论 才能真正服务社会 从而提高自己的实际动手能力和独立思考能力 通过 这次课程设计 了解到了自己的不足之处 对以前的知识没有掌握到位 所以我们一定要学好 理论知识 为以后的实践打下基础 总而言之 这次课程设计我学到了很多 Java 程序设计课程设计报告 2011 7 参考文献参考文献 1 耿祥义 张跃平 Java2 实用教程 第三版 M 北京 清华大学出版社 2006 2 耿祥义 Java 课程设计 第三版 M 北京 清华大学出版社 2004 3 张跃平 Java2 实用教程实验指导与习题解答 第三版 M 北京 清华大学出 版社 2004 4 Jacquie Barker Java 面向对象编程指南 电子工业出版社 2001 日历记事本 8 附录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 Java 程序设计课程设计报告 2011 9 title j setBorder BorderFactory createRaisedBevelBorder leftCenter add title j 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 日历记事本 10 setVisible true setBounds 100 50 524 285 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 Java 程序设计课程设计报告 2011 11 year y notepad setYear year 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 日历记事本 12 记事本记事本 NotePad NotePad java import java awt 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 Java 程序设计课程设计报告 2011 13 this month month public int getMonth 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 日历记事本 14 table Hashtable inTwo readObject inOne close inTwo close 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 Java 程序设计课程设计报告 2011 15 public class Year extends Box implements ActionListener int year JTextField showYear null 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 setText year 日历 setYear year 日历 设置日历牌 year 日历 getM

温馨提示

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

评论

0/150

提交评论