JAVA期末结课作业
java期末作业总结

java期末作业总结在这个Java课程的期末作业中,我经历了许多的挑战和成长。
这次作业包含了许多知识点,涉及到了面向对象编程、异常处理、文件读写等多个方面。
通过这次作业,我不仅巩固了之前学到的知识,还学到了很多新的知识点。
在这次作业中,我主要做了一个电影票售卖系统。
这个系统的主要功能包括了购票、退票、电影信息展示等。
在实现这个系统的过程中,我采用了面向对象的思想,将系统中的各个功能模块抽象为一个个类,然后通过类之间的交互来完成各种操作。
这样的设计使得代码结构清晰,易于维护和扩展。
在这次作业中,我最大的收获就是对异常处理的理解和运用。
在实现购票和退票的功能时,需要处理一些异常情况,比如座位已被占用、余票不足等。
为了应对这些异常情况,我利用Java提供的异常机制,编写了相应的异常类,并在相关的方法中进行了异常抛出和捕获处理。
这样可以使得程序在遇到异常时能够进行相应的处理,保证了程序的稳定性。
除了异常处理,我还学到了很多关于文件读写的知识。
在系统中,需要将电影信息和售票记录保存在文件中,并在需要时进行读取。
为了实现这个功能,我学习了Java中的文件操作API,并编写了相应的文件读写方法。
通过这次实践,我不仅掌握了文件读写的基本操作,还学会了如何将文件读取的数据转换为程序中的对象,并进行相应的处理。
在整个实现的过程中,我也遇到了许多的困难和问题。
比如,在实现购票功能时,我遇到了如何判断座位是否已被占用的问题。
为了解决这个问题,我经过一番思考,最终决定将座位信息保存在一个二维数组中,然后通过坐标来判断座位是否被占用。
这种解决方式既简单又高效,使得程序能够正确地处理座位冲突。
在完成这次作业的过程中,我也发现了自己的不足之处。
比如,在设计系统架构和类之间的关系时,我有时候容易陷入纠结,难以做出决策。
这使得我在一些设计上花费了较多的时间,导致了进度的延迟。
为了解决这个问题,我意识到需要多加练习,不断学习和实践。
java期末试题及答案

java期末试题及答案一、选择题1. 下列哪个不是Java基本数据类型?A. intB. charC. StringD. boolean答案:C2. 在Java中,下列哪个操作符用于取模?A. %B. /C.D. -答案:A3. 下列哪个方法可以实现字符串的截取?A. substring(int start, int end)B. substring(int start, int length)C. substring(int index)D. substring(int index, int length)答案:A4. 在Java中,下列哪个类用于实现字符串的比较?A. StringB. StringBuilderC. StringBufferD. Comparable答案:D5. 下列哪个方法用于判断字符串是否为空?A. isEmpty()B. isBlank()C. isEmpty()D. none of the above答案:B二、填空题6. Java中的构造方法是一种特殊的方法,其名称必须与______相同。
答案:类名7. 在Java中,使用______关键字可以定义一个接口。
答案:interface8. 在Java中,数组的默认初始化值是______。
答案:对于数值类型,默认值为0;对于布尔类型,默认值为false;对于对象类型,默认值为null。
9. Java中的异常处理机制主要包括______和______。
答案:try-catch,try-catch-finally10. 在Java中,下列哪个方法用于获取当前线程?答案:Thread.currentThread()三、判断题11. 在Java中,所有的对象都在堆内存中分配空间。
()答案:正确12. Java中的静态变量在内存中只有一个副本。
()答案:正确13. 在Java中,方法的重载允许方法名相同,但参数列表必须不同。
()答案:正确14. Java中的字符串是不可变的,即一旦创建后就不能修改。
java结课作业

第四章类的重用知识总结类的继承一种由已有的类创建新类的机制,是面向对象程序设计的基石之一。
通过继承,可以根据已有类来定义新类,新类拥有已有类的所有功能。
java 只支持类的单继承,每个子类只能有一个直接父类。
父类是所有子类的公共属性及方法的集合,子类则是父类的特殊化。
继承机制可以提高程序的抽象程度,提高代码的可重用性.基类(base class)也称超类(superclass) 是被直接或间接继承的类。
派生类(derived-class),也称子类 (subclass),继承其他类而得到的类,继承所有祖先的状态和行为,派生类可以增加变量和方法,派生类也可以覆盖(override)继承的方法。
隐藏和覆盖属性的隐藏子类中声明了与父类中相同的成员变量名,则从父类继承的变量将被隐藏子类拥有了两个相同名字的变量,一个继承自父类,另一个由自己声明当子类执行继承自父类的操作时,处理的是继承自父类的变量,而当子类执行它自己声明的方法时,所操作的就是它自己声明的变量。
如何访问被隐藏的父类属性调用从父类继承的方法,则操作的是从父类继承的属性,使用super.属性。
子类不能继承父类中的静态属性,但可以对父类中的静态属性进行操作。
方法覆盖如果子类不需使用从父类继承来的方法的功能,则可以声明自己的同名方法,称为方法覆盖 覆盖方法的返回类型,方法名称,参数的个数及类型必须和被覆盖的方法一摸一样,只需在方法名前面使用不同的类名或不同类的对象名即可区分覆盖方法和被覆盖方法。
覆盖方法的访问权限可以比被覆盖的宽松,但是不能更为严格。
方法覆盖的应用场合子类中实现与父类相同的功能,但采用不同的算法或公式。
在名字相同的方法中,要做比父类更多的事情。
在子类中需要取消从父类继承的方法。
必须覆盖的方法派生类必须覆盖基类中的抽象的方法,否则派生类自身也成为抽象类. 不能覆盖的方法基类中声明为final 的终结方法基类中声明为static 的静态方法调用被覆盖的方法如super.overriddenMethodName();类的继承应用实例设有三个类:Person, Employee, Manager 。
Java_期末大作业报告(修改)

