java课程设计报告74717

上传人:小** 文档编号:91945681 上传时间:2019-07-04 格式:DOC 页数:20 大小:230KB
返回 下载 相关 举报
java课程设计报告74717_第1页
第1页 / 共20页
java课程设计报告74717_第2页
第2页 / 共20页
java课程设计报告74717_第3页
第3页 / 共20页
java课程设计报告74717_第4页
第4页 / 共20页
java课程设计报告74717_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《java课程设计报告74717》由会员分享,可在线阅读,更多相关《java课程设计报告74717(20页珍藏版)》请在金锄头文库上搜索。

1、Java程序设计课程设计报告题 目:万年历 学 院:数学与统计 专 业:信计 学生姓名:梦超然 学 号:101428717522 指导教师:李志新 2017年 7月 9 日191需求分析1.1需求分析本程序的要求为:(1)能够显示实现1800-2100年的日期,包括公历、农历、星期、二十四节气。(2)能够按照月份格式显示,或按照星期格式显示。(3)能够显示系统时间。(4) 能够设置闹钟。(5)能够查询若干国际大城市(分布在不同时区)的时间。1.2功能设计本程序要构建的万年历程序,其功能有以下几个方面:一、设计程序运行界面,具有显示各种功能的面板模块,并对各功能按钮就行时间监听;二、程序需要显示

2、1800年到2100年的日历,包括公历、农历、时间所对应的星期。要求系统能够从界面上的操作获取公历日期,计算其所对应的星期和相应的农历并显示到界面上;三、程序要求显示系统时间,并能设置闹铃。要求可以自己设置一个时间点,在这一时间点做出相应的响应;四、查询显示若干国际城市不同时区的时间,这里只需要调用Java的系统里就可以解决。五、对时间的更新,日历显示要求关联系统时间,能在进入程序时显示系统时间对应的日历,并能返回当天日历;六、程序界面的美观设计和人性化结构,要求具有良好的人机交互,容易理解界面内容,易操作;七、就现在的水平来说,功能1、2、3、5是可以实现,功能4 有待研究,可能遇到的问题是

3、按钮对时间的监听处理可能难度较大,还有就是在公历转农历中可能比较难获取相应的公历变化日期 。2.概要设计2.1程序设计思路1. 总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。2. 输出月份第一天为星期几的算法:使总天数除以7取余加2得几既为星期几,若是7,则为星期

4、日。3. 算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。4.获取系统时间,计算当天农历日期并显示2.2程序运行界面2.3流程图程序初始化获取当前系统时间年份等数据提交年月变更数据 是否输入年份或选择月份开始计算,绘制屏幕结束计算农历3.各模块的功能及程序说明3.1.初始化组件import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing

5、.table.DefaultTableModel;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.Locale;import java.util.TimeZone;3.2.初始化数据public class wannianli extends JFrame/窗体类 implements ActionListener/事件处

6、理接口, MouseListener private Calendar cld = Calendar.getInstance();/获取一个Calendar类的实例对象,Calendar类用于获取某个时间或日期private String astr = 星期一, 星期二, 星期三, 星期四, 星期五, 星期六, 星期日 ;private DefaultTableModel dtm = new DefaultTableModel(null, astr); /创建了一个表格模型private JTable table = new JTable(dtm); / JTable用来显示和编辑常规二维单元

7、表private JScrollPane sp = new JScrollPane(table);/ JScrollPane类可提供轻量级组件的 scrollable 视图。JScrollPane 管理视口、可选的垂直和水平滚动条以及可选的行和列标题视口。private JButton bLastYear = new JButton(上一年);/建立一个“上一年“的按钮private JButton bNextYear = new JButton(下一年);private JButton bLastMonth = new JButton(上月);private JButton bNextMon

8、th = new JButton(下月);/JPanel 是 Java图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing 包中,是一种轻量级容器,可以加入到JFrame窗体中。JPanel默认的布局管理器是FlowLayout,其自身可以嵌套组合,在不同子容器中可包含其他组件(component),如JButton、JTextArea、JTextField 等private JPanel p1 = new JPanel(); / 设立八个中间容器,装入布局控制日期的按钮模块private JPanel p2 = new JPanel(new GridLayout

9、(3,2);/网格布局private JPanel p3 = new JPanel(new BorderLayout();/边界布局private JPanel p4 = new JPanel(new GridLayout(2,1); / 创建具有指定行数和列数的网格布局private JPanel p5 = new JPanel(new BorderLayout();/边界布局管理器,构造一个组件之间没有间距(默认间距为0像素)的新边框布局。 private JPanel p6 = new JPanel(new GridLayout(2,2); private JPanel p7 = new

10、 JPanel(new GridLayout(2,1); private JPanel p8 = new JPanel(new BorderLayout();private JComboBox timeBox = new JComboBox(TimeZone.getAvailableIDs();/对所有支持时区进行迭代,获取所有的id; JComboBox组件可以实现在组合框内编辑。/JTextField(int columns),构造一个具有指定列数的新的空 TextField。JTextField 是一个轻量级组件,它允许编辑单行文本。private JTextField jtfYear

11、= new JTextField(5);/ jtfYeaar年份显示输入框private JTextField jtfMonth = new JTextField(2);/ jtfMouth月份显示输入框private JTextField timeField=new JTextField();/各城市时间显示框private static JTextArea jta = new JTextArea(10,5);/农历显示区private JScrollPane jsp = new JScrollPane(jta);/ JScrollPane(Component view);建立一个新的JSc

12、rollPane对象,当组件内容大于显示区域时会自动产生滚动轴。private JLabel l = new JLabel(梦落痴狂:亲!你可以直接输入年月查询.);/JLabel(String text)创建具有指定文本的 JLabel 实例。private JLabel lt = new JLabel();private JLabel ld = new JLabel();/ JLabel()创建无图像并且其标题为空字符串的 JLabel。private JLabel lu = new JLabel(农历和节气);private JLabel null1=new JLabel();priva

13、te int lastTime;/private String localTime = null;private String s = null;private SimpleDateFormat dateFormat=new SimpleDateFormat(yyyy年MM月dd日 hh时mm分ss秒);/ SimpleDateFormat允许以为日期-时间格式化选择任何用户指定的方式启动。例:SimpleDateFormat myFmt=new SimpleDateFormat(yyyy年MM月dd日 HH时mm分ss秒); SimpleDateFormat myFmt1=new Simpl

14、eDateFormat(yy/MM/dd HH:mm); SimpleDateFormat myFmt2=new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);得到:2004年12月16日 17时24分27秒04/12/16 17:242004-12-16 17:24:273.3.绘制程序界面public wannianli() super(万年历 一生痴狂 一世繁华 BY 梦落痴狂);/ 框架命名this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 窗口关闭函数this.getContentPane().setLayout(new BorderLayout(9, 10);/设置用户界面上的屏幕组件的格式布局,是java图形界面编程的常用方法jta.setLineWrap(true);/ 长度大于分配长度时候则换行jta.setFont(new Font(黑体, Font.BOLD, 16);table.setBackground(Color.white);table.se

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号