java日历面对对象化设计_第1页
java日历面对对象化设计_第2页
java日历面对对象化设计_第3页
java日历面对对象化设计_第4页
java日历面对对象化设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、软 件 学 院课程设计报告书课程名称 面向对象程序设计 设计题目 java日历 专业班级 学 号 姓 名 指导教师 徐 娇 月 2013 年 1 月1 设计时间2013年1月14日-2013年1月19日2 设计目的面向对象程序设计是学习完Java 程序设计课程之后,进行的一次全面的综合性练习,是学习完理论课程之后的必要的集中实践环节。面向对象程序设计的课程设计的目的在于是提高学生对所学知识综合应用能力的一种方式,要求我们对理论课中所学习到的知识综合运用,实现有一定规模的Java应用。此次课程设计也为我们将来的毕业设计和具体工作实践奠定了坚实的基础。培养独立的Java语言与算法设计方法,具备初步

2、的独立分析和设计能力;学习软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;训练综合运用所学的理论知识和方法进行独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。设计的题目要求达到一定工作量,程序能够运行,并对标准的测试数据有正确的输出结果。3设计任务Java日历设计一个java日历,要求用java编写简单日历,只需要输入年、月就可打印出对应月的日历。要求有简单的用户界面。4 设计内容 4.1概念设计4.1.1 系统功能图该系统主要实现的功能如图1所示:查询指定年份日历日历系统查询指定月份日历查询相邻年份日历

3、查询相邻月份日历查看今日选择其他日期显示日期 图1具体流程如下图2所示开始 程序初始化获取当前系统时间年份等数据 计算,绘制屏幕是否输入年份或选择进入用户界面输出日历结果 图24.1.2 需求分析对于日历系统,其主要功能是:查看当日日期(年、月、日)查看其他年月的月历、对选中的日期进行标识。主要使用流程是:查日历系统,查看其他月份或年份日历,选中其他日期查看,查看当日日期。主要功能的用例描述如下:(1)查看日历1、进入日历系统;2、系统获取当日日期并设置日历为当月,选中当日日期;(2)查询当月其他年份下拉菜单选择年份:1、点击选择年份的下拉菜单,选择年份;2、系统获取已选择的年份; 3、将选择

4、框内的年份设为已更改的年份;4、系统设置为已更改年份当月的月历并显示在界面显示。(3)查询当年的其他月份下拉菜单选择月份:1、点击选择月份的下拉菜单,选择年份;2、系统获取已选择的月份;3、将选择框内的月份设为已更改的月份;4、系统设置为已更改月份当年的月历并在界面显示。(4)选择其他日期查看1、点击其他日期;2、系统对所有日期的label进行监听,判断点击的那个label;3、返回被点击的label的数组下标;4、对该下标的label设置,表示选中。4.2程序源代码import java.awt.*;import java.awt.event.*;import java.util.*;pub

5、lic class CalenderCreator extends FrameButton days=new Button49;Choice Month=new Choice();Choice Year=new Choice();Label lmonth=new Label("MONTH");Label lyear=new Label("Year");Label ltext=new Label("YEAR UPTO:");Panel p1,p2;GregorianCalendar gc=new GregorianCalendar();

