Qt+C/C++文章小说人物关系分析

news2024/11/17 6:51:30

 程序示例精选

Qt+C++文章小说人物关系分析

如需安装运行环境或远程调试,见文章底部微信名片,由专业技术人员远程协助!

前言

这篇博客针对<<Qt+C/C++文章小说人物关系分析>>编写代码,代码整洁,规则,易读。 学习与应用推荐首选。


文章目录

        一、所需工具软件

        二、使用步骤

                1. 引入库

                2. 创建元素操作函数

                3. 运行结果

         三在线协助


一、所需工具软件

          1. Visual Stuido

          2. C++

二、使用步骤

1.引入库

代码如下(示例):

#include "QtGuiApplication1.h"

#include<qDebug>
#include<QFile>

#include <fstream> 
#include<iostream>
using namespace std;

#include <sstream>
#include <unordered_map>

2.创建元素操作函数

代码如下(示例):

//读取人物名称
void QtGuiApplication1::readOnButton()
{
	//打开关键词文件
	ifstream ifs;
	ifs.open("name.txt", ios::in);
	if (!ifs.is_open())
	{
		cout << "打开文件失败" << endl;
		return;
	}

	//一行一行读取到数组中
	string buf;
	while (getline(ifs, buf))
	{
		cout << buf << endl;
		QString name = QString::buf);
		gNameList << name; 
	}
	ifs.close();

	ui.textEdit->setPlainText(gNameList);

}

//出现次数
void QtGuiApplication1::timesOnButton()
{
	qDebug() << QString::fromLocal8Bit("人名次数统计");

	//统计归零
	if (gNameList.size() == 0)
	{
		std::cout << "请倒入人名列表后再试!" << std::endl;
	}

	gNameCounter.clear();

	for (auto name : gNameList)
	{
		std::string key = name.toLocal8Bit();
		gNameCounter[key] = 0;
	}

	//一行行读入小说
	ifstream ifs;
	ifs.open("天龙八部.txt", ios::in);
	if (!ifs.is_open())
	{
		cout << "打开文件失败" << endl;
		return;
	}

	//清空统计用的TABLE的数据
	gTable.clear();

	//统计结果显示到界面
	QStringList result;
	for (auto name : gNameList)
	{
		std::string keyword = name.toLocal8Bit();
		QString tmp = name + ":" + QString::number(gNameCounter[keyword]);
		result << tmp;

		std::cout << keyword << " " << gNameCounter[keyword] << std::endl;

	}
	ui.textEdit_3->setText(result.join("\n"));
}

//篇幅跨度
void QtGuiApplication1::rangeOnButton()
{
	ui.textEdit_3->clear();
	for (auto name : gNameList)
	{
		std::string keyword = name.toLocal8Bit();

		int firstLineNum = -1;
		int lastLineNum = -1;
		for (int i = 0; i < gTable.size(); i++)
		{
			auto& row = gTable.at(i);
			//std::cout << "行号:" << i << " ";

			int KeyWordCounts = row[keyword];
			if (KeyWordCounts > 0)
			{
				if (firstLineNum == -1)
				{
					firstLineNum = i;
				}

				lastLineNum = i;
			}
		}


		ui.textEdit_3->append(QString::number(lastLineNum - firstLineNum));
	}
}

//关系最紧密两人
void QtGuiApplication1::relationGoodOnButton()
{
	ui.textEdit_3->clear();
	qDebug() << "test";

	//关系紧密算法,原理每个人名在第几行出现的行数集合和另一个人名行数集合求距离,取最小值为它的精密度
	//值越小的那个为此人和另一个人的最精密度,然后同样的方法计算出此人与其它人的精密度,最终取得
	//谁和这个人最紧密

	std::map < std::string, std::vector<int>> DataContainer;
	//正在对比的两个选手
	std::string player1, player2;
	int theMinDistance = 9999999999999999;
	for (auto name : gNameList)
	{
		std::string keyword = name.toLocal8Bit();
		std::vector<int> rowNums;

		for (int i = 0; i < gTable.size(); i++)
		{
			auto& row = gTable.at(i);
			//std::cout << "行号:" << i << " ";
			int KeyWordCounts = row[keyword];
			if (KeyWordCounts > 0)
			{
				rowNums.push_back(i);
			}
		}
		DataContainer[keyword] = rowNums;
	}



	ui.textEdit_3->append(QString::number(theMinDistance)+ QStringLiteral("行"));

}



