第十四周java作业
来源:互联网 发布:幼儿英语教学软件 编辑:程序博客网 时间:2024/06/14 05:30
1 编写一个Book类,该类至少有name和price两个属性。该类要实现Comparable接口,在接口的compareTo()方法中规定两个Book类实例的大小关系为二者的price属性的大小关系。在主函数中,选择合适的集合类型存放Book类的若干个对象,然后创建一个新的Book类的对象,并检查该对象与集合中的哪些对象相等。查询结果如下图:
程序实现代码:
package week14;import java.util.ArrayList;import java.util.List;public class Book implements Comparable{ private String name; private float price; public Book(String name,float price){ this.name=name; this.price=price; } public static void main(String[] args) { List<Book> list =new ArrayList<Book>(); Book b1 = new Book("java基础教程", 30.0f); Book b2 = new Book("数据库技术", 29.0f); Book b3 = new Book("C++基础教程", 28.0f); list.add(b1); list.add(b2); list.add(b3); System.out.println("创建一个新的book对象"); Book b4 =new Book("模式识别", 29.0f); System.out.println("新书"+b4.name+"与下列图书:"); for(int i=0;i<list.size();i++){ Book book = (Book)list.get(i); int index = book.compareTo(b4); if (index ==0 ) { System.out.println(book.name); } } System.out.print("相同"+"具体价格为"+b4.price+"元"); } public int compareTo(Object obj) { Book p =(Book)obj; if(p.price>this.price){ return 1; }else if(p.price<this.price){ return -1; }else return 0; }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
运行截图:
注:这个题最简单的方法是改一下课本448页的代码,具体的自己翻书抄
2 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
程序实现代码:
package week14;import java.awt.FlowLayout;import java.awt.Label;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;import java.util.List;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JTextArea;import javax.swing.JTextField;/** * 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数, * 程序按成绩排序将这些学生的姓名和分数显示在一个文本区中 * @author Lenovo_PC * */public class Test2 { public static void main(String[] args) { MyJframe myJframe = new MyJframe(); }}class MyJframe extends JFrame implements ActionListener{ JFrame mJFrame; JTextField mJTextField1; JTextField mJTextField2; JTextArea mJTextArea; MyJframe(){ mJFrame = new JFrame("成绩排序"); mJFrame.setBounds(200, 100, 900, 600); mJFrame.setLayout(new FlowLayout()); mJTextField1 = new JTextField(10); mJTextField2 = new JTextField(10); JButton mJButton = new JButton("插入"); Box mBox = Box.createHorizontalBox(); mBox.add(new Label("姓名:")); mBox.add(mJTextField1); mBox.add(Box.createHorizontalStrut(50)); mBox.add(new Label("分数:")); mBox.add(mJTextField2); mBox.add(Box.createHorizontalStrut(50)); mBox.add(mJButton); mJFrame.add(mBox); mJTextArea = new JTextArea(40,80); mJTextArea.setText("自己在上边写数据,点插入\n"); mJFrame.add(mJTextArea); mJFrame.setVisible(true); mJButton.addActionListener(this); } List<Student> list = new ArrayList<Student>(); @Override public void actionPerformed(ActionEvent e) { mJTextArea.setText(""); String name = mJTextField1.getText().trim(); String grade = mJTextField2.getText().trim(); if(!"".equals(name) && !"".equals(grade)){ try { list.add(new Student(name, Float.parseFloat(grade))); mJTextArea.append("当前插入的信息为:姓名:"+name+" 成绩:"+grade+"\n"); } catch (NumberFormatException e1) { e1.printStackTrace(); mJTextArea.append("不知道成绩是数字格式吗,重新输入!\n"); } } Collections.sort(list); Iterator<Student> iterator = list.iterator(); Student student; while (iterator.hasNext()) { student = iterator.next(); mJTextArea.append("name:"+student.name+" grade:"+student.grade+"\n"); } }}class Student implements Comparable<Student>{ String name; float grade; public Student(String name, float grade) { super(); this.name = name; this.grade = grade; } @Override public int compareTo(Student o) { return (int) (o.grade*10 - this.grade*10); }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
运行截图: