课程信息管理系统
- Python
- 2024-06-25
- 133热度
- 0评论
导入必要的模块
import csv
这行代码导入了Python的csv
模块,用于处理CSV文件。
加载课程数据从CSV文件
def load_courses_from_csv(filename):
courses = []
with open(filename, 'r', newline='', encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
courses.append(row) # 将每一行作为一个列表添加到courses中
return courses
这个函数打开CSV文件,使用csv.reader
读取文件内容,并将每一行数据作为一个列表添加到courses
列表中。最后返回整个courses
列表。
保存课程数据到CSV文件
def save_courses_to_csv(filename, courses):
with open(filename, 'w', newline='', encoding='utf-8') as csvfile:
writer = csv.writer(csvfile)
for course in courses:
writer.writerow(course)
这个函数接收一个文件名和一个课程列表作为参数。它打开文件并创建一个csv.writer
对象来写入数据。然后,它遍历课程列表,并使用writerow
方法将每个课程(一个列表)写入CSV文件。
显示课程信息(按课程编号顺序)
def display_courses(courses):
for course in sorted(courses, key=lambda x: x[0]):
print(course)
这个函数接收一个课程列表,并使用sorted
函数按课程编号(列表的第一个元素)对课程进行排序。然后,它遍历排序后的列表并打印每个课程。
查询课程信息(按课程名查询)
def find_course_by_name(courses, course_name):
for course in courses:
if course[1] == course_name:
return course
return None
这个函数接收一个课程列表和一个课程名作为参数。它遍历课程列表,并检查每个课程的名称(列表的第二个元素)是否与目标课程名匹配。如果找到匹配的课程,它返回该课程;否则,返回None
。
主程序
def main():
# ...(加载数据,显示菜单,处理用户输入等)
if __name__ == "__main__":
main()
主程序首先加载课程数据,然后进入一个无限循环,显示菜单并等待用户输入。根据用户的输入,它调用相应的函数来处理请求(如显示课程、查询课程等)。当用户选择退出时,它保存课程数据并结束程序。
安全性考虑和扩展功能
- 密码验证:在实际应用中,你可能希望为修改和删除操作添加密码验证。这可以通过在相应函数之前添加密码检查来实现。
- 修改和删除课程:上述示例没有包含修改和删除课程的功能。你可以添加额外的函数来处理这些操作,并在主程序中添加相应的菜单选项。
- 用户界面:为了更友好的用户体验,你可以考虑使用图形用户界面(GUI)库(如Tkinter、PyQt等)来创建用户界面,而不是仅使用命令行界面。
- 错误处理:为了提高程序的健壮性,你可以添加错误处理代码来捕获和处理可能发生的异常,如文件读取错误、无效的用户输入等。
- 其他功能:你还可以根据需要添加其他功能,如按课程性质查询、按学分排序、导入/导出数据等。