【楚怡杯】职业院校技能大赛 “Python程序开发”赛项样题三

Python程序开发实训

(时量:240分钟)

中国·XX

实训说明

  • 注意事项

1. 请根据提供的实训环境,检查所列的硬件设备、软件清单、材料清单是否齐全,计算机设备是否能正常使用。

2. 实训结束前,在实训平台提供的虚拟机中,根据题目将各个代码进行完善整合,并运行;根据实训平台左侧的答题区进行答题,根据题目对运行代码及结果进行截图。

3. 实训结束后,请将报告区的实训报告进行提交操作,实训报告在实训结束前可重复提交。

  • 实训环境

1. PC机:系统已安装Python相关环境、MySQL数据库,数据库用户名和密码分别为:root/123456。

2. 根据题目说明,从实训平台虚拟机桌面获取程序开发项目工程代码包。桌面的工程代码可以直接使用虚拟机中的Pycharm导入、编译、运行和发布。

  • 题目说明

本套题目包括五个部分:

第一部分为程序开发,第二部分数据获取,第三部分为数据清洗, 第四部分为数据处理,第五部分为数据可视化。请考生根据题目中所描述的需求编码实现功能。

题目

第一部分:程序开发(30分)

第1题:实现管理员登录功能(4.5分)

【任务要求】

本任务需要实现管理员登录功能,如果登录成功,进入首页,否则提示登录失败。

【任务描述】

  1. 登录页面如图1-1所示,帐户信息(用户名:admin,密码:admin)。
  2. 补充login函数代码,实现登录功能,即当管理员填写完登录信息以后,如果登录信息正确,进入登录首页。
  3. 将补全的代码截图复制粘贴至提交结果文档,将登录成功后进入的页面截图提交至结果文档。
  4. 截图页面需要包含完整的url链接。

【工程代码】

从虚拟机桌面 “Python开发实训/01工程代码/01程序开发/01工程代码”文件夹中获取程序开发项目工程代码。

【API接口】

接口名称

API

登录 API

http://127.0.0.1:8080/user/login

电脑萤幕画面  低可信度描述已自动生成

图1-1 登录面

第2题:实现学生信息查询功能(10分)

【任务要求】

本任务需要实现如下功能:在学生信息界面,展示学生信息;并以学生学号或手机号为条件实现查询功能。

【任务描述】

  1. 登录学生信息管理网站(用户名:admin,密码:admin),登录页面如图1-1所示,进入首页。
  2. 补充student_index函数代码,按id降序排列,返回学生信息,并以每页10条数据进行分页,展示第1页、第5页数据。将补全的代码截图复制粘贴至提交结果文档,将展示的第1页、第5页的页面截图提交至结果文档。
  3. 补充student_index函数代码,实现按学号或手机号查询学生信息功能,查询学号为11038738的学生信息和电话为13158447573的学生信息。将补全的代码截图复制粘贴至提交结果文档,将展示的学号为11038738的学生信息页面和展示的电话为13158447573的学生信息页面截图提交至结果文档。
  4. 截图页面需要包含完整的url链接。

【工程代码】

从虚拟机桌面 “Python开发实训/01工程代码/01 程序开发/01 工程代码”文件夹中获取程序开发项目工程代码。

【API接口】

接口名称

API

查询学生信息 API

http://127.0.0.1:8080/health/student_index/

第3题:实现编辑学生信息功能(10分)

【任务要求】

本任务需要实现如下功能:在学生管理-新增学生页面新建学生信息,在学生列表页面中,选择操作下的编辑功能,编辑指定学生信息的个人信息。

