写一个Python程序,学生选课系统,代码要包含序列、字典、模块、类、第三方模块的安装与使用等方面
时间: 2023-07-04 07:29:04 浏览: 106
好的,以下是一个简单的Python学生选课系统,实现了序列、字典、模块、类、第三方模块的安装与使用:
首先,我们需要安装一个第三方模块 prettytable,用于在终端输出表格。
```python
pip install prettytable
```
然后,我们创建一个名为 student.py 的模块,其中包含一个名为 Student 的类,用于表示一个学生的信息,包括姓名、学号、已选课程等。
```python
# student.py
class Student:
def __init__(self, name, id):
self.name = name
self.id = id
self.courses = []
def add_course(self, course):
self.courses.append(course)
def remove_course(self, course):
self.courses.remove(course)
```
接下来,我们创建一个名为 course.py 的模块,其中包含一个名为 Course 的类,用于表示一门课程的信息,包括课程名称、课程编号、授课老师、已选学生等。
```python
# course.py
class Course:
def __init__(self, name, id, teacher):
self.name = name
self.id = id
self.teacher = teacher
self.students = []
def add_student(self, student):
self.students.append(student)
student.add_course(self)
def remove_student(self, student):
self.students.remove(student)
student.remove_course(self)
```
接下来,我们创建一个名为 main.py 的主程序,用于实现学生选课系统的各项功能。
首先,我们定义一个列表 courses,用于存储所有课程的信息。
```python
# main.py
from student import Student
from course import Course
courses = []
```
然后,我们定义一个函数 add_course,用于添加新课程的信息。
```python
def add_course():
name = input("请输入课程名称:")
id = input("请输入课程编号:")
teacher = input("请输入授课老师:")
course = Course(name, id, teacher)
courses.append(course)
print("添加成功!")
```
接下来,我们定义一个函数 show_courses,用于显示所有课程的信息。
```python
from prettytable import PrettyTable
def show_courses():
x = PrettyTable(["课程名称", "课程编号", "授课老师", "已选学生"])
for course in courses:
students = ", ".join([student.name for student in course.students])
x.add_row([course.name, course.id, course.teacher, students])
print(x)
```
然后,我们定义一个函数 add_student,用于添加新学生的信息。
```python
def add_student():
name = input("请输入学生姓名:")
id = input("请输入学生学号:")
student = Student(name, id)
print("请选择课程,输入 q 退出:")
for i, course in enumerate(courses):
print(f"{i+1}. {course.name}")
while True:
choice = input("请输入课程编号:")
if choice == "q":
break
try:
index = int(choice) - 1
course = courses[index]
course.add_student(student)
print(f"{student.name} 选修了 {course.name}")
except:
print("输入有误,请重新选择!")
```
接下来,我们定义一个函数 remove_student,用于删除学生的选课信息。
```python
def remove_student():
id = input("请输入学生学号:")
for course in courses:
for student in course.students:
if student.id == id:
course.remove_student(student)
print(f"{student.name} 退选了 {course.name}")
return
print("未找到该学生!")
```
最后,我们定义一个函数 menu,用于显示主菜单,接受用户输入并执行相应的功能。
```python
def menu():
while True:
print("=============== 学生选课系统 ===============")
print("1. 添加课程信息")
print("2. 显示所有课程信息")
print("3. 添加学生信息并选课")
print("4. 删除学生选课信息")
print("5. 退出系统")
choice = input("请输入功能编号:")
if choice == "1":
add_course()
elif choice == "2":
show_courses()
elif choice == "3":
add_student()
elif choice == "4":
remove_student()
elif choice == "5":
print("谢谢使用,再见!")
break
else:
print("输入有误,请重新输入!")
```
最后,我们在主程序中调用函数 menu,启动学生选课系统。
```python
if __name__ == "__main__":
menu()
```
现在,我们就可以在终端中运行 main.py,体验学生选课系统的各项功能了。
阅读全文