课程信息管理系统

导入必要的模块

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等)来创建用户界面,而不是仅使用命令行界面。
  • 错误处理:为了提高程序的健壮性,你可以添加错误处理代码来捕获和处理可能发生的异常,如文件读取错误、无效的用户输入等。
  • 其他功能:你还可以根据需要添加其他功能,如按课程性质查询、按学分排序、导入/导出数据等。