期末补考专用

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL DuckDB 分析主实例,集群系列 8核16GB
简介: 期末补考专用

1.利用Random类产生10个100—300(包含100和300)之间的随机数,并存储到一个整型的一维数组中,利用Arrays.sort()将数组升序排序,并输出排序后数组。测试类的名字是姓名首字母01。(20分)

public class QK01 {
  public static void main(String[] args) {
    int[] arr = new int[10];
    Random random = new Random();
    for(int i = 0;i<arr.length;i++) {
      arr[i] = random.nextInt(201)+100;
    }
    Arrays.sort(arr);
    for (int a : arr) {
      System.out.print(a+"\t");
    }
  }
}

2.定义图书类Book类,类中包含书号isbn和书名bookname属性,在HashSet集合中添加4个图书对象,把书号相同的图书当作同一个本书,禁止重复添加(测试时添加的4个图书对象中有2本书的isbn相同),并且使用Iterator遍历集合并输出。并且将图书对象写入到一个文本文件中,正确处理异常,文件的名字是学生姓名的首字母。

public class QK02 {
  public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
    Book b1 = new Book("21", "aa");
    Book b2 = new Book("21", "ba");
    Book b3 = new Book("22", "bb");
    Book b4 = new Book("23", "ab");
    HashSet hs = new HashSet();
    hs.add(b1);
    hs.add(b2);
    hs.add(b3);
    hs.add(b4);
    ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:\\qk.txt"));
    Iterator iterator = hs.iterator();
    while (iterator.hasNext()) {
      Book Book = (Book) iterator.next();
      oos.writeObject(Book);
    }
    oos.close();
    ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:\\qk.txt"));
    Book Book1 = (Book)ois.readObject();
    Book Book2 = (Book)ois.readObject();
    Book Book3 = (Book)ois.readObject();
    System.out.println(Book1);
    System.out.println(Book2);
    System.out.println(Book3);
    ois.close();
  }
}
class Book implements Serializable{
  String isbn,bookname;
  public String getIsbn() {
    return isbn;
  }
  public void setIsbn(String isbn) {
    this.isbn = isbn;
  }
  public String getBookname() {
    return bookname;
  }
  public void setBookname(String bookname) {
    this.bookname = bookname;
  }
  public Book(String isbn, String bookname) {
    super();
    this.isbn = isbn;
    this.bookname = bookname;
  }
  @Override
  public String toString() {
    return "Book [isbn=" + isbn + ", bookname=" + bookname + "]";
  }
  @Override
  public int hashCode() {
    // TODO Auto-generated method Bookb
    return this.isbn.hashCode();
  }
  @Override
  public boolean equals(Object obj) {
    Book Book = (Book)obj;
    return this.isbn.equals(Book.isbn);
  }
}

3.通过实现Runnable接口的方式实现多线程,一个子线程的名字为考生学号,另外一个子线程的名字是考生姓名,要求两个线程各自输出自己线程名字5次。测试类的名字是姓名首字母03。

public class QK03 {
  public static void main(String[] args) {
    MyRunable1 mr1 = new MyRunable1();
    new Thread(mr1,"20204132100").start();
    MyRunable2 mr2 = new MyRunable2();
    new Thread(mr2,"邱凯").start();
  }
}
class MyRunable1 implements Runnable{
  @Override
  public void run() {
    for(int i=1;i<=5;i++) {
      System.out.println(Thread.currentThread().getName());
    }
  }
}
class MyRunable2 implements Runnable{
  @Override
  public void run() {
    for(int i=1;i<=5;i++) {
      System.out.println(Thread.currentThread().getName());
    }
  }
}

4.设计一个Shape接口和它的两个实现类Square和Circle类,要求如下:

(1)Shape接口中有一个求周长的抽象方法grith(double length),方法接收一个double类型的参数,返回一个double类型的结果。

(2)Square和Circle中实现了Shape接口的grith()抽象方法,分别求正方形和圆形的周长并返回。

(3)在测试类中创建Square和Circle对象,计算边长为2的正方形周长和半径为3的圆形周长。测试类的名字是姓名首字母04。(20分)

public class QK04 {
  public static void main(String[] args) {
    Circle c = new Circle(3);
    System.out.println("半径为3的圆形周长"+c.girth(c.r));
    Square square = new Square(2);
    System.out.println("半径为2的正方形周长"+square.girth(square.r));
  }
}
//
interface Shape{
  double girth(double length);
}
class Circle implements Shape{
  double r;
  public Circle(double r) {
    super();
    this.r = r;
  }
  @Override
  public double girth(double length) {
    // TODO Auto-generated method stub
    return 2*3.14*length;
  }
}
class Square implements Shape{
  double r;
  public Square(double r) {
    super();
    this.r = r;
  }
  @Override
  public double girth(double length) {
    // TODO Auto-generated method stub
    return 4*length;
  }
}

