设计一个小型信息管理程序,其主题不限。程序能够实现对信息的输入、输出、插入、删除、修改、查找和排序等基本功能,要求使用文件作为信息的外部存储形式代码
时间: 2023-07-10 17:20:22 浏览: 78
好的,我会为您提供一个基于Python语言的小型信息管理程序,主题为学生信息管理。
程序实现了对学生信息的输入、输出、插入、删除、修改、查找和排序等基本功能,并使用文件作为信息的外部存储形式。
以下是完整的代码:
```python
import os
class Student:
def __init__(self, id, name, age, gender, grade):
self.id = id
self.name = name
self.age = age
self.gender = gender
self.grade = grade
def __str__(self):
return f'ID: {self.id}, Name: {self.name}, Age: {self.age}, Gender: {self.gender}, Grade: {self.grade}'
class StudentManager:
def __init__(self, file_path):
self.file_path = file_path
self.students = []
self.load_data()
def load_data(self):
if os.path.exists(self.file_path):
with open(self.file_path, 'r') as f:
lines = f.readlines()
for line in lines:
data = line.strip().split(',')
student = Student(data[0], data[1], int(data[2]), data[3], float(data[4]))
self.students.append(student)
def save_data(self):
with open(self.file_path, 'w') as f:
for student in self.students:
f.write(f'{student.id},{student.name},{student.age},{student.gender},{student.grade}\n')
def add_student(self):
id = input('Please input student ID: ')
name = input('Please input student name: ')
age = int(input('Please input student age: '))
gender = input('Please input student gender: ')
grade = float(input('Please input student grade: '))
student = Student(id, name, age, gender, grade)
self.students.append(student)
self.save_data()
print('Add student success.')
def delete_student(self):
id = input('Please input student ID: ')
for i in range(len(self.students)):
if self.students[i].id == id:
del self.students[i]
self.save_data()
print('Delete student success.')
return
print('Student not found.')
def update_student(self):
id = input('Please input student ID: ')
for i in range(len(self.students)):
if self.students[i].id == id:
name = input(f'Please input new name for student {id}: ')
age = int(input(f'Please input new age for student {id}: '))
gender = input(f'Please input new gender for student {id}: ')
grade = float(input(f'Please input new grade for student {id}: '))
self.students[i].name = name
self.students[i].age = age
self.students[i].gender = gender
self.students[i].grade = grade
self.save_data()
print('Update student success.')
return
print('Student not found.')
def search_student(self):
id = input('Please input student ID: ')
for student in self.students:
if student.id == id:
print(student)
return
print('Student not found.')
def sort_student(self):
self.students.sort(key=lambda x: x.grade, reverse=True)
print('Sort student success.')
def show_all_students(self):
for student in self.students:
print(student)
def show_menu(self):
print('=============================')
print('1. Add student')
print('2. Delete student')
print('3. Update student')
print('4. Search student')
print('5. Sort student')
print('6. Show all students')
print('0. Quit')
def run(self):
while True:
self.show_menu()
choice = input('Please choose a function: ')
if choice == '1':
self.add_student()
elif choice == '2':
self.delete_student()
elif choice == '3':
self.update_student()
elif choice == '4':
self.search_student()
elif choice == '5':
self.sort_student()
elif choice == '6':
self.show_all_students()
elif choice == '0':
print('Goodbye!')
break
else:
print('Invalid choice, please input again.')
if __name__ == '__main__':
manager = StudentManager('students.txt')
manager.run()
```
您可以将上述代码保存到一个文件中,例如 `student_manager.py`,并在命令行中运行该文件,即可进入程序的交互界面。
程序启动后,会首先加载已有的学生信息,并显示主菜单。您可以按照提示输入对应的数字,来执行不同的功能。例如,输入 `1` 来添加新的学生信息,输入 `2` 来删除已有的学生信息,输入 `6` 来显示所有学生信息等等。
所有的学生信息都会被保存到一个文本文件 `students.txt` 中,每行一个学生信息,不同字段之间使用逗号分隔。
请注意,本程序只是一个小型的示例程序,如果您需要更复杂的信息管理功能,可能需要进行更多的扩展和优化。