万年历java课程设计说明书.docx

上传人:b****6 文档编号:12275703 上传时间:2023-06-05 格式:DOCX 页数:17 大小:38.38KB
下载 相关 举报
万年历java课程设计说明书.docx_第1页
第1页 / 共17页
万年历java课程设计说明书.docx_第2页
第2页 / 共17页
万年历java课程设计说明书.docx_第3页
第3页 / 共17页
万年历java课程设计说明书.docx_第4页
第4页 / 共17页
万年历java课程设计说明书.docx_第5页
第5页 / 共17页
万年历java课程设计说明书.docx_第6页
第6页 / 共17页
万年历java课程设计说明书.docx_第7页
第7页 / 共17页
万年历java课程设计说明书.docx_第8页
第8页 / 共17页
万年历java课程设计说明书.docx_第9页
第9页 / 共17页
万年历java课程设计说明书.docx_第10页
第10页 / 共17页
万年历java课程设计说明书.docx_第11页
第11页 / 共17页
万年历java课程设计说明书.docx_第12页
第12页 / 共17页
万年历java课程设计说明书.docx_第13页
第13页 / 共17页
万年历java课程设计说明书.docx_第14页
第14页 / 共17页
万年历java课程设计说明书.docx_第15页
第15页 / 共17页
万年历java课程设计说明书.docx_第16页
第16页 / 共17页
万年历java课程设计说明书.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

万年历java课程设计说明书.docx

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

万年历java课程设计说明书.docx

万年历java课程设计说明书

JAVA程序设计课程设计(论文)

 

题目:

万年历

 

院(系):

软件学院

专业班级:

计算机信息管理051班

学号:

学生姓名:

指导教师:

教师职称:

起止时间:

 

程序设计专题(报告)任务及评语

院(系):

软件学院教研室:

软件教研室

学号

学生姓名

专业班级

程序设计(报告)题目

万年历

程序设计(报告)任务

程序设计专题的任务与要求:

(1)掌握Java编程、面向对象的基础知识。

(2)较熟练地编写Java应用程序Application。

(3)了解Java的常用标准类库、编程技巧、异常处理。

