# python第二次作业 **Repository Path**: xiang-junjie07/python-second-assignment-1 ## Basic Information - **Project Name**: python第二次作业 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-29 - **Last Updated**: 2026-03-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # python第二次作业 项目说明文件 向俊杰25309114第二次人工智能编程作业 1. 任务拆 解与 AI 协作策略 在编写代码前 ,我将这个大任务拆解为以下步骤 ,并与 AI 协作完成: 1.初次使用模糊prompt让AI生成demo 让ai根据实现那学生信息管理系统prompt生成代码,但发现存在未使用opp问题,于是开始拆解框架 2.规划项目框架和技术文档 首先让 AI 分析需求 ,设计项目结构和类结构,确定将项目拆分为几个文件 确定需要实现的功能模块和方法 编写技术文档 ,明确各个模块的实现思路,交给我审阅修改 3.实现核心数据类 让 AI 创建 Student 数据类 ,实现__init__和__str__ 方法 确保数据类能够正确存储和展⽰学生信息 4.实现逻辑控制类 让 AI 创建 ExamSystem 逻辑控制类 ,实现初始化、加载数据、查找学生、随机点名、生成考安排表和生成准考证文件等功能 确保逻辑控制类能够正确处理各种您常情况 5.实现主程序逻辑 让 AI 修改 main.py 文件,实现用户交互菜单 确保主程序能够调用 ExamSystem 的各种方法 ,实现完整的系统功能 6.测试和调试 让 AI 测试系统功能 ,确保所有功能正常运行 解决测试过程中遇到的编码错误和其他问题 2. 核心 Prompt 迭代记录 初始化Prompt: "帮我实现一个学生信息管理系统 ,包括信息初始化与查找、随机点名、生成考场安排表和生成准考证文件等功能。" AI 生成的问题 没有使用面向对象编程 代码健壮性不足,未处理输入异常与文件路径问题 使用了未授权的第三方库 优化后的 Prompt (追问): 帮我实现一个学生信息管理系统 ,要求: 1.使用面向对象编程 2. 只使用 Python 标准库 ,如 os, random, time 3. 注意代码健壮性,能够处理异常 4. 实现信息初始化与查找、随机点名、生成考场安排表和生成准考证文件等功能 5. 系统启动时读取文本文件 ,用户输入学号可打印学生完整信息 6. 用户输入点名数量 ,系统返回对应数量的不重复随机学生名单 7. 将学生顺序随机打乱 ,输出考场安排表 8. 创建准考证文件夹 ,生成独立的准考证文件 3. Debug 报错类型/漏洞现象 发现存在生成内容在ide内出现乱码情况 解决过程: 1. 我发现测试在读取学生名单文件时出现编码错误 2. 分析发现环境的默认编码可能是 gdk标准 ,导致处理中文字符 3. 最终解决方案: 为所有文件添加 UTF-8 编码声明 添加硬编码的测试数据 ,跳过文件读取步骤 将所有中文字符改为英文 ,避免编码错误 修改方法名 ,确保不包含中文字符 4.人工代码审查 以下是ExamSystem类中的generate_exam_schedule方法的核心逻辑代码及人工注释: ```python def generate_exam_schedule(self): #生成考试时间表 shuffled_students = self.students.copy()#复制链表中的学生对象 避免修改原始学生对象 random.shuffle(shuffled_students)#随机打乱学生顺序 current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) #获取当前时间 并格式化为字符串 with open("exam_schedule.txt", "w", encoding="utf-8") as f:#打开文件 f.write(f"Generated time: {current_time}\n")#写入生成时间 f.write("Seat No.\tName\tStudent ID\n")#写入表头 for i, student in enumerate(shuffled_students, 1):#遍历随机打乱的学生学生 f.write(f"{i}\t{student.name}\t{student.student_id}\n")#写入每个学生的座位号 姓名 学号 return shuffled_students#返回随机打乱的学生学生列表 def generate_admission_tickets(self): #生成准考证 shuffled_students = self.generate_exam_schedule()#生成考试时间表 并返回随机打乱的学生学生列表 # 如果不存在 则创建一个 if not os.path.exists("admission_tickets"): os.makedirs("admission_tickets") for i, student in enumerate(shuffled_students, 1):#遍历学生 file_name = os.path.join("admission_tickets", f"{i:02d}.txt") with open(file_name, "w", encoding="utf-8") as f:#打开文件 f.write(f"Seat No.: {i}\n")#写入座位号 f.write(f"Name: {student.name}\n")#写入姓名 f.write(f"Student ID: {student.student_id}\n")#写入学号 ``` 经过人工代码审查与代码人工注释完成代码review收尾