您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > java课程设计万年历程序设计报告
信息科学与工程学院山东科技大学信息学院JAVA程序设计学院:信息科学与工程学院班级:计算机11-3学号:201101050230信息科学与工程学院姓名:赵乐信息科学与工程学院第1页目录目录....................................................................................................................................................1前言......................................................................................................................................................11需求分析...........................................................................................................................................22.概要设计...........................................................................................................................................33.各模块的功能及程序说明................................................................................................................54.测试分析......................................................................................................................................135.源程序清单..................................................................................................................................136.课程设计体会..............................................................................................................................22前言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是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。信息科学与工程学院第2页1需求分析1.1需求分析本程序的要求为:1.使用图形用户界面;2.本程序能够实现日期与星期的查询。1.2功能设计本程序要构建的万年历程序,其功能有以下几个方面:(1)通过网页形式运行,实现图形界面。(2)能以月历形式显示日期与星期。(3)支持用户自己输入年份,并提供月份的下拉形式菜单来选择月份。(4)通过点击“更新”来刷新日历。信息科学与工程学院第3页2.概要设计2.1程序设计思路1.总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。2.输出月份第一天为星期几的算法:使总天数除以7取余加2得几既为星期几,若是7,则为星期日。3.算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。4.如果年份小于1582年则程序不予判断。信息科学与工程学院第4页2.2程序运行界面图2-1程序运行界面2.3流程图初始化程序,获取当前日期调取当前日期下日志文件绘制界面判断日期是否更新开始信息科学与工程学院第5页3.各模块的功能及程序说明3.1.初始化组件importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.OutputStreamWriter;//importjava.sql.Date;importjava.text.DateFormat;importjava.text.SimpleDateFormat;结束信息科学与工程学院第6页importjava.util.Calendar;importjava.util.Date;importjavax.swing.JButton;importjavax.swing.JDialog;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JScrollPane;importjavax.swing.JTable;importjavax.swing.JTextArea;importjavax.swing.JTextField;importjavax.swing.table.DefaultTableModel;3.2.初始化数据privateCalendarcld=Calendar.getInstance();privateString[]astr={星期一,星期二,星期三,星期四,星期五,星期六,星期日};privateDefaultTableModeldtm=newDefaultTableModel(null,astr);privateJTabletable=newJTable(dtm);//装日期的表格privateJScrollPanesp=newJScrollPane(table);privateJButtonbLastYear=newJButton(上一年);privateJButtonbNextYear=newJButton(下一年);privateJButbNextMonth=newJButton(下月);privateJTextFieldjtfYear=newJTextField(5);//jtfYear年份显示和输入文本框privateJTextFieldjtfMonth=newJTextField(2);//jtfMonth月份显示文本框privateJPanelp1=newJPanel();//装入控制日期按钮的模块privateJPanelp2=newJPanel();privateJPanelp3=newJPanel(newBorderLayout());privateJPanelp4=newJPanel(newGridLayout(2,1));privateJPanelp5=newJPanel(newBorderLayout());privateJButtonbAdd=newJButton(保存日志);privateJButtonbDel=newJButton(删除日志);privateJTextAreajta=newJTextArea();//jta--JTextAreaprivateJScrollPanejsp=newJScrollPane(jta);privateJLabell=newJLabel(年份文本框中可直接键入要查找的年份,以提高查询效率);privateJLabellt=newJLabel();privateJLabelld=newJLabel();privateintlastTime;信息科学与工程学院第7页3.3.绘制程序界面publicwannianli(){super(万年历);//框架命名this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗口关闭函数this.getContentPane().setLayout(newBorderLayout(10,0));jta.setLineWrap(true);table.setGridColor(Color.GRAY);//星期之间的网格线是灰色的table.setColumnSelectionAllowed(true);table.setSelectionBackground(Color.BLACK);//当选定某一天时这一天背景黑色table.setSelectionForeground(Color.GREEN);//选定的日期字体是绿色的table.setBackground(newColor(184,207,229));//日期显示表格颜色浅蓝色table.setFont(newFont(黑体,Font.BOLD,24));//日期数字字体格式table.setRowHeight(30);//表格的高度table.addMouseListener(this);//鼠标监听器jtfYear.addActionListener(this);//可输入年份的文本框//为各个按钮添加监听函数bAdd.addActionListener(this);bDel.addActionListener(this);bLastYear.addActionListener(t
本文标题:java课程设计万年历程序设计报告
链接地址:https://www.777doc.com/doc-6040220 .html