Java期末大作业为了满足作业要求,我设计了一个五子棋小游戏。
程序介绍编程工具:eclipse设计基本方法:通过设置菜单,用来对五子棋各种功能的选择。
嵌入一个文本框,用来输出各种提示性息及即使信息。
嵌入标签类,用于做棋盘。
通过鼠标监听,用于下五子棋。
类的设计:类Chess继承ActionListener,MouseListener,用于响应菜单按钮及鼠标监听。
在内部再添加窗口监听WindowListener。
编程中的难点:首先在设置棋盘方面存在一定困难,java中JLable以图片作为背景跟paint 方法通用时,存在显示问题,后来在paint方法中重画棋盘,才使得一开始能显示棋盘,否则得单击棋盘中在北部的文本框才能显示棋盘。
这我个人感觉是两个部件存在兼容问题。
最有难度还是电脑落子的判断。
对于电脑落子有很多算法,然而真的要将各种情况全面考虑,工作量很大,实现困难。
而且,越是要精确,程序算法复杂度越高。
类图及类相应的关系.主类Chess,继承JFrame及接口ActionListener,MouseListener,主类Chess图为:第三部分最终产品介绍运行初始界面为:菜单“游戏”中包含“重新开始”按钮,用于重新开始下棋,“退出”按钮用于退出五子棋游戏。
“选项”菜单含有两类选择,一是“人”与“电脑”两个按钮,用于切换黑棋是人还是电脑,二是“悔棋”按钮,用于进行悔棋。
“帮助”菜单里有“关于五子棋”按钮,用以了解五子棋。
第四部分参考文献/view/17a57f1b6bd97f192279e9a8.html/view/d6dec7fdc8d376eeaeaa31ee.html朱福喜著《面向对象与java程序设计》网冠科技著《Visual C++.net小游戏开发》清华大学计算机与信息管理中心主编《Java语言程序设计》第五部分关键代码public class Chess extends JFrame implements ActionListener,MouseListener{ public static void main(String[] args) {new Chess();}private JLabel lab;private int x=50,y=50;private boolean ren=true; //设置黑棋是人还是电脑private ImageIcon ii;JMenuBar jmb=new JMenuBar();Vector v=new Vector();Vector white=new V ector();Vector black=new V ector();Image w=Toolkit.getDefaultToolkit().getImage("E:\\day1\\w.gif");Image b=Toolkit.getDefaultToolkit().getImage("E:\\day1\\b.gif");Image ii1=Toolkit.getDefaultToolkit().getImage("E:\\day1\\chessboard.jpg");JPanel jp=new JPanel();JTextField jtf=new JTextField(10);int maxX=0,maxY=0;String[] menu={"游戏","选项","帮助"};String[][] mi={{"重新开始","","退出"},{"人","电脑","","悔棋"},{"关于五子棋"}};public void actionPerformed(ActionEvent ae) {String comm=ae.getActionCommand();if("退出".equals(comm)){System.exit(0);}else if("重新开始".equals(comm)){this.v.clear();this.black.clear();this.white.clear();this.repaint();jtf.setText("重新开始游戏~");}else if("悔棋".equals(comm)){if(v.isEmpty()){JOptionPane.showMessageDialog(this,"没有棋可以悔");}else if(ren){if(v.size()%2==0)black.remove(stElement());elsewhite.remove(stElement());v.remove(stElement());this.repaint();}else{black.remove(stElement());white.remove(stElement());v.remove(stElement());v.remove(stElement());this.repaint();}}else if("关于五子棋".equals(comm)){JOptionPane.showMessageDialog(null,"先手要攻,后手要守,以攻为守,以守待攻。
java程序设计-期末大作业

2.开发一套聊天程序,需要满足以下要求: (3人)
通过可视化界面完成聊天; 每个用户界面上显示出其它用户的列表; 能够实现双方通过服务器建立通信连接,实现一 对一的聊天; 能够通过服务器,采用多线程实现多人间的群聊; 能够实现文字通信和传输图片; 能够保存通信记录到本地。
• 3.图书馆借书系统(2人)
期末大作业
期末作业
1开发一个文件编辑器,可以满足以下要求(2人)
通过可视化界面完成和用户的交互; 用户启动程序时需要输入用户名,密码,输入正确后打开 主界面; 能够打开二进制可执行文件,ASCII码文件和图片文件; 能够将读取到的文件内容以正确的格式在窗口中显示出来 (二进制的显示成为十六进制数,ASCII码文件显示为字 符串,图像文件显示出图像的内容); 能够同时用多个窗口打开多个文件,并能够对这多个窗口 进行统一管理; 能够修改ASCII文件和二进制文件的内容,并进行保存。
期末作业要求: • 2-3人以内组成一个小组,自由组合; • 每个小组可以只提交一份程序 (打印稿,只打印核心内 容,需要有运行结果展示); • 每个人必须自己写开发文档; • 开发文档包括:需求分析,概要设计,详细设计。 • 其中详细写出自己在开发中完成的工作; • 两个小组的程序不能一样,否则两个小组都按照0分处理; • 每个小组内部程序可以一样,但是提交文档不能一样,完 成的工作不能一样,否则0分处理; • 同学对于题目不满意的可以自己选择题目,但是交作业时 要亲自到场,我要检查编程情况。
java期末考试题库及答案解析

java期末考试题库及答案解析Java期末考试题库及答案解析一、选择题1. Java语言属于以下哪种类型的编程语言?A. 编译型语言B. 解释型语言C. 汇编语言D. 机器语言答案:B2. 下列哪个关键字用于定义Java类?A. classB. structC. interfaceD. enum答案:A3. Java中的main方法的返回类型是什么?A. voidB. intC. StringD. Object答案:B4. 以下哪个是Java的集合框架中的接口?A. ArrayListB. LinkedListC. SetD. HashMap答案:C5. Java中的异常处理机制使用哪个关键字来实现?A. tryB. catchC. finallyD. all of the above答案:D二、填空题1. Java语言是_________设计的,它具有跨平台的特性。
答案:James Gosling2. 在Java中,一个类可以继承另一个类的_______方法和变量。
答案:非私有3. Java的垃圾回收机制是用于_______内存的。
答案:自动管理4. Java中的_______关键字用于定义接口。
答案:interface5. Java中的_______关键字用于实现多态。
答案:override三、简答题1. 请简述Java语言的三大特性。
答案:Java语言的三大特性包括:面向对象、跨平台和网络编程。
2. 什么是Java的封装性,它有什么好处?答案:封装性是Java面向对象编程的核心概念之一,它允许将数据(属性)和操作数据的方法组合在一起,形成一个“对象”。
封装的好处包括数据隐藏、安全性提高和易于维护。
3. 请解释Java中的继承机制,并举例说明。
答案:Java中的继承机制允许一个类(子类)继承另一个类(父类)的属性和方法。
这使得代码复用变得简单,并且可以创建层次结构。
例如,一个名为“Animal”的类可以被“Dog”类继承,后者可以继承“Animal”的所有属性和方法,同时也可以添加自己的特定属性和方法。
《Java语言程序设计B》结课大作业电子版#优选.

学号《Java语言程序设计B》结课大作业学生姓名专业、班级11测绘工程、一班指导教师成绩计算机与信息工程学院2013 年11 月20 日结课大作业:计算器的设计与实现一、作业要求1.学生完成作业前应该复习课程所学知识以及阅读和理解相应的课外阅读资料;2.学生独自完成作业指定内容;3.用统一的作业模板编制。
4.提交说明:(1)电子版提交说明:a . 需要提交Winrar压缩包,文件名为“《Java语言程序设计B》结课大作业_学号_姓名”,如“《Java语言程序设计B》结课大作业_09290101_张三”。
b. 压缩包内为一个“《Java语言程序设计B》结课大作业_学号_姓名”命名的顶层文件夹,其下为两个文件夹,一个文件夹命名为“源程序”,另一个文件夹命名为“结课大作业电子版”。
其下分别放置对应相应成果物。
(2)打印版提交说明:a 不可随意更改模板样式。
b 字体:中文为宋体,大小为10号字,英文为Time New Roman,大小为10号字。
c 行间距:单倍行距。
(3)提交截止时间:2013年12月8日课前。
三、题目内容1.学生通过对所学内容各章知识点的理解、融会贯通,利用所学知识,完成对《计算器的设计与实现》这一题目。
所设计的计算器具体的功能至少要包含如下几点:(1)计算机器能够完成加法、减法、乘法、除法的运算;(2)计算器应该提供至少10个中间结果保存功能;(3)计算器在非断电且处于非计算功能状态时,屏幕默认显示的是时间和日期,也即可以当做时钟使用。
四、完成过程1. 计算器界面(1)编译完成后在命令提示行输入java Calculator回车出现如下运行效果:(2)也可以直接双击源程序文件夹里的Calculator.jar文件运行此界面。
2. 功能简介1.可执行普通加减乘除计算,可连续计算至少十次;2. 显示系统时间,每秒刷新一次,(这里本想做成老师要求的样子,但书上没有相似的例题,上网查了很多例子都没有相似的,所以只好尽力做成现在这样,只能不间断显示系统时间,不能清除,可以一直当时钟使用。
《JavaEE结课大作业》模板样例

内蒙古科技大学《JavaEE结课大作业》报告姓名:专业:计算机12级2班学号:完成日期:2015年 7 月8日图书商城系统的实现一、运行界面截图首页:图书信息展示:根据图书id查看某个图书详情:根据图书id删除图书:根据id修改图书信息:添加图书:二、核心代码说明查看所有图书信息:package com.ly.action; import java.util.List;import java.util.Map;import org.apache.struts2.interceptor.RequestAware;import com.ly.bean.LyBook;import com.ly.service.LyBookSer;public class LyBookAction implements RequestAware { private LyBookSer BookSer;private int sencond;private int first;private int bookid;public void setBookid(int bookid) {this.bookid = bookid;}public void setFirst(int first) {this.first = first;}public void setSencond(int sencond) {this.sencond = sencond;}public void setBookSer(LyBookSer bookSer) { BookSer = bookSer;}public String getAll(){List<LyBook> list = BookSer.getAll();map.put("booklist", list);return "success";}private Map<String, Object> map;public void setRequest(Map<String, Object> arg0) {this.map = arg0;}根据图书id查看:public String detail(){map.clear();BookSer.detail(bookid);List<LyBook> list = BookSer.detail(bookid);map.put("booklist", list);return"detail";}}public List<LyBook> detail(int id){String sql="from LyBook where bookid= "+id;List<LyBook> list =(List<LyBook>) getsSession().createQuery(sql).list();return list;}public List<LyBook> detail(int bookid){ return Bookdao.detail(bookid);}根据ID删除:private int bookid;public void setBookid(int bookid) {this.bookid = bookid;}public String delete(){BookSer.delete(bookid);return"delete";}public void delete(int bookid){Bookdao.delete(bookid);}public void delete(int bookid){String sql="delete from LyBook where bookid=?";getsSession().createQuery(sql).setInteger(0,bookid).executeUpdate();}根据id修改图书信息:public String update1(){BookSer.detail(bookid);List<LyBook> list = BookSer.detail(bookid);map.put("booklist", list);return"update";}public String update(){BookSer.update(bookid, price, bookname, conutNum, author);return"delete";}public void update(int bookid,double price,String bookname,int conutNum,String author){String sql="update LyBook set price="+price+"where bookid="+bookid;getsSession().createQuery(sql).executeUpdate();}添加图书:public void addbook(LyBook book){getsSession().saveOrUpdate(book);}public void addbook(LyBook book){Bookdao.addbook(book);}}private String bookname;private int conutNum;private double price;private String author;public void setBookname(String bookname) { this.bookname = bookname;}public void setPrice(double price) {this.price = price;}public void setAuthor(String author) { this.author = author;}public void setConutNum(int conutNum) { this.conutNum = conutNum;}public String addbook(){LyBook book = new LyBook();book.setBookname(bookname);book.setConutNum(conutNum);book.setPrice(price);book.setAuthor(author);BookSer.addbook(book);return"delete";}}三、附:项目代码压缩包上传至教学平台。
Java语言程序设计期末大作业

