啊彪是 2022-12-22 13:03 采纳率: 100%
浏览 122
已结题

Python求解!急!悬赏!

1.设计程序,将一组学生(5名学生为一组)相关信息(每个学生的信息包含:学号、姓名、性别和电话)以字典格式把相关内容写到“学生信息.txt”文件中,再将“学生信息.txt”文件内容全部读取显示。
学生的字典信息格式如下:
Stu_1={‘sno’:’202201’, ’name’:’张三’,
’sex’:’男’, ’tel’:’12345678901’}
2.设计并生成一个学生类(class),定义方法实现上题中“学生信息.txt”中学生信息的增加和查询功能。

  • 写回答

5条回答 默认 最新

  • 我不是idol 2022-12-22 13:48
    关注
    # 将学生信息以字典格式写入文件
    def write_stu_info_to_file(stu_list):
        # 打开文件,设置写入模式
        with open('学生信息.txt', 'w') as file:
            # 循环学生信息列表,将每个学生的信息写入文件
            for stu in stu_list:
                file.write(str(stu) + '\n')
    
    # 读取文件中的学生信息,并将其转化为字典格式
    def read_stu_info_from_file():
        # 创建空列表,用于存储读取到的学生信息
        stu_list = []
        # 打开文件,设置读取模式
        with open('学生信息.txt', 'r') as file:
            # 逐行读取文件内容
            for line in file:
                # 将每行文本转化为字典格式
                stu = eval(line)
                # 将学生信息添加到列表中
                stu_list.append(stu)
        # 返回读取到的学生信息列表
        return stu_list
    
    # 学生类
    class Student:
        # 构造函数,用于初始化学生信息
        def init(self, sno, name, sex, tel):
            self.sno = sno
            self.name = name
            self.sex = sex
            self.tel = tel
        
        # 增加学生信息的方法
        def add_stu(self):
            # 将学生信息以字典格式写入文件
            write_stu_info_to_file([self])
    
        # 查询学生信息的方法
        def query_stu(self):
            # 读取文件中的学生信息
            stu_list = read_stu_info_from_file()
            # 循环学生信息列表,查询指定学生信息
            for stu in stu_list:
                # 如果学号相同,则返回学生信息
                if stu['sno'] == self.sno:
                    return stu
                # 如果没有找到指定学号的学生,则返回空字典
                return {}
    
    # 测试代码
    if name == 'main':
        # 创建学生1对象
        stu1 = Student('202201', '张三', '男', '12345678901')
        # 增加学生1信息
        stu1.add_stu()
        # 创建学生2对象
        stu2 = Student('202202', '李四', '女', '12345678902')
        # 增加学生2信息
        stu2.add_stu()
        # 创建学生3对象
        stu3 = Student('202203', '王五', '男', '12345678903')
        # 增加学生3信息
        stu3.add_stu()
        # 查询学生1信息
        print(stu1.query_stu())
        # 查询学生2信息
        print(stu2.query_stu())
        # 查询学生3信息
        print(stu3.query_stu())
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月22日
  • 已采纳回答 12月22日
  • 创建了问题 12月22日

悬赏问题

  • ¥150 IED中开关量采样信号通道、以及程序流程的设计
  • ¥15 改动头文件造成的编译错误如何解决
  • ¥20 woocommerce 注册按键重定向
  • ¥100 求书法图像文字切割代码
  • ¥15 同一个波形探测距离不同的目标,为什么fft之后得到的频谱图会发生移动,不应该时移不改变幅度谱吗(标签-matlab)(相关搜索:matlab仿真)
  • ¥20 【初学者】comsol周期性电流如何设置?例如通电三天断电三天
  • ¥15 Proteus仿真程序只能执行一次
  • ¥15 语音识别websocket报错
  • ¥15 激光器,引脚问题,无法处理
  • ¥20 求写一份!只提交Mapper映射文件 如:UsersMapper.xml