万年历JAVA实验手册.docx
- 文档编号:15001716
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:33
- 大小:241.82KB
万年历JAVA实验手册.docx
《万年历JAVA实验手册.docx》由会员分享,可在线阅读,更多相关《万年历JAVA实验手册.docx(33页珍藏版)》请在冰点文库上搜索。
万年历JAVA实验手册
淮阴工学院
JavaProgramming课程设计报告
课题名称:
万年历
系(院):
计算机工程学院
专业:
计算机科学与技术(软件工程方向)
班级:
计算机309
(1)班
姓名:
陆一峰
学号:
3092101116
指导教师:
夏森
学年学期:
2012~2013学年第1学期
2013年01月12日
淮阴工学院
JavaProgramming课程设计任务书
课题名称
万年历
设计目的
通过设计一个万年历给用户提供时间日期查询,和对每天进行备忘记事。
大大方便了使用者对日历的使用,简化了操作,更有各时区的时间的对比。
实验环境
JDK6.0;Eclipse3.6,Access;
Win7
任务
要求
学习研究万年历算法,同时使用java实现这一算法,开发相应的界面,可以进行的日历查询。
工作进度计划
序号
起止日期
工作内容
1
20130106~20130107
选定课题并完成需求分析
2
20130106~20130107
完成概要设计,初步建立数据库
3
20130107~20130107
完成详细设计
4
20130108-20130108
完成代码编写并测试运行
指导教师(签章):
2013年01月06日
序言
Java的前身是Oak,它一开始只是被应用于消费性电子产品中。
后来它的开发者们发现它还可以被用于更大范围的Internet上。
1995年,Java语言的名字从Oak编程了Java。
1997年J2SE1.1发布。
1998年J2SE1.2发布,标志Java2的诞生。
十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。
Java的体系结构由Java语言、Javaclass、JavaAPI、Java虚拟机组成。
它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。
Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。
Java的平台标准有JavaME,JavaSE和JavaEE。
Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。
目前在众多的支持Java的开发工具中主要的7有JavaDevelopmentKit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。
其中JavaDevelopmentKit简称JDK是大多开发工具的基础。
以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。
我做的课程题目是万年历的设计,万年历在我们的手机,电脑,MP4等电子产品中随处可见,其功能也十分简单,最核心的是提供某年某月的日历,在我的设计中,还增加了具体的时刻以及不同时区不同国家的时刻,简单的设计确是复杂的代码实现,不过万年历确实给予我们生活的诸多方便!
摘要
这学期我们学习了Java语言,Java语言是面向对象的开发方法是当今世界最流行的开发方法,是当今流行的网络编程语言。
它具有面向对象、跨平台、分布应用等特点。
它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。
很多程序开发人员得第一选择。
为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。
让学生自己动手动脑,将书本上得知识运用到实践当中去,使知识能更好得融会贯通。
为了达到这个目的,我们需要自己动手做一个Java的课程设计,在这个课程设计里我们需要根据我们手中现有得软件与知识基础,独立得将它完成,只有这样,我们才能把理论变成实践,将知识真正得做到学以致用。
这次课程设计我主要研究了利用已学的Java知识编辑一个电子万年历。
通过此次课程设计,来巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。
并通过自己动手,自主得学习,对Java这门课程有更深得了解与认识。
关键词:
万年历Java语言日历算法
正文
1.系统分析与设计
(1)需求分析
本程序的要求为:
1.使用图形用户界面;
2.本程序能够实现日期与星期的查询;
3.可以显示不同时区的时刻;
4.模拟一个计时器,不断地输出下一秒;
(2)功能设计
(1)定义一个时间类Time,能提供时、分、秒组成的时间,并提供时间增加的方法(按秒);
(2)定义一个日期类Date,记录年、月、日,并提供日期增加的方法(按天);
(3)由类Time和日期类Date,派生出DateTime类,除具有年、月、日、时、分、秒外,还增加国名和与格林威治时间的差;
(4)输入年、月、日、时、分、秒,在屏幕上模拟显示一电子计时器,不断输出下一秒的时间和日期,以及格林威治的日期和时间。
2.详细分析
3.Windows类中的成员函数:
4.FrameB=newFrame("万年历");
5.Panela1=newPanel();
6.Panela2=newPanel();
7.Panela3=newPanel();
8.Panela4=newPanel();
9.TextFieldT1,T2,P1,P2,P3,P4,P5,P6;
10.TextFieldp[]=newTextField[7];//时间输出框
11.LabelR1,R2;
12.ButtonS1;//查询按钮
13.TextFielda[];//月份查询表按钮
14.inti,yy;
15.intk=0,mouth1[];
16.
17.int[]y1={0,31,28,31,30,31,30,31,31,30,31,30,31};//平年的月份天数
18.int[]y2={0,31,29,31,30,31,30,31,31,30,31,30,31};//闰年的月份天数
19.ButtonS2=newButton("北京");//启动北京时间按钮
20.ButtonS3=newButton("夏威夷");//启动夏威夷时间按钮
21.ButtonS4=newButton("伦敦");//启动伦敦时间按钮
22.LabelR3,R4,R5,R6,R7,R8,R9,R10,R11,R12;
23.finalTextFieldK1,K2,K3;
24.finalTextFieldK4;
25.finalTextFieldK5;
26.finalTextFieldK6;
27.
28.ButtonS5=newButton("开始计算");//计算格林威治时间所有按钮和文本框
29.
30.Windows成员方法:
31.voidgetmessage(intx,inty)//获取年月并进行判断
32.publicvoidgo()//运行主要程序
33.
34.
35.Time类成员变量:
36.Booleant=true;//模拟时钟必要成员变量
37.inth=0,m=0,s=0;//时分秒的成员变量
38.Time类成员方法:
39.voidgettime(inta,intb,intc)//获得时分秒
40.publicvoidrun()//时间增加方法
41.
42.
43.Date类成员变量
44.DATE拥有TIME中所有成员变量和方法
45.int[]y1={0,31,28,31,30,31,30,31,31,30,31,30,31};//平年的月份天数
46.int[]y2={0,31,29,31,30,31,30,31,31,30,31,30,31};//闰年的月份天数
47.inty=0,mo=0,d=0;//年月日成员变量
48.
49.
50.Date类成员方法
51.voidgetdate(inta,intb,intc)//获得年月日
52.
53.
54.
55.DateTime类成员变量
56.继承了Date
57.intgy,gmo,gd,gh,gm,gs;//格林威治时间的成员变量
58.Stringname;//城市名称
59.intctime=0;//时差
60.intL=0;//文本框组的下标
61.DateTime类成员方法
62.publicStringreturnname()//返回城市名
63.publicintreturnctmie()//返回时差
64.voidGtimechange()//通过北京时间计算格林威治时间
65.publicvoidcountrytime()//转换为国家时间
66.publicvoidcountrytoGL()//通过国家时间计算格林威治时间
67.publicvoidnum(inti)//为L赋值
68.publicvoidstartswap()//输出前的准备
69.publicvoidrun()//方法重写,用于输出时间
(1)主要框架:
(2)S3鼠标点击事件流程图
(3)DateTime中run()方法图
3.系统测试
图1输入2012年11月后得到的万年历表
图2输入时间显示电子钟
图3显示此时与北京的时差以及此时北京时间
图4显示此时与伦敦的时差以及此时伦敦时间
图4显示此时与纽约的时差以及此时纽约时间
图4显示此时与莫斯科的时差以及此时莫斯科时间
4.软件使用说明书
1.启动程序后出现万年历程序由万年历查询、电子钟、计时器三部分组成。
2.万年历表第一次显示的是当天的月表,红颜色的日期就是当天日期。
3.在输入年月出输入你要查找的年月,就能显示相应的年月表。
4.点击北京、伦敦、纽约、莫斯科按钮会在下方分别显示三个地区的国名、时差和时间。
总结
(1)选题目的:
本次课程设计为课本后设计题目任选一题进行设计。
思考一段时间后,我决定做一个万年历的设计。
主要考虑到以前时间少课程内容多,JAVA课程基础内容掌握并不是很抓实,而对于设计一个万年历程序,由于其功能简单设计也相对较易,对于我的学习情况比较合适,并且通过设计这样的一个日历小组件,也能使自己对JAVA的一些基础知识掌握的更加牢固。
(2)对于本程序的设计,首先考虑其功能有哪些,需要显示什么,如何进行窗体构建布局,需要用哪些知识点,如相关的类和对象等。
最后,就是根据初步设计的功能和布局构架,考虑用源代码进行实现了。
经过了长时间的反复编写调试,课本和网上查阅相关资料相关文章,终于完成了整个课程设计。
在这个过程中,在把书本上的知识给系统的复习了一下的同时,同时也发现了自己的太多不足,对JAVA语言整体知识构架不够熟悉,不能灵活地运用所学的知识点。
自己的编程方式也不是很标准,经常出现代码写错而调试很久的低级错误情况出现。
在夏老师的带领下,通过这次课程设计,我明白了编写程序,不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。
还要熟悉常用的编程技巧和编程思想,不能只关心程序的运行结果,更要注重程序代码的结构,编程者更要有严谨地态度。
还有通过设计过程中大量地查阅网络文章,对一些关键知识点逐个地了解并解决相关问题。
所以网络这个强大的工具,确实是我们学习之中可以借助的一个很好的帮手。
参考文献
[1]曲朝阳,杨杰明等.Java程序设计.北京:
清华大学出版社,2008.10
[2]耿祥以,张跃平.Java大学生实用教程.北京:
电子工业出版社,2012.6
[3]明日科技.Java经典编程.北京:
清华大学出版社,2012.10
[4]李尊朝,苏军.Java语言程序设计.北京:
中国铁道出版社,2004.2
[5]王博.面向对象的建模、设计技术与方法.北京希望电脑公司,1990.
致谢
通过近这几天课程设计,使我们收益匪浅,让我学到了很多在课堂上难以学到的知识,如何运用基础知识来思考解决现实的问题。
首先我们要感谢我院给我们安排的这次算法与数据结构课程设计实习,然后我更要感谢夏老师对我热心的指导和帮助,是您教会了我如何思考和解决实际问题的方法,这样使得我的课程设计才会更加顺利地进行,并且充分掌握了设计程序的方法。
经过夏老师的精心指导和我自己的努力,我顺利地完成了课程设计,在此,我衷心的感谢夏老师对我的帮助!
附件Ⅰ源程序代码
importjava.awt.Button;
importjava.awt.Color;
importjava.awt.Font;
importjava.awt.Frame;
importjava.awt.GridLayout;
importjava.awt.Label;
importjava.awt.Panel;
importjava.awt.TextArea;
importjava.awt.TextField;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
importjava.util.Calendar;
publicclassMyNewCalendar{
publicColorc1=newColor(255,194,233);
publicColorc2=newColor(245,204,235);
publicColorc3=newColor(245,104,135);
publicFontw0=newFont("黑体",Font.PLAIN,30);
publicFontw1=newFont("幼圆",Font.PLAIN,50);
publicFontw3=newFont("黑体",Font.PLAIN,30);
publicFontw2=newFont("黑体",Font.PLAIN,30);
publicFramef=newFrame("MyCalendar—魏向波10240322");
publicPanelp1=newPanel();
publicPanelp2=newPanel();
publicPanelp3=newPanel();
publicPanelp4=newPanel();
publicPanelp5=newPanel();
publicPanelp6=newPanel();
publicPanelp7=newPanel();
publicPanelp8=newPanel();
publicPanelp9=newPanel();
publicTextFieldt1=newTextField();
publicTextFieldt2=newTextField();
publicTextFieldt3=newTextField();
publicTextFieldt4=newTextField();
publicTextFieldt5=newTextField();
publicTextFieldt6=newTextField();
publicTextFieldt9=newTextField();
publicTextFieldt10=newTextField();
publicTextAreat7=newTextArea();
publicTextAreat8=newTextArea();
publicTextAreat11=newTextArea();
publicTextAreat12=newTextArea();
publicTextAreat13=newTextArea();
publicLabell1=newLabel("年");
publicLabell2=newLabel("月");
publicLabell3=newLabel("日");
publicLabell4=newLabel("时");
publicLabell5=newLabel("分");
publicLabell6=newLabel("秒");
publicLabell7=newLabel("年");
publicLabell8=newLabel("月");
publicLabelweek1=newLabel("星期天");
publicLabelweek2=newLabel("星期一");
publicLabelweek3=newLabel("星期二");
publicLabelweek4=newLabel("星期三");
publicLabelweek5=newLabel("星期四");
publicLabelweek6=newLabel("星期五");
publicLabelweek7=newLabel("星期六");
publicLabelj[]=newLabel[42];
publicButtonB1=newButton("确定");
publicButtonB2=newButton("北京");
publicButtonB3=newButton("伦敦");
publicButtonB4=newButton("纽约");
publicButtonB5=newButton("莫斯科");
publicButtonB6=newButton("查询");
publicvoidrunning(){
f.setLayout(newGridLayout(5,1));
p1.setLayout(newGridLayout(1,13));
p2.setLayout(newGridLayout(1,1));
p3.setLayout(newGridLayout(2,1));
p4.setLayout(newGridLayout(2,1));
p5.setLayout(newGridLayout(1,4));
p6.setLayout(newGridLayout(1,1));
p7.setLayout(newGridLayout(1,5));
p8.setLayout(newGridLayout(7,7));
p9.setLayout(newGridLayout(3,1));
B1.setBackground(c1);
B2.setBackground(c2);
B3.setBackground(c2);
B4.setBackground(c2);
B5.setBackground(c2);
B6.setBackground(c1);
t9.setBackground(c1);
t10.setBackground(c1);
l7.setBackground(c1);
l8.setBackground(c1);
l1.setBackground(c1);
l2.setBackground(c1);
l3.setBackground(c1);
l4.setBackground(c1);
l5.setBackground(c1);
l6.setBackground(c1);
t1.setBackground(c1);
t2.setBackground(c1);
t3.setBackground(c1);
t4.setBackground(c1);
t5.setBackground(c1);
t6.setBackground(c1);
t7.setBackground(c1);
t8.setBackground(c1);
t11.setBackground(c1);
t12.setBackground(c1);
t13.setBackground(c1);
week1.setBackground(c3);
week2.setBackground(c3);
week3.setBackground(c3);
week4.setBackground(c3);
week5.setBackground(c3);
week6.setBackground(c3);
week7.setBackground(c3);
p1.add(t1);
p1.add(l1);
p1.add(t2);
p1.add(l2);
p1.add(t3);
p1.add(l3);
p1.add(t4);
p1.add(l4);
p1.add(t5);
p1.add(l5);
p1.add(t6);
p1.add(l6);
p1.add(B1);
p2.add(t7);
p7.add(t9);
p7.add(l7);
p7.add(t10);
p7.add(l8);
p7.add(B6);
p5.add(B2);
p5.add(B3);
p5.add(B4);
p5.add(B5);
p6.add(t8);
p3.add(p1);
p3.add(p2);
p4.add(p5);
p4.add(p6);
p8.add(week1);
p8.add(week2);
p8.add(week3);
p8.add(week4);
p8.add(week5);
p8.add(week6);
p8.add(week7);
for(inth=0;h<42;h++){
j[h]=newLabel("");
p8.a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 万年历 JAVA 实验 手册
![提示](https://static.bingdoc.com/images/bang_tan.gif)