JAVA复习资料的程序题汇总

 
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();
              }
       }
}
 
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值