请编写程序,实现简单学生记录检索应用。即从键盘输入一个学生的学号,如果学号在在student.txt文件中,可以显示该学生记录,如果输入的学号不在文件中,则显示检索失败的信息
时间: 2024-03-05 14:48:30 浏览: 18
好的,以下是一个简单的实现方法:
```python
# 打开student.txt文件
file = open("student.txt", "r")
# 读取文件内容并将每行数据存储到字典中
students = {}
for line in file:
data = line.strip().split(",")
students[data[0]] = data[1:]
# 关闭文件
file.close()
# 获取用户输入的学号
sid = input("请输入学生学号:")
# 检索学生记录
if sid in students:
print(f"学号为 {sid} 的学生信息为:{students[sid]}")
else:
print("检索失败")
```
以上代码会打开 `student.txt` 文件,并将文件中每行数据存储到字典 `students` 中,字典的键为学号,值为一个列表,列表中存储了该学生的其他信息。然后从用户输入中获取学号,并在字典中查找,如果找到了对应的学生记录,则输出学生信息,否则输出检索失败的信息。
相关问题
编写一个30名学生信息状况的示意性检索程序,每名学生的信息包括:xh(学号)
为了编写一个包含30名学生信息的示意性检索程序,我们可以使用可以存储和搜索数据的数据结构,比如数组或者字典。以下是一个使用字典的示意性程序:
```
# 创建一个空的学生信息字典
students = {}
# 添加学生信息到字典中
students["001"] = {"name": "张三", "age": 18, "gender": "男"}
students["002"] = {"name": "李四", "age": 19, "gender": "女"}
# ... 添加剩余的学生信息
# 提供一个函数来搜索学生信息
def search_student_by_id(id):
if id in students:
return students[id]
else:
return "没有找到该学生的信息"
# 通过学号搜索学生信息
student_id = input("请输入学生学号:")
student_info = search_student_by_id(student_id)
print(student_info)
```
在上面的程序中,我们创建一个名为`students`的字典来存储学生信息。每个学生的学号作为字典的键,对应的值是一个包含学生姓名、年龄和性别的字典。
程序还提供了一个`search_student_by_id`函数,它接收一个学号作为参数,根据学号在字典中搜索对应的学生信息。如果找到了该学生的信息,函数将返回该学生的信息字典;否则,函数将返回一个提示信息。
最后,程序通过用户输入的学号调用`search_student_by_id`函数,将返回的学生信息打印出来。这样就可以根据学号检索到对应的学生信息。
需要注意的是,示意性程序中只包含了两个学生的信息,您可以按照相同的格式添加剩余的学生信息。另外,该示意性程序只演示了通过学号检索学生信息的功能,还可以根据需要添加其他功能,比如根据学生姓名搜索、按年龄排序等等。
输入多个学生的成绩信息,包括:学号、姓名、成绩。要用hashMap检索怎么实现啊
首先,定义一个包含学号、姓名和成绩的学生类(例如:Student),然后创建一个 HashMap 对象用来存储学生信息,学号作为 HashMap 的键,学生对象作为值。接着,可以通过 Scanner 类从控制台输入学生信息,并将其存储到 HashMap 中。最后,可以通过输入学号来检索学生信息,从而实现按照学号检索学生的功能。以下是示例代码:
```java
import java.util.HashMap;
import java.util.Scanner;
public class Student {
private String id; // 学号
private String name; // 姓名
private int score; // 成绩
public Student(String id, String name, int score) {
this.id = id;
this.name = name;
this.score = score;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public int getScore() {
return score;
}
public static void main(String[] args) {
HashMap<String, Student> map = new HashMap<String, Student>();
Scanner scanner = new Scanner(System.in);
// 循环输入学生信息
while (true) {
System.out.print("请输入学生信息(学号 姓名 成绩):");
String id = scanner.next();
String name = scanner.next();
int score = scanner.nextInt();
Student student = new Student(id, name, score);
map.put(id, student);
System.out.print("是否继续输入(Y/N):");
String choice = scanner.next();
if (choice.equalsIgnoreCase("N")) {
break;
}
}
// 检索学生信息
System.out.print("请输入要检索的学生学号:");
String id = scanner.next();
Student student = map.get(id);
if (student != null) {
System.out.println("姓名:" + student.getName() + ",成绩:" + student.getScore());
} else {
System.out.println("未找到该学生信息!");
}
}
}
```
注意,为了方便起见,上述代码没有进行输入的合法性检查。在实际应用中,应该对输入数据进行适当的验证和处理。