第十四周java作业
2017-12-13 22:17
288 查看
1 编写一个Book类,该类至少有name和price两个属性。该类要实现Comparable接口,在接口的compareTo()方法中规定两个Book类实例的大小关系为二者的price属性的大小关系。在主函数中,选择合适的集合类型存放Book类的若干个对象,然后创建一个新的Book类的对象,并检查该对象与集合中的哪些对象相等。查询结果如下图:
程序实现代码:
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 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
程序实现代码:
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
运行截图:
程序实现代码:
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) { // TODO Auto-generated method stub 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);//所有add均为向父容器中添加 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) { // TODO Auto-generated method stub /* * 因为只有button有点击事件,所以直接可以不用判断,若有多个控件绑定了事件则需要判断 * 这里直接判断文本框是否为空 */ 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) { // TODO Auto-generated catch block e1.printStackTrace(); mJTextArea.append("不知道成绩是数字格式吗,重新输入!\n"); } } Collections.sort(list);//对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) { // TODO Auto-generated method stub 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
运行截图:
相关文章推荐
- 第十四周java作业--Java集合框架
- JAVA第十四周作业
- 11.29第十四周Java作业
- IT十八掌作业_java基础第十二天_集合
- 11-csdn-java课下作业
- JAVA作业之动手动脑
- java作业2
- IT十八掌作业_java基础第十一天_集合
- JAVA语法基础作业
- Java作业2
- Java第十四次作业
- java基础作业之猜数字游戏;
- java第7次作业
- 程序设计入门—Java语言 . 翁恺-第四周编程作业-1.素数和
- [Java初学] 第一次作业 hello.java直接调用同根目录下的其他类 A.java 、B.java、C.java
- [Java初学] 第一次作业 - 将输入的四位数分开打印出来
- Java课后作业
- JAVA基础作业练习—自定义异常之模拟ATM
- java上机作业_文件的复制
- 斯坦福作业2:简单Java程序 控制台作业合集