java课程设计报告

合集下载

课程设计报告javaweb

课程设计报告javaweb

课程设计报告javaweb一、教学目标本课程旨在通过JavaWeb的学习,让学生掌握JavaWeb的基本概念、技术和应用,培养学生具备JavaWeb程序设计的能力。

具体的教学目标如下:1.理解JavaWeb的基本概念和架构。

2.掌握JavaWeb的核心技术,如HTML、CSS、JavaScript、Servlet、JSP等。

3.了解JavaWeb的应用领域和前景。

4.能够使用HTML、CSS、JavaScript编写网页。

5.能够使用Servlet、JSP技术进行Web应用程序的开发。

6.能够运用JavaWeb技术解决实际问题。

情感态度价值观目标:1.培养学生对JavaWeb技术的兴趣和热情,提高学生的学习积极性。

2.培养学生具备良好的团队合作意识和能力,提高学生的沟通协作能力。

3.培养学生具备创新精神和责任感,提高学生对社会、环境的责任意识。

二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.JavaWeb基本概念:介绍JavaWeb的定义、发展历程、应用领域和基本架构。

2.HTML、CSS、JavaScript技术:讲解HTML标签、CSS样式、JavaScript脚本的使用方法和应用实例。

3.Servlet技术:讲解Servlet的概念、生命周期、运行原理以及如何编写和部署Servlet。

4.JSP技术:讲解JSP的概念、原理、基本语法以及如何使用JSP实现动态网页。

5.JavaWeb应用实例:分析并实现一些典型的JavaWeb应用案例,如在线、博客系统等。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:通过讲解JavaWeb的基本概念、技术和应用,使学生掌握相关知识。

2.案例分析法:分析并实现一些典型的JavaWeb应用案例,让学生学会将理论知识应用于实际问题。

3.实验法:安排实验室实践环节,让学生动手编写代码,培养学生的实际操作能力。

java课程设计记事本设计报告

java课程设计记事本设计报告

java课程设计记事本设计报告一、教学目标本课程旨在通过Java编程语言实现一个记事本应用程序,让学生掌握Java编程的基本概念和方法,培养学生的编程能力和解决问题的能力。

1.理解Java编程语言的基本语法和结构。

2.掌握Java编程中的数据类型、变量、运算符、控制语句等基本概念。

3.学习Java中的类和对象的概念,理解封装、继承和多态的原理。

4.熟悉Java中的常用类库和方法。

5.能够运用Java编程语言编写简单的程序。

6.能够使用Java编程语言实现一个记事本应用程序,包括文本的增删改查等功能。

7.能够分析并解决编程过程中遇到的问题。

情感态度价值观目标:1.培养学生的团队合作意识和沟通能力,通过小组合作完成项目。

2.培养学生的创新思维和解决问题的能力,鼓励学生进行自主学习和探索。

3.培养学生的学习兴趣和自信心,让学生感受到编程的乐趣和成就感。

二、教学内容本课程的教学内容主要包括Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现。

1.Java编程语言的基本概念和方法:–数据类型、变量、运算符、控制语句等基本概念。

–类和对象的概念,封装、继承和多态的原理。

–常用类库和方法的使用。

2.记事本应用程序的设计和实现:–用户界面设计:创建文本框、按钮等控件,实现用户输入和显示功能。

–文件操作:实现文件的打开、保存、关闭等功能,使用文件读写技术。

–文本处理:实现文本的增删改查等功能,使用数据结构和算法进行文本管理。

三、教学方法本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。

1.讲授法:教师通过讲解Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现,引导学生掌握相关知识。

2.讨论法:学生分组进行讨论,分享自己的理解和思路,互相学习和交流。

3.案例分析法:分析实际案例,让学生了解记事本应用程序的实际应用场景和设计思路。

4.实验法:学生通过编写代码和进行实验,实现记事本应用程序的功能,培养学生的实际编程能力和解决问题的能力。

java课程设计报告重点难点总结

java课程设计报告重点难点总结

java课程设计报告重点难点总结摘要:一、引言二、Java课程设计报告重点概述1.Java基础知识掌握2.面向对象编程应用3.数据结构与算法应用4.网络编程与数据库操作5.项目实战经验积累三、Java课程设计报告难点剖析1.代码优化与调试2.异常处理与日志记录3.高效算法与数据结构选择4.项目架构设计与模块划分5.团队协作与沟通技巧四、总结与展望正文:一、引言随着Java技术的不断普及和应用,越来越多的学生和开发者开始学习并运用Java进行软件开发。