《Java语言程序设计》公选课期末大作业学号:姓名:分数:一、程序分析题1、写出下列语句的打印结果:a. System.out.println(2+”bc”);b. System.out.println(2+3+”bc”);c. System.out.println((2+3)+”bc”);c. System.out.println(“bc”+2+3);2、执行以下代码,m和n的值是多少?int n=123456789;int m=0;while(n!=0){m=(10*m)+(n%10);n=n/10;} m= n= 3、以下代码将什么值存储在数组a[]中?int N=10;int [] a =new int[N];a[0]=1;a[1]=1;for(int i=2;i<N;i++)a[i]=a[i-1]+a[i-2]; a[]=4、下面的代码段最后的输出结果是什么?Public static String duplicate(String s){String t=s+s;return t;}String s=”Hello”;s=duplicate(s);String t=”Bye”;t=duplicate(duplicate(duplicate(t)));System.out.println(s+t) ; 输出结果:5、请问一下代码执行for循环迭代了多少次?public static void cube(int i){i=i*i*i;}for( int i=0;i<1000;i++)cube(i); 迭代次数:最终i的值=二、简答题1、请举例列出实现线程MyThread类的两种方法,及其启动应用过程。
2、请举例说明Java编程中类方法的重写(overloading)与覆盖(overriding)的实现与区别?三、设计一个如下图所示的计算器软件,完成计算器的基本功能。
软件顶部显示自己的学号和姓名。
大二java期末试题及答案

