2023(春) 软工作业 2:个人编程项目PSP

juking 老师 2023-03-14 08:22:59

实验名称:个人编程项目练习

 

一、实验目的

+   体验个人能力过程PSP

+   简单编程训练

二、实验内容

Step1: 到 以下网站:https://gitcode.net/ntu/SET,下载 红楼梦.txt 文件。如图:

 Step2:阅读理解以下编程任务,并估计完成这些任务需要的时间,填表写PSP表中预估耗时(时间单位:分钟)

              (PS:先不要看后面的附录部分的提示代码,尽量自己完成。实在不会,可以参考后面的代码)

          Task1:分割章回。一共120回。

          Task2:情感分析,即计算每章回出现 悲、喜次数。可以用"笑"、"喜" 等同义词表示喜;用"悲"、"哭"、"泣"等同义词表示悲。

          Task3:计算每个章回里面,典型人物出现的次数。如刘姥姥、王熙凤等。

  PSP表格如下:

Step3:按照PSP表格,分14个阶段完成以上编程任务,并填写PSP表的实际耗时一列(单位:分钟)。

Step4:附上本次实验的代码,并加以说明。建议:采用 http://gitcode.net 网站托管实验代码,并附上项目的链接。

Step5:写出这次实验与以往编程练习不同之处,感受(体会)、经验教训等。

 

三、附录:参考代码(Python实现)

#Task1: 分割章回
f = open('红楼梦.txt','r',encoding='utf-8') 
s = f.read()
import re
lst_chapter = []
chapter = re.findall("第[\u4E00-\u9FA5]+回", s)#"第([\u4E00-\u9FA5]+)回"返回第和回中间的内容
for x in chapter:
    if x not in lst_chapter and len(x)<=5:
        lst_chapter.append(x)
print(lst_chapter)
lst_start_chapterindex = []
for x in lst_chapter:
     lst_start_chapterindex.append(s.index(x))
print(lst_start_chapterindex)
lst_end_chapterindex = lst_start_chapterindex[1:]+[len(s)]
lst_chapterindex=list(zip(lst_start_chapterindex,lst_end_chapterindex))
print(lst_chapterindex)

#Task2:计算每回苦笑悲喜次数
cnt_laugh=[]
cnt_cry=[]
for ii in range(120):
    start=lst_chapterindex[ii][0]
    end=lst_chapterindex[ii][1]
    cnt_laugh.append(s[start:end].count("笑")+s[start:end].count("喜"))
    cnt_cry.append(s[start:end].count("哭")+s[start:end].count("悲"))


#Task3:计算每回刘姥姥出现次数
cnt_liulaolao=[]
for ii in range(120):
    start=lst_chapterindex[ii][0]
    end=lst_chapterindex[ii][1]
    cnt_liulaolao.append(s[start:end].count("刘姥姥"))

 

...全文
964 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
0人已提交
完成率0%
暂无数据
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

198

社区成员

发帖
与我相关
我的任务
社区描述
用于软件工程专业的课程教学,讲义、视频、资料、问题讨论 鞠小林老师、蒋峥峥老师,欢迎您的到来!
社区管理员
  • juking@ntu
  • qinzuibaozi
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

只讨论科学和技术问题

试试用AI创作助手写篇文章吧