java课程设计日历记事本赵锐.doc
2本科生课程设计课程名称JAVA程序设计课程设计题目日历记事本学号201440930252学生姓名赵锐所在专业2014计算机学院所在班级信工2班成绩课程设计时间2017年5月日2017年5月日1目录1引言32设计目的与任务33设计方案34各种功能截图245课程设计总结276个人心得体会271日历记事本摘要本课程设计通过代码实现将理论知识和具体实践相结合,巩固提高了对JAVA的相关方法与概念的理解,使学生的发散思维及动手能力进一步加强,加强对计算机及软件工程的进一步了解。在这个课程设计中,我们做成了一个有日历标记的记事本软件,日历记事本面板由日历、记事本、图片、时钟四部分组成。日历部分可以选择不同的年份、月份、日期和星期;记事本模块可以实现查看,保存,删除日志等操作;并且每一步操作都有相应提示;图片模块可以显示预设的图片;时钟模块可以用时钟来显示当前时间。本软件是一个实用性较强,简洁,美观,方便的功能软件。1引言JAVA是一种纯面向对象的、网络编程首选的语言。JAVA技术作为软件的一种革命性技术,已被列为当今世界信息技术的主流之一。为了适应时代潮流,我们应该加强对JAVA的学习,更好的掌握这门课程。为此,我们成了一个课程小组,经过小组成的商讨之后,我们决定以“日历记事本”为设题材,借此巩固加深我们对JAVA的了解。本次课程设计的实例虽然比较简单,程序设计也不是很复杂,但在此程序的设计过程也是一个学习过程,更是对复杂程序的一个学习过程,还能培养我们的数抽象能力。因此,我们觉得这次课程设计是非常有意义的,能为我们今后学习面向过程的程序设计作一些铺垫。2设计目的与任务本课程设计所要求达到的目的和任务通过JAVA程序设计的一些重要理论基础来实现“日历记事本”的“日历”和“记事本”的双重功能。并通过此次课程设计的训练,使学生巩固和加深对JAVA这门课程的理解,通过利用所学到的计算科学的理论知识,提高解决实际问题的能力,增强运算、编程和使用技术资料的技能,通过实际问题的分析设计、编程和调试,掌握应用软件的分析方法和工程设计方法,能正确阐述设计和实验结果。通过这次课程设计,培养实事求是、认真、严谨的科学态度和刻苦钻研不断创新的精神,逐步建立正确的全局观念。3设计方案31总体设计2(1)问题定义创建日历记事本,实现对某日期的事情进行记录这主要功能,并能显示设置的图片和时钟,增加美观。(2)问题分析通过对“日历记事本”这一题材的分析,我需要四个类来实现其“日历”和“记事本”这两大功能。通过主类CALENDWINDOW创建动日历记事本软件的主窗口,该类含有MAIN方法,程序从该类开始执行。再用余下CALENDARPAD、CALENDARMESSAGE、NOTEPAD类来显示并改变日期和实现记事本的功能。而CALENDARIMAGE和CLOCK这两个类用来显示图片和时钟。(3)研究意义通过本次课程设计,我们掌握了JAVA语言的基本运用,提高了理论结合实际的能力。32设计要求(1)界面的左侧是日历和一幅图。该日历可以按年前后翻动,用鼠标鼠标单击“上年”按钮时,当前日历的年份将减一;当鼠标左键单击“下年”按钮,当前日历的年份将加一。该日历还可以在某年内按月前月后翻动,当鼠标左键单击“上月”按钮时,当前日历的月份将减一;当鼠标左键单击“下月”当前日历表的月份将加一。图片是为了增加美观而加进去的。(2)系统界面的右侧是记事本和一个闹钟。用鼠标单击日历上的日期,就可以通过该记事本编辑有关日志,并将日志保存到一个文件,该文件的名字由该日期组成的字符序列命名。用户可以查看,删除某个日期的日志,也可以继续向某个日志添加新内容。时钟能够实时显示当前的时间。(3)当某个日期有日志时,在日历表该日期的外观上就会出现“YES”标记,表明这个日期有日志,当用户删除某个日期的日志后,该日期的外观上“YES”标志就会消失。33系统的主要功能(1)可以对个人日志进行添加、查阅、删除;(2)可以方便地在任何日期记载个人日志以及查看某个日期记载的日志;(3)可以显示当前日期与时间。34各个类的组合结构图CALENDARWINDOWCALENDARMESSAGECALENDARIMAGECALENDARPADJTEXTFIELDFILENOTEPADJTEXTAREACLOCK335各个类说明(1)主函数CALENDARWINDOW类该类是整个程序的主框架,是JAVAXSWING包中JFRAME的一个子类。并实现了ACTIONLISTENER、MOUSELISTENER和FOCUSLISTENER接口。以下是该类的有关数据说明1)成员变量YEAR,MONTH和DAY是INT型变量。它们的值分别确定年份、月份和日期。CALENDARMESSAGE是CALNEDARMESSAGE对象,该对象用来处理与日期有关的数据。CALENDARPAD是CALENDARPAD对象,该对象可以显示与日期有关的数据。NOTPAD是NOTPAD的对象。具有编辑、读取、保存和删除日志的功能。SHOWYEAR和SHOWMONTH是JTEXTFIELD类创建的文本框,用来显示年月。SHOWDAY数组的每个单元是JTEXTFIELD类创建的用来显示日期的文本框。CALENDARIMAGE是CALENDARIMAGE创建的对象,用来显示图像。CLOCK是CLOCK创建的对象,用来显示时钟。NEXTYEAR,PREVIOUSYEAR,NEXTMONTH和PREVIOUSMONTH是JBUTTON创建的按钮对象,名字依次为“下年、上年、下月、上月”。这些按钮都将当前窗口注册为自己的ACTIONEVENT事件监视器。SAVADAILYRECORD,DELETEDAILYRECORD和READDAILYRECORD是JBUTTON创建的按钮对象,名字依次为“保存日志、删除日志、读取日志”。这些按钮都将当前窗口注册为自己的ACTIONEVENT事件监视器。2)方法CALENDARWINDOW()是构造方法,负责完成窗口初始化。ACTIONPERED(ACTIONEVENT)方法是CALENDARWINDOW类实现的ACTIONLISTENER接口中的方法。CALENDARWINDOW创建的窗口是NEXTYEAR,PREVIOUSYEAR,NEXTMONTH,PREVIOUSMONTH,SAVEDAILYRECORD,DELETEDAILYRECORD和READDAILYRECORD按钮的ACTIONEVENT事件监视器,当用户单击其中按钮时,窗口将执行ACTIONPERED(ACTIONEVENT)方法进行相4应的操作。MOUSEPRESSED(MOUSEEVENT)方法是CALENDARWINDOW类实现的MOUSELISTENER接口中的方法。CALENDARWINDOW创建的窗口时SHOWDAY数组中的JTEXTFIELD文本框的MOUSEEVENT事件监视器,当用户在某个显示日期的文本框上按下鼠标左键时,窗口将执行MOUSEPRESS(MOUSEEVENT)方法进行相应操作。FOCUSGAINED(FOCUSEVENT)和FOCUSLOST