创建各专业人数视图stunumber_view,包括专业号、专业名,人数。
时间: 2024-05-04 10:19:29 浏览: 22
假设有以下两个表:
专业表majors:
| 专业号 | 专业名 |
|-------|--------|
| 01 | 计算机 |
| 02 | 电子 |
| 03 | 通信 |
学生表students:
| 学号 | 姓名 | 专业号 |
|------|------|--------|
| 1001 | 张三 | 01 |
| 1002 | 李四 | 01 |
| 1003 | 王五 | 02 |
| 1004 | 赵六 | 03 |
| 1005 | 钱七 | 01 |
则可以通过如下 SQL 语句创建各专业人数视图stunumber_view:
```sql
CREATE VIEW stunumber_view AS
SELECT majors.专业号, majors.专业名, COUNT(*) AS 人数
FROM majors, students
WHERE majors.专业号 = students.专业号
GROUP BY majors.专业号, majors.专业名;
```
执行完上述 SQL 语句后,就会创建一个名为stunumber_view的视图,包括专业号、专业名和人数三个字段。
相关问题
(1)定义学生成绩类,学生信息包括学号、姓名、成绩, (2)用ArrayList集合表示多个学生的信息,添加3个学生的信息,用匿名类的方式对集合元素排序,一种是按 成绩降序排序,一种是按学号升序排序,每次排序后输出集合的所有元素。 相关知识,//定义学生成绩类 public class StudentScore { String stuNumber; // 学号 String stuName; // 姓名 float score; //成绩 //带3个参数的构造方法 public StudentScore(String stuNumber, String stuName, float score) { super(); this.stuNumber = stuNumber; this.stuName = stuName; this.score = score; } //显示学生信息 public void show() { System.out.printf("学号:%10s 姓名:%10s 成绩:%6.1f\n",stuNumber,stuName,score); } //重写equals()方法,实现按学号查询 @Override public boolean equals(Object obj) { 【补充代码】 } }
好的,我理解了您的要求,以下是实现您所述功能的示例代码:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
//定义学生成绩类
class StudentScore {
String stuNumber; // 学号
String stuName; // 姓名
float score; // 成绩
//带3个参数的构造方法
public StudentScore(String stuNumber, String stuName, float score) {
super();
this.stuNumber = stuNumber;
this.stuName = stuName;
this.score = score;
}
//显示学生信息
public void show() {
System.out.printf("学号:%10s 姓名:%10s 成绩:%6.1f\n", stuNumber, stuName, score);
}
//重写equals()方法,实现按学号查询
@Override
public boolean equals(Object obj) {
if (obj instanceof StudentScore) {
StudentScore s = (StudentScore) obj;
if (s.stuNumber.equals(this.stuNumber)) {
return true;
}
}
return false;
}
}
//用ArrayList集合表示多个学生的信息
ArrayList<StudentScore> list = new ArrayList<>();
list.add(new StudentScore("2021001", "张三", 89.5f));
list.add(new StudentScore("2021002", "李四", 76.0f));
list.add(new StudentScore("2021003", "王五", 92.0f));
//用匿名类的方式对集合元素排序,一种是按 成绩降序排序,一种是按学号升序排序
Collections.sort(list, new Comparator<StudentScore>() {
@Override
public int compare(StudentScore o1, StudentScore o2) {
//按成绩降序排序
//return (int) (o2.score - o1.score);
//按学号升序排序
return o1.stuNumber.compareTo(o2.stuNumber);
}
});
//每次排序后输出集合的所有元素
for (StudentScore s : list) {
s.show();
}
}
}
```
在这个示例中,我们创建了一个`StudentScore`类,表示学生成绩信息。使用`ArrayList`集合表示多个学生的信息,并添加了3个学生的信息。使用匿名类的方式对集合元素进行排序,一种是按成绩降序排序,一种是按学号升序排序。每次排序后输出集合的所有元素。
其中,我们在`StudentScore`类中重写了`equals()`方法,实现按学号查询学生信息的功能。排序时我们使用了`Collections.sort()`方法,并创建了一个匿名类实现了`Comparator`接口,用于比较两个`StudentScore`对象的大小。最后,我们调用`show()`方法输出每个学生的详细信息。
将下列函数addStudent的参数由引用改成非引用 void addStudent(Grade& grade) { cout << "请输入学生的学号:"; string stuNumber; cin >> stuNumber; cout << "请输入学生的姓名:"; string stuName; cin >> stuName; Student stu(stuNumber, stuName); if (grade.addStudent(stu) == true) { cout << "添加学生成功!" << endl; } else { cout << "班级已经满员,不能添加学生了!" << endl; } }
void addStudent(Grade grade)
{
cout << "请输入学生的学号:";
string stuNumber;
cin >> stuNumber;
cout << "请输入学生的姓名:";
string stuName;
cin >> stuName;
Student stu(stuNumber, stuName);
if (grade.addStudent(stu) == true)
{
cout << "添加学生成功!" << endl;
}
else
{
cout << "班级已经满员,不能添加学生了!" << endl;
}
}
将函数参数由引用改为非引用,意味着在函数内部对参数进行的修改不会影响到原始的对象。这里改为值传递,函数内部创建了一个临时的Grade对象进行操作,操作完成后不会影响原始的Grade对象。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)