python作业统计管理系统
时间: 2023-06-29 12:08:56 浏览: 65
作业统计管理系统可以帮助老师轻松地管理学生的作业情况,以下是一个基于 Python 的简单作业统计管理系统的实现思路:
1. 定义学生类(Student),包括学生姓名、学号、作业提交情况等属性,以及添加作业、查看作业、修改作业等方法。
2. 定义作业类(Homework),包括作业名称、截止日期、作业完成情况等属性,以及修改作业状态等方法。
3. 定义作业统计管理系统类(HomeworkSystem),包括添加学生、添加作业、查看学生作业情况、修改学生作业情况等方法。
4. 使用文件存储学生和作业信息,可以使用 csv 或者 json 文件格式。
5. 实现命令行界面,使用 argparse 模块处理命令行参数。
下面是一个简单的实现示例:
```python
import csv
class Student:
def __init__(self, name, id):
self.name = name
self.id = id
self.homeworks = {}
def add_homework(self, homework_name, deadline):
self.homeworks[homework_name] = {'deadline': deadline, 'status': '未完成'}
def view_homework(self):
for homework, info in self.homeworks.items():
print(homework, info['status'])
def update_homework(self, homework_name, status):
self.homeworks[homework_name]['status'] = status
class Homework:
def __init__(self, name, deadline):
self.name = name
self.deadline = deadline
class HomeworkSystem:
def __init__(self):
self.students = {}
self.homeworks = {}
def add_student(self, name, id):
self.students[id] = Student(name, id)
def add_homework(self, name, deadline):
self.homeworks[name] = Homework(name, deadline)
def view_student_homework(self, id):
self.students[id].view_homework()
def update_student_homework(self, id, homework_name, status):
self.students[id].update_homework(homework_name, status)
def save_to_csv(self, file_name):
with open(file_name, 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['id', 'name', 'homework_name', 'deadline', 'status'])
for id, student in self.students.items():
for homework_name, homework_info in student.homeworks.items():
writer.writerow([id, student.name, homework_name, homework_info['deadline'], homework_info['status']])
def load_from_csv(self, file_name):
with open(file_name, 'r') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
if row['id'] not in self.students:
self.add_student(row['name'], row['id'])
if row['homework_name'] not in self.homeworks:
self.add_homework(row['homework_name'], row['deadline'])
self.update_student_homework(row['id'], row['homework_name'], row['status'])
if __name__ == '__main__':
import argparse
parser = argparse.ArgumentParser(description='Homework System')
parser.add_argument('--add-student', nargs=2, help='add student: name id')
parser.add_argument('--add-homework', nargs=2, help='add homework: name deadline')
parser.add_argument('--view-student-homework', nargs=1, help='view student homework: id')
parser.add_argument('--update-student-homework', nargs=3, help='update student homework: id homework_name status')
parser.add_argument('--save-to-csv', nargs=1, help='save to csv: file_name')
parser.add_argument('--load-from-csv', nargs=1, help='load from csv: file_name')
args = parser.parse_args()
system = HomeworkSystem()
if args.add_student:
system.add_student(args.add_student[0], args.add_student[1])
elif args.add_homework:
system.add_homework(args.add_homework[0], args.add_homework[1])
elif args.view_student_homework:
system.view_student_homework(args.view_student_homework[0])
elif args.update_student_homework:
system.update_student_homework(args.update_student_homework[0], args.update_student_homework[1], args.update_student_homework[2])
elif args.save_to_csv:
system.save_to_csv(args.save_to_csv[0])
elif args.load_from_csv:
system.load_from_csv(args.load_from_csv[0])
```
你可以根据自己的需求对代码进行修改和扩展,例如添加删除学生、删除作业等功能。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![py](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)