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

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())
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • -<LQA>- 2022-12-22 13:30
    关注

    可以先建立一个Student类

    class student():
         def __init__():
            pass
    

    然后建立一个小组列表

    class student():
         def __init__():
            all_student=[]
    

    再给列表五个学生

    class student():
         def __init__():
            all_student=[]
            for i in range(0,5):
              all_student.append({‘sno’:’202201’, ’name’:’张三’,’sex’:’男’, ’tel’:’12345678901’})
    

    最后可以直接用

    file=open("学生信息.txt","w")
    

    创建文件后再用

    file.write(all_student)
    

    file.read()
    

    进行读写操作,也可以单独建立student类的方法。

    评论
  • 木泽八 嵌入式领域优质创作者 2022-12-22 13:15
    关注
    评论
  • AllenGd 大数据领域优质创作者 2022-12-22 13:18
    关注
    评论
  • cyjbj 2022-12-22 13:41
    关注

    可以以学生的信息:学号、姓名、性别和电话等作为参数定义类student,连个方法read和write,基本就这么多功能

    评论
查看更多回答(4条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 电脑锁屏时vba运行SAP,excel数据不能复制到SAP
  • ¥50 74LS系列 74LS00 74LS04设计一个RS485电路(关键词-差分)
  • ¥30 各位help写一下代码
  • ¥15 在运行SDEdit模型下载不了
  • ¥15 求51控制l298n驱动的小车中超声波避障怎么写
  • ¥15 电脑连上WIFI却用不了
  • ¥30 MATLAB在RLC电路的固有响应和阶跃响应GUI仿真报告
  • ¥15 hyper-v出现的问题
  • ¥15 有能用的可加酬金,求可以批量下载懒人听书的软件,能登录自己帐号的。
  • ¥100 高博一起做RGB-D SLAM(5)VO无法出visualisation问题