万年历课程设计任务书.docx

上传人:b****4 文档编号:7019290 上传时间:2023-05-11 格式:DOCX 页数:23 大小:126.39KB
下载 相关 举报
万年历课程设计任务书.docx_第1页
第1页 / 共23页
万年历课程设计任务书.docx_第2页
第2页 / 共23页
万年历课程设计任务书.docx_第3页
第3页 / 共23页
万年历课程设计任务书.docx_第4页
第4页 / 共23页
万年历课程设计任务书.docx_第5页
第5页 / 共23页
万年历课程设计任务书.docx_第6页
第6页 / 共23页
万年历课程设计任务书.docx_第7页
第7页 / 共23页
万年历课程设计任务书.docx_第8页
第8页 / 共23页
万年历课程设计任务书.docx_第9页
第9页 / 共23页
万年历课程设计任务书.docx_第10页
第10页 / 共23页
万年历课程设计任务书.docx_第11页
第11页 / 共23页
万年历课程设计任务书.docx_第12页
第12页 / 共23页
万年历课程设计任务书.docx_第13页
第13页 / 共23页
万年历课程设计任务书.docx_第14页
第14页 / 共23页
万年历课程设计任务书.docx_第15页
第15页 / 共23页
万年历课程设计任务书.docx_第16页
第16页 / 共23页
万年历课程设计任务书.docx_第17页
第17页 / 共23页
万年历课程设计任务书.docx_第18页
第18页 / 共23页
万年历课程设计任务书.docx_第19页
第19页 / 共23页
万年历课程设计任务书.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

万年历课程设计任务书.docx

《万年历课程设计任务书.docx》由会员分享,可在线阅读,更多相关《万年历课程设计任务书.docx(23页珍藏版)》请在冰点文库上搜索。

万年历课程设计任务书.docx

万年历课程设计任务书

《高级语言程序设计

(2)》

课程设计任务书

专业数学与应用数学班级数学0901学号7姓名(签名)完成日期指导教师(签名)

1、程序设计说明书

【设计题目】万能日历程序程序

【问题描述】万能日历是查询日期的工具,它适合于上班族,以便他们准确地把握时间。

 

【软件功能】1以月历形式显示日期与星期。

2支持用户自己输入年份以及年份下拉形式选择年份,并提供月份的下拉形式菜单来选择月份。

3通过点击面板任意处可以刷新日历。

【算法思想】将一个星期面板和一个月份面板同时添加到一个主面板,再在相应的面板内添加对应的组件,从而形成日历的界面;然后继承java本身的日历类中得成员方法来实现日历功能;继而构造成员方法实现日历界面的刷新

【类的设计】

直接继承的是java中已有的类,然后构造成员方法来实现界面的刷新

【用户界面】

 

【程序技巧】

直接继承java日历的类,就没必要构造太多的方法以及其他类

 