【任务描述】

  1. 登录学生信息管理网站(用户名:admin,密码:admin),登录页面如图1-1所示,进入首页。
  2. 补充student_create函数代码,实现新增学生信息功能,并新增一个学生信息,学号为11012345,姓名为张三,电话为13111223344,地址为湖南省长沙市橘子洲,院系为信息工程学院,专业为软件工程。新增完成后,在health/student_index/页面可以看到新增学生信息。将补全的代码截图复制粘贴至提交结果文档,将在health/student_index/页面查看到的新增学生张三的信息页面截图提交至结果文档。
  3. 补充student_update函数代码,实现编辑学生信息功能,编辑李金凤的个人信息,把电话号码修改为13511223344,把地址修改为四川省成都市天府广场。修改完成后,在health/student_index/页面可以看到修改后的学生信息。将补全的代码截图复制粘贴至提交结果文档,将在health/student_index/页面查看到的修改学生李金凤的信息页面截图提交至结果文档。
  4. 补充student_delete函数代码,实现删除学生功能,并删除张秀芳的学生信息。将补全的代码截图复制粘贴至提交结果文档,删除张秀芳学生信息之后将学生信息首页页面截图提交至结果文档。
  5. 截图页面需要包含完整的url链接。

【工程代码】

从虚拟机桌面 “Python开发实训/01工程代码/01 程序开发/01 工程代码”文件夹中获取程序开发项目工程代码。

【API接口】

接口名称

API

新建学生信息 API

http://127.0.0.1:8080/health/student_create/

修改学生信息 API

http://127.0.0.1:8080/health/student_update/

删除学生信息 API

http://127.0.0.1:8080/health/student_delete/

第4题:实现查询存在健康风险的学生功能(5.5分)

【任务要求】

本任务需要实现如下功能:健康管理-风险信息页面实现查询存在健康风险的学生功能。

【任务描述】

  1. 登录学生信息管理网站(用户名:admin,密码:admin),登录页面如图1-1所示,进入首页。
  2. 补充health_risk函数,实现筛选存在健康风险学生信息功能,返回所有在2021.12.02(包括12.02)-2021.12.17(包括12.17)时间段内,有新冠肺炎症状或途径风险区或体温大于等于37度的学生,且按申报时间降序排列。将补全的代码截图复制粘贴至提交结果文档,将健康风险学生信息查询页面截图提交至结果文档。
  3. 截图页面需要包含完整的url链接。

【工程代码】

从虚拟机桌面 “Python开发实训/01工程代码/01 程序开发/01 工程代码”文件夹中获取程序开发项目工程代码。

【API接口】

接口名称

API

存在健康风险学生信息 API

http://127.0.0.1:8080/health/health_risk/

第二部分:数据获取(20分)

第5题:利用urllib库和BS4抓取疫情数据。

【任务要求】

基于Python爬虫代码从指定静态网页中抓取全球国家疫情数据,爬取内容包括:国家、现存确诊、累计确诊、死亡、治愈。再将爬取的数据写入数据库中。

【任务描述】

1、完善Task.py的内容,并将函数内容复制粘贴至提交结果文档。

1)getHtml()函数用于发送请求,解析html网页,请将完整的getHtml()函数截图复制粘贴至提交结果文档。

2)getData()函数使用beautifulSoup中的方法,从html网页中获取全球的国家名称、现存确诊人数、累计确诊人数、死亡人数、治愈人数,将获取到的数据保存到列表中,将此列表以参数形式传递到下一个函数。请将完整的getData()函数内容截图复制粘贴至提交结果文档。

3)函数toMysql()创建MySql数据库链接,将获取到的数据写入到数据表中(数据表需要使用sql指令自行创建)。请将完整的toMysql()函数内容截图复制粘贴至提交结果文档。

2、运行代码,使用SQL命令查看数据表前40条数据和最后40条数据, 将查看结果复制粘贴至提交结果文档

【工程代码】

从虚拟机桌面 “Python开发实训/01工程代码/02 数据获取/05 工程代码”文件夹中获取数据获取项目工程代码。

第三部分:数据清洗(15分)

第6题:使用Pandas对疫情数据进行清洗分析(15分)

【任务要求】

