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(); } } } } }); } }
数据库表字段





