您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > java日历记事本(无敌版带提醒功能调整时区更换图片铃声功能)
1装订线北京师范大学2015~2016学年春季学期期末Java程序设计作业试卷课程名称:Java程序设计任课教师姓名:孙一林卷面总分:100分考试时长:分钟考试类别:闭卷□开卷其他□院(系):信息科学与技术学院专业:计算机科学与技术年级:2014姓名:刁诗哲学号:评价报告(设计、运行、结果)程序文档展示难易度总分得分阅卷教师(签字):评价准则:(1)应用程序设计思想…………………………………………………≤20%(2)程序结构表述………………………………………………………≤20%(3)调试、运行、结果…………………………………………………≤20%(4)报告+程序文档………………………………………………………≤20%(5)应用程序展示(5分钟讲解与演示)……………………………≤10%(6)应用程序难易度……………………………………………………≤10%设计要求:选择一题,按自己理解设计程序,在报告(该试卷首页为报告第1页,文件名及格式为:*.doc或*.docx,*=学号+姓名,报告为必要项)中给出设计思路、程序结构、调试、模拟运行、结果等说明内容,提交作业(设计、调试、运行、结果):报告+程序所有(源程序、类、打包等)文件的压缩文档(学号+姓名)。设计题目难易度依照题号顺序由小到大。2多功能日历记事本一、整体介绍1.外观显示日历外观如下图所示,全局大体分为四个部分:左上,左下,右上,右下。最上面是标题栏,显示该程序的名称,如我的程序显示的为“刁诗哲的日历”。标题栏下方为菜单栏,菜单栏目前有两个菜单,分别是“功能设置”和“关于”。左上部分为日历界面,显示一个万年历,用户可以在输入框中输入所查年份和月份,按下回车后自动跳转到该月。左下部分是显示图片部分,用户可以自主设置自己喜欢的图片,设置这一功能主要是给用户提供个性化的用户体验,可以根据自己的喜3好设置喜爱的图片,比如放置一个名人座右铭可以勉励自己在学业上不断进步。右上为记事本区域,用户可以选中日期后输入自己想要保存的记事,同时,用户可以设置提醒时间(闹钟)。在右下方是一个钟表,不仅可以为用户提供实时查看时间的服务,同时也可以作为闹钟使用。2.基本功能1)万年历功能左上方的日历相当于一个万年历,可以为用户提供一个日期的查看功能,可以显示日历的年月日,并且对今天的日历给出了特殊的显示(大字体和蓝色显示)。还能查看当前时间之前和之后的日历,可以通过按钮操作,也支持在输入框里面输入年和月。如上图42)记事本的编辑、查看和删除功能右上方提供备忘录(记事本)功能,用户可以记录下来之前发生的事情以作纪念,也可以记录下来未来想要做的事情以防遗忘3)闹钟功能用户点击设置闹钟时间后,便可以设置闹钟时间,到达预定时间后闹钟会播放音乐,当然,闹钟提醒音乐也可以自己设置。4)使用帮助53.高级功能1)时区设置我们为用户提供了多达75个时区的选择,点击更改时区即可将时间切换到当前用户所在的时区,可以满足用户去往不同国家的需求。是一款“国际化”日历。2)自定义图片用户点击更改图片背景,可以选择自己喜欢的图片,为用户提供了多样化选择。可以根据自己的喜好设置喜爱的图片,比如放置一个名人座右铭可以勉励自己在学业上不断进步。3)自定义音乐考虑到普通闹钟刺耳的缺点,我们给用户提供定制化铃声的功能,让用户可以自己设置闹钟铃声,提供了个性化的用户体验。4)保留自定义设置用户的自定义设置功能都会被记录,下次打开软件时还能保留先前的设置。是一款真正的人性化、个性化日历二、设计思路首先,按照功能将日历分成不同模块,分别是CalendarImage(显示图片),CalendarPad(实现主要功能,主要框架),mainclass(main方法),NotePad(显示6记事本),myClock(钟表的显示),Month(月份的设置和显示),Year(年份的设置和显示)。图1根据功能设计日历模块首先按照日历所要实现的功能,从外观显示和内部功能设计日历。日历的外观共分为四个部分,分别是顶部的菜单栏,左上部分显示日历面板,右上部分显示记事本面板,左下部分显示图片,右下部分显示表盘,包括电子表显示和钟表表盘显示。日历的内部功能:实现记事本功能:包括获取日志,显示日志,删除日志实现闹钟功能:包括钟表的显示,不同时区的设置,和到时提醒功能日历日期的显示:包括月份的设置,年份的设置根据以上功能的划分,按照面向对象编程的设计思想,将同一对象所应用的功能合并到一个对象上,可以将日历的实现划分为以下几个模块。7图2面向对象的日历设计三、程序结构1.总体结构在设计多功能日历时,需要编写7个java源文件:mainclass.java,mainclass.java,NotePad.java,Year.java,Month.java,CalendarImage.java,myClock.java。这些类的主要功能如下:主类mainclass(用于启动程序)主要框架mainclass(是程序的核心)记事本NotePad(记事本功能)年Year(显示年)月Month(显示月份)日历图像CalendarImage(显示日历图像)数字时钟myClock(用于显示数字时钟)类之间的关系如下图所示82.详细设计mainclass.javapackagediaoshizhe;importjava.util.Calendar;//这是程序的主类;程序从这个类开始;publicclassmainclass{publicmainclass(){}//main方法;publicstaticvoidmain(Stringargs[]){//创建一个日历的实例对象,返回当前时间;Calendarcalendar=Calendar.getInstance();inty=calendar.get(Calendar.YEAR);intm=calendar.get(Calendar.MONTH)+1;intd=calendar.get(Calendar.DAY_OF_MONTH);//新建一个CalendarPad类的对象,以参数形式传递获取的当前时间newCalendarPad(y,m,d);}}9CalendarPad.java成员变量:intyear,month,day;//存储当前的时间;Calendarcalendar;//日历对象;intday_of_the_week;//表示具体的星期几;NotePadnotepad=null;//记事本对象变量;MonthshowMonth;//显示月份的区域的组件对象YearshowYear;//显示年份的区域的组件对象Hashtablehashtable;//哈希表对象,用于写日志时文件的IO流;Filefile;//file表示文件对象,用于写日志时文件的IO流;JTextFieldshowDay[];//单行文本编辑区域数组,用于显示日期;也是日历中每天的显示区域;JLabeltitle[];//标题栏,主要用于日历中星期几的标题栏;CalendarImagecalendarImage;//日历图像;Stringpicturename;//图像名称;用于更换图像时记录文件名staticStringmusicname;//音乐名称;用于用户更换闹钟铃声时记录文件名StringweekDay[]={星期日,星期一,星期二,星期三,星期四,星期五,星期六};JPanelleftUp,rightUp,leftWhole,rightWhole;//创建;intringhour,ringmin;myClockclock;//时钟对象;staticStringtimeArea=Asia/Shanghai;方法://构造方法publicCalendarPad(intyear,intmonth,intday)//增加鼠标监听器,按住鼠标的响应,为读取日志、写日志功能服务;publicvoidmousePressed(MouseEvente)//增加鼠标按钮的触发;publicvoidmouseClicked(MouseEvente)publicvoidmouseReleased(MouseEvente)publicvoidmouseEntered(MouseEvente)publicvoidmouseExited(MouseEvente)//getPicture_address()方法,从文件中读到用户选择的图片文件的地址;publicStringgetPicture_address()//getMusic_address()方法,从文件中读到用户选择的闹钟铃声文件的地址;publicStringgetMusic_address()//getsettingtime()得到闹钟时间,从文件中读到先前设置的闹钟时间;10publicvoidgetsettingtime()//设置日历牌,但只是起到对不同月份的分类而已,通过调用sortDay()方法,把每个格要显示几号的任务交给调用方法;publicvoidsetCalendar(intyear,intmonth)//此方法供setCalendar()调用,用来设置每个格要显示几号;publicvoidsortDay(intday_of_the_week,int月天数)//得到年;publicintgetYear()//设置年;publicvoidsetYear(inty)//得到月份;publicintgetMonth()//设置月份;publicvoidsetMonth(intm)//得到号数;publicintgetDay()//设置号数;publicvoidsetDay(intd)//获得hashtable;publicHashtable?,?getHashtable()//获得文件;publicFilegetFile()//事件监听器;publicvoidactionPerformed(ActionEvente)NotePad.java成员变量:JTextAreatext;//定义一个编辑区域;JButtonsave,delete;//定义两个按钮,保存,删除;HashtableString,Stringtable;JLabellabelBar;//用于显示日期的标题;intyear,month,day;Filefile;CalendarPadcalendar;11方法://构造函数,实现记事本显示、增删的主要功能;publicNotePad(CalendarPadcalendar)//监听按钮事件;publicvoidactionPerformed(ActionEvente)//设置年publicvoidsetYear(intyear)//获取年;publicintgetYear()//设置月份;publicvoidsetMonth(intmonth)//获取月份;publicintgetMonth()//设置日;publicvoidsetDay(intday)//获取日;publicintgetDay()//设置标题栏的内容(日期);publicvoidsetlabelBar(intyear,intmonth,intday)//设置编辑区域显示的内容;publicvoidsetTextArea(Strings)得到某个日期的日志内容;publicvoidgetLogContent(intyear,intmonth,intday)//保存日志的方法;publicvoidsaveLog(intyear,intmonth,intday)//删除日志publicvoiddeleteLog(intyear,intmonth,intday)myClock.javapackagediaoshizhe;importjava.applet.Applet;importjava.applet.AudioClip;importjava.awt.*;importjava.io.File;imp
本文标题:java日历记事本(无敌版带提醒功能调整时区更换图片铃声功能)
链接地址:https://www.777doc.com/doc-6460724 .html