# word-counter **Repository Path**: wangqiyuejava63/word-counter ## Basic Information - **Project Name**: word-counter - **Description**: 基于Linux list_head 双链表,统计单词出现的频次并排序输出 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-30 - **Last Updated**: 2025-06-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Linux 课程 期末测试 ## 第一题(60分),统计单词出现的频次并排序输出 ### 要求: 1. 采用C语言,独立设计系统功能结构、模块,独立完成开发。 2. 必须采用Linux 内核重要的容器 **list_head** 存储重要信息,其他容器可选; 3. 结果屏幕截图采用 **白底黑字** 模式 ### 基本功能要求及评分标准: #### 文章格式 1)读入与 Linux 相关的英文文章(每个同学自己从网上下载, 文件名称作 为参数, 统一转换为文本文件), 文章不少于 2000 单词,保留文章的 段落结构, 可以去掉空行,但读入前不得全部转化为一行; #### 词汇格式 2)统计不同单词在文章中出现的频次,不统计虚词(例如 a、 the、this、 of 等),如果结果中统计了虚词, 每出现一个扣 2 分;同一单词不同时 态、单复数可作不同单词处理,这样处理最高分不超过 80%,如果能自动 辨别同一单词不同时态、单复数,并把它们作为同一单词处理,最高90%。 #### 模块化 3)主要功能采用函数方式实现,题目图中函数仅供参考,可以自己设计;没 有模块化成绩最高80%; #### list_head 容器 4)采用C语言,从Linux源代码中提取list-head及相关的宏到工程,其他 的容器可自行设计,只要有一组信息用list-head组织即可; #### 排序 5)根据参数 N 按照从高到低顺序格式化输出前 N 个单词出现的频次及比 例, 默认前 50 个单词, 尽可能使得输出美观和具有一定可视化效果 (有可视化可到95%)。 #### 进阶 6)鼓励通过参数方式增加选项和功能, 例如图表格式等, 这将获得加分, 最高可得98%。 #### 报告 7)纸质报告中无需附完整源代码,完整源代码提供 RAR 文件, 或者网上 github 方式。 纸质报告中重点说明技术路线、 符合软件工程规范的图 表, 每个图表要有相应的文字说明,只要提供算法伪码或者代码的核心部 分,具体参考数据结构教材。 8)提交的报告包含:题目和要求、实现思路(重点是系统构架、功能流程图、 实现伪代码等)、核心代码(不要求附完整代码,完整代码作为附件)、如 果只有代码和简单的界面截图,成绩不超过80%。 #### 诚信 9)代码雷同者(包含但不限于简单变换排版、部分代码整理成函数、简单循 环方式变换等,但总体思路和模式一致)成绩一律为0 10) 用AI完成成绩一律为0。 11) 对结果进行分析,给出亮点,不足和改进之处可适当加 分。 ## 第二题(40分),采用Shell实现第一题的功能 ### 要求: 1) 写出基本的实现思路(20分)。 2) 采用非冒泡排序算法; 3) 主要功能采用函数方式实现,题目图中函数仅供参考,可以自己设计; 4) 主代码调用函数 ### 评分标准 1)所有代码放在一个文件shell文件里,没有模块化最高75% 2)代码雷同者(包含但不限于简单变换排版、部分代码整理成函数、简单循环 方式变换等,但总体思路和模式一致)成绩一律为0 3)用AI完成成绩一律为0。 4)用shell 实现非冒泡排序算法,简单采用系统sort命令和工具,通过管道实 现的最高70%;