for (Map.Entry<String, Course> entry : courses.entrySet()) { String courseName = entry.getKey(); Course course = entry.getValue(); if (course.grades.isEmpty()) { // 没有任何成绩信息 System.out.println(courseName + " has no grades yet"); } ,将这段代码中课程的排序方式改为按输入顺序排列
时间: 2024-02-14 08:05:35 浏览: 51
这段代码中并没有对课程进行排序,而是遍历了一个 `Map` 集合 `courses` 中所有的课程,并对于每个课程进行了一些处理。
如果要按照输入顺序排列课程,可以考虑使用 `LinkedHashMap` 来保存课程信息,因为 `LinkedHashMap` 可以保持插入顺序。修改后的代码如下:
```
Map<String, Course> courses = new LinkedHashMap<>();
// 添加课程
// ...
// 按输入顺序遍历课程
for (Map.Entry<String, Course> entry : courses.entrySet()) {
String courseName = entry.getKey();
Course course = entry.getValue();
if (course.grades.isEmpty()) { // 没有任何成绩信息
System.out.println(courseName + " has no grades yet");
}
}
```
这样遍历时就会按照添加课程的顺序来遍历,而不是按照键的自然顺序或者其他的顺序。
相关问题
void showCourseList() { cout << "---------------------" << endl; cout << "课程列表:" << endl; for (size_t i = 0; i < courses.size(); i++) { cout << i + 1 << ". " << courses[i].name << "(编号:" << courses[i].code << ",地点:" << courses[i].location << ",学分:" << courses[i].credit << ")" << endl; } cout << "---------------------" << endl; } // 增加课程 void addCourse() { Course course; cout << "请输入课程名称:" << endl; cin >> course.name; cout << "请输入课程编号:" << endl; cin >> course.code; cout << "请输入上课地点:" << endl; cin >> course.location; cout << "请输入学分:" << endl; cin >> course.credit; courses.push_back(course); cout << "课程添加成功!" << endl; } // 管理员登录 void adminLogin() { string id, password; cout << "请输入管理员账号:" << endl; cin >> id; cout << "请输入密码:" << endl; cin >> password; if (id == ADMIN_ID && password == ADMIN_PASSWORD) { // 登录成功,进入管理员菜单 int choice; do { adminMenu(); cin >> choice; switch (choice) { case 1: // 查看课程列表 showCourseList(); break; case 2: // 增加课程 addCourse(); break; case 0: // 退出 break; default: cout << "无效的选择,请重新输入!" << endl; break; } } while (choice != 0); } else { cout << "管理员账号或密码错误,请重新登录!" << endl; } }
这段代码是关于一个课程管理系统的,其中包括三个函数:showCourseList、addCourse和adminLogin。showCourseList函数用于展示课程列表,addCourse函数用于增加课程,adminLogin函数用于管理员登录。管理员登录需要输入账号和密码,如果输入正确则可以进入管理员菜单,管理员菜单包括查看课程列表和增加课程两个选项,还可以选择退出。
{% for courseSet in result %} <div class="item"> <div class="img"> <a href="/my/courses/sec_course/{{courseSet.courses_group_id}}" target="_blank"> <img src="{{courseSet.images_large}}" alt="{{courseSet.group_name}}"> </a> </div> <div class="body"> <div class="title"> <a href="/my/courses/sec_course/{{courseSet.courses_group_id}}" target="_blank">【课程包】《{{courseSet.group_name}}》</a> </div> <div class="li">有效期:{{courseSet.life_long}}</div> <div class="li">激活时间:{{courseSet.active_date}}</div> </div> </div> {% endfor %}img判断为空选择默认图片
你可以使用以下代码来判断图片是否为空,并选择默认图片:
```html
{% for courseSet in result %}
<div class="item">
<div class="img">
<a href="/my/courses/sec_course/{{courseSet.courses_group_id}}" target="_blank">
{% if courseSet.images_large %}
<img src="{{courseSet.images_large}}" alt="{{courseSet.group_name}}">
{% else %}
<img src="default_image.jpg" alt="{{courseSet.group_name}}">
{% endif %}
</a>
</div>
<div class="body">
<div class="title">
<a href="/my/courses/sec_course/{{courseSet.courses_group_id}}" target="_blank">【课程包】《{{courseSet.group_name}}》</a>
</div>
<div class="li">有效期:{{courseSet.life_long}}</div>
<div class="li">激活时间:{{courseSet.active_date}}</div>
</div>
</div>
{% endfor %}
```
在上面的代码中,我们使用了一个条件判断语句 `{% if courseSet.images_large %}` 来检查 `courseSet` 对象中的 `images_large` 属性是否存在或非空。如果 `images_large` 存在,就使用该图片;否则,使用默认图片 `default_image.jpg`。
阅读全文