我刚学习java不久,想通过一些项目源码来学习学习,提高一下!
特别是像这个论坛中的植物大战僵尸源码这样的,我问要了,楼主也没给发!
谁要是有各种小项目的源码,麻烦给小弟发一个,万分感激!
我的邮箱
kingty4652660@gmail.com
小弟万分感激!
------解决方案--------------------
www.pudn.com
------解决方案--------------------
Java写了个学生管理系统:http://www.cppblog.com/biao/archive/2011/05/25/147079.html
使用了Service,Dao,Bean的模式写的,命令行使用,有意可以看看,里面烦的就是命令行输入了
------解决方案--------------------
这是我们这学期的java平时的实验,我把代码发到我的资源里了,不要积分的,可能写的不好,仅供参考
http://download.csdn.net/detail/devil_cpp/3934599
Java语言程序设计
实 验 指 导 书
我们老师 编
北京化工大学信息科学与技术学院
2007年12月
前 言
《Java语言程序设计》是一门实践性很强的课程,学生必须结合大量的编程练习才能更好地理解和掌握课程内容。通过与课程内容相配合的实验教学环节,使学生在深入理解课程内容的基础上,体验和领会程序设计的步骤和方法,学会如何解决具体的问题。
本门课程共设7个实验,实验题目如下:
(1)Java语言基础;
(2)类与对象;
(3)图形绘制;
(4)事件处理和图形化用户界面;
(5)多线程;
(6)文件处理;
(7)综合实验。
实验时间地点
(1)时间:第5周至第13周,周五上午1,2节
(2)地点:电教楼一层机房
实验环境
安装JDK1.6作为基本开发平台,同时安装了Textpad,Eclipse和NetBeans。为学生提供了三种不同的Java开发环境:JDK和文本编辑器、JDK和与JDK集成的文本编辑器(Textpad)以及集成开发环境(Eclipse,NetBeans)。学生可以根据学习的进展,在初期采用前两种相对简单的开发环境,在后期学习使用集成开发环境,掌握在实际工作中被广泛使用的集成化开发环境。
电教楼二层机房开机后进入windows2000,所有内容安装在d:\java\目录下。安装了以下内容:JDK1.6,文档,eclipse, netbeans, textpad。
电教楼一层机房开机后进入windowsxp,在桌面上有java文件夹,所有内容均在文件夹中。
实验课的安排
在实验中,至少完成7个实验。在每个实验中,一般包括多个可选的实验内容,学生可根据自身情况选择一个实验内容完成。每次上具体安排如下:
(1)第1次实验课,完成实验1。
(2)第2次实验课,完成实验2。
(3)第3次实验课,完成实验3。
(4)第4次实验课,完成实验4。
(5)第5次实验课,完成实验5。
(6)第6次实验课,完成实验6。
(7)第7次和第8次实验,完成实验7。
综合实验难度相对较大,所以安排在最后的两次的实验完成。
实验的检查
实验完成后,学生需要在机房现场向指导教师演示和讲解程序,还需提交实验报告。指导老师根据程序完成质量和实验报告的质量给予评分。实验报告包括源代码、输入输出的结果和小结。源代码需要至少包含20%的注释。每次实验提交到Java实验平台。每次实验提交的截止日期为下一次实验之前。
前6次实验每个5分,第7次实验10分。若实验考核不合格,将导致课程总成绩不合格。
目 录
前 言 2
实验一 JAVA语言基础 5
实验二 类与对象 9
实验三 图形绘制 10
实验四 事件处理和图形化用户界面 12
实验五 多线程 13
实验六 文件处理 14
实验七 综合实验 15
实验一 Java语言基础
1.1 实验目的
(1) 熟悉使用Textpad来编写和运行程序;
(2) 掌握Java语言的基本语法和程序结构;
(3) 掌握输入输出的基本方法;
(4) 掌握字符串的处理。
1.2 实验要求
(1) 学会使用Textpad环境,掌握编辑、编译和运行Java程序的完整过程;
(2) 认真复习Java语言基础知识;
(3) 在Textpad环境下完成选做实验内容;
(4) 认真撰写完整的实验报告;
1.3 实验内容
(1) 熟悉Textpad开发环境,了解菜单和工具栏的意义,学会创建、编辑、编译和运行Java程序;学会使用JDK文档查找需要的信息。
(2) 验证回文串。编写程序,验证一个字符串是否为回文串:是否从前读它和从后读它都是一样的。例如,mom,dad是回文串。该程序接收用户输入的字符串,判断是否为回文串,然后将判断的结果输出。在验证回文串时,忽略大小写、空格和标点。示例输出如图1、图2所示。
图1 验证回文串输入界面 图2 验证回文串输出界面
(3) 三子棋。编写程序,实现简单的三子棋游戏。在三子棋中,双方在3*3的棋盘中轮流下棋,一方用*表示,另一方用O表示。如果一方的3个棋子占据了同一行,同一列或者对角线,则该方获胜。如果棋盘已被棋子占满,但没有一方获胜则出现平局。在程序中,一方为用户,用户在界面上输入每次下棋的位置;另一方下棋的位置为随机自动生成。示例输出如图3、图4所示。
图3 三子棋输入界面 图4 三子棋结束界面
1.4 实验步骤
(1) 首先,确保实验机器上是否安装Textpad、JDK1.6和Java帮助文档;
(2) 参考相关资料和文档,掌握Textpad使用方法和Java程序的编辑、编译、运行的完整过程;
(3) 根据自身掌握知识的情况,选作实验内容,并完成编码、调试和运行。
1.5 实验提示
(1) 采用Scanner类或者JOptionPane类中提供的方法输入,输出采用System.out中的方法或JOptionPane类提供的方法。
(2) 字符串处理可以使用String或StringBuffer类。
(3) public类名和文件名相同。
Textpad开发环境简介
启动并进入Textpad的两种方法:
(1)在开始菜单上,选择程序,然后Textpad,再选择Textpad4.7.3中文版。
(2)双击桌面上的Textpad的图标。
启动Textpad之后,就可以看到如图5所示的主界面。
在Textpad的文件菜单下选择新建文件,输入程序代码,然后保存,保存时选择文件类型为Java程序。代码编写完成后,点击工具菜单下的编译Java,则开始编译;编译通过后点击工具菜单下的运行Java应用程序即可运行程序。如要退出开发环境,可选择文件菜单下的退出命令。
NetBeans开发环境简介
启动并进入NetBeans的两种方法:
(1)在开始菜单上,选择程序,然后NetBeans5.5,再选择NetBeans IDE。
(2)双击桌面上的NetBeans的图标。
启动NetBeans之后,就可以看到如图6所示的主界面。
关于主界面上菜单、工具栏的详细介绍,可以参考帮助中的快速入门指南。如要退出开发环境,可选择文件菜单下的退出命令。
图5 Textpad开发环境界面
图6 NetBeans开发环境及面
Eclipse开发环境简介
启动并进入Eclipse的方法:双击桌面上的Eclipse的图标。
启动Eclipse之后,就可以看到如图7所示的主界面。
关于主界面上菜单、工具栏的详细介绍,可以参考帮助说明,这里不再详细介绍。如要退出开发环境,可选择文件菜单下的退出命令。
图7 Eclipse开发环境界面
JDK帮助文档的使用
双击桌面上的JavaAPI图标,就可打开JDK帮助文档。在左侧的搜索栏可以输入要查找的内容,则会显示相关的主题,点击目标主体,则在右部出现该主题的相关内容。如果是一个类,则会显示这个类的类层次结构、实现的接口、说明、字段、构造方法和方法的列表和说明。文档的界面如图8所示。
图 8 JDK帮助文档界面
实验二 类与对象
2.1 实验目的
(1) 理解面向对象程序设计与过程化程序设计的区别,理解类和对象的概念,掌握如何编写和使用类;
(2) 理解数据成员、方法和构造方法的概念,掌握在类中的声明和使用;
(3) 理解重载的概念,掌握重载的使用;
(4) 理解继承和多态的概念,掌握它们的使用;
(5) 理解封装的概念,掌握封装的使用。
2.2 实验要求
(1) 认真理解类、对象、数据成员、方法、构造方法、重载、多态、继承、封装等基本概念;
(2) 掌握类的定义和使用方法;
(3) 在Textpad环境下完成选做实验内容;
(4) 认真撰写完整的实验报告。
2.3 实验内容
(1) 复数类。编写一个复数类,可以进行复数加法和减法运算。编写一个包含main方法的类(应用程序)测试该复数类。要求该复数类至少包含一个无参的构造方法和一个带参的构造方法;数据成员包括复数的实部和虚部,为double类型;包括两个方法,分别实现复数的加法和减法运算。示例输出如图9所示。
(2) 图书借阅。编写三个类,图书类、学生类和测试类,可以处理简单的书籍借阅情况,包括借书和还书等。图书类的数据成员包括书名、书号和借书学生等;方法包括借书、还书和显示书籍信息等。学生类的数据成员包括姓名、学号和所借书籍等;方法包括显示学生信息等。测试类是一个应用程序,在该程序中创建图书类和学生类对象,完成图书的借阅和归还。
(3) Employee类层次结构。创建四个类,分别为Employee类、SalariedEmplyee类、HourlyEmployee类和CommissionEmployee类。其中Employee类是其他三个类的父类。Employee类包含姓名和身份证号。除此之外,SalariedEmployee类还应包含每月工资;HourlyEmployee类还应包含每小时工资数和工作时间数;CommissionEmployee还应包含提成比例和销售总额。每个类都应有合适的构造方法、数据成员的设置和读取方法。编写一个应用程序,创建这些类的对象,并输出与对象相关的信息。注意子类有时需调用父类的构造方法和被覆盖的方法,成员变量定义为private,对有些方法实现重载。
图9 复数类的输出界面
2.4 实验步骤
(1) 首先,声明和定义类,在类中定义数据成员、方法和构造方法;
(2) 定义一个包含main方法的类,测试已经定义好的类。
2.5 实验提示
(1) 注意数据成员的初始化;
(2) 注意在继承的层次中构造方法的调用次序;
(3) 注意遵循Java的命名风格;
(4) 注意public,private,protected的区别和使用。
实验三 图形绘制
3.1 实验目的
(1) 理解和图形绘制的相关类的设计思想,掌握它们的使用;
(2) 理解继承、封装和多态的概念,掌握它们的使用;
(3) 掌握图形绘制的方法。
3.2 实验要求
(1) 了解图形绘制的概念、分类和作用;
(2) 掌握Color类、Fonts类、Graphics类、Graphics2D类的使用;
(3) 在Textpad环境下完成选做实验内容;
(4) 认真撰写完整的实验报告。
3.3 实验内容
(1) 显示函数图像。编写程序,画出函数f(x)=x*x的图像。输出示例如图10所示。
图10 显示函数图像界面图 11 绘制时钟界面
(2) 显示时钟。编写程序显示一个时钟。示例输出如图11所示。
(3) 绘制图形。定义4个类,MyShape、MyLine、MyRectangle和MyOval,其中MyShape是其他三个类的父类。MyShape为抽象类,包括图形位置的四个坐标;一个无参的构造方法,将所有的坐标设置为0;一个带参的构造函数,将所有的坐标设置为相应值;每个坐标的设置和读取方法;abstract void draw(Graphics g)方法。MyLine类负责画直线,实现父类的draw方法;MyRectangle负责画矩形,实现父类的draw方法;MyOval负责画椭圆,实现父类的draw方法。编写一个应用程序,使用上面定义的类,随机选取位置和形状,绘制20个图形。示例输出如图12所示。
图12 绘制图形界面
3.4 实验步骤
(1) 首先自定义一个继承自JPanel的类,重写paintComponent方法,在该方法中完成图形绘制任务;
(2) 定义一个继承自JFrame的类,在该类中完成界面的设计,将(1)中的定义的面板加入到该框架类中;
(3) 定义一个包含main方法的测试类,在该类中创建框架类对象,并显示;
(4) 编译、调试、运行程序。
3.5 实验提示
(1) 在绘制函数图像时,创建表示坐标的数组x[],y[],并使用DrawPolyline连接这些点;
(2) 可以使用ArrayList来保存要绘制的多个图形。
实验四 事件处理和图形化用户界面
4.1 实验目的
(1) 理解事件处理的机制,掌握基本的事件处理的方法;
(2) 理解图形化用户界面的设计,掌握Swing包中基本界面元素的使用。
4.2 实验要求
(1) 掌握图形用户界面中常见组件的名称、分类;
(2) 掌握事件源、事件对象、事件监听器的概念,掌握ActionEvent、ActionListener的使用;
(3) 掌握JFrame、JPanel、BorderLayout、FlowLayout、JButton、JTextField、JTextArea的使用;
(4) 在Textpad环境下完成选作实验内容;
(5) 认真撰写完整的实验报告。
4.3 实验内容
(1) 显示表情。编写程序,显示不同的表情。在窗口上至少包括4个按钮,分别控制显示不同的表情和退出程序。示例输出如图13所示。
(2) 猜数游戏。编写一个猜数程序,该程序随机在1到1000的范围中选择一个供用户猜测的整数。界面上提供一个文本框来接收用户输入的猜测的数,如果用户猜得太大,则背景变为红色,如果猜得太小,背景变为蓝色。用户猜对后,文本框变为不可编辑,同时提示用户猜对了。界面上提供一个按钮,使用户可以重新开始这个游戏。在界面上还需显示用户猜测的次数。示例输出如图14所示。
图13 显示表情的界面 图14 猜数游戏的界面
4.4 实验步骤
(1) 首先根据要求设计图形用户界面和程序中需要的类;
(2) 定义继承自JPanel的面板类,用于布局和绘制;定义继承自JFrame的类,在该类中完成界面的设计。
(3) 定义事件监听器类完成事件处理。
(4) 定义一个包含main方法的测试类,在该类中创建框架类对象,并显示;
(5) 编译、调试、运行程序。
4.5 实验提示
(1) 使用面板进行页面布局;
(2) 使用内部类定义事件监听器类;
(3) 按钮点击通过处理ActionEvent事件来完成响应。
实验五 多线程
5.1 实验目的
(1) 理解多线程的概念、掌握多线程的机制;
(2) 掌握简单多线程程序的编写;
(3) 理解多线程的生命周期、状态的转换和控制;
(4) 掌握线程的同步和通信。
5.2 实验要求
(1) 掌握Thread类的使用、Runnabe接口的使用和线程的创建;
(2) 掌握synchronized关键字的用法;
(3) 掌握wait、notify、notifyAll的使用;
(4) 在Textpad环境下完成选做实验内容;
(5) 认真撰写完整的实验报告。
5.3 实验内容
(1) 生产者和消费者问题。编写程序,实现生产者和消费者问题。输入:由英文字母和数字组成的不定长度字符串数组,例如{“abc”,”23d”,”1a”}。每隔100毫秒,生产者线程读入数据,放入生产者公用的仓库;消费者从仓库中取出字符串,进行倒置,如上例{“cba”,”d32”,”a1”}; 输出:倒置后的字符串。
(2) 弹球程序。编写程序,该程序通过一个发射按钮可以发射一个弹球,该球遇到边界时会自动弹回,在移动固定次数后,该球停止运动。要求每次点击发射按钮都会发射一个弹球,如果点击多次,则多个弹球同时运动。该程序通过另一个结束可以结束程序的运行。参考界面如图15所示。
图15 弹球程序的界面
5.4 实验步骤
(1) 设计类和程序的结构;
(2) 编写相关类;
(3) 编译、调试、运行程序。
5.5 实验提示
(1) 对于弹球程序,每次点击开始按钮则启动一个新的线程;
(2) 对于生产者和消费者问题,可以定义4个类:生产者类、消费者类、产品类和测试类。
实验六 文件处理
6.1 实验目的
(1) 理解和掌握输入/输出技术、有关类和方法;
(2) 理解流的概念、分类和继承关系;
(3) 掌握文本文件的处理;
(4) 掌握二进制文件的处理。
6.2 实验要求
(1) 使用FileInputStream、FileOutputStream、DataInputSteam、DataOutputSteam、RandomAccessFile处理二进制文件;
(2) 使用FileReader、FileWriter、BufferedReader、BufferedWriter 、PrintWriter处理文本文件;
(3) 使用File完成文件属性的操作;
(4) 在Textpad环境下完成实验内容;
(5) 认真撰写完整的实验报告。
6.3 实验内容
(1)文件统计。编写程序,统计英文文本文件中的字符数目和单词数目。程序运行时,输入要统计的文件的名称,程序处理后输出字符数目和单词数目。
(2) 图书借阅。修改实验2中的图书借阅程序,将各种信息保存在文件中。
6.4 实验步骤
(1) 设计类和程序的结构;
(2) 定义相关类,完成编码;
(3) 编译、调试、运行程序。
6.5 实验提示
(1) 注意二进制文件和文本文件处理的区别;
(2) 注意过滤流类的使用方法。
实验七 综合实验
7.1 实验目的
(5) 掌握图形化用户界面的设计和实现;
(6) 掌握文件的处理;
(7) 掌握事件处理的方法;
(8) 掌握多线程的设计和实现;
(9) 掌握图形绘制的方法。
7.2 实验要求
(1) 复习实验中涉及的多个知识点;
(2) 在NetBeans或Eclipse环境下完成选做实验内容;
(3) 认真撰写完整的实验报告。
7.3 实验内容
(1) 简单文本编辑器。该程序可以新建、打开、编辑和保存文本文件。当用户点击New时,新建一个文件,用户可以编辑文件内容,然后点击Save保存文件。用户点击Open时,选择一个已有文件,然后可对文件进行编辑。示例输出如图16和图17所示。
(2) 风扇。编写程序,显示3个风扇,用控制按钮开动和停止风扇。可以同时开动和停止3个风扇,也可以分别开动和停止每一个风扇。输出示例如图18所示。
图16 文本编辑器界面 图17 打开文件对话框界面
图18 风扇的界面
图19 画笔的界面
(3) 画笔。编写应用程序,可以绘制图形、保存绘制结果和打开已绘图形。可以选择要绘制图形的形状和颜色,选择是否填充,绘制相应的图形,并且可保存到文件中。示例输出如图19所示。
(4) 拼图游戏。编写拼图游戏程序,拼图由3*3方格组成。将原始图像分成3*3个方块,打乱顺序后放入方格中,用户通过移动方格将图像恢复为原始图像。 程序包括多张原始图像,每次随机选择一个图像。示例输出如图21所示。
(5) 图书借阅第三版。修改修改图书借阅版本2,将数据保存在数据库中或文件中,采用图形化用户界面,实现图书的入库,借阅和归还。
图21 拼图游戏的界面
7.4 实验步骤
(1) 设计类和程序的结构;
(2) 在NetBeans或Eclipse中创建工程;
(3) 设计和实现图形化用户界面中的各种组成部件;
(4) 为图形化用户界面添加事件处理;
(5) 编译、调试、运行和发布程序。
7.5 实验提示
(1) 程序发布可以使用集成化开发环境中的提供的工具。
(2) 可通过学习开发环境自带的帮助文件熟悉开发环境的使用。