3.运行结果如下: 

三、在线协助: 

如需安装运行环境或远程调试,见文章底部微信名片,由专业技术人员远程协助!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/149912.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浅谈未来跨境电商发展的新趋势?

从21世纪初&#xff0c;互联网在我国应运而生&#xff0c;并且在国家政策的倾斜和互联网的渗透下&#xff0c;结合互联网商业巨头对全球互联网产业的优化布局&#xff0c;互联网技术逐渐得到完善&#xff0c;伴随着近年来直播带货以及互联网电商的加持&#xff0c;我国的线上购…

Crack:dhtmlx JavaScript UI Libraries 商业企业版

dhtmlx JavaScript UI Libraries 企业版 包含Ω578867473&#xff1a; JS Gantt Chart JS Scheduler JS UI Widgets Library JS Diagram Library JS Kanban Board JS To Do List JS Event Calendar JS Spreadsheet JS Pivot Table JS File Uploader JS Rich Text Editor Gantt…

家庭库存管理系统Homebox

本文完成于 2022 年的 10 月&#xff0c; 最近正好有网友在找这方面的软件&#xff0c;就给翻出来了&#xff1b;Homebox 通过存储位置和标签两个维度来管理物品&#xff0c;非常简单易用&#xff0c;希望能满足要求&#xff1b; 什么是 Homebox &#xff1f; Homebox 是一个自…

TensorFlow和PyTorch的实际应用比较

TensorFlow和PyTorch是两个最受欢迎的开源深度学习框架&#xff0c;这两个框架都为构建和训练深度学习模型提供了广泛的功能&#xff0c;并已被研发社区广泛采用。但是作为用户&#xff0c;我们一直想知道哪种框架最适合我们自己特定项目&#xff0c;所以在本文与其他文章的特性…

我阳了,一针疫苗未打

12月31日凌晨两点&#xff0c;我被热醒&#xff0c;浑身湿透。身体发出强烈信号&#xff0c;本能地催促我赶紧喝水&#xff0c;再不喝&#xff0c;要炸。毫不犹豫地&#xff0c;我走进厨房&#xff0c;摁下电水壶&#xff0c;1.5L 水&#xff0c;90度。几杯水下肚&#xff0c;身…

2020年MathorCup高校数学建模挑战赛—大数据竞赛B题遥感图像地块分割与提取求解全过程文档及程序

2020年MathorCup高校数学建模挑战赛—大数据竞赛 B题 遥感图像地块分割与提取 原题再现&#xff1a; 耕地的数量和质量是保持农业可持续发展的关键&#xff0c;利用卫星遥感影像可以识别并提取耕地&#xff0c;并对耕地进行遥感制图&#xff0c;准确的耕地分布能够为国家决策…

聚观早报 | 蚂蚁集团调整股东结构;「快看点」2 月 6 日终止运营

点击蓝字 / 关注我们 今日要闻&#xff1a;蚂蚁集团调整股东结构&#xff1b;「快看点」2 月 6 日终止运营&#xff1b;Google 同意为隐私问题进行赔偿&#xff1b;苹果已取消 iPhone SE 4 发布&#xff1b;Lightyear 2 太阳能汽车发布 蚂蚁集团调整股东结构1 月 7 日&#xf…

从0到1完成一个Vue后台管理项目(八、Menu改造完善、子组件创建、配置路由)

往期 从0到1完成一个Vue后台管理项目&#xff08;一、创建项目&#xff09; 从0到1完成一个Vue后台管理项目&#xff08;二、使用element-ui&#xff09; 从0到1完成一个Vue后台管理项目&#xff08;三、使用SCSS/LESS&#xff0c;安装图标库&#xff09; 从0到1完成一个Vu…

javaweb-拦截器与监听器FilterListener

Filter&Listener 1&#xff0c;Filter 1.1 Filter概述 Filter 表示过滤器&#xff0c;是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。 过滤器可以把对资源的请求拦截下来&#xff0c;从而实现一些特殊的功能。 如下图所示&#xff0c;浏览器可以访问服务器上的…

mybatisPlus3.5.2在NOT_NULL更新策略下自定义Mapper实现更新null值

版本 当前使用的mybatis plus版本如下 mybatis-plus-3.5.2.jar 默认更新配置 在这个更新策略下&#xff0c;调用mybatis基础的updateById等更新方法的时候会因为xml中的判断条件而更新不了null值&#xff0c;此时又不想修改全局的配置策略。 mybatis plus提供了 com.baomid…

LeetCode091之解码方法(相关话题:动态规划)

题目描述 一条包含字母 A-Z 的消息通过以下映射进行了 编码 &#xff1a; A -> "1" B -> "2" ... Z -> "26" 要 解码 已编码的消息&#xff0c;所有数字必须基于上述映射的方法&#xff0c;反向映射回字母&#xff08;可能有多种方法…

蓝奥声灯光联动在行业中的技术优势

随着科学技术的发展和人民生活水平的提高&#xff0c;人们对生活或工作的照明系统提出了新的要求&#xff0c;智能照明系统替代传统照明系统是家居智能化过程中必然要走的一步&#xff0c;传统的家居照明控制方式一般是通过电路中的开关来控制电路的导通与关断&#xff0c;开关…

【设计模式】我终于读懂了组合模式。。。

文章目录♈️学校院系展示需求♉️传统方案解决学校院系展示(类图)♐️传统方案解决学校院系展示存在的问题分析♊️组合模式基本介绍♋️组合模式原理类图♌️对原理结构图的说明-即(组合模式的角色及职责)♍️组合模式解决学校院系展示的 应用实例♎️接下来我们Debug下去看一…

【Python】搭建虚拟环境

目录 前言 虚拟环境简介 虚拟环境依赖模块的安装 1、安装好Python环境 2、安装第三方库&#xff08;虚拟环境库&#xff09; 3、 安装第三方模块virtualenvwrapper-win 为虚拟环境配置环境变量 1、配置环境变量 2、点击环境变量 3、在系统变量中&#xff0c;点击新建 …

TOOM网络舆情监控系统定制开发,舆情监控开源系统源码有哪些?

软件系统定制开发是指为满足客户特定业务需求而进行的软件系统开发工作。这通常涉及到对现有软件系统进行修改或开发新的软件系统来满足客户的特定要求。软件系统定制开发可以帮助客户解决其特定的业务问题&#xff0c;并为客户带来独特的竞争优势。TOOM网络舆情监控系统定制开…

安装龙蜥或CentOS 7时出现dracut- initqueue timeout解决方法

在安装龙蜥7.9操作系统时&#xff0c;出现dracut- initqueue timeout-starting…starting timeout scripts报错CentOS 7.9出现此问题也可以参考同样的方法如何制作启动盘和系统盘设置raid就不再赘述了&#xff0c;相关文档社区已经很多了&#xff0c;这里直接入正题一、问题描述…

自己搞个chatgpt机器人

chargpt确实越来越火了&#xff0c;目前来看很多文章都教大家如何去注册chatgpt&#xff0c;并且详细的科普了很多chatgpt种种神奇之处。我实际使用之后&#xff0c;确实也感觉非常奈斯。这里看到很多人用那个go环境的去对接个人微信&#xff0c;因此萌生了做个其他版本的想法。…

2022.12青少年软件编程(Python)等级考试试卷(一级)

2022.12青少年软件编程(Python)等级考试试卷(一级) 一、单选题(共25题,共50分) 1.关于Python语言的注释,以下选项中描述错误的是?( C ) A. Python语言有两种注释方式:单行注释和多行注释 B. Python语言的单行注释以#开头 C. Python多行注释使用###来做为标记 D. …

DPDK:UDP 协议栈的实现

文章目录1、DPDK 原理1.1、用户态驱动 IO1.2、内存池管理2、DPDK 启动设置3、DPDK&#xff1a;UDP 协议栈3.1、代码实现3.2、设置静态 arp4、DPDK&#xff1a;KNI4.1、代码实现4.2、程序测试文章参考<零声教育>的C/Clinux服务期高级架构系统教程学习&#xff1a; 服务器高…

缓存工作模型以及使用Redis为查询接口添加缓存

什么是缓存 缓存就是数据交换的缓冲区&#xff0c;是存储数据的临时地方&#xff0c;一般读写性能较高。在以前CPU需要将内存或磁盘中读到数据放寄存器才可以做运算&#xff0c;正是因此计算机运算的能力受到限制。为了解决&#xff0c;人们在CPU中设计了缓存&#xff0c;将一…