ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:691.72KB ,
资源ID:6433913      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6433913.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(课程设计报告格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

课程设计报告格式.docx

1、课程设计报告格式Java课程设计报告Java程序设计课程设计 电子日历记事本 一、问题描述1、问题定义:创建日历记事本,实现对某日期的事情进行记录这主要功能,并能显示设置的图片和时钟,增加美观。2、问题分析:通过对“日历记事本”这一题材的分析,我需要四个类来实现其“日历”和“记事本”这两大功能。通过主类CalendWindow创建动日历记事本软件的主窗口,该类含有main方法,程序从该类开始执行。再用余下CalendarPad、CalendarMessage 、NotePad类来显示并改变日期和实现记事本的功能。而CalendarImage和Clock这两个类用来显示图片和时钟。3、研究意义:

2、通过本次课程设计,我们掌握了Java语言的基本运用,提高了理论结合实际的能力。 二、基本要求(一)、设计目的与任务本课程设计所要求达到的目的和任务:通过Java程序设计的一些重要理论基础来实现“日历记事本”的“日历”和“记事本”的双重功能。并通过此次课程设计的训练,使学生巩固和加深对Java这门课程的理解,通过利用所学到的计算科学的理论知识,提高解决实际问题的能力,增强运算、编程和使用技术资料的技能,通过实际问题的分析设计、编程和调试,掌握应用软件的分析方法和工程设计方法,能正确阐述设计和实验结果。通过这次课程设计,培养实事求是、认真、严谨的科学态度和刻苦钻研不断创新的精神,逐步建立正确的全局

3、观念。1(二)、设计方案1、 总体设计 问题定义:创建日历记事本,实现对某日期的事情进行记录这主要功能,并能显示设置的图片和时钟,增加美观。 问题分析:通过对“日历记事本”这一题材的分析,我需要四个类来实现其“日历”和“记事本”这两大功能。通过主类CalendWindow创建动日历记事本软件的主窗口,该类含有main方法,程序从该类开始执行。再用余下CalendarPad、CalendarMessage 、NotePad类来显示并改变日期和实现记事本的功能。而CalendarImage和Clock这两个类用来显示图片和时钟。 研究意义:通过本次课程设计,我们掌握了Java语言的基本运用,提高了

4、理论结合实际的能力。 2、设计要求 界面的左侧是日历和一幅图。该日历可以按年前后翻动,用鼠标鼠标单击“上年”按钮时,当前日历的年份将减一;当鼠标左键单击“下年”按钮,当前日历的年份将加一。该日历还可以在某年内按月前月后翻动,当鼠标左键单击“上月”按钮时,当前日历的月份将减一;当鼠标左键单击“下月” 当前日历表的月份将加一。同时图片为了增加美观而加入了日历图像选择功能。 系统界面的右侧是记事本和一个闹钟。用鼠标单击日历上的日期,就可以通过该记事本编辑有关日志,并将日志保存到一个文件,该文件的名字由该日期组成的字符序列命名。用户可以查看,删除某个日期的日志,可以继续向某个日志添加新内容,也可以随着

5、自己的心情而改变字体的大小和样式。时钟能够实时显示当前的时间。 当某个日期有日志时,在日历表该日期的外观上就会出现“yes”标记,表明这个日期有日志,当用户删除某个日期的日志后,该日期的外观上“yes”标志就会消失。(三)、系统的主要功能 1、可以对个人日志进行添加、查阅、删除;2、可以方便地在任何日期记载个人日志以及查看某个日期记载的日志;3、可以显示当前日期与时间,并在整点报时。4、可以为日历更改自己喜爱的图片。(四)、各个类的组合结构图2三、工具/准备工作Windows XP;jdk1.5.0-0-05;ultraedit开发工具四、项目实现(一)、主函数CalendarWindow类该

6、类是整个程序的主框架,是javax.swing包中Jframe的一个子类。并实现了ActionListener、MouseListener和FocusListener接口。以下是该类的有关数据说明!1、成员变量 year,month和day是int型变量。它们的值分别确定年份、月份和日期。 calendarMessage是CalnedarMessage对象,该对象用来处理与日期有关的数据。 calendarPad是CalendarPad对象,该对象可以显示与日期有关的数据。 notePad是NoetPad的对象。具有编辑、读取、保存和删除日志的功能。 showYear和showMonth是Jt

7、extField类创建的文本框,用来显示年月。 showDay数组的每个单元是JtextField类创建的用来显示日期的文本框。 calendarImage是CalendarImage创建的对象,用来显示图像。 clock是Clock创建的对象,用来显示时钟。 nextYear,PreviousYear,nextMonth和PreviousMonth是JButton创建的按钮对象,名字依次为“下年、上年、下月、上月”。这些按钮都将当前窗口注册为自己的ActionEvent事件监视器。 savaDailyRecord,deleteDailyRecord和readDailyRecord是JButt

8、on创建的按钮对象,名字依次为“保存日志、删除日志、读取日志”。这些按钮都将当前窗口注册为自己的ActionEvent事件监视器。2、 方法 CalendarWindow()是构造方法,负责完成窗口初始化。 actionPerformed(ActionEvent)方法是CalendarWindow类实现的ActionListener接口中的方法。CalendarWindow创建的窗口是nextYear,previousYear,nextMonth,previousMonth,saveDailyRecord,deleteDailyRecord和readDailyRecord按钮的ActionEv

9、ent事件监视器,当用户单击其中按钮时,窗口将执行actionPerformed(ActionEvent)方法进行相应的操作。 mousePressed(MouseEvent)方法是CalendarWindow类实现的MouseListener接口中的方法。CalendarWindow创建的窗口时showDay数组中的JtextField文本框的MouseEvent事件监视器,当用户在某个显示日期的文本框上按下鼠标左键时,窗口将执行mousePress(MouseEvent)方法进行相应操作。 focusGained(FocusEvent)和focusLost(FocusEvent)方法是Ca

10、lendarWindow类实现的FocusListener接口中的方法。CalendarWindow创建窗口是showDay数组中的JtextField文本框的FocusEvent事件监视器,当用户的操作导致某个显示日期的文本框的焦点发生变化时,窗口将执行focusGained(FocusEvent)或focusLost(FocusEvent)方法进行相应的操作。 doMark()方法负责对有日志的日期作出标志。 main方法是程序运行的入口方法3。(二)、CalendarMessage类CalendarMessage类创建的对象calendarMessage是CalendarWindow窗口

11、的重要成员对象之一,负责处理和日期有关的数据。该类的有关数据说明如下:1、 成员变量 year,month,day是int型数据,它们的值分别确定年份、月份和日期。2、 方法 setYear(int)和getYear()方法分别用来设置year和获取year的值。 setMonth(int)和getMonth()方法分别用来设置month和获取month的值。 setDay(int)和getDay()方法分别用来设置和获取day的值。 getMonthCalendar()方法是用来处理日期数据,使其按着习惯来显示。即日历牌中每行的第一列为“星期天”。getMonthCalendar()方法根据

12、year,month和day的值返回一个存放着“日历”数据的String类型的数组,例如,如果某月有30天,而且该月的第一天是星期三,那么返回的String类型的数组是:“”,“”,“”,“1”,“2”,“30”。(三)、CalendarPad类CalendarPad类是javax.swing包中Jpanel容器的子类,所创建的对象:calendarPad是CalendarWindow类中最重要的成员之一,负责显示经CalendarMessage类处理后的日期数据,被添加到CalendarWindow窗口的左上侧。以下是该类的有关说明:1、 成员变量 year,month和day是int型数据

13、,它们的值分别确定年份、月份和日期 calendarMessage是CalendarMessage对象,该对象可以处理和日期有关的数据。 showDay数组的每个单元是JtextField类创建的用来显示日期的文本框。 “星期”是String数组,单元的值依次为“SUN日”、“MON一”、“TUE二”、“WED三”、“THU四”、“FRI五”、“SAT六”。2、 方法 CalendarPad()是构造方法,用来创建calendarPad对象。 setShowDayTextField(JtextField)方法负责设置showDay数组。 setCalendarMessage(CalendarM

14、essage)方法负责设置calendarMessage对象。 showMonthCalendar()方法负责显示“日历”4。(四)、NotePad类NotePad类javax.swing包中的Jpanel容器的子类,实现了ActionListener接口,所创建的对象:notePad是MineGame CalendarWindow类中的重要成员之一,作为一个容器添加到CalendarWindow窗口的右上侧以,下是该类的有关说明:1、成员变量 ta 是JtextArea创建的文本区,可在text中编译多行文本。 showMessage 是 JtextField 创建的文本条,用来显示和日期相

15、关的数据。 popup是 JpopupMenu 创建的弹出式菜单。 Copy、Cut、Paste是JmenuItem 创建的菜单项,名字依次是“复制”, “剪切”, “黏贴”。 list1,list2是列表框Choice创建的两个列表对象。 btn是JButton创建的一个按钮,叫做“颜色”。 labl是JLabel创建的标签,叫做“事件发生时间(hh:mm)”。2、方法 NotePad()构造方法,用来创建notePad对象。 setShowMessage(int,int,int)方法根据参数指定的日期数据显示有关日期信息。 save(File,int,int,int)方法根据参数指定日期保

16、存日志 delete(File,int,int,int) 用于删除日志 read(File,int,int, int)用于读取日志。(五)、CalendarImage类CalendarImage创建的对象负责绘制图像CalendarImage类是javax.swing包中Jpanel容器的一个子类,创建的对象calendarMessage是CalendarWindow类的成员之一,负责绘制图像,作为一个容器添加到CalendarWindow窗口的左下侧,以下是该类的有关说明:1、 成员变量 imageFile是File对象,用来存放图像文件的引用 image 是Image对象 tool 是To

17、okit对象,负责创建image对象2、 方法 CalendarImage()是构造方法,负责创建calendarImage 对象 setImageFile(File)方法负责设置imageFile 对象,并根据imageFile创建image paintComponent(Griphics)方法负责绘制image (六)、Clock类Clock类是javax.swing包中Jpanel容器的子类,并实现了ActionListener接口,所创建的对像:clock是CalendarWindow类中的成员之一,负责显示时间,被添加到CalendarWindow窗口的右下侧,以下是该类的有关说明:

18、1、 成员变量 date是Date对像,负责封装本地时间 secondTime是javax.swing包中Timer类创建的计时 hour,minute和second 是int型数据,分别飞“小时”,“分钟”和“秒” secondLine,minuteLine和hourLine是Lint2D对象,分别负责绘制“时针”,“分针”,“秒针” pointSX,pointSY是double型数组,其单元值用来表示秒针端点的坐标 pointMX,pointMY是double型数组,其单元值用来表示分针端点坐标 pointHX,pointHY是double型数组,其单元值用来便是时针端点坐标52、 方法

19、Clock()是构造方法,用来创建clock对象 initPoint()负责创建表盘所需要的坐标点 paintComponent(Graphics)负责完成绘制工作 actionPerformed(ActionEvent)是接口ActionListener中的方法。使用Timer类的构造方法:timer(int a ,Object b )创建一个计时器,其中的参数a 的单位是毫秒,确定计时器每隔a毫秒“振铃”一次,参数b是计时器的监视器。计时器发生的振铃时件是ActionEvent类型时件,当振铃时间发生时,监视器就会监视到这个事件,监视器就会回调用ActionListener接口中的acti

20、onPerformed(ActionEvent)方法,该方法所做的操作是:每隔1秒钟,让秒针前进一个刻度,既secondLine改变端点坐标;每隔1分钟,让分针前进一个刻度(表盘一周为360,每个时刻为6),既muniteLine改变端点坐标;每隔12分钟,让时针前进一个刻度,既hourLine改变端点坐标6。五、测试与结论对主要要求,设计相关数据,进行测试,描述测试的结果六、课程设计总结从本次课程设计的完成中,首先我们发现了我们有很多不足的地方,最突出的是我们所学的东西太少了,根本满足不了平时编写程序的需要。此外,我们了解了课程设计的要求与方法,学会了程序设计基本步骤也进一步提高了团队合作的

21、意识。同时,使我们感觉到,一个优秀的程序,不仅仅是可以运行的,更应该具较高的效率,合理的结构,良好的可读性和一定的容错性。除此之外,我们认为一个程序的成功完成需要严谨的务实态度,和团队的团结协作的精神。团结协作和认真的态度是我们课程设计取得成功的一项非常重要的保证。由于知识的限制,我们没有设置日记查看密码功能,但是在以后的学习中,我们将虚心向学力争编写出更有意义的程序。参考文献1耿祥义,张跃平.Java2实用教程(第三版)M.北京:清华大学出版社, 2006 2耿祥义.Java课程设计(第三版)M.北京:清华大学出版社,20043张跃平.Java2实用教程实验指导与习题解答(第三版)M. 北京

22、:清华大学出版社, 20044肖磊、李钟尉,Java实用教程M,人民邮电出版社,20085孙全党 王吴迪 赵枫朝,Java程序设计应用教程M,电子工业出版社,20066赵玉阳,Java从入门到精通,北京清华大学出版社M,2006附录:1、主函数CalendarWindow类import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.*;import java.io.*;import java.awt.SplashScreen;public class CalendarWindow extends

23、 JFrame implements ActionListener,MouseListener,FocusListener int year,month,day; CalendarMessage calendarMessage; CalendarPad calendarPad; NotePad notePad; JTextField showYear,showMonth; JTextField showDay; CalendarImage calendarImage; String picturename;/图像名称; String getPicture_address; Clock cloc

24、k; JButton nextYear,previousYear,nextMonth,previousMonth; JButton saveDailyRecord,deleteDailyRecord,readDailyRecord; File dir; Color backColor=Color.white; public CalendarWindow() dir= new File(./dailyRecord); dir.mkdir(); showDay = new JTextField42; for(int i=0;ishowDay.length;i+) showDayi=new JTex

25、tField(); showDayi.setBackground(backColor); showDayi.setLayout(new GridLayout(3,3); showDayi.addMouseListener(this); showDayi.addFocusListener(this); calendarMessage = new CalendarMessage(); calendarPad = new CalendarPad(); notePad = new NotePad(); Calendar calendar = Calendar.getInstance(); calend

26、ar.setTime(new Date(); year = calendar.get(Calendar.YEAR); month = calendar.get(Calendar.MONTH)+1; day = calendar.get(Calendar.DAY_OF_MONTH); calendarMessage.setYear(year); calendarMessage.setMonth(month); calendarMessage.setDay(day); calendarPad.setCalendarMessage(calendarMessage); calendarPad.setS

27、howDayTextField(showDay); notePad.setMessage(year,month,day); calendarPad.showMonthCalendar(); doMark(); calendarImage = new CalendarImage(); picturename=getPicture_address();/ calendarImage.setImageFile(new File(picturename); JMenuBar menuBar = new JMenuBar(); JMenu menusetting = new JMenu(); JMenu

28、Item changepicture=new JMenuItem(); menusetting.setText(图像);/设置标题 changepicture.setText(更改图片背景);/设置标题 /添加菜单条上去; menusetting.add(changepicture); menuBar.add(menusetting); setJMenuBar(menuBar); /注册监听器 changepicture.addActionListener(this); clock = new Clock(); JSplitPane splitV1 = new JSplitPane(JSpli

29、tPane.VERTICAL_SPLIT,calendarPad,calendarImage); JSplitPane splitV2 = new JSplitPane(JSplitPane.VERTICAL_SPLIT,notePad,clock); JSplitPane splitH = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,splitV1,splitV2); add(splitH,BorderLayout.CENTER); showYear = new JTextField(+year,6); showYear.setFont(new Fo

30、nt(TimesRoman,Font.BOLD,12); showYear.setHorizontalAlignment(JTextField.CENTER); showMonth = new JTextField(+month,4); showMonth.setFont(new Font(TimesRoman,Font.BOLD,12); showMonth.setHorizontalAlignment(JTextField.CENTER); nextYear = new JButton(下年); previousYear = new JButton(上年); nextMonth = new

31、 JButton(下月); previousMonth = new JButton(上月); nextYear.addActionListener(this); previousYear.addActionListener(this); nextMonth.addActionListener(this); previousMonth.addActionListener(this); showYear.addActionListener(this); JPanel north = new JPanel(); north.add(previousYear); north.add(showYear); north.a

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1