为了帮助大家更好地掌握Java课程设计,本文将对Java课程设计报告的重点难点进行总结,以期为大家提供有益的参考。

二、Java课程设计报告重点概述1.Java基础知识掌握Java基础知识是课程设计的基础,包括数据类型、运算符、控制结构、方法、类与对象、继承、多态等。

掌握这些基础知识能够为后续的编程实践奠定坚实基础。

2.面向对象编程应用面向对象编程(OOP)是Java的核心思想,学会运用类、对象、封装、继承、多态等概念进行编程至关重要。

在课程设计中,应注重运用面向对象编程解决实际问题,提高代码的可维护性和可扩展性。

3.数据结构与算法应用数据结构与算法是编程的灵魂,学会使用数组、链表、栈、队列、树、图等基本数据结构,以及掌握常见排序、查找、图算法等,能够提高课程设计中解决问题的能力。

4.网络编程与数据库操作网络编程和数据库操作是实际项目开发中不可或缺的部分。

掌握Socket 编程、多线程、数据库连接、SQL语句编写等技能,能够为课程设计提供实际应用场景。

5.项目实战经验积累课程设计报告中应体现实际项目开发经验,包括需求分析、系统设计、编码实现、测试、部署等环节。

通过实际项目锻炼,提高自己的编程能力和团队协作能力。

三、Java课程设计报告难点剖析1.代码优化与调试编写高质量的代码和高效地调试程序是课程设计中的关键环节。

学会使用调试工具、编写单元测试、代码审查等方法,提高代码质量和稳定性。

《Java》课程设计》记事本

《Java》课程设计》记事本

《Java课程设计》记事本课程设计报告书目录一、设计课题二、设计目的三、操作环境四、设计场所(机房号、机器号或自己机器)五、设计过程(设计内容及主要程序模块)六、本次设计中用到的课程知识点(列出主要知识点)七、设计过程中遇到的问题及解决办法八、程序清单五、设计过程(设计内容及主要模块,不少于3000字)1.设计要求1)界面设计2)功能实现(1)文件菜单:新建、打开、保存、另存为、退出等。

(2)其中新建菜单项可以新建一个记事本程序;打开菜单项可以打开一个用户指定的文本文件,并将其内容显示在记事本的文本区域;保存和另存为菜单项可分别实现文件的保存和另存为3)编辑菜单:复制、剪切和粘贴等4)帮助菜单:软件版本信5)右键弹出快捷菜单2.总体设计1)功能模块图:图一功能模块图2)功能描述1、打开记事本。

首先是标准型的记事本,拥有文件、编辑。

格式和帮助。

如图1所示:图1标准型记事本界面2、在标准型的记事本界面中,进行的新建一个本件名字叫新记事本。

如图2记事本文件帮助新建打开保存另存为退出复制剪切粘贴编辑关于记事本右键快捷格式字体颜色图2新建记事本功能3、用打开文件打开刚刚新建的新记事本。

如图三所示。

图3—打开文件4、点击退出即可退出,如图4所示:图4—退出记事本5、点击帮助可以看到有关记事本的相关信息,其中有作者名、版本、许可条款、隐私声明等必要信息。

如图5所示:图5—帮助相关信息6、右键可实现复制、粘贴、剪切、清除等常用功能,方便用户可以快捷方便的使用记事本。

如图6所示:图6—右键功能7、编辑也可实现制、粘贴、剪切、清除等常用功能,方便用户选择自己适合的方式,自由选择方便的快捷方式使用。