(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。

(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。

(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。

课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。

正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。

指导教师评语及成绩

成绩:

指导教师签字:

2007年6月13日

 

目录

第1章课程设计的目的与要求1

1.1课程设计目的1

1.2课程设计的实验环境1

1.3课程设计的预备知识1

1.4课程设计要求1

第2章课程设计内容2

2.1课程设计题目2

2.2课程设计整体设计说明2

2.2.1课程设计内容2

2.2.2程序中所用类说明3

2.2.3程序中使用方法的说明3

2.2.4异常处理说明4

2.2.5程序运行效果及存在的问题4

2.3程序部分源代码及注释5

第3章课程设计总结12

参考资料13

第1章课程设计的目的与要求

1.1课程设计目的

《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。

实践教学环节是必不可少的一个重要环节。

本课程的程序设计专题实际是计算机信息管理专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

1.2课程设计的实验环境

硬件要求能运行Windows9.X操作系统的微机系统。

JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。

1.3课程设计的预备知识

熟悉JAVA语言及ECLIPSE开发工具。

1.4课程设计要求

按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。

要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。

同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。

第2章课程设计内容

2.1课程设计题目

万年历

2.2课程设计整体设计说明

这次课程设计是制作一个万年历能显示出当前时间和当月月历,并且可以查看1-9999年每个月的月历。

选择年月查看每月日历。

并且能显示当前系统时间和某天是星期几。

可以点击年份后的▼选择年,月份后的▼选择月,点查看按钮查看该月的日历。

这次我使用的编程语言是JAVA语言。

我采用的编译环境是Windows2003中文版+J2SDK1.6.0中文版+Eclipse3.2.1+Eclipse3.2.1中文语言包+SWTdesigner5.1.0

使用JAVA语言及SWT进行可视编辑完成该功能。

2.2.1课程设计内容

(一)安装编译环境

(1)安装Java开发包:

jdk1.6.0:

运行j2sdk1.6.0.exe程序。

(2)安装Eclipse:

将下载的Eclipse压缩包eclipse-SDK-3.2.1-win32.zip解压到指定目录下。

(3)汉化Eclipse:

将下载的汉化压缩包NLpack1-eclipse-SDK-3.2.1-win32.zip按原路径解压即可,也就是直接覆盖eclipse文件下的features、plugins两个文件夹。

(4)安装SWTdesigner:

将下载的压缩包按原路径解压即可,也就是直接覆盖eclipse文件夹下的features、plugins两个文件夹。

(二)进入Eclipse:

双击Eclipse图标,进入Eclipse。

(三)打开Eclipse,首先选择工作空间,点击“浏览”选择路径:

“我的文档\课程设计\”。

(四)新建SWT项目:

Eclipse中选择菜单项:

文件>新建>项目>Designer>

SWT/JFaceJavaProject在弹出的对话框中输入项目名称:

“Kechengsheji”并设置各项参数。

(五)新建包:

选择菜单项:

文件>新建>包,包的名称为“lizhiyong”,按“确定”按钮,新建包。

(六)在“包资源管理器”视图中,选择lizhiyong项目。

单击菜单项:

文件>新建>文件在弹出的对话框中输入文件名MainFrame.java同样再建立Clock.java。

(七)打开MainFrame.java新建并设计主窗体类MainFrame。

(八)打开Clock.java新建并设计当前时钟类Clock。

(九)调试:

选择菜单项:

运行>调试>调试方式>SWT应用程序,找出错误并改正,直到调试成功。

(十)运行程序看结果:

菜单项:

运行>运行>运行方式>SWT应用程序,运行程序看结果,验证是否与期待结果相同。

2.2.2程序中所用类说明

MainFrame主窗体类:

设计显示月历和时间及年份和月份选择按钮及查看按钮。

Clock当前时间类:

从系统中提取当前时间并以yyyy年MM月dd日hh:

mm:

ss显示。

2.2.3程序中使用方法的说明

MainFrame类中方法:

MainFrame():

MainFrame类的构造函数,设置窗体属性

Init()显示月历方法

use():

取查询月份第一天星期的方法

Resetday():

运算是否闰年及各个月天数的方法

main():

主方法程序在此开始执行

Clock类中方法:

Clock():

Clock类的构造函数

run():

每秒取一次系统时间

paint():

在主窗体上显示当前时间的方法

getTime():

提取系统时间的方法

2.2.4异常处理说明

异常是异常事件的简称,它定义为在执行程序过程中出现了不正常的事件,破坏了正常的指令流。

Java语言如果出现异常就要进行异常处理。

Clock类中有段代码含有异常处理。

try{

t.sleep(1000);//休眠1秒钟

}catch(InterruptedExceptione){

System.out.println("异常");

}

很多Java™语言方法,如Thread.sleep()可以抛出InterruptedException异常。

程序需要暂停一段时间,于是调用t.sleep(1000)休眠一秒。

(t.sleep(1000)是Thread.sleep()的一个实例。

)所以我在使用这个方法时先try捕获异常,然后catch处理异常(如果出现异常显示提示信息:

“异常”)。

2.2.5程序运行效果及存在的问题

在ECLIPSE下编译运行的效果如图。

可以选择年月查看每月日历。

并且能显示当前系统时间和某天是星期几。

可以点击年份后的▼选择年,月份后的▼选择月,点查看按钮查看该月的日历。

存在的问题:

在进行代码的调试的时候,代码有的地方少了输入有误,有的少了标点,有的方法引用不当,最重要的是版本不正确而导致不能运行程序中的部分包。

但经过细心的调试,认真的解读有了很好的改观,错误从十几处,减到无错误,便已成功,最后被圆满的完成课设。

功能上存在的问题就是不能显示出农历效果,当然农历的算法比较复杂,就连MicrosoftWindows系统的时间/日期功能也没有提供农历的效果。

2.3程序部分源代码及注释

MainFrame.java源代码

packagelizhiyong;//包:

lizhiyong

importjavax.swing.*;//引入包

importjava.awt.*;//引入包

importjava.awt.event.*;//引入包

importjava.text.*;//引入包

importjava.util.*;//引入包

classMainFrameextendsJFrame{//建立MainFrame类

JPanelpanel=newJPanel(newBorderLayout());//设置窗体属性

JPanelpanel1=newJPanel();//设置窗体属性

JPanelpanel2=newJPanel(newGridLayout(7,7));//设置窗体属性

JPanelpanel3=newJPanel();//设置窗体属性

JLabel[]label=newJLabel[49];//设置窗体属性

JLabely_label=newJLabel("年份");//设置窗体属性

JLabelm_label=newJLabel("月份");//设置窗体属性

JComboBoxcom1=newJComboBox();//设置窗体属性

JComboBoxcom2=newJComboBox();//设置窗体属性

JButtonbutton=newJButton("查看");//设置窗体属性

intre_year,re_month;//定义变量:

年,月

intx_size,y_size;//定义变量:

位置x坐标,y坐标

Stringyear_num;//定义字符串类型变量year_num

Calendarnow=Calendar.getInstance();//实例化Calendar

MainFrame(){//编写构造函数,设置窗体属性

super("万年历");//标题:

万年历

setSize(300,350);//大小:

300*350

x_size=(int)(Toolkit.getDefaultToolkit().getScreenSize().getWidth());

//设置x坐标位置

y_size=(int)(Toolkit.getDefaultToolkit().getScreenSize().getHeight());

//设置y坐标位置

setLocation((x_size-300)/2,(y_size-350)/2);//设置位置

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭按钮

panel1.add(y_label);//设置标签及按钮

panel1.add(com1);//设置标签及按钮

panel1.add(m_label);//设置标签及按钮

panel1.add(com2);//设置标签及按钮

panel1.add(button);//设置标签及按钮

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

label[i]=newJLabel("",JLabel.CENTER);//将显示的字符设置为居中

panel2.add(label[i]);

}

panel3.add(newClock(this));

panel.add(panel1,BorderLayout.NORTH);

panel.add(panel2,BorderLayout.CENTER);

panel.add(panel3,BorderLayout.SOUTH);

panel.setBackground(Color.white);//设置背景颜色:

白色

panel1.setBackground(Color.white);//设置背景颜色:

白色

panel2.setBackground(Color.white);//设置背景颜色:

白色

panel3.setBackground(Color.white);//设置背景颜色:

白色

Init();//调用Init方法显示日历

button.addActionListener(newActionListener(){//设置按钮代码

publicvoidactionPerformed(ActionEvente){

intc_year,c_month,c_week;

c_year=Integer.parseInt(com1.getSelectedItem().toString());//得到当前所选年份

c_month=Integer.parseInt(com2.getSelectedItem().toString())-1;

c_week=use(c_year,c_month);//调用函数use,得到星期几

Resetday(c_week,c_year,c_month);//调用函数Resetday

}

}

);

setContentPane(panel);//设置按钮属性

setVisible(true);//设置按钮属性

setResizable(false);//设置按钮属性

}

publicvoidInit(){//建立Init方法显示日历

intyear,month_num,first_day_num;

Stringlog[]={"日","一","二","三","四","五","六"};

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

label[i].setText(log[i]);//显示"日","一","二","三","四","五","六"

}

for(inti=0;i<49;i=i+7){

label[i].setForeground(Color.red);//将星期日的日期设置为红色

}

for(inti=6;i<49;i=i+7){

label[i].setForeground(Color.green);//将星期六的日期设置为绿色

}

for(inti=1;i<10000;i++){

com1.addItem(""+i);

}

for(inti=1;i<13;i++){

com2.addItem(""+i);

}

month_num=(int)(now.get(Calendar.MONTH));//得到当前时间的月份

year=(int)(now.get(Calendar.YEAR));//得到当前时间的年份

com1.setSelectedIndex(year-1);//设置下拉列表显示为当前年

com2.setSelectedIndex(month_num);//设置下拉列表显示为当前月

first_day_num=use(year,month_num);//计算第一天是星期几

Resetday(first_day_num,year,month_num);//计算是否闰年

}

publicintuse(intreyear,intremonth){//建立use方法

intweek_num;

now.set(reyear,remonth,1);//设置时间为所要查询的年月的第一天

week_num=(int)(now.get(Calendar.DAY_OF_WEEK));//得到第一天的星期

returnweek_num;//返回星期数

}

publicvoidResetday(intweek_log,intyear_log,intmonth_log){

intmonth_score_log;//判断是否是闰年的标记

intmonth_day_score;//存储月份的天数

intcount;

month_score_log=0;

month_day_score=0;

count=1;

if(year_log%4==0&&year_log%100!

=0||year_log%400==0){//判断是否为闰年

month_score_log=1;//标记为闰年

}

month_log=month_log+1;//将传来的月份数加1

switch(month_log){//判断该月天数

case1:

case3:

case5:

case7:

case8:

case10:

case12:

month_day_score=31;//1、3、5、7、8、10、12月天数设置为31天

break;

case4:

case6:

case9:

case11:

month_day_score=30;//4、6、9、11月天数设置为30天

break;

case2:

if(month_score_log==1){

month_day_score=29;//闰年2月天数设置为29天

}

else{

month_day_score=28;//平年2月天数设置为28天

}

break;

}

for(inti=7;i<49;i++){//初始化标签

label[i].setText("");

}

week_log=week_log+6;//将星期数加6,使显示正确

month_day_score=month_day_score+week_log;

for(inti=week_log;i

label[i].setText(count+"");

}

}

publicstaticvoidmain(String[]args){//主方法

JFrame.setDefaultLookAndFeelDecorated(true);

MainFramestart=newMainFrame();

}

}

Clock.java源代码

packagelizhiyong;//包:

lizhiyong

importjavax.swing.*;//引入包

importjava.awt.*;//引入包

importjava.awt.event.*;//引入包

importjava.text.*;//引入包

importjava.util.*;//引入包

classClockextendsCanvasimplementsRunnable{//建立Clock类显示当前时间

MainFramemf;

Threadt;

Stringtime;

Clock(MainFramemf){

this.mf=mf;

setSize(400,40);//设置窗体大小400*40

setBackground(Color.white);//设置背景颜色:

白色

t=newThread(this);//实例化线程

t.start();//调用线程

}

publicvoidrun(){//建立run方法每秒更新时间

while(true){

try{//捕获异常

t.sleep(1000);//休眠1秒钟

}catch(InterruptedExceptione){//处理异常

System.out.println("异常");

}

this.repaint(100);

}

}

publicvoidpaint(Graphicsg){//建立paint方法显示当前时间

Fontf=newFont("宋体",Font.BOLD,16);//设置字体

SimpleDateFormatSDF=newSimpleDateFormat("yyyy'年'MM'月'dd'日'HH:

mm:

ss");//格式化时间显示类型

Calendarnow=Calendar.getInstance();

time=SDF.format(now.getTime());//得到当前日期和时间

g.setFont(f);

g.setColor(Color.orange);//设置背景颜色:

橙色

g.drawString(time,100,25);

}

}

 

第3章课程设计总结

通过这次课程设计,加强了我对JAVA语言的理解,使课堂上的理论在实践中得到运用。

我对《JAVA程序设计》这门程序设计语言进行了一次完整的学习与实践。

对JAVA的常量、变量、运算、类、流程、SWT、窗体和Applet进行了复习与实践,综合运用所学知识,系统的进行了一次软件工程开发,完成了课程设计的任务,并在实践应用方面打下一定基础。

这次课程设计,使我对本门课程有了更深一步的理解,《JAVA程序设计》并不是简单的计算机语言,它能够延伸到更宽更广的领域。

学好这些知识也能为自己在以后学习动态网页制作打下坚实的基础。

在掌握JAVA语言程序设计的理论知识的基础上,我能够结合实际,设计编程,调试运行JAVA语言程序,完成课程设计论文。

为了能够较好地完成本次课程设计,我进行了阅读教材,网上搜索,到图书馆查找相关资料等准备工作,在做课程设计的过程中,我在利用所学知识的同时,又学到了很多实例化的理论知识和软件工程的一些实践。

总结了一些经验和方法。

强化了我的实际动手能力。

同时也找到自己的不足。

我一定会继续学习增加自己的编程能力和调试能力,在今后的学习中我会更加的努力,增加自己的知识储备。

拓宽了知识面,锻炼了能力,综合素质得到较大提高。

最后感谢老师给予的耐心指导与帮助,使我能顺利完成这次课程设计。

 

参考资料

[1]宋振会.《JAVA语言编程基础教程》.北京:

清华大学出版社,2005-5

[2]耿祥义.《JAVA大学实用教程》.北京:

电子工业出版社,2005-3

[3]耿祥义.《JAVA大学实用教程实验指导》.北京:

电子工业出版社,2005-3

[4][美]CayS.Horstmann,程峰.《JAVA2核心技术》.北京:

机械工业出版社,2003-3

[5]魏永继.《JAVA应用程序开发》.北京:

机械工业出版社,2007-2

[6]王雪轻.《JAVA入门与提高》.北京:

人民邮电出版社,2004-2

[7]孟繁新.《Eclipse实例开发与应用》.沈阳:

东北大学出版社,2005-1

[8]

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

当前位置:首页 > 医药卫生 > 基础医学

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

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