利用Pandas函数完成对疫情数据进行清洗,包括数据缺失值的查找、重复数据处理、缺失数据替换和删除等。

【任务描述】

1、数据说明:

数据一共五列,分别为国家名称,省份名称,更新时间,城市名称,城市确诊人数。

2、完善Num06.py文件中的内容,并将函数内容截图提交至结果文档。

  1. getNumberofData()函数用于获取data共有多少条数据。
  2. checkMissingData()函数用于检查数据集中缺失的数据项,请将完整的checkMissingData()函数截图提交至结果文档。
  3. NanFilling()函数用于对缺失的数据项进行填补,请将完整的NanFilling()函数截图提交至结果文档。
  4. DeleteRedundantData()函数用于对冗余数据进行删除,请将完整的DeleteRedundantData()函数截图提交至结果文档。
  5. deleteMissingData()函数用于对缺失的数据项进行删除,请将完整的deleteMissingData()函数截图提交至结果文档。
  6. 完成主函数代码,通过代码实现结果保存,查看前10条和后10条数据,请将完整的主函数截图提交至结果文档。
  7. 打开保存的文件查看结果内容,并截图提交至结果文档。

【工程代码】

从虚拟机桌面 “Python开发实训/01工程代码/03 数据清洗/06 工程代码”文件夹中获取数据清洗项目工程代码。

第四部分:数据处理(20分)

第7题:使用re模块对疫情数据进行处理(10分)

【任务要求】

使用re模块,结合正则表达式来筛选符合要求的数据。

【任务描述】

1、数据说明:

从2019年末到2020年初,从武汉到全国,新冠肺炎疫情持续发展,中国战“疫”一刻不歇,该文档按行收录了疫情相关信息及口号。

2、完善Num07.py文件中内容,并将函数内容截图复制粘贴至提交结果文档。

  1. data_pro()为数据处理函数,读取同级目录下待处理的txt文件,按行处理进行规则匹配,保留中英文及数字(\u4e00和\u9fa5是Unicode值,分别表示中文字符的头和尾),将符合要求的数据进行无分隔符的拼接,并按行写入当前目录下’数据处理后结果.txt’文件内。请将完整的data_pro()函数截图复制粘贴至提交结果文档。
  2. 结果运行并保存,打开保存的文件查看数据处理后的结果,将结果截图,并将截图提交至结果文档。

【工程代码】

从虚拟机桌面 “Python开发实训/01工程代码/04 数据处理/07 工程代码”文件夹中获取数据处理项目工程代码。

第8题:使用os模块对疫情数据进行处理(10分)

【任务要求】

使用os模块,实现文件路径的切换及查找等。

【任务描述】

1、完善Num08.py文件中内容,并将结果按要求提交至结果文档。

  1. search_file()作用为寻找符合要求的文件的路径,要查找的文件类型为txt和jpg,找出指定路径下所有符合要求的文件的路径,将结果添加进事先创建好的列表file_list中。

请将完整的search_file()函数截图提交至结果文档。

  1. save_file()为保存文件的函数,将指定文件存放在当前目录下RES文件夹内,若不存在该路径则写代码创建该路径,将file_list的结果按行写入文件夹内fileList.txt文件下请将完整的save_file()函数截图复制粘贴至提交结果文档。
  2. 结果运行并保存,打开保存的文件查看数据处理后的结果,将结果截图,并将截图提交至结果文档。

【工程代码】

从虚拟机桌面 “Python开发实训/01工程代码/04 数据处理/08 工程代码”文件夹中获取数据处理项目工程代码。

任务五:数据可视化(15分)

第9题:使用Matplotlib对疫情数据进行可视化展示(8分)

【任务要求】

编写Python程序,使用Matplotlib对疫情相关数据进行分析并进行可视化展示,并按要求存放数据分析和可视化结果。

【任务描述】

