ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:44.44KB ,
资源ID:6166725      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6166725.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java课程设计格式范例.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java课程设计格式范例.docx

1、Java课程设计格式范例东 北 石 油 大 学JAVA程序设计专业技能实训课 程 java程序设计专业技能实训 题 目 万年历 学 院 数学与统计学院 专业班级 信计14-2 学生姓名 沈小伟 学生学号 141001140228 指导教师 2017年 6 月 15 日东北石油大学课程设计任务书课程 java程序设计专业技能实训 题目 万年历 专业 信息与计算科学 姓名 沈小伟 学号141001140228 主要内容XXXXXXXXXXXXXXXXXXX专业技能实训的要求:1.独立完成软件开发,并提交一篇论文和相应的软件。2.论文的主要内容包括:摘要,问题描述,计算机程序和运行结果。3.文档格式

2、:参照东北石油大学课程设计撰写规范。4.专业技能实训结束时参加答辩。主要参考资料: 葛萌,张琳娜,陈伟。 Java多态性机制应用研究J. 攀枝花学院学报,2016,02:25-28.贾羽,贾默然,郭宇。 基于JAVA的网络数控仿真系统研究J. 数字技术与应用,2015,11:77.赵源。 使用JAVA语言编写计算器的设计研究J. 今日科苑,2015,11:99.朱浩悦。 计算机软件JAVA编程特点分析J. 黑龙江科技信息,2015,36:225.卞慧敏。 浅议Java网络聊天工具设计J. 科技展望,2015,36:120.羿欣冉。 基于Java EE的在线考试系统的设计与实现J. 科技风,完成

3、期限 2017年 月 日 - 月 日 指导教师 专业负责人 2017年 月 日摘要本程序要构建的万年历程序,其功能有以下几个方面:一、设计程序运行界面,具有显示各种功能的面板模块,并对各功能按钮就行时间监听;二、程序需要显示1800年到2100年的日历,包括公历、农历、时间所对应的星期。要求系统能够从界面上的操作获取公历日期,计算其所对应的星期和相应的农历并显示到界面上;三、程序要求显示系统时间,并能设置闹铃。要求可以自己设置一个时间点,在这一时间点做出相应的响应;四、查询显示若干国际城市不同时区的时间,这里只需要调用Java的系统里就可以解决。五、对时间的更新,日历显示要求关联系统时间,能在

4、进入程序时显示系统时间对应的日历,并能返回当天日历;六、程序界面的美观设计和人性化结构,要求具有良好的人机交互,容易理解界面内容,易操作;七、就现在的水平来说,功能1、2、3、5是可以实现,功能4 有待研究,可能遇到的问题是按钮对时间的监听处理可能难度较大,还有就是在公历转农历中可能比较难获取相应的公历变化日期 。关键字:时间信息获取、程序界面构建和美化、 第1章 基础知识1. 总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把

5、输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。2. 输出月份第一天为星期几的算法:使总天数除以7取余加2得几既为星期几,若是7,则为星期日。3. 算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。4.获取系统时间,计算当天农历日期并显示1课程设计的目的通过课程设计的实践让同学们更加了解Java,更好的运用Java,熟悉和掌

6、握目前所学到的知识并融合贯通。同时也进一步了解体会Java语言具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。Java的平台标准有Java ME,Java SE和Java EE。Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。本次课程设计开发平台使用Eclipse。参照JDK帮助。2 . 问题描述及要求本程序的要求为:(1)能够显示实现1800-2100年的日期,包括公历、农历、星期、二十四节气。(2)能够按照月份格式显示,或按照星期格式显示。(3)能够显示系统时间。(4) 能够设置闹钟。

7、(5)能够查询若干国际大城市(分布在不同时区)的时间。第二章 程序框架整体程序:import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.table.DefaultTableModel;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import ja

8、va.util.Locale;import java.util.TimeZone;public class wannianli extends Jframe/窗体类 implements ActionListener,/事件处理接口 MouseListener private Calendar cld = Calendar.getInstance();/获取一个Calendar类的实例对象,Calendar类用于获取某个时间或日期 private String astr = 星期一, 星期二, 星期三, 星期四, 星期五, 星期六, 星期日 ; private DefaultTableMode