大二java期末试题及答案(本文按照试题和答案的格式来进行书写)大二Java期末试题及答案试题:题目一:Java的特点以及应用领域。
答案:Java是一种跨平台、面向对象的编程语言,具有以下几个特点:1. 简单易学:Java的语法相对简单,与C++相比,Java去除了一些复杂的特性,使得初学者更容易上手。
2. 跨平台性:Java的编译器将Java源代码编译为字节码,而不是直接编译为机器码,这样可以在不同的操作系统上运行Java程序。
只需要在特定平台上安装Java虚拟机(Java Virtual Machine, JVM),即可实现跨平台运行。
3. 面向对象:Java是一种完全面向对象的编程语言,所有的数据都是对象,所有的操作都是方法调用。
4. 垃圾回收:Java具有自动内存管理的特性,通过垃圾回收器来回收不再使用的对象所占用的内存空间,减轻了开发者的内存管理负担。
5. 安全性:Java拥有安全性机制,如对内存的访问进行控制、强制进行类型检查等,避免了一些常见的安全漏洞。
Java的应用领域包括但不限于:1. 网络编程:Java提供了丰富的网络编程类库,支持TCP/IP和UDP等协议,可以用于开发网络服务器和客户端应用。
2. 移动应用开发:通过Java开发Android应用,可以利用Java的跨平台特性,在不同的Android设备上运行。
3. 企业级应用开发:Java提供了一系列的企业级编程框架(如Spring、Hibernate等),可以用于开发大规模的企业级应用。
4. 大数据处理:Java提供了Hadoop、Spark等大数据处理框架,支持海量数据的分布式处理和分析。
题目二:什么是多态性?请用Java代码示例说明。
答案:多态性是面向对象编程中的重要概念,指的是同一类型的对象,在不同的情况下可以表现出不同的行为。
在Java中,多态性通过继承和接口实现。
Java代码示例:```java// 父类class Animal {void makeSound() {System.out.println("Animal makes sound.");}}// 子类1class Dog extends Animal {@Overridevoid makeSound() {System.out.println("Dog barks."); }}// 子类2class Cat extends Animal {@Overridevoid makeSound() {System.out.println("Cat meows."); }}public class PolymorphismExample {public static void main(String[] args) { Animal animal1 = new Dog();Animal animal2 = new Cat();animal1.makeSound(); // 输出:Dog barks.animal2.makeSound(); // 输出:Cat meows.}}```在上述示例中,Animal作为父类,Dog和Cat作为子类。
java期末大作业