1、折线图说明

  1. 完善Num09.py文件中plt_img1()函数代码绘制折线图,数据为当前目录下的cs_area.csv文件,根据更新时间和城市确诊数量绘图:

①、需创建画布,指定大小为(15,5)

②、绘制标题(长沙市疫情走势),字体大小指定为20

③、添加X轴标签和Y轴标签分别为更新时间、城市确诊人数,均指定字体大小为12

④、绘制折线图,必须指定线的风格为‘-’,颜色指定为‘#68BFCF’

⑤、在每个数据对应的坐标点处绘制一个点,颜色指定为‘#DF927C’,点的大小指定为20,并在每个坐标点旁显示其对应的Y值大小(x轴方向偏左0.1,y轴方向偏上0.2)

⑥、绘制网格线

⑦、保存图片到当前目录下文件名为img_1.jpg,并显示图片请将完整的plt_img1()函数截图提交至结果文档。

  1. 输出折线图,将可视化结果截图并保存至提交结果文档。
  2. 参考图如下:

2、柱状图说明

1)完善Num09.py文件中plt_img2()函数代码绘制柱状图,数据 为当前目录下cs_area.csv,根据更新时间和城市确诊数量绘 图:

①、需创建画布,指定大小为(15,5)

②、绘制标题(长沙市确诊人数),字体大小指定为20

③、添加X轴标签和Y轴标签分别为更新时间、城市确诊人数,均指定字体大小为12

④、设置Y轴刻度(0,300),并显示刻度值(0,100,200)

⑤、根据XY值绘制柱状图,一共7条数据,指定颜色为['#DF927C','#A3C272','#FED863','#68BFCF','#1585DB','#D84F50','#C2E67F'],宽度指定为0.3

⑥、在每个柱状图上方(X轴方向偏左0.02,Y轴方向偏上0.8),显示其对应Y值得大小,指定为int类型

⑦、绘制网格线

⑧、保存图片到当前目录下文件名为img_2.jpg,并显示图片

请将完整的plt_img2()函数截图提交至结果文档。

2)输出柱状图,将可视化结果截图并保存至提交结果文档。

3)参考图如下:

3、饼图说明

1)完善Num09.py文件中plt_img3()函数代码绘制饼图,数据为 当前目录下hn_area.csv,根据城市名称和城市确诊数量绘图:

①、需创建画布,指定大小为(10,10)

②、绘制标题(湖南省各地区疫情确诊人数占比),字体大小指定为20

③、根据城市名称和城市确诊数量绘制饼图,占比显示设置为两位小数

④、添加图例,位置放在右上方

⑤、保存图片到当前目录下,文件名为img_3.jpg,并显示图片

请将完整的plt_img3()函数截图提交至结果文档。

2)输出饼图,将可视化结果截图并保存至提交结果文档。

3)参考图如下:

【工程代码】

从虚拟机桌面 “Python开发实训/01工程代码/05 数据可视化/09 工程代码”文件夹中获取数据可视化项目工程代码。

第10题:使用wordcloud对疫情数据进行可视化展示(7分)

【任务要求】

使用wordcloud模块,实现词云图的绘制。

【任务描述】

  1. 词云图说明

1)完善Num10.py文件中plt_img4()函数代码绘制词云图,数据为当前目录下convid.txt

①、取好数据后进行words=jieba.lcut(data)处理,将处理后的数据words进行无分隔符的拼接生成新字符。

②、成wordcloud对象,字体指定为msyh.ttc,宽指定为1100,高指定为860,背景颜色指定为白色

③、根据步骤①把处理好的文本生成词云

④、把生成的词云图保存到当前目录下,文件名为img_4.jpg

请将完整的plt_img4()函数截图提交至结果文档。

2)输出词云图,将可视化结果截图并保存至提交结果文档。

【工程代码】

从虚拟机桌面 “Python开发实训/01工程代码/05 数据可视化/10 工程代码”文件夹中获取数据可视化项目工程代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我不懂竞赛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值