JAVA复习资料的程序题汇总

来源:互联网 发布:练耳大师 mac 编辑:程序博客网 时间:2024/05/24 04:58
 
JAVA复习资料的程序题汇总
整理者:       汤伟
E-mail tw0814@sina.com
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();
              }
       }
}
 
原创粉丝点击