9、l dtm = new DefaultTableModel(null, astr);/创建了一个表格模型 private JTable table = new JTable(dtm);/ JTable用来显示和编辑常规二维单元表 private JScrollPane sp = new JScrollPane(table);/ JScrollPane类可提供轻量级组件的 scrollable 视图。JScrollPane 管理视口、可选的垂直和水平滚动条以及可选的行和列标题视口。 private JButton bLastYear = new JButton(上一年);/建立一个“上一年“的按

10、钮 private JButton bNextYear = new JButton(下一年); private JButton bLastMonth = new JButton(上月); private JButton bNextMonth = new JButton(下月); /JPanel 是 Java图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing 包中,是一种轻量级容器,可以加入到JFrame窗体中。JPanel默认的布局管理器是FlowLayout,其自身可以嵌套组合,在不同子容器中可包含其他组件(component),如JButton、JTextA

11、rea、JTextField 等 private JPanel p1 = new JPanel(); / 设立八个中间容器,装入布局控制日期的按钮模块 private JPanel p2 = new JPanel(new GridLayout(3,2);/网格布局 private JPanel p3 = new JPanel(new BorderLayout();/边界布局 private JPanel p4 = new JPanel(new GridLayout(2,1);/ 创建具有指定行数和列数的网格布局 private JPanel p5 = new JPanel(new Border

12、Layout();/边界布局管理器,构造一个组件之间没有间距(默认间距为0像素)的新边框布局。 private JPanel p6 = new JPanel(new GridLayout(2,2); private JPanel p7 = new JPanel(new GridLayout(2,1); private JPanel p8 = new JPanel(new BorderLayout(); private JComboBox timeBox = new JComboBox(TimeZone.getAvailableIDs();/对所有支持时区进行迭代,获取所有的id; JCombo

13、Box组件可以实现在组合框内编辑。 /JTextField(int columns)/构造一个具有指定列数的新的空 TextField。/JTextField 是一个轻量级组件,它允许编辑单行文本。 private JTextField jtfYear = new JTextField(5);/ jtfYeaar年份显示输入框 private JTextField jtfMonth = new JTextField(2);/ jtfMouth月份显示输入框 private JTextField timeField=new JTextField();/各城市时间显示框 private stati

14、c JTextArea jta = new JTextArea(10,5);/农历显示区 private JScrollPane jsp = new JScrollPane(jta); / JScrollPane(Component view);建立一个新的JScrollPane对象,当组件内容大于显示区域时会自动产生滚动轴。 private JLabel l = new JLabel(梦落痴狂:亲!你可以直接输入年月查询.);/ JLabel(String text)创建具有指定文本的 JLabel 实例。 private JLabel lt = new JLabel(); private

15、JLabel ld = new JLabel(); / JLabel()创建无图像并且其标题为空字符串的 JLabel。 private JLabel lu = new JLabel(农历和节气); private JLabel null1=new JLabel(); private int lastTime; /private String localTime = null; private String s = null; private SimpleDateFormat dateFormat=new SimpleDateFormat(yyyy年MM月dd日 hh时mm分ss秒);/ Si

16、mpleDateFormat允许以为日期-时间格式化选择任何用户指定的方式启动。例:SimpleDateFormat myFmt=new SimpleDateFormat(yyyy年MM月dd日 HH时mm分ss秒); SimpleDateFormat myFmt1=new SimpleDateFormat(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:27 publ

17、ic 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.setBackgro

18、und(Color.white); table.setGridColor(Color.pink);/ 星期之间的网格线是灰色的 table.setBackground(Color.white); table.setColumnSelectionAllowed(true);/ 将table中的列设置为可选择的 table.setSelectionBackground(Color.pink);/ 当选定某一天时背景颜色为黑色 table.setSelectionForeground(Color.GREEN); table.setBackground(new Color(184,207, 229);

19、/ 日期显示表格为浅蓝色 table.setFont(new Font(黑体, Font.BOLD, 24);/ 日期数字字体格式 table.setRowHeight(26);/ 表格的高度 table.addMouseListener(this); / 鼠标监听器、 lu.setFont(new Font(黑体, Font.BOLD, 22);/农历标签格氏 jtfYear.addActionListener(this);/ 可输入年份的文本框 / 为各个按钮添加监听函数 bLastYear.addActionListener(this); bNextYear.addActionListe

20、ner(this); bLastMonth.addActionListener(this); bNextMonth.addActionListener(this); timeBox.addItemListener(new TimeSelectedChangedListener();/根据运行结果,可以设置类实现ActionListener接口和ItemListener接口以进行动作事件处理和选项变化事件处理。 / 将按钮添加到Jpane上 p1.add(bLastYear); p1.add(jtfYear);/ 年份输入文本框 p1.add(bNextYear); p1.add(bLastMo

21、nth); p1.add(jtfMonth); p1.add(bNextMonth); p3.add(jsp, BorderLayout.SOUTH); p3.add(lu,BorderLayout.CENTER); p3.add(ld, BorderLayout.NORTH); p4.add(lt); p4.add(l); p5.add(p4, BorderLayout.SOUTH); p5.add(sp, BorderLayout.CENTER); p5.add(p1, BorderLayout.NORTH); p6.add(timeBox); p6.add(null1); p6.add(

22、timeField); p8.add(p2,BorderLayout.CENTER); p8.add(p7,BorderLayout.SOUTH); this.getContentPane().add(p3, BorderLayout.EAST); this.getContentPane().add(p5, BorderLayout.CENTER); this.getContentPane().add(p6,BorderLayout.SOUTH); this.getContentPane().add(p8,BorderLayout.WEST); String strDate = DateFor

23、mat.getDateInstance().format(new Date().split(-);/ 获取日期2017-6-1-2017 6 1 cld.set(Integer.parseInt(strDate0), Integer.parseInt(strDate1) - 1,0); /paresInt强转成int类型,Integer就是整数型,/月份从0开始,存到数组里0 1 2 3-11 showCalendar(Integer.parseInt(strDate0),Integer.parseInt(strDate1), cld);jtfMonth.setEditable(false);

24、/ 设置月份文本框为不可编辑 jtfYear.setText(strDate0); jtfMonth.setText(strDate1); this.showTextArea(strDate2); ld.setFont(new Font(新宋体, Font.BOLD/风格, 24/字号); new Timer(lt).start(); new TimeThread().start(); this.setBounds(200, 200, 700, 350);/显示窗口在屏幕的位置以及窗口自身的大小 this.setResizable(false);/ resizeable值为true时,表示在生

25、成的窗体可以自由改变大小; this.setVisible(true);/窗体可见 public void showCalendar(int localYear, int localMonth, Calendar cld) int Days = getDaysOfMonth(localYear, localMonth) + cld.get(Calendar.DAY_OF_WEEK) -2; Object ai = new Object7; lastTime = 0; for (int i = cld.get(Calendar.DAY_OF_WEEK)-1; i = Days; i+) aii%

26、7 = String.valueOf(i-(cld.get(Calendar.DAY_OF_WEEK)-2); if (i%7 = 6) dtm.addRow(ai); ai = new Object7; lastTime+; dtm.addRow(ai); public int getDaysOfMonth(int Year, int Month) /计算各月的天数 if(Month=1|Month=3|Month=5|Month=7|Month=8|Month=10|Month=12) return 31; if(Month=4|Month=6|Month=9|Month=11) retu

27、rn 30; if(Year%4=0&Year%100!=0|Year%400=0)/闰年 return 29; else return 28; public void actionPerformed(ActionEvent e)/从界面上获取年月数据 if(e.getSource() = jtfYear | e.getSource() = bLastYear | e.getSource() = bNextYear | e.getSource() = bLastMonth | e.getSource() = bNextMonth) int m, y; try/控制输入的年份正确,异常控制 if

28、 (jtfYear.getText().length() != 4) throw new NumberFormatException();/数字格式错误 y = Integer.parseInt(jtfYear.getText(); m = Integer.parseInt(jtfMonth.getText(); catch (NumberFormatException ex) JOptionPane.showMessageDialog(this, 请输入4位0-9的数字!, 年份有误, JOptionPane.ERROR_MESSAGE); return; ld.setText(没有选择日期

29、); for (int i = 0; i lastTime+1; i+) dtm.removeRow(0); if(e.getSource() = bLastYear) jtfYear.setText(String.valueOf(-y); if(e.getSource() = bNextYear)jtfYear.setText(String.valueOf(+y); if(e.getSource() = bLastMonth) if(m = 1) jtfYear.setText(String.valueOf(-y); m = 12; jtfMonth.setText(String.valueOf(m); else jtfMonth.setText(String.valueOf(-m); if(e.getSource() = bNextMonth) if(m = 12) jtfYear.setText(String.valueOf(+y); m = 1; jtfMonth.setText(String.valueOf(m); else jtfMonth.setText(String.valueOf(+m); cld.set

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1