您好,欢迎访问三七文档
第-1-页存档资料成绩:课程设计报告书所属课程名称Java语言程序设计课程设计题目设计一个表示2013年的简单日历系统分院电信分院专业班级学号学生姓名指导教师2013年12月24日第-2-页课程设计(论文)评阅意见评阅人职称2013年月日序号项目等级优秀良好中等及格不及格1课程设计态度评价2出勤情况评价3任务难度评价4工作量饱满评价5任务难度评价6设计中创新性评价7论文书写规范化评价8综合应用能力评价综合评定等级第-3-页目录第1章课程设计内容及其要求........................-4-第2章使用说明.................................................-5-第3章设计方法与步骤.....................................-6-第4章调试分析...............................................-12-第5章课程设计心得.......................................-15-第6章参考文献...............................................-16-第-4-页2013年的简单日历系统第1章课程设计内容及其要求(1)设计任务编写一个JavaApplet程序,可以显示2013年的日历。如下图所示:(2)设计要求:1、主界面采用方位布局,北面是一个设置年月的控制面板,中间是日历绘制区;2、单击下月按钮,可以显示2013年当前月的下一月的日历;单击上月按钮,可以显示当前月的上一月的日历。3、输入月份按确定按钮可以跳到该月的日历界面。4、使用图形用户界面。第-5-页第2章使用说明查看万年历1、进入万年历系统;2、系统获取当日日期并设置日历为当月。查询当年的其他月份改变月份有两张方法,一种是输入选择月份,一种是摁按键选择上一月或下一月。键盘输入选择月份:用键盘输入自己想选择的月份。摁按键选择上一月(或下一月):1、点击选择“上月”(或“下月”)的按键,;2、系统获取选择框内的月份;3、将系统获取月份的数字减去1(或加上1);4、将选择框内的月份设为已更改的月份;5、系统设置为已更改月份当年的月历并在界面显示。使用说明:1、本系统的运行环境为DOS操作系统,执行文件为:Test.java。2、进入系统界面后,在主菜单的中,选择相应的操作前的按钮,出现提示界面。根据提示输入相关信息或得到预期结果。3、点击最右上角的按钮可以关闭该系统。第-6-页第3章设计方法与步骤(1)设计思路:1、日历系统的该程序的布局为BorderLayout布局。在界面的中心添加一个Panel容器pCenter,pCenter的布局是7行7列的GridLayout布局,pCenter中放置7个按钮和42标签,用来显示日历。这42个标签上的字符名(一个月中的所有号)或者空字符标签用一个一维数组a[42]来存储。这42个标签字符名可以通过Calendar这个类的相应方法获得;同时我们要考虑到不同月有不同的天书,特别是二月要考虑是否为闰年的二月。界面的北面添加一个Panel容器pNorth,其布局是FlowLayout布局,pNorth放置两个按钮“上月”和“下月”,界面的南面添加一个Panel容器pSouth,其布局是FlowLayout布局,pSouth中放置一个标签用来显示一些信息。2、给上月和下月两个按钮添加事件监视器完成ActionEvetn事件。(2)详细设计:1、总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。2、输出月份第一天为星期几的算法:使总天数除以7取余加2得几既为星期几,若是7,则为星期日。3、算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。第-7-页(3)源程序代码:importjava.awt.*;importjava.awt.event.*;importjava.util.Calendar;importjavax.swing.JOptionPane;classCalendarBean{Stringday[];intyear=2013,month=0;publicvoidsetYear(intyear){this.year=year;}publicintgetYear(){returnyear;}publicvoidsetMonth(intmonth){this.month=month;}publicintgetMonth(){returnmonth;}publicString[]getCalendar(){Stringa[]=newString[42];/*存放日期的一维数组*/Calendar日历=Calendar.getInstance();日历.set(year,month-1,1);int星期几=日历.get(Calendar.DAY_OF_WEEK)-1;intday=0;if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){day=31;}if(month==4||month==6||month==9||month==11){day=30;}if(month==2){if(((year%4==0)&&(year%100!=0))||(year%400==0))第-8-页{day=29;}else{day=28;}}for(inti=星期几,n=1;i星期几+day;i++){a[i]=String.valueOf(n);n++;}returna;}}classCalendarFrameextendsFrameimplementsActionListener{LabellabelDay[]=newLabel[42];ButtontitleName[]=newButton[7];Stringname[]={日(Sun),一(Mon),二(Tues),三(Wed),四(Thur),五(Fri),六(Sat)};TextFieldtext1,text2;ButtonnextMonth,previousMonth,Enter;Labellab1,lab2,lab3;intyear=2013,month=1;CalendarBeancalendar;LabelshowMessage=newLabel(,Label.CENTER);publicCalendarFrame(){PanelpCenter=newPanel();/*将JavaApplet的布局设置为BorderLayout布局*/pCenter.setLayout(newGridLayout(7,7));/*将pCenter的布局设置为7行7列的GridLayout布局*/for(inti=0;i7;i++){titleName[i]=newButton(name[i]);pCenter.add(titleName[i]);}for(inti=0;i42;i++){labelDay[i]=newLabel(,Label.CENTER);pCenter.add(labelDay[i]);第-9-页}calendar=newCalendarBean();calendar.setYear(year);calendar.setMonth(month);Stringday[]=calendar.getCalendar();for(inti=0;i42;i++){labelDay[i].setText(day[i]);if((i%7==0)||(i%7==6))labelDay[i].setForeground(Color.RED);elselabelDay[i].setForeground(Color.BLACK);}lab1=newLabel(请输入日期);lab2=newLabel(年份);lab3=newLabel(月份);Enter=newButton(确定);text1=newTextField(10);text2=newTextField(5);nextMonth=newButton(下月);previousMonth=newButton(上月);Enter.addActionListener(this);nextMonth.addActionListener(this);previousMonth.addActionListener(this);PanelpNorth=newPanel(),pSouth=newPanel();pNorth.add(lab1);pNorth.add(lab2);pNorth.add(text1);pNorth.add(lab3);pNorth.add(text2);pNorth.add(Enter);pNorth.add(previousMonth);pNorth.add(nextMonth);pSouth.add(showMessage);showMessage.setText(日历:+calendar.getYear()+年+calendar.getMonth()+月);ScrollPanescrollPane=newScrollPane();scrollPane.add(pCenter);add(scrollPane,BorderLayout.CENTER);/*JavaApplet第-10-页添加scrollPane在中心区域*/add(pNorth,BorderLayout.NORTH);/*JavaApplet添加pNorth在北面区域*/add(pSouth,BorderLayout.SOUTH);/*JavaApplet添加pSouth在南面区域*/}publicvoidactionPerformed(ActionEvente){if(e.getSource()==nextMonth){month=month+1;if(month12)month=1;calendar.setMonth(month);Stringday[]=calendar.getCalendar();for(inti=0;i42;i++){labelDay[i].setText(day[i]);}}elseif(e.getSource()==previousMonth){month=month-1;if(month1)month=12;calendar.setMonth(month);Stringday[]=calendar.getCalendar();for(inti=0;i42;i++){labelDay[i].setText(day[i]);}}else{Stringyea=text1.getText();Stringmon=text2.getText();try{year=Integer.parseInt(yea);month=Integer.parseInt(mon);if(month12||month1||year1){JOptionPane.showMessageDialog(null,请输入正确月份或月份);return;}else{第-11-页calendar.setYear(year);calendar.setMonth(mo
本文标题:JAVA日历系统
链接地址:https://www.777doc.com/doc-6179874 .html