5.请将源文件Exam05.java补充完成实现下述功能,并运行完整程序:

(1)在工程中导入MySQL驱动,

(2)建立MySQL数据库,数据库名字为info,在数据中建表,表名为searchinfo,包含学号(整型),姓名属性(字符串类型),并添加3条记录,其中一条记录为考生本人信息。

(3)创建图形用户界面,在窗体中添加标签,标签上显示文本是“学号”,添加文本框和“查找”按钮,在文本框中输入学号,点击“查找”,如果查找到显示消息框,查找到,否则显示没有查找到消息框。(20分)

public class QK05 {
  public static void main(String[] args) {
    //
    JFrame frame = new JFrame("主窗口");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(500,200,300,200);
    //创建面板
    JPanel panel = new JPanel();
    //创建组件
    JLabel label = new JLabel("学号");
    JTextField textField = new JTextField(10);
    JButton button = new JButton("查找");
    //将组件加入面板
    panel.add(label);
    panel.add(textField);
    panel.add(button);
    //将面板加入窗口
    frame.add(panel);
    frame.setVisible(true);
    button.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        Connection con = null;
        Statement sta = null;
        ResultSet rs = null;
        String url = "jdbc:mysql://localhost:3306/info?serverTimezone=UTC&useSSL=false";
        String name = "root";
        String pwd = "123456";
        try {
          Class.forName("com.mysql.cj.jdbc.Driver");
          con = DriverManager.getConnection(url, name, pwd);
          sta = con.createStatement();
          rs = sta.executeQuery("select * from searchinfo");
          boolean flag = false;
          int number = 0;
          String stuName = null;
          while(rs.next()) {
            number = rs.getInt("number");
            stuName = rs.getString("stuName");
            String idTxt = textField.getText();
            if (idTxt.equals(String.valueOf(number))) {
              flag = true;
              break;
            }
          }
          if (flag==true) {
            JOptionPane.showMessageDialog(frame, "已查到");
          }else {
            JOptionPane.showMessageDialog(frame, "查无此人");
          }
        } catch (ClassNotFoundException e1) {
          // TODO Auto-generated catch block
          e1.printStackTrace();
        } catch (SQLException e1) {
          // TODO Auto-generated catch block
          e1.printStackTrace();
        }finally {
          if(rs!=null) {
            try {
              rs.close();
            } catch (SQLException e1) {
              // TODO Auto-generated catch block
              e1.printStackTrace();
            }
          }
          if(sta!=null) {
            try {
              sta.close();
            } catch (SQLException e1) {
              // TODO Auto-generated catch block
              e1.printStackTrace();
            }
          }
          if(con!=null) {
            try {
              con.close();
            } catch (SQLException e1) {
              // TODO Auto-generated catch block
              e1.printStackTrace();
            }
          }
        }
      }
    });
  }
}

数据库表字段


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
1天前
|
云安全 人工智能 自然语言处理
|
9天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
658 56
Meta SAM3开源:让图像分割,听懂你的话
|
6天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
319 116
|
6天前
|
人工智能 Java API
Java 正式进入 Agentic AI 时代:Spring AI Alibaba 1.1 发布背后的技术演进
Spring AI Alibaba 1.1 正式发布,提供极简方式构建企业级AI智能体。基于ReactAgent核心,支持多智能体协作、上下文工程与生产级管控,助力开发者快速打造可靠、可扩展的智能应用。
|
21天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
AgentEvolver:让智能体系统学会「自我进化」
AgentEvolver 是一个自进化智能体系统,通过自我任务生成、经验导航与反思归因三大机制,推动AI从“被动执行”迈向“主动学习”。它显著提升强化学习效率,在更少参数下实现更强性能,助力智能体持续自我迭代。开源地址:https://github.com/modelscope/AgentEvolver
444 32
|
5天前
|
弹性计算 人工智能 Cloud Native
阿里云无门槛和有门槛优惠券解析:学生券,满减券,补贴券等优惠券领取与使用介绍
为了回馈用户与助力更多用户节省上云成本,阿里云会经常推出各种优惠券相关的活动,包括无门槛优惠券和有门槛优惠券。本文将详细介绍阿里云无门槛优惠券的领取与使用方式,同时也会概述几种常见的有门槛优惠券,帮助用户更好地利用这些优惠,降低云服务的成本。
276 133

热门文章

最新文章