【模块划分及调用关系】(用word的绘图工具绘出图形,不能省略!

【模块流程图】

 

【运行说明】

(1)将eclipse软件打开

(2)在eclipse中建立一个包,接着在包内建一个空白的java程序文档

(3)将现有的程序复制,粘贴到空白文档,运行即可。

(4)运行之后即可出现用户界面,你只需按照自己的要求选择相应的年份,月份。

如此你便可以看到对应的月历查看星期,月份。

程序上机调试报告

【语法错误及其排除】

 

2、程序测试结果

【测试数据】

测试数据:

1.2011年12月份

2.2023年2月

【输出结果】

初始界面(月份含有下拉框)

 

年份的改变

月份的改变

界面可以改变大小

 

【收获及体会】

第一次,对于每个人来说,都是难以忘怀的,同样也是给人以体会最深的,收获也是最大的

从这次java课程设计中,我获益匪浅。

为了完成这个任务,可谓是煞费苦心,绞尽脑汁。

我经过了长时间的反复编写调试,课本和网上查阅相关资料相关文章。

经过这一次,自我的检验,我发现自己在学习这门课上还是有很多不足的,比如说,对JAVA语言整体知识构架不够熟悉;不能灵活地运用所学的知识点;自己的编程方式也不是太标准,经常出现代码写错而调试很久的低级错误情况出现。

同时我也懂得了一个很浅显的道理,条条道路通罗马。

学习的途径很多,上网,看书,问同学等。

以后我会利用可以利用的学习工具,好好学习,将自己在学习方面的不足予以弥补。

让我体会最深的是,我发觉自己的java学习有所进步。

为了完成任务,我一遍又一遍的看书,查资料,不知不觉中,感觉书在心中,对课本知识有了一个更深的认识。

从这一点,我似乎明白,实践是最好的老师。

实践让我们进一步的和理论接触,更深的认识它。

人们常说,实践是检验真理的唯一标准。

确实如此,与此同时,实践也是检验我们学习成效的最好标尺。

所以说,我们的学以致用,多多留心生活,关注身边,尽可能的利用我们所掌握的知识进行解答,分析。

这样,对我们学习很重要。

不光如此,我们还可以用理论创造事物。

实现所学知识的用处,同样也是实现自我价值的最好方法。

另外值得一提的是,我认为合作也是很有价值的一件事,这也是我感悟的。

大家都知道术业有专攻之说。

确实如此,不同的人对不同的领域有不同的领悟能力。

要完成一件综合性的任务,并非那么简单,不单指这任务内容多么难,而是指它所涉及的知识点很广。

这次任务书,不仅仅是要求我们写一个程序,打几个字,还要求我们画流程图。

对于计算机,我是个们外汉。

流程图,前所未闻,更别提画了。

面对这个难题,我开始很疑惑,很郁闷。

天无绝人之路,我碰到一计算机高手,在他的帮助之下,我现在不光画出了所需流程图,还懂的流程图的基本作图方法。

合作是一种学习方法,更是一种处世方法。

自从这次的合作,我和他关系也升温了。

我感谢合作,我喜欢合作。

【源程序代码】

importjava.awt.BorderLayout;

importjava.awt.Color;

importjava.awt.Dimension;

importjava.awt.GridLayout;

importjava.awt.SystemColor;

importjava.awt.event.ActionEvent;

importjava.awt.event.KeyEvent;

importjava.awt.event.MouseEvent;

importjava.util.Calendar;

importjava.util.GregorianCalendar;

importjava.util.Locale;

importjava.util.Date;

importjava.util.StringTokenizer;

importjavax.swing.BorderFactory;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JPanel;

importjavax.swing.JTextField;

importjavax.swing.JToggleButton;

importjavax.swing.SwingConstants;

importjavax.swing.UIManager;

classJCalendarextendsJPanel{

//动态表示年月日

privateintyear=0;

privateintmonth=0;

privateintday=0;

//主面板

privateJPanelMain=newJPanel();

//日面板

privateJPaneljPanelDay=newJPanel();

//月份面板

privateJPaneljPanelMonth=newJPanel();

//年份输入位置

privateJTextFieldYear=newJTextField();

//月份输入位置

privateJTextFieldMonth=newJTextField();

//减少月份

privateJButtonMonthDown=newJButton();

//增加月份

privateJButtonMonthUp=newJButton();

privateJPaneljPanelButton=newJPanel();

//减少年份

privateJButtonYearDown=newJButton();

//增加年份

privateJButtonYearUp=newJButton();

//显示日期的位置

privateJLabelOut=newJLabel();

//设置时区

privateLocalel=Locale.CHINESE;

//主日历

privateGregorianCalendarcal=newGregorianCalendar(l);

//星期面板

privateJPanelweekPanel=newJPanel();

//日期按钮组

privateJToggleButton[]days=newJToggleButton[42];

//日期面板

privateJPanelDays=newJPanel();

//标示

privateJLabeljLabel1=newJLabel();

privateJLabeljLabel2=newJLabel();

privateJLabeljLabel3=newJLabel();

privateJLabeljLabel4=newJLabel();

privateJLabeljLabel5=newJLabel();

privateJLabeljLabel6=newJLabel();

privateJLabeljLabel7=newJLabel();

//当前选择的天数按钮

privateJToggleButtoncur=null;

//月份天数数组,用来取得当月有多少天

//123456789101112

privateint[]mm={31,28,31,30,31,30,31,31,30,31,30,31};

//空日期构造函数

publicJCalendar(){

try{

jbInit();

}

catch(Exceptione){

e.printStackTrace();

}//异常抛出

}

//带日期设置的构造函数

publicJCalendar(intyear,intmonth,intday){

cal.set(year,month,day);

try{

jbInit();

}

catch(Exceptione){

e.printStackTrace();

}

}

//带日历输入的构造函数

publicJCalendar(GregorianCalendarcalendar){

cal=calendar;

try{

jbInit();

}

catch(Exceptione){

e.printStackTrace();

}

}

//带日期输入的构造函数

publicJCalendar(Datedate){

cal.setTime(date);

try{

jbInit();

}

catch(Exceptione){

e.printStackTrace();

}

}

//初始化组件

privatevoidjbInit()throwsException{

//初始化年、月、日

iniCalender();

this.setLayout(newBorderLayout());

this.setBorder(BorderFactory.createRaisedBevelBorder());

this.setMaximumSize(newDimension(200,200));

this.setMinimumSize(newDimension(200,200));

this.setPreferredSize(newDimension(200,200));

Main.setLayout(newBorderLayout());

Main.setBackground(SystemColor.info);

Main.setBorder(null);

Out.setBackground(Color.lightGray);

Out.setHorizontalAlignment(SwingConstants.CENTER);

Out.setMaximumSize(newDimension(100,19));

Out.setMinimumSize(newDimension(100,19));

Out.setPreferredSize(newDimension(100,19));

jLabel1.setForeground(Color.red);

jLabel1.setHorizontalAlignment(SwingConstants.CENTER);

jLabel1.setHorizontalTextPosition(SwingConstants.CENTER);

jLabel1.setText("日");

jLabel2.setForeground(Color.blue);

jLabel2.setHorizontalAlignment(SwingConstants.CENTER);

jLabel2.setHorizontalTextPosition(SwingConstants.CENTER);

jLabel2.setText("六");

jLabel3.setHorizontalAlignment(SwingConstants.CENTER);

jLabel3.setHorizontalTextPosition(SwingConstants.CENTER);

jLabel3.setText("五");

jLabel4.setHorizontalAlignment(SwingConstants.CENTER);

jLabel4.setHorizontalTextPosition(SwingConstants.CENTER);

jLabel4.setText("四");

jLabel5.setHorizontalAlignment(SwingConstants.CENTER);

jLabel5.setHorizontalTextPosition(SwingConstants.CENTER);

jLabel5.setText("三");

jLabel6.setBorder(null);

jLabel6.setHorizontalAlignment(SwingConstants.CENTER);

jLabel6.setHorizontalTextPosition(SwingConstants.CENTER);

jLabel6.setText("二");

jLabel7.setBackground(Color.lightGray);

jLabel7.setForeground(Color.black);

jLabel7.setBorder(null);

jLabel7.setHorizontalAlignment(SwingConstants.CENTER);

jLabel7.setHorizontalTextPosition(SwingConstants.CENTER);

jLabel7.setText("一");

weekPanel.setBackground(UIManager.getColor("InternalFrame.activeTitleGradient"));

weekPanel.setBorder(BorderFactory.createEtchedBorder());

weekPanel.setLayout(newGridLayout(1,7));

weekPanel.add(jLabel1,null);

weekPanel.add(jLabel7,null);

weekPanel.add(jLabel6,null);

weekPanel.add(jLabel5,null);

weekPanel.add(jLabel4,null);

weekPanel.add(jLabel3,null);

weekPanel.add(jLabel2,null);

MonthUp.setAlignmentX((float)0.0);

MonthUp.setActionMap(null);

jPanelMonth.setBackground(SystemColor.info);

jPanelMonth.setLayout(newBorderLayout());

jPanelMonth.setBorder(BorderFactory.createEtchedBorder());

Month.setBorder(null);

Month.setHorizontalAlignment(SwingConstants.CENTER);

Month.addMouseListener(newjava.awt.event.MouseAdapter(){

publicvoidmouseClicked(MouseEvente){

Month_mouseClicked(e);

}

});

Month.addKeyListener(newjava.awt.event.KeyAdapter(){

publicvoidkeyPressed(KeyEvente){

Month_keyPressed(e);//响应键盘事件

}

});

MonthDown.setBorder(null);

MonthDown.setText("\u25C4");

MonthDown.addActionListener(newjava.awt.event.ActionListener(){

publicvoidactionPerformed(ActionEvente){

MonthDown_actionPerformed(e);

}

});

MonthUp.setBorder(null);

MonthUp.setText("\u25BA");

MonthUp.addActionListener(newjava.awt.event.ActionListener(){

publicvoidactionPerformed(ActionEvente){

MonthUp_actionPerformed(e);

}

});

jPanelButton.setLayout(null);

jPanelButton.setBorder(null);

jPanelButton.addComponentListener(newjava.awt.event.ComponentAdapter(){

publicvoidcomponentResized(java.awt.event.ComponentEventevt){

jPanelButtonComponentResized(evt);

}

});

Year.setBorder(BorderFactory.createEtchedBorder());

Year.setMaximumSize(newDimension(80,25));

Year.setMinimumSize(newDimension(80,25));

Year.setPreferredSize(newDimension(80,25));

Year.setHorizontalAlignment(SwingConstants.CENTER);

Year.addMouseListener(newjava.awt.event.MouseAdapter(){

publicvoidmouseClicked(MouseEvente){

Year_mouseClicked(e);

}

});

Year.addKeyListener(newjava.awt.event.KeyAdapter(){

publicvoidkeyPressed(KeyEvente){

Year_keyPressed(e);

}

});

YearDown.setBorder(null);

YearDown.setMaximumSize(newDimension(16,16));

YearDown.setMinimumSize(newDimension(16,16));

YearDown.setPreferredSize(newDimension(16,16));

YearDown.setSize(newDimension(16,16));//按键的规格

YearDown.setText("▼");//

YearDown.addActionListener(newjava.awt.event.ActionListener(){

publicvoidactionPerformed(ActionEvente){

YearDown_actionPerformed(e);

}

});

YearUp.setBorder(null);

YearUp.setMaximumSize(newDimension(16,16));

YearUp.setMinimumSize(newDimension(16,16));

YearUp.setPreferredSize(newDimension(16,16));

YearUp.setSize(newDimension(16,16));//设置按钮大小

YearUp.setText("▲");//设置按钮上得标志

YearUp.addActionListener(newjava.awt.event.ActionListener(){//监听事件

publicvoidactionPerformed(ActionEvente){

YearUp_actionPerformed(e);

}

});

jPanelDay.setLayout(newBorderLayout());

Days.setLayout(newGridLayout(6,7));

Days.setBackground(SystemColor.info);

for(inti=0;i<42;i++){

days[i]=newJToggleButton();

days[i].setBorder(null);

days[i].setBackground(SystemColor.info);

days[i].setHorizontalAlignment(SwingConstants.CENTER);

days[i].setHorizontalTextPosition(SwingConstants.CENTER);

//days[i].setSize(l,l);

days[i].addActionListener(newjava.awt.event.ActionListener(){

publicvoidactionPerformed(ActionEvente){

day=Integer.parseInt(((JToggleButton)e.getSource()).getText());

showDate();

showDays();

}

});

Days.add(days[i]);

}

this.add(Main,BorderLayout.NORTH);

this.add(jPanelDay,BorderLayout.CENTER);

this.add(jPanelMonth,BorderLayout.SOUTH);

Main.add(Year,BorderLayout.CENTER);

Main.add(Out,BorderLayout.WEST);

Main.add(jPanelButton,BorderLayout.EAST);

jPanelButton.add(YearUp);

jPanelButton.add(YearDown);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2