JavaWord文档下载推荐.docx
《JavaWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《JavaWord文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。
Java是由Sun公司开发的新一代纯面向对象的网络编程语言。
其目标是建立一种在任意种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”的目标。
正因为如此,Java已成为当今Internet上流行、受欢迎的一种程序开发语言。
Java开发小组把Java按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。
Java基本版本叫Java2标准版(Java2StandardEdition,J2SE),它包含建立Java应用程序或者是Applet所需的应用程序编程接口(API)。
Java2移动版(TheJava2MobileEdition,J2ME)包含创建无线Java应用程序的API。
还有Java2企业版(TheJava2Enterprise,J2EE)是J2SE的增强版本,包含建立多层架构应用程序API。
Java语言是由C++语言发展起而来的,是一种彻底的面向对象的程序设计语言。
作为一种纯面向对象的程序设计语言,它非常适合大型软件的开发。
Java语言去掉了C++语言的一些容易引起错误的特性。
Java语言的特点有:
面向对象、跨平台、安全性、多线程和图形功能强。
1.1需求分析
1.1.1系统概述
该报告中的程序是使用Java程序编写,能够将九九乘法表以追加的方式在窗口的文本区中输出,该程序主要用到了Java子类与继承以及for循环语句。
1.1.2系统运行环境
本程序运行环境为WindowsXP
Professional以及Windows
Vista。
采用eclipse编程。
1.1.3功能需求描述
本程序要创建一个窗口,在窗口中添加一个文本区组件并输出九九乘法表,其功能有以下几个方面:
1.编程实现并显示九九乘法口诀表,程序运行结果显示在窗口的文本区中,呈下三角状。
2.编写一个Java应用程序,定义一个表示学生的类Student,包括属性:
学号、班级、姓名、性别、年龄,以及方法:
获得学号、获得班级号、获得年龄、设置年龄。
创建这个类的对象并验证各个方法。
3.字符串是一串包含一定序列的字符数据,Java的String类型的数据是具有不变性的,请编程实现某一个指定字符串的反序输出。
要求如下:
(1)不能使用StringBuffer的reverse()方法;
(2)指定字符串为“新疆工程学院计算机工程系网络12-11班”。
4.编写一个Java应用程序,程序运行后,要求到指定的文件夹(比如d:
\work目录)查找后缀为java的文件,取出并保存到d:
\test目录下。
1.2开发环境
开发平台:
MicrosoftWindowsXPProfessionalServicePack2
开发工具:
eclipse-SDK-3.4.1-win32+JDK1.7.0_40
1.3设计目的
《面向对象程序设计》课程设计是计算机科学与技术专业集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。
本课程设计主要目的在于加深学生对面向对象基础理论和基本知识的理解,掌握面向对象程序设计的基本方法,进一步使学生综合运用所学知识和增强实际动手能力。
第2章概要设计
2.1设计思路
1:
界面设计
在主界面中设计一个Frame容器,并在其中加入文本区,把该容器设置为FlowLayout布局,将程序运行结果以追加的方式在窗口的文本区中显示出来。
2:
功能设计
本次课程设计总共有四个小的题目,分别实现各自的功能,输出九九乘法表、定义学生类、实现字符串的反序输出以及按文件类型查找文件并保存到列表中。
3:
代码设计
编写每个项目的相关代码,并进行调试。
2.2设计准备
2.2.1引入包中的类
importjava.awt.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.*;
2.2.2子类与继承
利用继承,可以先编写一个共有属性的一般类,根据该一般类再编写具有特殊属性的新类,新类继承一般类的状态和行为,并根据需要增加它自己的新的状态和行为。
由继承而得到的类称为子类,被继承的类称为父类(超类)。
如果子类和父类在同一个包中,那么,子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法,继承的成员变量或方法的访问权限保持不变。
2.2.3接口与实现
为了克服Java单继承的缺点,Java使用了接口,一个类可以实现多个接口。
使用关键字interface来定义一个接口。
接口的定义和类的定义很相似,分为接口的声明和接口体。
一个类通过使用关键字implements声明自己实现一个或多个接口。
如果一个类实现了某个接口,那么这个类必须重写该接口的所有方法。
接口的思想在于它可以要求某些类有相同名称的方法,但方法的具体内容(方法体的内容)可以不同,即要求这些类实现接口,以保证这些类一定有接口中所声明的方法(即所谓的方法绑定)。
接口在要求一些类有相同名称的方法的同时,并不强迫这些类具有相同的父类。
2.2.4异常类
所谓异常就是程序运行时可能出现一些错误,比如试图打开一个根本不存在的文件等,异常处理将会改变程序的控制流程,让程序有机会对错误作出处理。
异常对象可以调用如下方法得到或输出有关异常的信息:
publicStringgetMessage();
publicvoidprintStackTrace();
publicStringtoString();
2.2.5容器与组件
Java提供的JFrame类的实例是一个底层容器,即通常所称的窗口。
其他组件必须被添加到底层容器中,以便借助这个地层容器和操作系统进行信息交互。
JFrame类是Container类的间接子类。
当需要一个窗口时,可使用JFrame或其子类创建一个对象。
可以使用JComponent的子类JTextField创建各种组件。
利用组件可以完成应用程序与用户的交互及事件处理等。
2.2.6输入、输出流
标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流等等,java中将输入输出抽象称为流,就好像水管,将两个容器连接起来。
将数据从外存中读取到内存中的称为输入流,将数据从内存写入外存中的称为输出流。
流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。
类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。
总结的基本概念如下:
1、输入流(Input
Stream):
程序从输入流读取数据源。
数据源包括外界(键盘、文件、网络…),即是将数据源读入到程序的通信通道。
2、
输出流:
程序向输出流写入数据。
将程序中的数据输出到外界(显示器、打印机、文件、网络)的通信通道。
2.4设计过程
调试要根据Eclipse中出错的信息以及所导入的javadoc文档结合现有的资料进行快速调试,通过Eclipse运行平台自带的run→Java
Application进行运行程序。
看运行结果是否与自己的预想是否相同再进行调试。
测试过程中遇到问题:
(1当程序无法运行的时候,看Eclipse的一些变量是否配置正确;
(2)某些用到的类不熟悉,需要查找资料;
(3)在编写程序的过程中,无法将九九乘法表从窗口的文本区中正确输出,需要查询资料并对Java进行更深入的学习。
第3章详细设计
3.1使用的Java类的说明
1、publicclassJiuJiuChengFaBiao;
publicclassXueShengLei;
publicclassWenJianChaZhao;
publicclassFanXuShuChu
这些类是主类,是程序得以运行的入口。
在这个主类中定义了主方法,是该程序执行的入口。
2、publicclassWenBenQuextendsJFrame
此类用于实现这个程序的大部分功能,在九九乘法表中,创建名为WenBenQu的窗口,子类是WenBenQu,父类是JFrame。
3、classStudent
在定义学生类这个程序中,实现了获得学号、获得班级号、获得年龄、获得性别等这些功能。
4、classIsJavaimplementsFileFilter
这个类主要是实现自定义文件过滤器,FileFilter是接口名,通过重写接口中的方法实现按文件类型查找文件
3.2源代码及分析
1、九九乘法表
//1.编程实现并显示九九乘法口诀表,程序运行结果显示在窗口的文本区中,呈下三角状。
publicclassJiuJiuChengFaBiao{
publicstaticvoidmain(String[]args){
WenBenQuwin=newWenBenQu();
win.setBounds(200,200,600,400);
//设置窗口的初始位置与大小
win.setTitle("
九九乘法表"
);
//设置窗口的名称为“九九乘法表”
inti;
intj;
for(i=9;
i>
=0;
i--){//设置九九乘法表的行
for(j=1;
j<
=i;
j++){//设置九九乘法表的列
win.area.append(j+"
*"
+i+"
="
+(i*j)+"
"
+"
//以追加的方式将九九乘法表在文本区输出
}
win.area.append("
\n"
}
}
}
publicclassWenBenQuextendsJFrame{
JTextAreaarea;
//创建文本区
publicWenBenQu(){//构造方法
init();
setVisible(true);
//设置窗口可见
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//使窗口正常关闭
voidinit(){//初始化方法
setLayout(newFlowLayout());
//设置窗口的布局为FlowLayout型布局
area=newJTextArea(15,20);
//设置文本区20列15行
add(area);
//将文本区添加到窗口中
2、学生类的定义及测试
//2.编写一个Java应用程序,定义一个表示学生的类Student,包括属性:
学号、班级、
//姓名、性别、年龄,以及方法:
//创建这个类的对象并验证各个方法。
publicclassXueShengLei{
Studentstudent=newStudent(2012232105,"
计算机网络12-11"
"
辛凡凡"
女"
21);
student.setAge(21);
System.out.println(student.getNo());
System.out.println(student.getClassno());
System.out.println(student.getName());
System.out.println(student.getSex());
System.out.println(student.getAge());
classStudent{
privateintno;
//学号private修饰的变量为私有变量
privateStringclassno;
//班级
privateStringname;
//姓名
privateStringsex;
//性别
privateintage;
//年龄
publicStudent(intno,Stringclassno,Stringname,Stringsex,intage){
this.no=no;
this.classno=classno;
this.name=name;
this.sex=sex;
this.age=age;
publicintgetNo(){
returnno;
//获得学号
publicvoidsetNo(intno){
this.no=no;
publicStringgetClassno(){
returnclassno;
//获得班级
publicvoidsetClassno(Stringclassno){
this.classno=classno;
publicStringgetName(){
returnname;
//获得名字
publicvoidsetName(Stringname){
this.name=name;
publicStringgetSex(){
returnsex;
//获得性别
publicvoidsetSex(Stringsex){
this.sex=sex;
publicintgetAge(){
returnage;
//获得年龄
publicvoidsetAge(intage){
this.age=age;
3、指定类型文件查找并列表保存
//4.编写一个Java应用程序,程序运行后,要求到指定的文件夹(比如d:
\work目录)
//查找后缀为java的文件,取出并保存到d:
publicclassWenJianChaZhao{
publicstaticvoidmain(Stringarg[]){
File[]files;
isJavaisjava=newisJava();
booleanhasFileJava=false;
//boolean是一种数据类型,也就是常说的真假值,只有true和false两个值
Scannersc=newScanner(System.in);
//得到一个标准的输入流,并创建一个新的基于输入流的对象
System.out.println("
输入指定的文件夹:
"
Stringstr=sc.next();
//读取输入的字符串
Filef=newFile(str);
//字符串认为是一个路径
if(f.exists()){//判断对象f是否存在
files=f.listFiles();
//listFiles()方法有完整路径的文件名,列出文件夹下所有文件的对象
for(inti=0;
i<
files.length;
i++){
if(isjava.accept(files[i])){
hasFileJava=true;
getAndSave(files[i]);
//保存
}
if(hasFileJava){
System.out.println("
已将所有java文件写入指定目录"
else{
该目录下没有java文件"
else{
System.out.println("
目录不存在,重新输入"
publicstaticvoidgetAndSave(Filef_java){
try{//发生异常
Filefile=newFile("
d:
\\test"
if(file.exists()){//判断文件是否存在
file.mkdir();
//如果文件夹不存在则创建
byte[]b=newbyte[2000];
//先定义一个byte类型的数组,数组长度为2000,即最多可存2000个字节,如果超过这个值就会报溢出的异常了
FileInputStreamfis=newFileInputStream(f_java);
//创建对象,文件输入流
FileOutputStreamfos=newFileOutputStream("
\\test\\"
+f_java.getName());
//文件输出流,要创建新文件
while(fis.read(b,0,b.length)!
=-1){//从原来的文件读取字节
fos.write(b,0,b.length);
//循环写入字节
}else{
指定目录不存在!
catch(Exceptione){//发生异常后的处理
e.printStackTrace();
classisJavaimplementsFileFilter{//自定义文件过滤器
publicbooleanaccept(Filepathname){//重写接口中的方法
if(pathname.getName().endsWith("
.java"
)){//如果文件是java类型的,返回true
returntrue;
returnfalse;
4、字符串反序输出
//3.字符串是一串包含一定序列的字符数据,Java的String类型的数据是具有不变性的,请编程
//实现某一个指定字符串的反序输出。
//
(1)不能使用StringBuffer的reverse()方法;
//
(2)指定字符串为“新疆工程学院计算机工程系网络12-11班”。
publicclassFanXuShuChu{
Stringstr="
新疆工程学院计算机工程系网络12-11班"
;
//创建字符串对象
for(inti=str.length()-1;
i>
=0;
i--){
System.out.print(str.substring(i,i+1)+"
第4章测试与运行
4.1九九乘法表
九九乘法表的运行结果如图4.1所示:
图4.1
4.2学生类的定义及测试
学生类的定义及测试的运行结果如图4.2所示:
图4.2
4.3指定类型文件查找并列表保存
指定类型文件查找并列表保存的运行结果如图4.3所示:
图4.3
4.4.字符串反序输出
字符串反序输出的运行结果如图4.4所示:
图4.4
第5章课程设计总结
通过这次课程设计,加强了我们动手、思考和解决问题的能力,课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且在运用的过程中有了更多的认识。
平时看课本时,有些问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。
而且还可以记住很多东西。
认识来源于实践,实践是检验真理的唯一标准。
所以这个期末测试之后的课程设计对我们的作用是非常大的。
通过一周的课程设计,完成了四个简单的Java程序,并成功运行得到了结果。
在这次设计过程中,我了解到自身在许多相关知识方面都认识得不够深刻,致使在实际的运行操作中遇到许多困难与阻碍。
在向其他同学和老师请教的过程中我收获了很多。
在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以,而且设计也是一个团队的任务,一起的工作让我们相互帮助,配合默契,我感觉我和同学们之间的距离更加近了;
同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。
设计过程中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。
团结协作是一项非常重要的能力,而这次课程设计也正好锻炼我们这一点,这也是非常宝贵的。
另外,在本次设计过程中,我主要是做程序设计部分。
对我们而言,知识上的收获重要,精神上的丰收更加可喜。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
参考文献
主要参考书及参考资料:
[1]耿祥义,张跃平.Java2实用教程(第4版),清华大学出版社,2012.8
[2]耿祥义.Java课程设计(第三版)[M].北京:
清华大学出版社,2004
[3]张跃平.Java2实用教程实验指导与习题解答(第三版)[M].北京: