某高校学生入学,需登记学生的姓名,并自动给学生分配学号和宿舍,并能根据学生姓名,查询分配结果。编程实现该功能,并用文件保存登记结果。
时间: 2023-11-20 21:06:24 浏览: 28
好的,这是一个比较常见的学生信息管理系统,我可以为您提供一个简单的 Python 实现方案。
首先,我们需要定义一个学生类,包含姓名、学号、宿舍三个属性,以及一些相关的方法,如姓名查询、信息打印等等。
```python
class Student:
def __init__(self, name):
self.name = name
self.id = None
self.dormitory = None
def set_id(self, id):
self.id = id
def set_dormitory(self, dormitory):
self.dormitory = dormitory
def print_info(self):
print("姓名:", self.name)
print("学号:", self.id)
print("宿舍:", self.dormitory)
```
然后,我们需要一个学生信息管理类,包含添加学生信息、查询学生信息、打印所有学生信息、保存信息到文件等方法。
```python
import os
class StudentManager:
def __init__(self):
self.students = []
def add_student(self, name):
student = Student(name)
student.set_id(len(self.students) + 1)
student.set_dormitory("Dorm" + str(len(self.students) % 5 + 1))
self.students.append(student)
print("添加成功!")
def search_student(self, name):
for student in self.students:
if student.name == name:
student.print_info()
return
print("未找到该学生!")
def print_all_students(self):
for student in self.students:
student.print_info()
def save_to_file(self, file_path):
if not os.path.exists(os.path.dirname(file_path)):
os.makedirs(os.path.dirname(file_path))
with open(file_path, "w") as f:
for student in self.students:
f.write(student.name + "," + str(student.id) + "," + student.dormitory + "\n")
```
最后,我们可以写一个简单的测试程序,用于测试上面实现的功能。
```python
if __name__ == "__main__":
manager = StudentManager()
while True:
print("1. 添加学生信息")
print("2. 查询学生信息")
print("3. 打印所有学生信息")
print("4. 保存信息到文件")
print("5. 退出程序")
choice = int(input("请选择操作:"))
if choice == 1:
name = input("请输入学生姓名:")
manager.add_student(name)
elif choice == 2:
name = input("请输入学生姓名:")
manager.search_student(name)
elif choice == 3:
manager.print_all_students()
elif choice == 4:
file_path = input("请输入文件路径:")
manager.save_to_file(file_path)
elif choice == 5:
break
else:
print("输入有误,请重新选择!")
```
在这个测试程序中,我们可以通过输入数字选择不同的操作,包括添加学生信息、查询学生信息、打印所有学生信息、保存信息到文件和退出程序。
当我们选择添加学生信息时,程序会要求我们输入学生姓名,并自动为学生分配学号和宿舍。当我们选择查询学生信息时,程序会要求我们输入学生姓名,并根据学生姓名查询学生信息。当我们选择打印所有学生信息时,程序会打印所有已添加的学生信息。当我们选择保存信息到文件时,程序会要求我们输入文件路径,并将所有学生信息保存到文件中。
以上就是一个简单的学生信息管理系统的 Python 实现方案。当然,这只是一个简单的示例,实际的学生信息管理系统需要考虑更多的功能和细节,如学号和宿舍的有效性检查、文件存储格式等等。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)