JAVA复习资料的程序题汇总
整理者:
汤伟
QQ
:
17834798
,各个群中,我都加入了。
声 明:
1. 根据老师复习课的内容及同学的提醒,共整理出4道程序题,其中第3题及第4题的第1段程序是老师提供的,其它的是我自己写的。
2. 老师提供的两段程序无法编译通过,我修改了部分代码,力求保持原意不变。目前这4段代码均已独立地在Eclipse 3.3.0调试通过。
3. 本文档只有程序题,如需其它部分的复习资料,请参阅“交大学海QQ群”(25622090)共享中的以下文档:
JAVA总复习(周磊版).doc
JAVA总复习(刘妍版).doc
JAVA考试的考点.doc
4. 本文档预计会上传到以下位置:
我的blog空间中,位于
http://blog.csdn.net/ufool
“交大学海QQ群”(25622090)共享中
“未来资源”(27556485)共享中
交大网络学院交流区,位于http://onlinesjtu.tech.topzj.com/
5. 我也是刚学JAVA,程序中如有不对,请指正。
1、
求一给定矩阵的最大值、最小值,及其元素总和,并将结果输出显示。矩阵类似如下:
1 2 3 4 5
11 12 13 14 15
21 22 23 24 25
31 32 33 34 35
程序如下:
//
求一个给定矩阵的最大值、最小值、及其元素总和
public class MatrixDemo
{
public static void main(String[] args)
{
//
定义矩阵,这是随便写的数字,老师给的数字肯定与之不同
int[][] a =
{
{1,2,3,4,5},
{11,12,13,14,15},
{21,22,23,24,25},
{31,32,33,34,35},
};
//
最大值,最小值,总和
int max=0, min=0, sum=0;
System.out.println("
矩阵如下:
");
for (int i=0; i<a.length; i++)
{
for (int j=0; j<a[i].length; j++)
{
int value = a[i][j];
//
赋初值
if (i==0 && j==0)
max = min = value;
if (max < value)
max = value;
if (min > value)
min = value;
sum += value;
System.out.print(value + " ");
}
System.out.println();
}
//
输出结果
System.out.println();
System.out.println("
最后结果为:
");
System.out.println("min = " + min);
System.out.println("max = " + max);
System.out.println("sum = " + sum);
}
}
2、
对给定数的序列进行冒泡排序,并将结果输出显示。序列类似如下:
9,1,3,4,2,5,7,6,8
程序如下:
//
冒泡排序
public class BubbleDemo
{
public static void main(String args[])
{
int[] a = {9,1,3,4,2,5,7,6,8};
System.out.println("
数组
a
排序前为
:");
listArray(a);
BubbleSort(a);
System.out.println("
数组
a
排序后为
:");
listArray(a);
}
//
列表数组
static void listArray(int[] a)
{
for(int i=0; i<a.length; i++)
System.out.print(a[i] + " ");
System.out.println();
}
//
冒泡排序,升序
static void BubbleSort(int[] a)
{
for (int i=0; i<a.length; i++)
{
for (int j=0; j<i; j++)
{
//
如果要求降序,改为
>
就可以了
if (a[i] < a[j])
{
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
}
3、
编写程序,编写一个学生信息的应用程序,包括一个学生类(
Student
),其成员变量包括姓名,年龄,学位
,并要求实现输出显示;一个学生类的子类本科生类(
Undergraduate extends Student
),要求增加专业
(specialty)
;一个研究生类(
Graduate extends Student
)要求增加研究方向
(studydirection).
主程序中分别给出本科生类和研究生类的实例。
程序如下:
//
定义学生类
class Student
{
String name;
int age;
String degree;
//
赋初值
void initStudent(String name, int age, String degree)
{
this.name = name;
this.age = age;
this.degree = degree;
}
//
显示姓名、年龄、学位
void studentShow( )
{
System.out.println("
姓名:
" + name);
System.out.println("
年龄:
" + age);
System.out.println("
学位:
" + degree);
}
}
//
定义学生类的子类,本科生类
class Undergraduate extends Student
{
String specialty;
//
赋初值
void initUndergraduate(String specialty)
{
this.specialty = specialty;
}
//
显示专业
void undergraduateShow()
{
System.out.println("
专业:
" + specialty);
}
}
//
定义学生类的子类,研究生类
class Graduate extends Student
{
String studydirection;
//
赋初值
void initGraduate(String studydirection)
{
this.studydirection = studydirection;
}
//
显示研究方向
void graduateShow( )
{
System.out.println("
研究方向:
" + studydirection);
}
}
public class ClassDemo
{
public static void main(String args[])
{
Undergraduate test1 = new Undergraduate();
Graduate test2 = new Graduate();
test1.initStudent("
张三
", 25, "
本科
"); //
调用父类方法
test1.initUndergraduate("
计算机
");
test1.studentShow(); //
调用父类方法显示
test1.undergraduateShow();
test2.initStudent("
李四
", 30, "
研究生
"); //
调用父类方法
test2.initGraduate("
生物
");
test2.studentShow(); //
调用父类方法显示
test2.graduateShow();
}
}
4、
编写一段程序,在当前目录下,创建目录
mydir,
在该目录下创建
5
个文件
file1.txt, file2.txt, file3.txt, file4.txt, file5.txt,
列表显示看是否创建成功;删除
file1.txt,
再列表显示看是否删除成功;
file2.txt
改名字为
newfile.txt,
再列表显示看是否改名成功。(选作其他的有关文件的操作)。
程序如下:
import java.io.File;
class FileDemo
{
//
主程序入口点,并抛出
Exception
异常
public static void main(String[] args) throws Exception
{
File fd = new File("mydir"); //
创建
mydir
文件对象
//File fDir=new File(File.separator);
//File fNames=new File(fDir,"mydir");
fd.mkdir(); //
建立名为“
mydir
”的文件夹
//
通过循环建立五个名为“
file[i].txt
”文本文件
for(int i=1; i<6; i++)
{
//
利用循环语句定义文件名
String fName = "file"+i +".txt";
//
显示查看
(
验证测试时使用
)
//System.out.println(fName);
//
创建文件对象,并保证”
/
”的移植性
File f = new File(fd, File.separator+fName);
//
建立文件
f.createNewFile();
//
列表显示看是否创建成功
System.out.println(f+"
已建立。
");
}
//
显示
----
,用来分界上一部分的结束和下部分的开始
System.out.println("------------------");
//
创建
file1.txt
文件对象
File f1=new File(fd,"file1.txt");
//
删除名为“
file1.txt
”的文本文件
f1.delete();
//
列表显示看是否删除成功
listSubDir();
//
显示
----
,用来分界上一部分的结束和下部分的开始
System.out.println("------------------");
//
创建
file2.txt
文件对象
File f2=new File(fd,"file2.txt");
//
创建
newfile.txt
文件对象
File f2New=new File(fd,"newfile.txt");
//
将
file2.txt
改名字为
newfile.txt
f2.renameTo(f2New);
//
列表显示看是否改名成功
listSubDir();
//
当虚拟机执行结束时删除
newfile.txt
文件,为了再次运行时
file2.txt
改名正常
f2New.deleteOnExit();
}
//
定义列表显示函数
public static void listSubDir()
{
//
创建
mydir
文件对象
File fd=new File("mydir");
//
列表
mydir
文件夹内的文件名,并存入字符数组
String[] n=fd.list();
//
通过字符数组长度,循环显示
mydir
文件夹内的文件名
for(int i=0; i<n.length; i++)
{
//
输出显示,并保证”
/
”的移植性
System.out.println(File.separator + fd + File.separator + n[i]);
}
}
}
这个老师提供的答案,下面是我以前写的,仅代参考,程序如下:
import java.io.*;
class MyFileDemo
{
public static void main(String args[]) throws IOException
{
//
构建一个空的目录
mydir
File folder = new File("mydir");
if (!folder.exists())
{
boolean bSuc = folder.mkdir();
if (!bSuc)
{
System.out.println("
目录创建不成功。
");
return ;
}
}
else
{
makeFolderEmpty(folder);
}
System.out.println("
操作目录
: " + folder.getAbsolutePath());
System.out.println();
//
在
mydir
下创建
5
个文件
System.out.println("
创建
5
个文件,显示如下:
");
createFile(folder);
listFile(folder);
//
删除
mydir/file1.txt
System.out.println();
System.out.println("
删除
file1.txt
,显示如下:
");
File file1 = new File(folder, "file1.txt");
if (file1.exists())
{
file1.delete();
}
listFile(folder);
//
改名
mydir/file1.txt
为
mydir/newfile.txt
System.out.println();
System.out.println("
将
file2.txt
改名为
newfile.txt
,显示如下:
");
File file2 = new File(folder, "file2.txt");
if (file2.exists())
{
File newfile = new File(folder, "newfile.txt");
file2.renameTo(newfile);
}
listFile(folder);
}
//
在指定目录下创建
5
个文件
static void createFile(File folder) throws IOException
{
for (int i=1; i<=5; i++)
{
File newFile = new File(folder,"file" + i + ".txt");
if (!newFile.exists())
{
newFile.createNewFile();
}
}
}
//
列出指定目录所有的子文件项
static void listFile(File folder)
{
String child[];
child = folder.list();
for (int i=0; i<child.length; i++)
{
System.out.println(child[i]);
}
}
//
使一个目录为空,即删除其中的子文件项
static void makeFolderEmpty(File folder)
{
File childs[] = folder.listFiles();
for (int i=0; i<childs.length; i++)
{
File child = childs[i];
if (child.isDirectory())
{
makeFolderEmpty(child);
}
child.delete();
}
}
}