Java课程设计报告班级: 1班姓名:李鹏飞学号:20097720119 1、组成员是:李鹏飞2、数据库功能的实现:采用的数据库是:Access数据库;其中一共有 1 库, 2 张表。
表格举例:3、系统功能是:本程序共实现了两个功能:数据的查询(学生信息按学号查询)和数据的录入(学生信息录入)。
程序名称:Jdbc数据库名称:student数据源名称:lpf建立表名称:message(学号、姓名、生日);fenshu(学号、英语)其中:子类 myframe:建立主页面样式(包括:窗体名称、菜单项目(学生管理-学生查询、学生录入;系统-退出系统)、窗体内容);子类 xscx:查询学生信息(学号、姓名、生日);设计xscx窗口样式;sql语句的录入;子类xstj:添加学生信息(学号、姓名、生日);设计xstj窗口样式;sql语句的录入。
子类Database:建立数据库连接;执行sql语句,返回结果集;4、代码以及运行截图:import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;import java.util.*;import java.text.SimpleDateFormat;public class Jdbc{public static void main(String args[]){myframe mf=new myframe();}}class myframe extends JFrame implements ActionListener{MenuBar mb;Menu m1,m2;Label lb1=new Label("学籍管理系统",Label.CENTER);Label lb2=new Label("20097720119 计算机辅助设计1班李鹏飞",Label.CENTER); MenuItem mi1,mi2,mi3,mi4;myframe(){setTitle("学籍管理系统--制作:20097720119 计算机辅助设计李鹏飞"); mb=new MenuBar();m1=new Menu("学生管理");m2=new Menu("系统");mb.add(m1);mb.add(m2);mi1=new MenuItem("学生查询");mi2=new MenuItem("学生录入");mi3=new MenuItem("退出系统");m1.add(mi1);m1.add(mi2);m2.add(mi3);Container con=this.getContentPane();con.add(lb1);con.add(lb2);con.setLayout(new GridLayout(4,1,1,1));lb1.setFont(new Font("黑体",Font.BOLD,60));lb2.setFont(new Font("黑体",Font.BOLD,30));mi1.addActionListener(this);mi2.addActionListener(this);mi3.addActionListener(this);this.setMenuBar(mb);setBounds(300,300,660,300);setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==mi1){xscx xs=new xscx();xs.setBounds(400,350,300,300);xs.setVisible(true);}else if(e.getSource()==mi2){xstj xs=new xstj();xs.setBounds(430,350,300,300);xs.setVisible(true);}else if(e.getSource()==mi3){dispose();System.exit(0);}}}//学生信息查询class xscx extends JFrame implements ActionListener {JLabel lb1;JTextField tf1;JButton bt1,bt2;xscx(){setTitle("学生信息查询");lb1=new JLabel("请输入学生的学号:");tf1=new JTextField(7);bt1=new JButton("查询");bt2=new JButton("取消");Container con=this.getContentPane();con.setLayout(null);lb1.setFont(new Font("宋体",Font.BOLD,12));tf1.setFont(new Font("宋体",Font.BOLD,12));bt1.setFont(new Font("宋体",Font.BOLD,12));bt2.setFont(new Font("宋体",Font.BOLD,12));lb1.setBounds(80,80,120,30);tf1.setBounds(200,80,80,30);bt1.setBounds(80,130,100,30);bt2.setBounds(180,130,100,30);con.add(lb1);con.add(tf1);con.add(bt1);con.add(bt2);bt1.addActionListener(this);bt2.addActionListener(this);this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public void actionPerformed(ActionEvent e){Database DB=new Database();Database DB1=new Database();int tem;String temp[]=new String[6];StringBuffer mess=new StringBuffer();if(e.getSource()==bt1){try{DB.OpenConn();DB.rs=DB.executeQuery("select * from message where 学号='"+tf1.getText()+"'");DB1.OpenConn();while(DB.rs.next()){String sql1="select * from fenshu where 学号='"+tf1.getText()+"'";tem=DB.rs.getInt(1);temp[0]=DB.rs.getString(2);temp[1]=DB.rs.getString(3);mess.append("查找到"+tf1.getText()+"学生信息"+"\n"+"学号:"+tem+"\n"+"姓名:"+temp[0]+"\n"+"生日:"+temp[1]+"\n");DB1.rs=DB1.executeQuery(sql1);while(DB1.rs.next()){mess.append(""+DB1.rs.getString(1)+"的英语成绩"+DB1.rs.getInt(2)+"\n");}}if(mess.length()==0)JOptionPane.showMessageDialog(this,"未找到信息","",RMATION_MESSAGE);elseJOptionPane.showMessageDialog(this,mess,"",RMATION_MESSAGE);tf1.setText(null);}catch(Exception ex){System.out.println(ex);JOptionPane.showMessageDialog(this,"未找到信息","",RMATION_MESSAGE);}finally{DB.closeStmt();DB.closeConn();DB1.closeStmt();DB1.closeConn();}}if(e.getSource()==bt2)setVisible(false);}}//学生信息添加class xstj extends JFrame implements ActionListener{JLabel lb1,lb2,lb3;JTextField tf1,tf2,tf3;JButton bt1,bt2;xstj(){setTitle("学生信息添加");this.getContentPane().setLayout(null);lb1=new JLabel("学号");tf1=new JTextField(10);lb2=new JLabel("姓名");tf2=new JTextField(10);lb3=new JLabel("生日");tf3=new JTextField(10);bt1=new JButton("插入");bt2=new JButton("取消");lb1.setBounds(0,40,100,30);tf1.setBounds(100,40,100,30); lb2.setBounds(0,70,100,30);tf2.setBounds(100,70,100,30); lb3.setBounds(0,100,100,30);tf3.setBounds(100,100,100,30); bt1.setBounds(30,220,80,30);bt2.setBounds(120,220,80,30);Container con=this.getContentPane();con.add(lb1);con.add(tf1);con.add(lb2);con.add(tf2);con.add(lb3);con.add(tf3);con.add(bt1);con.add(bt2);bt1.addActionListener(this);bt2.addActionListener(this);this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public void actionPerformed(ActionEvent e){Database DB=new Database();if(e.getSource()==bt1){try{if(tf1.getText().length()!=0 &&tf2.getText().length()!=0 && tf3.getText().length()!=0){String s=new String();String sql="insert into message values("+Integer.parseInt(tf1.getText())+",'"+tf2.getText()+"','"+tf3.getText()+"')";DB.OpenConn();DB.executeUpdate(sql);JOptionPane.showMessageDialog(this,"学生信息添加成功!!","",RMATION_MESSAGE);tf1.setText(null);tf2.setText(null);tf3.setText(null);}elseJOptionPane.showMessageDialog(this,"","",RMATION_MESSAGE);}catch(Exception ex){System.out.println(e);JOptionPane.showMessageDialog(this,"","",RMATION_MESSAGE);}finally{DB.closeStmt();DB.closeConn();}}if(e.getSource()==bt2)setVisible(false);}}class Database {private Statement stmt=null;ResultSet rs=null;private Connection conn=null;String sql;String lpf="jdbc:odbc:student";public Database(){}public void OpenConn()throws Exception{try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");conn=DriverManager.getConnection("jdbc:odbc:lpf","",""); }catch(SQLException e){System.err.println("OpenConn:"+e.getMessage());}}public ResultSet executeQuery(String sql){stmt = null;rs=null;try{stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ ONLY);rs=stmt.executeQuery(sql);}catch(SQLException e){System.err.println("executeQuery:"+e.getMessage());}return rs;}public void executeUpdate(String sql){stmt=null;rs=null;try{stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ ONLY);stmt.executeQuery(sql);mit();}catch(SQLException e){System.err.println("executeUpdate:"+e.getMessage());}}public void closeStmt(){try{stmt.close();}catch(SQLException e){System.err.println("closeStmt:"+e.getMessage());}}public void closeConn(){try{conn.close();}catch(SQLException ex){System.err.println("aq.closeConn:"+ex.getMessage()); }}}截图程序运行运行结果1点击【学生管理】,运行结果点击【学生查询】,运行结果输入【2009001】,点击【查询】,运行结果输入【2009004】,点击【查询】,运行结果点击【学生录入】,添加信息,运行结果单击【插入】,运行结果再次查询学生信息,输入【2009004】,点击【查询】,运行结果查询结果中出现【学号:2009004 姓名:李鹏飞生日:1989-09-04】,插入成功点击【系统】,运行结果点击【退出系统】,结果如下。
java期末考试题及答案解析

java期末考试题及答案解析Java期末考试题及答案解析1. 选择题- 1.1 以下哪个选项不是Java语言的特性?- A. 平台无关性- B. 面向对象- C. 编译型语言- D. 多线程- 答案:C- 1.2 Java中,下列哪个关键字用于定义接口?- A. class- B. interface- C. abstract- D. final- 答案:B2. 填空题- 2.1 在Java中,`____`关键字用于定义一个类。
- 答案:class- 2.2 Java中的异常处理是通过`____`和`____`关键字实现的。
- 答案:try,catch3. 简答题- 3.1 简述Java中垃圾回收机制的作用。
- 答案:Java的垃圾回收机制负责自动回收不再被引用的对象所占用的内存,防止内存泄漏,提高程序的运行效率。
- 3.2 描述Java中集合框架的主要接口。
- 答案:Java集合框架主要包括List、Set和Map三个接口,分别用于存储有序集合、不允许重复的集合和键值对集合。
4. 编程题- 4.1 编写一个Java程序,实现计算并打印100以内所有偶数的和。
- 答案解析:```javapublic class EvenSum {public static void main(String[] args) {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}System.out.println("100以内所有偶数的和为: " + sum);}}```该程序通过for循环遍历1到100的数字,使用if语句判断是否为偶数,如果是则累加到sum变量中,最后打印出所有偶数的和。
- 4.2 编写一个Java方法,实现字符串反转。
- 答案解析:```javapublic class StringReverse {public static String reverseString(String str) {StringBuilder sb = new StringBuilder(str);return sb.reverse().toString();}public static void main(String[] args) {String original = "Hello, World!";String reversed = reverseString(original);System.out.println("反转后的字符串为: " + reversed);}}```该方法使用StringBuilder的reverse方法来实现字符串的反转,然后在main方法中调用reverseString方法并打印结果。
JAVA期末大作业

JAVA期末大作业1.圆柱体:import java.util.*;public class cylinder {public static void main(String[] args) {double radius,height;final double PI=3.14;double area,volume;Scanner s=new Scanner(System.in);radius=s.nextDouble();height=s.nextDouble();area=2*PI*radius*radius+2*PI*radius*height;volume=PI*radius*radius*height;System.out.println("area="+area);System.out.println("volume="+volume);}}结果:2.heap:import java.util.*;public class heap {public static boolean isYearHeap(int x){if(x%4==0||x%400==0){return true;}else{return false;}}public static void main(String args[]){int i;Scanner s=new Scanner(System.in);i=s.nextInt();if(isYearHeap(i)){System.out.println("Heap");}else{System.out.println("Not a heap year");}}}结果:3.符号:import java.util.*;public class test {public static void main(String[] args) {int a=60;/*60=0011 1100*/int b=13;/*13=0000 1101*/int c=0;c=a&b;/*12=0000 1100*/System.out.println("a&b="+c);c=a|b;System.out.println("a|b="+c);c=a^b;System.out.println("a^b="+c);c=~a;System.out.println("~a="+c);c=a<<2;System.out.println("a<<2="+c);c=a>>2;System.out.println("a>>2="+c);c=a>>>2;System.out.println("a>>>2="+c);}}结果:4.if语句:import java.util.*;public class area {public static void main(String[] args) { double x,y;Scanner s=new Scanner(System.in);x=s.nextDouble();y=s.nextDouble();if((x*y>1&&x*y<4)||(x*y<-1&&x*y>-4)){ System.out.println("inside");}else{System.out.println("outside");}}}结果:5.grade:import java.util.*;import javax.swing.JOptionPane;public class grade {public static void main(String[] args) {String h=JOptionPane.showInputDialog("Input a letter:");char grade=h.charAt(0);switch(grade){case'a':System.out.println("85~100");break;case'b':System.out.println("70~84");break;case'c':System.out.println("60~69");break;case'd':System.out.println("<60");break;default:System.out.println("error");}}}结果:6.package com.tutorialspoint;import ng.*;public class BooleanDemo {public static void main(String[] args) {// create a Boolean object bBoolean b;// assign value to bb = new Boolean(true);// create a boolean primitive type boolboolean bool;// assign primitive value of b to boolbool = b.booleanValue();String str = "Primitive value of Boolean object " + b + " is " + bool; // print bool valueSystem.out.println( str );}}7.窗口:import javax.swing.*;public class first {public static void main(String args[]){JFrame first=new JFrame();first.setSize(300,400);first.setTitle("我的窗口");first.setVisible(true);}}结果:8.for循环:public class TestFor {public static void main(String[]args){ int i,j,k,l;for(i=1;i<=5;i++){k=5;for(j=0;j<9;j++,k--){if(i-k>=0){if(k>0)System.out.print(k);else{l=Math.abs(k)+2;if(l<=i)System.out.print(l);elseSystem.out.print(" ");}}elseSystem.out.print(" ");}System.out.println("");}}}结果:9.import java.util.Arrays;public class TestArray {public static void main(String[] args) { int a [] = {1,3,2,6,5,17,11,7}; System.out.println("排序之前数组:");for(int i = 0 ;i<a.length;i++){System.out.print(a[i]+"\t");}Arrays.sort(a);System.out.println("\n"+"排序后的数组:"); for(int i = 0 ;i<a.length;i++){System.out.print(a[i]+"\t");}}}10.数组;public class TestArray {public static void main(String[] args){double[] value={74.5,56.8,60.7,90.2,70.7};double mean,stdDev,sum=0.0,sumSq=0.0;for(int i=0;i<value.length;i++){sum+=value[i];sumSq+=value[i]*value[i];}mean=sum/value.length;System.out.println(mean);stdDev=Math.sqrt(sumSq/value.length-mean*mean);System.out.println(stdDev);}}结果;11.Arraylist:import java.util.ArrayList;import java.util.List;public class ArraylistTest {public static void main(String[]args){int i,sum=0;double Ave;List<Integer> List= new ArrayList<Integer>();for(i=0;i<10;i++){List.add(i);}for(i=0;i<10;i++){sum+=List.get(i);}Ave=sum/10.0;System.out.println(Ave);}}结果:12.import java.util.Arrays;public class TestArray {public static void main(String[] args) {int a [] = new int [6] ;int b [] = new int [6];Arrays.fill(a, 4);System.out.println("fill(a, val) 的使用;");for(int i = 0 ;i<a.length;i++){System.out.print(a[i]+"\t");}System.out.println("\n"+"fill(a, fromIndex, toIndex, val)的使用:"); Arrays.fill(b, 2, 4, 5);for(int i = 0 ;i<b.length;i++){System.out.print(b[i]+"\t");}}}13.public class Test {public static void stringReplace (String text) {text = text.replace('j' , 'i');}public static void bufferReplace (StringBuffer text) {text = text.append("C");}public static void main (String args[]) {String textString = new String ("java");StringBuffer textBuffer = new StringBuffer ("java");stringReplace (textString);bufferReplace (textBuffer);System.out.println (textString + textBuffer);}}结果:14.Rectangle:public class Rectangle {private int Length,Width;public Rectangle(){Length=1;Width=1;}public Rectangle(int Length,int Width) {this.Length=Length;this.Width=Width;}public int getArea(){return Length*Width;}public int getLength(){return Length;}public int getWidth(){return Width;}}结果:15.Person:public class Person {private String name;private int age;private double height;public Person(){name="WangWu";age=60;height=1.67;}public Person(String n,int s,double h){name=n;age=s;height=h;}public void printNeatly(){System.out.println("person name is "+name);System.out.println("person age is "+age);System.out.println("person height is "+height);}}public class TestPerson {public static void main(String args[]){Person s1=new Person("ZhangSan",23,1.73);s1.printNeatly();Person s2=new Person();s2.printNeatly();}}结果:16.public class Person {static int number=0;public Person(){number++;}public int getNumberOfObjects(){return number;}}public class Main {public static void main(String[] args){Person p1=new Person();System.out.println(p1.getNumberOfObjects());Person p2=new Person();System.out.println(p2.getNumberOfObjects());}}结果:17.Swing:import javax.swing.*;public class ComparingStrings {public static void main(String[] args) {String str1="Elephant",str2="eLePhant";int i;if(str1.equals(str2)){System.out.println("They are equal");}else{System.out.println("They are not equal");}if(str1.equalsIgnoreCase(str2)){System.out.println("Equal,but not for case");}else{System.out.println("They are not equal");}i=pareTo(str2);if(i==0)System.out.println(str1+"equals"+str2);else if(i>0)System.out.println(str2+"precedes"+str1);elseSystem.out.println(str1+"precedes"+str2);}}结果:18.Buffer:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class printStdIn {public static void main(String[] args) {try{BufferedReader br=new BufferedReader(new InputStreamReader(System.in));String input;while((input=br.readLine())!=null){System.out.println(input);}}catch(IOException io){io.printStackTrace();}}}结果:19.Bar:public class Main {static Bar bar;static{bar=new Bar();}public static void main(String[]args){System.out.println(bar.toString());System.out.println(bar);}}class Bar {public Bar(){}public String toString(){return "Bar";}}结果:20.public class Test {int x,y;public static void main(String[] args) { Test test1=new Test();test1.x=1;test1.y=1;Test test2=new Test();test2.x=1;test2.y=1;if(test1.equals(test2))System.out.println("true");elseSystem.out.println("false");}public boolean equals(Test t){return (this.x==t.x)&&(this.y==t.y);}}结果:21.For增强:public class TestFor {public static void main(String[]args){int [] number={0,1,2,3,4,5,6,7,8,9};int sum=0;for(int item:number){sum=sum+item;}System.out.println(sum);}}结果:22.文件的操作:import java.io.File;public class DeleteFileExanmple {public static void main(String[] args) {try{File file=new File("c:\\test.txt");if(file.delete()){System.out.println(file.getName()+"is deleted!");}else{System.out.println("Delete operation is failed.");}}catch(Exception e){System.out.println("not sucessfully delete");}}}结果:。
java结课

一、主要内容:标识符关键字变量占内存大小Java执行:后缀。
命令,生成.class文件构造方法:名字与类名字相同二.试卷结构:一、单项选择题(本大题共25小题,每小题1分,共计25分)二、填空题(本大题共10小题,每空1分,共计15分)三、简答题(本大题共 3小题,每小题5分,共计15分)四、分析程序题(本大题共3小题,每小题5分,共计15分)五、设计题(本大题共3小题,每小题10分,共计30分)试题练习:阅读下面程序:public class Cycle {public static void main(String args[]) {System.out.println(args[0]);}}在命令行中输入java Cycle one two,该程序输出结果是___。
A.Cycle B.one C.two D.上述A、B、C均不对下列关键字中可以表示常量的是___。
A.final B.default C.private D.transient在Java Applet程序用户自定义的Applet子类中,常常重载___方法在Applet的界面中显示文字、图形和其它界面元素。
A.start() B.stop() C.init() D. paint() StringBuffer类字符串对象的长度是___。
A.固定B.必须小于16个字符C.可变D.必须大于16个字符下列语句中哪个是正确的语句___。
A.RandomAccessFile raf = new RandomAccessFile("myfile.txt","rw");B.RandomAccessFile raf = new RandomAccessFile(new DataInputStream());C.RandomAccessFile raf = new RandomAccessFile(new File("myfile.txt"));D.RandomAccessFile raf = new RandomAccessFile("myfile.txt");如果在子类中使用被子类隐藏的父类的成员变量或方法,应使用关键字___。
javaee期末大作业总结

javaee期末大作业总结一、项目概述本次JavaEE期末大作业要求我们设计并实现一个在线购物系统。
该系统需包含用户管理、商品管理、订单管理等基础功能,并通过前端页面展示给用户。
在设计和开发过程中,我们采用了Spring、SpringMVC和MyBatis等框架技术,以及MySQL作为数据库。
二、项目分析1. 需求分析:根据作业要求,我们确定了以下主要功能:- 注册、登录功能:用户可以通过注册新账户并登录系统。
- 商品浏览功能:用户可以浏览系统中的商品,了解商品的详细信息。
- 购物车功能:用户可以将感兴趣的商品添加到购物车,并在需要时进行结算。
- 订单管理功能:用户可以查看已购买商品的订单,并进行相应的操作,如取消订单、确认收货等。
- 用户管理功能:管理员可以对系统中的用户进行管理,包括添加用户、删除用户等。
- 商品管理功能:管理员可以对系统中的商品进行管理,包括添加商品、删除商品等。
2. 技术选择:我们决定使用Spring框架进行IoC与AOP操作,使用SpringMVC框架进行Web请求处理,使用MyBatis作为持久层框架,使用MySQL作为数据库。
3. 数据库设计:根据需求分析,我们设计了以下数据库表:用户表、商品表、订单表、购物车表。
三、项目实施1. 系统架构设计我们采用了MVC(模型-视图-控制器)设计模式,将系统分为Model层、View层和Controller层。
Model层负责处理系统中的业务逻辑和数据操作,View层负责呈现界面给用户,Controller层负责接受用户的请求并将其分发给对应的Model处理。
2. 详细设计我们按照需求分析的功能,编写了相应的业务逻辑代码。
例如:- 用户注册功能:用户在注册页面输入用户名和密码,系统将验证用户输入的合法性,并将用户信息插入到数据库中。
- 商品浏览功能:系统将从数据库中查询商品信息,并将其展示到前端页面。
- 购物车功能:用户点击添加到购物车按钮后,系统将将商品添加到购物车表中,用户在购物车页面可以对购物车中的商品进行操作,如删除、结算等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JA V A期末结课作业信管1108 强生娜11301304591题目JA V A日历小程序2程序实现的功能JAVA日历小程序构建的简易日历程序,其功能有:(1).可以实现图形用户界面。
图形用户界面GUI元素有:创建组建、确定其初始外观、事件处理(2).使用的主要布局有:边界布局、网格布局。
事件监听器ActionListener,方法是actionPerformed,它的一般形式是void actionPerformed(ActionEvent e)(3).能以月历形式显示日期与星期。
周一至周五、周六日以及当天分别用黑色、红色和蓝色显示。
(4).用户可以通过下拉菜单选择需要显示的年份和月份,只需要点击“跳转日期”按钮便可显示用户需要的那个年月的日历。
默认显示的是程序运行时的年月日,并且可以通过点击“现在日期”来刷新日历。
3程序类图结构派生类基类4 方法间调用关系程序从主函数开始,创建对象ct,调用构造函数public Calendar();在该函数内通过super();调用基类的构造函数。
使用now_date.getYear()+1900;调用函数获取年份值,由调用now_date.getMonth();获取月份值。
用Year.setSelectedIndex(10);方法设定年份下拉列表为当前年份,通过pane_ym.add(Year_l);调用增加年份标签。
使用button_jump.addActionListener(this);方法添加事件监听按钮,通过pane_day.setLayout(new GridLayout(7,7));设置窗体为7行7列,用this.setDay();调用类内函数方法。
pane_parent.setLayout(new BorderLayout())设定布局管理器。
year_int = Year.getSelectedItem().toString();调用基类的输出函数。
button_day[i].setForeground(Color.blue);调用基类函数设置字体的显示颜色。
5程序代码package javaapplication32;import java.awt.BorderLayout;import java.awt.Color;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.util.Date;import java.util.GregorianCalendar;import javax.swing.*;public final class Calendar extends JFrame implements ActionListener {JComboBox Month = new JComboBox(); //月份下拉列表框JComboBox Year = new JComboBox(); //年份下拉列表框JLabel Year_l = new JLabel("年份:"); //定义标签JLabel Month_l = new JLabel("月份:"); //定义标签Date now_date = new Date(); //获取今天的日期JButton[] button_day = new JButton[49]; //定义一个数组用来存放日期JButton button_jump = new JButton("日期跳转"); //现实选择日期JButton button_today = new JButton("现在日期"); //显示今天日期按钮int now_year = now_date.getYear() + 1900; //获取年份值int now_month = now_date.getMonth(); //获取月份值(当前月份-1)boolean bool = false;String year_int = null; //存放年份int month_int; //存放月份JPanel pane_ym = new JPanel(); //放置下拉列表框和控制按钮面板JPanel pane_day = new JPanel(); //放置日期面板JPanel pane_parent = new JPanel(); //放置以上两个面板/*定义方法绘制面板*/public Calendar() {super("JA V A简单小日历"); //设定面板标题/*以下几行使得关闭面板时退出程序*/setDefaultCloseOperation(DISPOSE_ON_CLOSE);addWindowListener(new WindowAdapter() {public void windowClose(WindowEvent e) {System.exit(0);}});setResizable(false); //面板的大小不能变化/*设定年月年份的区间是当前年份的过去10年到当前年份的未来20年月份正常1-12月*/for (int i = now_year - 10; i <= now_year + 20; i++) {Year.addItem(i + "");}for (int i = 1; i < 13; i++) {Month.addItem(i + "");}Year.setSelectedIndex(10); //设定年份下拉列表为当前年份pane_ym.add(Year_l); //添加年份标签pane_ym.add(Year); //添加年份下拉列表框Month.setSelectedIndex(now_month); //设定月份下拉列表为当前月份pane_ym.add(Month_l); //添加月份标签pane_ym.add(Month); //添加月份下拉列表框pane_ym.add(button_jump); //添加跳转按钮pane_ym.add(button_today); //添加“现在日期”按钮button_jump.addActionListener(this); //跳转按钮添加监听事件button_today.addActionListener(this); //“现在日期”按钮添加监听事件/*年月设定结束*//*初始化日期按钮并绘制*/pane_day.setLayout(new GridLayout(7, 7));for (int i = 0; i < 49; i++) {button_day[i] = new JButton(" ");pane_day.add(button_day[i]);}this.setDay(); //调用setDay()方法pane_parent.setLayout(new BorderLayout()); //设定布局管理器setContentPane(pane_day);setContentPane(pane_ym);pane_parent.add(pane_day, BorderLayout.SOUTH);pane_parent.add(pane_ym, BorderLayout.NORTH);setContentPane(pane_parent);pack();show();}/*SET DAY 方法,显示日期*/void setDay() {if (bool) {year_int = now_year + "";month_int = now_month;} else {year_int = Year.getSelectedItem().toString();month_int = Month.getSelectedIndex();}int year_sel = Integer.parseInt(year_int) - 1900; //获得年份值Date dt = new Date(year_sel, month_int, 1); //构造一个日期GregorianCalendar cal = new GregorianCalendar(); //创建一个Calendar实例cal.setTime(dt);String week[] = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };int day; //day中存放某个月份的天数int day_week; //用来存放某个月的第一天是星期几的数值/*将星期添加到前7个按钮中*/for (int i = 0; i < 7; i++) {button_day[i].setText(week[i]);}//--/*判断是几月份,根据它来设定day的值*其中二月份要判断是否是闰年*/if (month_int == 0|| month_int == 2|| month_int == 4|| month_int == 6|| month_int == 7|| month_int == 9|| month_int == 11) { //这些月份为大月,每月31天day = 31;} else if (month_int == 3|| month_int == 5|| month_int == 8|| month_int == 10) {day = 30; //小月每月30天} else {if (cal.isLeapYear(year_sel)) { //判断二月是否为闰年day = 29;} else {day = 28;}}day_week = 7 + dt.getDay();int count = 1;/*绘制按钮*首先要根据选定的月份的第一天是星期几来确定我们绘制按钮的起始位置* 其中day_week就是我们要绘制的起始位置* 对于那些没有数值可以显示的按钮要置空*/for (int i = day_week; i < day_week + day; count++, i++) {if (i % 7 == 0|| i == 13|| i == 20|| i == 27|| i == 48|| i == 34|| i == 41) {if (i == day_week + now_date.getDate() - 1) {button_day[i].setForeground(Color.blue);button_day[i].setText(count + "");} else {button_day[i].setForeground(Color.red);button_day[i].setText(count + "");}} else {if (i == day_week + now_date.getDate() - 1) {button_day[i].setForeground(Color.blue);button_day[i].setText(count + "");} else {button_day[i].setForeground(Color.black);button_day[i].setText(count + "");}}}/*对于没有日期数值显示的按钮进行置空处理*/if (day_week == 0) {for (int i = day; i < 49; i++) {button_day[i].setText(" ");}} else {//第一天前面的按钮置空for (int i = 7; i < day_week; i++) {button_day[i].setText(" ");} //最后一天后面的按钮置空for (int i = day_week + day; i < 49; i++) {button_day[i].setText(" ");}}}//点击按钮产生的效果@Overridepublic void actionPerformed(ActionEvent e) {if (e.getSource() == button_jump) {bool = false;this.setDay(); //如果点击跳转按钮就调用setDay()方法重新绘制按钮} else if (e.getSource() == button_today) {bool = true;this.setDay(); //如果点击现在日期按钮,得到今天的日期Month.setSelectedIndex(now_month); //将月份置为当前月份Year.setSelectedIndex(10); //将年份置为当前年份}}public static void main(String[] args) {Calendar ct = new Calendar();}}6主要程序说明在初始化模块中,首先定义一个公共类 Calendar,它继承自JFrame。