6、int totdays;TextField textfield=new TextField(2);public CalenderCreator()setTitle("日历");setSize(400,400);setResizable(false);setLocation(50,50);p1=new Panel(new FlowLayout();p2=new Panel(new GridLayout(7,7,10,10);p1.setBackground(Color.pink);p2.setBackground(Color.white);add(p1,BorderLayou

7、t.NORTH);add(p2);p1.add(ltext);p1.add(textfield);p1.add(lmonth);p1.add(Month);Month.add("一月");Month.add("二月");Month.add("三月");Month.add("四月");Month.add("五月");Month.add("六月");Month.add("七月");Month.add("八月");Month.add(&quo

8、t;九月");Month.add("十月");Month.add("十一");Month.add("十二");Month.addItemListener(new myLis(this);/ int i1=myAction.newyear; / System.out.println("iiiiiiiiii is :"+i1); /textfield.addActionListener(new myAction(this); /p1.add(lyear);p1.add(Year);Year.add("

9、;2012");Year.add("2013");Year.add("2014");Year.add("2015");Year.add("2016");Year.add("2017");Year.addItemListener(new myLis(this);for(int i=0;i<49;i+)daysi=new Button("");for(int c=0;c<49;c+)p2.add(daysc);setVisible(true);void se

10、tYear(String mynewyear)int h=Integer.parseInt(mynewyear);for(int adder=2013;adder<=h;adder+)Year.add(""+adder);void setButtons(int myday,int mytotdays)int count=7;days0.setLabel("星期一");days1.setLabel("星期二");days2.setLabel("星期三");days3.setLabel("星期四&quo

11、t;);days4.setLabel("星期五");days5.setLabel("星期六");days6.setLabel("星期天");if ( myday>0)int blank= myday;for( ;blank>0;blank-,count+)dayscount.setLabel("");for(int i=1;i<=mytotdays; i+,count+)dayscount.setLabel(""+i);for(int j = 1;count < 49;

12、j+,count+)dayscount.setLabel("");void setVal(Date date,int iday,int iselMonth,int iselYear)gc.setTime(date);if(iselMonth=0 | iselMonth=2 | iselMonth=4 | iselMonth=6 | iselMonth= 7 |iselMonth=9 | iselMonth=11)totdays=31;setButtons(iday,totdays);if(iselMonth=3 | iselMonth=5 | iselMonth=8 | i

13、selMonth=10)totdays=30;setButtons(iday,totdays);if(gc.isLeapYear(iselYear) && iselMonth=1)totdays=29;setButtons(iday,totdays);if( !gc.isLeapYear(iselYear) && iselMonth=1)totdays=28;setButtons(iday,totdays);static public void main(String args)CalenderCreator c=new CalenderCreator();cl

14、ass myLis implements ItemListenerCalenderCreator calLis;public myLis(CalenderCreator c)calLis=c;public void itemStateChanged(ItemEvent i)int selMonth=calLis.Month.getSelectedIndex();int selYear1=Integer.parseInt(calLis.Year.getSelectedItem();int selYear = selYear1- 1900;Date d1 = new Date(selYear,se

15、lMonth,1);int day = d1.getDay();calLis.setVal(d1,day,selMonth,selYear);class myAction implements ActionListenerCalenderCreator calAc;int newyear;public myAction(CalenderCreator ca)calAc=ca;public void actionPerformed(ActionEvent e)String s=calAc.textfield.getText();/ newyear=Integer.parseInt(s);Syst

16、em.out.println("Year upto:"+s);calAc.setYear(s);TextField tf = (TextField)e.getSource();tf.removeActionListener(this);4.3运行调试与分析讨论4.3.1运行结果和分析(1)运行程序,出现图3日历界面: 图3(2)单击年份的组合框侧边箭头,如图4,改变年份,则日历跟随改变: 图4(3)单击月份下拉框,如图5,改变月份,则日历也跟随改变: 图5(4)存储图片,如图6图65 总结与展望面向对象课程设计的主要目标就是利用将课堂上学到的Java理论知识和实践操作方法应

17、用于实际的Java应用软件中,去制作各种小程序。通过这次面向对象课程设计,可以加深我们对面向对象程序设计理论知识的理解,掌握面向对象应用程序设计和开发的基本方法,以提高我们运用理论知识的能力。最初确定课程设计任务时,先考虑其功能有哪些,需要显示什么,如何进行窗口布局,需要用哪些知识点,如相关的类和对象等,最后就是根据初步设计的功能和布局构架,考虑用源代码进行实现了。本次日历程序在设计过程中遇到障碍时,老师的指导,和同学的帮助都给予了我很大的启发,同时,我也在网络上搜寻相关知识之后,最终完成了这项设计。在课程设计的实际操作中,不仅巩固了之前所学习的知识,同时也不可避免的遇到了一些问题,通过问题发

18、现了自己对一些知识的片面理解甚至是错误的认识。针对课程设计中遇到的问题,我作出如下总结,作为以后学习的经验和教训。(一) 实际操作能力的欠缺由于条件所限,平时我们大家都是在课堂上对理论知识进行学习,所以实践能力相对比较薄弱,这在实际操作中就出现了操作不流畅。(二) 常忽略细节问题对于细节,输入代码的时候不够细心总是因为打错代码字母或者漏打“;”“”符号使代码常常出现错误或者警告,导致整个代码无法运行成功。经过一周的课程设计结束了,在这短短的一周里,通过我们自身的实践我们学习到了更多的知识,将此与课堂上所学习的理论知识相结合,我们将面向对象理论及操作诠释的更加深刻。实训中,遇到的问题和老师同学互相讨论,将所遇的困难各个击破,使自己对于一些问题的理解更加深刻了。课程设计是我们整个学习过程中的一个重要的实践环节,是我们运用所学知识分析问题解决问题以及培养我们自己动手操作实践能力的一个重要过程,也是我们在校学习

温馨提示

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

评论

0/150

提交评论