【练习5】统计学生的签到信息

现有一个数据库记录文件(见附件0005_1.txt),保存了学生课程签到的数据库记录。 内容格式如下 ,
(‘2017-03-13 11:50:09’, 271, 131),
(‘2017-03-14 10:52:19’, 273, 131),
(‘2017-03-13 11:50:19’, 271, 126),
每一行记录保存了学生的一次签到信息。
每一次签到信息的记录,分为三个部分, 分别是签到时间、签到课程的id号、签到学生的id号
要求大家实现下面的函数。其中参数fileName为数据库记录文件路径,
输出结果是将数据库记录文件中的学生签到信息保存在一个字典对象中,并作为返回值返回。
def putInfoToDict(fileName):
要求返回的字典对象的格式是这样的:
key(各个学生的id号
value(该学生的签到信息)
其中value,里面保存着该学生所有签到的信息,其中每个签到的信息是字典对象,有两个元素:
key是lessonid的记录课程id,key是checkintime的记录签到时间
比如,对于上面的示例中的3条记录,相应的返回结果如下:
在这里插入图片描述

题目分析:

  • 观察需求,需要将给出的内容分别提出学生id,课程id,签到时间
  • 目标内容为字典形式,key为学生id,Value为课程id和签到时间组成的列表
  • 可以写一个函数,按照key值进行新增或更新Value值,而更新Value值是可用到列表的追加
  • 最后写一个循环遍历给出的内容,并调用函数,将数据写入字典中
import pprint
def putInfoToDict(fileName):
    dict1 = {}
    with open (fileName,'r+',encoding='UTF-8') as f1:
        info_list = f1.read().split('\n')
        for one in info_list:
            one = one.strip('\t').strip(' ').strip(',').strip('(').strip(')')
            time,lessonId,stuId = one.split(',')
            time = time.strip(' ').strip("\'")
            lessonId = int(lessonId.strip(' '))
            stuId = int(stuId.strip(' '))

            if stuId not in dict1.keys():   # 如果不存在,则定义空列表
                dict1[stuId]=[]
            dict1[stuId].append({'lessonid': lessonId, 'checkintime': time})

    return dict1

pprint.pprint(putInfoToDict('D:/0005_1.txt'))

执行结果:

{126: [{'checkintime': '2017-03-13 11:50:19', 'lessonid': 271}],
 131: [{'checkintime': '2017-03-13 11:50:09', 'lessonid': 271},
       {'checkintime': '2017-03-14 10:52:19', 'lessonid': 273}]}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基于Qt设计的学生签到系统,是一款方便学校管理学生出勤情况的软件。该系统主要包括学生信息管理、课程表管理、签到管理等功能。 系统的学生信息管理模块,可以用来录入和管理学生的个人信息,包括姓名、学号、班级、联系方式等。管理员可以通过该模块查看学生信息,并进行添加、编辑和删除操作。 课程表管理模块允许管理员创建和编辑学生的课程表。管理员可以设置每门课程的上课时间、地点和教师等信息学生可以通过该模块查看自己的课程表,并进行查询和调整。 签到管理模块是系统的核心功能,它可以记录学生签到情况。学生可以通过扫描二维码或手动输入签到码进行签到签到成功后,系统会记录该学生签到时间和地点,并在界面上显示签到状态。管理员可以通过该模块查看和导出学生签到记录,方便进行统计和分析。 此外,系统还提供了数据分析和报表生成功能。管理员可以通过相关功能,对学生签到情况进行统计和分析,以便及时发现和解决学生出勤问题。系统还具备数据备份和恢复功能,以确保数据安全。 基于Qt设计的学生签到系统,具有界面简洁、操作便捷、功能丰富的特点。它的使用可以减轻学校的管理工作负担,提高学生的出勤率,并为学校提供了一种高效的管理工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值