程序设计题:红楼梦人物分析系统
出题人:薛景
面向专业:生物医学工程
难度等级:3
《红楼梦》是中国古典四大名著之一,其中人物关系错综复杂、耐人寻味。本课题要求编写一个程序,实现对《红楼梦》中的主要人物进行分析,包括出场次数、人物的亲密度等等。
人物的亲密度可以通过计算在同一篇幅中共同出现的频率进行计算。
2.1 基本要求
要能提供以下几个基本功能:
(1)系统内小说主体和小说主要人物请自行从互联网上进行搜索下载,并保存在文本文件中,待分析人物由用户从键盘上输入;
(2)设计并实现系统的相关界面;
(3)分析数据时读取保存的文本文件进行分析;
(4)可以按照要求进行数据排序,包括:按出场次数从多到少排序、按篇幅跨度从大到小排序、按与其他人物的关系密度从高到低排序等等;
(5)可以根据用户输入单独查询某位主人公的分析结果;
(6)输入查询人物的分析结果,包括:出场次数、篇幅跨度、与其他人物的关系密度。
2.2 选做要求
(1)保存功能:能够将用户看到的结果按其需求保存到指定位置或覆盖已有文本文件。
(2)异常处理与读取功能:在读取默认位置的文件出错时,能够按用户选择读取新的小说文本文件,增加程序的健壮性。
2.3 提示
(1)因为小说中的人物存在别名,实现过程中可以用正则表达式来在文本中寻找。
(2)程序的总体框图如下:
图1红楼梦人物分析系统总体框图
(3)数据结构:
依据选定的小说主要人物,定义人物的结构体,设计内容如下:
struct Role{ //人物信息 char ID[20]; //编号 char name[20]; //姓名 int times; //出现次数 int freq; //账户频率 }
2.4 其他要求
(1)在上述功能要求的基础上,为了提高成绩,可以添加一些额外的功能。
(2)变量、方法命名符合规范。
(3)注释详细:每个变量都要求有注释说明用途;方法有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。
(4)程序的层次清晰,可读性强。
可以选择TC2.0、TC3.0、VC++6.0等开发环境,或者与老师讨论,选择自己熟悉的开发工具与平台。
传送门:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111