如图7:图7—编辑八、程序清单package test;import java.io.File;import java.io.*;import java.awt.event.*;import java.awt.Toolkit;import java.awt.*;import javax.swing.*;import javax.swing.filechooser.*;public class Notebook extends JFrame implements ActionListener,ItemListener{ //组件创建JButton b_save,b_close; //按钮JTextArea textArea; //文本框File tempFile; //文件JPanel jp; //面板JMenu file,edit,style,help; //菜单JMenuItemf_new,f_open,f_save,f_close,f_saveas,e_copy, e_paste,e_cut,e_clear,e_selectAll,e_find,e_rep lace,s_font,s_color,h_editor,h_help; //菜单条JMenuBar jmb;JScrollPane jsp; //滚动面板JPopupMenu popUpMenu = new JPopupMenu(); //右键弹出式菜单JLabel stateBar;//标签JLabel jl,jj;JFileChooser jfc = new JFileChooser(); //文件选择JMenuItemje_copy,je_paste,je_cut,je_clear,je_selectAll,je _find,je_replace; //弹出式菜单条public Notebook(){jfc.addChoosableFileFilter(new FileNameExtensionFilter("文本文件(*.txt)","txt"));jmb = new JMenuBar();textArea = new JTextArea();jsp = new JScrollPane(textArea);file = new JMenu("文件");edit = new JMenu("编辑");style = new JMenu("格式");help = new JMenu("帮助");je_copy = new JMenuItem("复制(C) ");je_paste = new JMenuItem("粘贴(P) ");je_cut = new JMenuItem("剪切(X) ");je_clear = new JMenuItem("清除(D) ");je_selectAll = new JMenuItem("全选(A) ");je_find = new JMenuItem("查找(F) ");je_replace = new JMenuItem("替换(R) ");je_copy.addActionListener(this); //给弹窗式的各组件添加监听器je_paste.addActionListener(this);je_cut.addActionListener(this);je_clear.addActionListener(this);je_selectAll.addActionListener(this);je_find.addActionListener(this);je_replace.addActionListener(this);//给界面上方的菜单条添加监听器f_new = new JMenuItem("新建(N)");f_new.setAccelerator(KeyStroke.getKeyS troke('N',InputEvent.CTRL_MASK,false)); //设置带修饰符快捷键f_new.addActionListener(this);f_open = new JMenuItem("打开(O)");f_open.setAccelerator(KeyStroke.getKey Stroke('O',InputEvent.CTRL_MASK,false));f_open.addActionListener(this);f_save = new JMenuItem("保存(S)");f_save.setAccelerator(KeyStroke.getKey Stroke('S',InputEvent.CTRL_MASK,false));f_save.addActionListener(this);f_saveas = new JMenuItem("另存为");f_saveas.setAccelerator(KeyStroke.getKe yStroke(KeyEvent.VK_S,InputEvent.CTRL_ MASK|InputEvent.SHIFT_MASK));f_saveas.addActionListener(this);f_close = new JMenuItem("退出(W)");f_close.setAccelerator(KeyStroke.getKey Stroke('W',InputEvent.CTRL_MASK,false));f_close.addActionListener(this);e_copy = new JMenuItem("复制(C)");e_copy.setAccelerator(KeyStroke.getKey Stroke('C',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_paste = new JMenuItem("粘贴(V)");e_paste.setAccelerator(KeyStroke.getKeyStro ke('V',InputEvent.CTRL_MASK,false));e_paste.addActionListener(this);e_cut = new JMenuItem("剪切(X)"); e_cut.setAccelerator(KeyStroke.getKeyStroke ('X',InputEvent.CTRL_MASK,false));e_cut.addActionListener(this);e_clear = new JMenuItem("清除(D)");e_clear.setAccelerator(KeyStroke.getKeyStrok e('D',InputEvent.CTRL_MASK,false));e_clear.addActionListener(this);e_selectAll = new JMenuItem("全选(A)");e_selectAll.setAccelerator(KeyStroke.getKey Stroke('A',InputEvent.CTRL_MASK,false));e_selectAll.addActionListener(this);e_find = new JMenuItem("查找(F)");e_find.setAccelerator(KeyStroke.getKeyStrok e('F',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_replace = new JMenuItem("替换(R)");e_replace.setAccelerator(KeyStroke.getK eyStroke('R',InputEvent.CTRL_MASK,false)) ;e_replace.addActionListener(this);s_font = new JMenuItem("字体(T)");s_font.setAccelerator(KeyStroke.getKeyStrok e('T',InputEvent.CTRL_MASK,false));s_font.addActionListener(this);s_color = new JMenuItem("颜色(C)...");s_color.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_C,InputEvent.CTRL_MAS K | InputEvent.SHIFT_MASK));s_color.addActionListener(this);h_editor = new JMenuItem("关于记事本");h_editor.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_E,InputEvent.CTRL_MAS K));h_editor.addActionListener(this);h_help = new JMenuItem("帮助信息(H)");h_help.setAccelerator(KeyStroke.getKeyStrok e(KeyEvent.VK_I,InputEvent.CTRL_MASK) );h_help.addActionListener(this);//添加右键弹出式菜单popUpMenu.add(je_copy);popUpMenu.add(je_paste);popUpMenu.add(je_cut);popUpMenu.add(je_clear);popUpMenu.addSeparator();popUpMenu.add(je_selectAll);popUpMenu.add(je_find);popUpMenu.add(je_replace);//编辑区鼠标事件,点击右键弹出"编辑"菜单textArea.addMouseListener(new MouseAdapter(){public void mouseReleased(MouseEvent e) {if(e.getButton() == MouseEvent.BUTTON3)popUpMenu.show(e.getComponent(), e.getX(), e.getY());} //e.getComponent()和textArea具有同等效果public void mouseClicked(MouseEvent e){if(e.getButton() == MouseEvent.BUTTON1)popUpMenu.setVisible(false);}});this.setJMenuBar(jmb);this.setTitle("记事本程序");file.add(f_new); //添加文件菜单组件file.add(f_open);file.addSeparator(); //加分隔线file.add(f_save);file.add(f_saveas);file.addSeparator();file.add(f_close);edit.add(e_copy); //添加编辑菜单组件edit.add(e_paste);edit.add(e_cut);edit.add(e_clear);edit.addSeparator();edit.add(e_selectAll);edit.add(e_find);edit.add(e_replace);style.addSeparator();style.add(s_font);style.add(s_color);jmb.add(file); //添加格式菜单组件jmb.add(edit);jmb.add(style);jmb.add(help);help.add(h_editor); //添加帮助菜单组件help.add(h_help);//textArea.setWrapStyleWord(true); //设置在单词过长的时候是否要把长单词移到下一行。

java课程设计报告

java课程设计报告

java课程设计报告Java课程设计报告。

一、引言。

Java作为一种跨平台的编程语言,具有广泛的应用领域和强大的功能,因此在计算机专业课程中占据着重要的地位。

本次课程设计旨在通过对Java语言的学习和实践,提高学生对于面向对象程序设计的理解和应用能力,同时锻炼学生的编程实践能力和团队协作能力。

二、课程设计内容。

1. 课程设计主题。

本次课程设计的主题为“学生成绩管理系统的设计与实现”。

通过该主题的设计,旨在让学生通过实际的项目开发,掌握Java语言的基本语法和面向对象的编程思想,同时对软件开发的整个流程有一个清晰的认识。

2. 课程设计目标。

(1)掌握Java语言的基本语法和面向对象的编程思想;(2)了解软件开发的整个流程,包括需求分析、设计、编码、测试和维护;(3)培养学生的团队协作能力和解决问题的能力;(4)通过实际项目的开发,提高学生的编程实践能力。

三、课程设计过程。

1. 需求分析。

首先,团队成员对学生成绩管理系统的功能需求进行了详细的分析和讨论,确定了系统的基本功能模块,包括学生信息管理、课程信息管理、成绩管理等。

通过需求分析,明确了系统的功能和性能需求,为后续的设计和编码工作奠定了基础。

2. 系统设计。

在需求分析的基础上,团队成员进行了系统的整体设计和模块设计。

通过UML建模工具,绘制了系统的用例图、类图、时序图等,明确了各个模块之间的关系和交互流程。

同时,团队成员还对数据库的设计进行了详细的讨论和设计,确定了数据库的表结构和字段。

3. 编码实现。

在系统设计完成后,团队成员按照设计文档进行了编码实现工作。

在编码的过程中,严格按照Java语言的规范进行编码,同时注重代码的可读性和可维护性。

通过团队的协作和沟通,确保了各个模块的功能实现和整体功能的完整性。

4. 测试与调试。

在编码实现完成后,团队成员进行了系统的测试与调试工作。

通过单元测试、集成测试和系统测试,发现并修复了系统中存在的各种问题和bug。

java课程设计及实验报告

java课程设计及实验报告

java课程设计及实验报告一、教学目标本课程旨在通过Java编程语言的学习,让学生掌握Java编程的基本语法、面向对象编程思想以及常用的数据结构与算法。

通过课程的学习,使学生能够独立完成简单的Java程序,培养学生的编程能力和逻辑思维能力。

具体的教学目标如下:1.知识目标:–掌握Java基本语法和编程规范;–理解面向对象编程的基本概念和方法;–熟悉常用的数据结构(如数组、链表、栈、队列等)和算法(如排序、查找等)。

2.技能目标:–能够使用Java编写简单的程序,解决实际问题;–能够运用面向对象编程思想进行程序设计;–能够运用常用的数据结构与算法解决编程问题。

3.情感态度价值观目标:–培养学生的团队合作意识和沟通能力;–培养学生的创新精神和解决问题的能力;–培养学生的自主学习能力和持续学习的兴趣。

二、教学内容根据教学目标,本课程的教学内容主要包括以下几个方面:1.Java基本语法和编程规范;2.面向对象编程思想,包括类与对象、继承与多态、封装等;3.常用的数据结构与算法,包括数组、链表、栈、队列、排序、查找等;4.Java标准库的使用,包括字符串、数学运算、输入输出等;5.简单的Java编程实例和实战项目。

教学内容的安排和进度如下:•第1-2周:Java基本语法和编程规范;•第3-4周:面向对象编程思想;•第5-6周:常用的数据结构与算法;•第7-8周:Java标准库的使用;•第9-10周:简单的Java编程实例和实战项目。

三、教学方法为了达到教学目标,本课程将采用多种教学方法,包括:1.讲授法:讲解Java基本语法、面向对象编程思想和常用的数据结构与算法;2.案例分析法:分析实际的编程案例,让学生更好地理解和运用Java编程知识;3.实验法:让学生通过动手实践,巩固所学知识和技能;4.讨论法:学生进行小组讨论,培养学生的团队合作意识和沟通能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《Java编程思想》;2.参考书:《Java核心技术》、《Head First Java》;3.多媒体资料:教学PPT、视频教程、在线编程练习题等;4.实验设备:计算机、网络环境、编程开发环境(如Eclipse、IntelliJIDEA等)。

java课程设计报告重点难点总结

java课程设计报告重点难点总结

java课程设计报告重点难点总结在Java课程设计中,学生可能会遇到各种挑战和困难。

以下是一些可能遇到的难点和重点,以及如何解决和掌握它们的建议:重点:1.面向对象编程(OOP)概念的理解与应用:Java是一种面向对象的编程语言,理解并能够应用OOP的概念(如封装、继承、多态等)是使用Java进行编程的基础。

学生需要理解这些概念,并在自己的程序中应用它们。

2.异常处理:Java的异常处理是程序健壮性的重要保障。

学生需要理解如何使用try-catch语句来处理可能会抛出异常的代码,以及如何使用throws和throw关键字来声明和抛出异常。

3.GUI编程:如果课程设计包含GUI编程,那么Swing或JavaFX 等GUI库的学习和应用就是重点。

学生需要理解如何创建和布局界面元素,如何处理用户输入,以及如何更新界面元素。

难点:1.复杂问题的抽象和建模:在面对复杂的问题时,如何将其抽象化,并将其分解为Java可以处理的对象和类可能会是一个挑战。

学生需要培养自己的问题解决和编程思维能力。

2.内存管理和垃圾收集:Java有自动内存管理和垃圾收集机制,这可以减少内存泄漏的风险,但理解这个机制如何工作,以及如何在必要时手动管理内存可能会有些困难。

3.并发编程:如果课程设计涉及到多线程或并发编程,那么理解和应用线程的生命周期,以及如何同步线程之间的数据可能会是一个挑战。

总结:对于这些重点和难点,关键是实践和反思。

学生应该尝试编写自己的程序,并在编写和调试过程中不断思考和理解这些问题。

此外,寻求同学、老师或在线社区的帮助也是解决困难的重要方式。

最后,不要忘记,学习编程是一个渐进的过程,需要耐心和坚持。

java课程设计成果

java课程设计成果

java课程设计成果一、教学目标本节课的目标是让学生掌握Java编程的基础知识,包括数据类型、变量、运算符等。

学生应能够理解并运用这些知识编写简单的Java程序。

此外,学生还应掌握基本的编程技巧,如控制流程、函数定义等。

通过本节课的学习,学生应能够独立完成简单的Java程序设计任务,培养编程兴趣和自信心。

二、教学内容本节课的教学内容主要包括Java编程的基本概念、数据类型、变量、运算符、控制流程和函数定义等。

具体包括以下几个部分:1.Java编程的基本概念:介绍Java编程语言的背景、特点和应用领域。

2.数据类型:讲解Java中的基本数据类型,如整数类型、浮点类型、字符类型等。

3.变量:介绍变量的概念、声明和使用方法。

4.运算符:讲解Java中的算术运算符、关系运算符、逻辑运算符等。

5.控制流程:介绍条件语句、循环语句等控制流程的用法。

6.函数定义:讲解函数的声明、定义和调用。

三、教学方法本节课采用讲授法、案例分析法和实验法相结合的教学方法。

1.讲授法:教师通过讲解Java编程的基本概念、语法和编程技巧,引导学生掌握编程知识。

2.案例分析法:教师通过分析典型的Java程序案例,让学生理解并运用所学知识解决实际问题。

3.实验法:学生通过动手编写Java程序,巩固所学知识,培养编程能力。

四、教学资源本节课的教学资源包括教材、多媒体资料和实验设备。

1.教材:选用权威、实用的Java编程教材,如《Java核心技术》等。

2.多媒体资料:制作精美的PPT课件,为学生提供直观、生动的学习资源。

3.实验设备:为学生提供充足的计算机设备,确保每个学生都能动手实践。

五、教学评估本节课的评估方式包括平时表现、作业和考试三个部分。

平时表现主要评估学生在课堂上的参与程度、提问回答等情况,占总评的30%。

作业主要包括编程练习和小论文,占总评的40%。

考试为闭卷考试,内容涵盖本节课的全部知识点,占总评的30%。

评估方式客观、公正,能全面反映学生的学习成果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《Java程序设计》课程设计报告题目:万年历学院:数学与统计专业:信计学生姓名:梦超然学号:************指导教师:***2017年7月9 日1需求分析1.1需求分析本程序的要求为:(1)能够显示实现1800-2100年的日期,包括公历、农历、星期、二十四节气。

(2)能够按照月份格式显示,或按照星期格式显示。

(3)能够显示系统时间。

(4)能够设置闹钟。

(5)能够查询若干国际大城市(分布在不同时区)的时间。

1.2功能设计本程序要构建的万年历程序,其功能有以下几个方面:一、设计程序运行界面,具有显示各种功能的面板模块,并对各功能按钮就行时间监听;二、程序需要显示1800年到2100年的日历,包括公历、农历、时间所对应的星期。

要求系统能够从界面上的操作获取公历日期,计算其所对应的星期和相应的农历并显示到界面上;三、程序要求显示系统时间,并能设置闹铃。

要求可以自己设置一个时间点,在这一时间点做出相应的响应;四、查询显示若干国际城市不同时区的时间,这里只需要调用Java的系统里就可以解决。

五、对时间的更新,日历显示要求关联系统时间,能在进入程序时显示系统时间对应的日历,并能返回当天日历;六、程序界面的美观设计和人性化结构,要求具有良好的人机交互,容易理解界面内容,易操作;七、就现在的水平来说,功能1、2、3、5是可以实现,功能4 有待研究,可能遇到的问题是按钮对时间的监听处理可能难度较大,还有就是在公历转农历中可能比较难获取相应的公历变化日期。

2.概要设计2.1程序设计思路1. 总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为365。

然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。

2. 输出月份第一天为星期几的算法:使总天数除以7取余加2得几既为星期几,若是7,则为星期日。

3. 算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。

4.获取系统时间,计算当天农历日期并显示2.2程序运行界面2.3流程图3.各模块的功能及程序说明3.1.初始化组件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 java.util.Locale;import java.util.TimeZone;3.2.初始化数据public class wannianli extends JFrame//窗体类implements ActionListener//事件处理接口, 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 用来显示和编辑常规二维单元表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 bNextMonth = 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(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 JPanel(new GridLayout(2,1));private JPanel p8 = new JPanel(new BorderLayout());private JComboBox timeBox = newJComboBox(TimeZone.getAvailableIDs());//对所有支持时区进行迭代,获取所有的id; JComboBox组件可以实现在组合框内编辑。

//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 static 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 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秒");// SimpleDateFormat 允许以为日期-时间格式化选择任何用户指定的方式启动。

例: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: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.setGridColor(Color.pink);// 星期之间的网格线是灰色的table.setColumnSelectionAllowed(true);// 将table中的列设置为可选择table.setSelectionBackground(Color.pink);// 当选定某一天时背景颜色为黑色table.setSelectionForeground(Color.GREEN);table.setBackground(new Color(184,207, 229));// 日期显示表格为浅蓝色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.addActionListener(this);bLastMonth.addActionListener(this);bNextMonth.addActionListener(this);timeBox.addItemListener(new TimeSelectedChangedListener());//根据运行结果,可以设置类实现ActionListener接口和ItemListener接口以进行动作事件处理和选项变化事件处理。

相关文档
最新文档