我读过的耐人寻味的38条人生经验

本文汇集了38条关于生活的深刻见解,从个人成长、情感管理到社会交往,每一条都直击人心,引导读者理解生活的真实面貌,学会自我认知与独立,避免常见的人生陷阱,建立健康的人际关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我读过的耐人寻味的38条人生经验 读书 IT职场 好文分享 第1张

1

除了自身的病患或亲友离去的痛苦是真实的,其他的痛苦都是你自己的价值观带给你的。

2

沉不下心看书,浮躁和焦虑,都是因为年纪渐长,不信正道而太重功利导致的。

3

真正坚持到最后的人靠的不是激情,而是恰到好处的喜欢和投入。

4

一个人明白自己能做什么远比自己想做什么重要得多,前者需要给自己设定一个现实的疆域,是一种尽力而为的勤奋,后者是任性催生的热情,往往来自于对世界的无知和自负。

一个人,一定要清楚地认识自己。

5

便宜莫贪,天下没有免费的午餐。想得到任何东西之前都要先问问自己,是否付得起相应的代价。

6

在早上把你叫醒的,不应该是闹钟,不应该是闹钟,而应该是昨天早睡。

7

太用力的人,跑不远,别把人生的马拉松当成百米冲刺;太用力的爱不仅让自己累,也让身边的人累,最终难以圆满。

8

“事非宜,勿轻诺。苟轻诺,进退错。”

没有把握的事情不要轻易答应,如果答应了做不好,进退都是错误的,很容易让自己陷入里外不是人的尴尬局面。

9

天下古今之庸人,皆以一惰字致败;

天下古今之人才,皆以一傲字致败。

10

你不必去找人脉,唯一需要操心的是要把自己的本事练好。

11

永远不要与人去辩论,你也很难把别人辩服,因为立场不同,因为没有对错,只有规则,只有利益。

圈子不同,不必强融。

12

一定要去掌控自己的生活,而不要让生活带着你走。

13

蔡康永曾说,你15岁的时候觉得游泳难,放弃游泳,到18岁遇见一个你喜欢的人约你去游泳,你只好说:“我不会耶”。你18岁觉得英语难,放弃英语,你28岁遇到了一份非常好也很适合你但是要求会英语的工作,你只好说“我不会耶”。

出来混总是要还的,前期偷懒,后期肯定要花数倍的精力来弥补,更遗憾的是,不一定补得上。

人生最可怕的事,是一边后悔一边生活。

14

婚姻里的指责和抱怨不是因为“我爱你”,而是因为“我情绪管理不好”。

指责不是爱,而是婚姻的杀手。

15

父母的话不全是对的,父母的爱不全是无私的。

16

成熟不等于世故,知世故而不世故,才是最善良的成熟。

17

你其实并没有想象中那么依赖父母,但父母依赖你的程度远远超过于你的想象。

18

尽量不给别人添麻烦,别人最好也别麻烦我。这句话不是冷漠,是成熟。

19

分开的时候一定要用力告别,因为说再见,也许真的是再也不见。

20

所有你此刻觉得不可承受,不可跨越的苦难,一旦经受住了,回头看,不过是浮云一片。

21

当你的学业、工作、生活不顺利的时候,切记不要把爱情当成你的救命稻草。

22

我们总是喜欢拿顺其自然来敷衍人生道路上的荆棘坎坷,却很少承认,真正的顺其自然,其实是竭尽所能之后的不强求,而非两手一摊的不作为。

23

耳不闻人之非,目不视人之短,口不言人之过。

24

看破不说破,知人不评人,知理不争论。

刻薄嘴欠和幽默是两回事,口无遮拦和坦率是两回事,没有教养和随性是两回事。

25

在事情没有成功之前,不要在人前谈及任何有关的计划和想法。世界不会在意你的自尊,只是你的成就。在你没有成就之前,切勿强调自尊。

26

世界不是公平的,人与人之间在某些方面就是天生存在不可逾越的差距。

27

有事情是要说出来的,不要等着对方去领悟,因为对方不是你,不知道你想要什么,等到最后只能是伤心和失望,尤其是感情。

28

社会真的很残酷,你的能力和价值越低,被淘汰的就越快。

29

最简单却也是最难的事:少熬夜,多看书,多喝热水,多运动,用心爱一个人。

30

婚姻不是劫富济贫,女人一定要经济独立。男人对你再好,自己有那才是真的有。

31 

无论是男人还是女人,都要学着去做家务。做家务不是谁伺候“谁”的问题,而是培养一个人独立生活的技能。 

32 

不管平时关系如何,涉及金钱问题,务必要划分清楚。 

33 

经济能力跟在家里掌握的话语权是成正比的 

34 

照顾好自己的身体,很有必要。一个很差的身体带给你的局限不可能靠意志力突破。 

35 

社会没有那么复杂,复杂的是人心。 

36 

不管外面的世界究竟是什么样,能影响到你的,其实就身边的几个人。没有能力改变这世界,至少可以选择与谁同行。 

37 

遇到那种始终不在一个频道死活聊不到一个点上的人就别强求了,也千万不要试图努力,越努力越绝望。在婚姻里,精神上的门当户对比物质更重要。 三观不同,真的不能结婚。 

38

奋斗就是每一天很难,可一年一年却越来越容易;不奋斗就是每天都很容易,可一天一天越来越难。 

作者:楠瓜,来源:视觉志

系统的基本功能 《红楼梦》是中国古典四大名著之一,其中人物关系错综复杂、耐人寻味。本课题要求编写一个程序,实现对《红楼梦》中的主要人物进行分析,包括出场次数、人物的亲密度等等。 人物的亲密度可以通过计算在同一篇幅中共同出现的频率进行计算。 2 要求及提示 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)程序的层次清晰,可读性强。
06-04
<think>我们使用C语言来实现这个《红楼梦》人物分析系统。由于系统功能较为复杂,我们将分模块实现。主要功能模块:1.文件读取:读取小说文本和人物别名配置文件2.人物统计:统计每个人物的出场次数、出现的篇幅(章节)以及共同出现的情况(用于计算亲密度)3.数据结构:使用结构体存储人物信息,并设计合适的数据结构来存储共同出现信息(如二维数组)4.排序功能:按照不同的要求排序5.查询功能:按用户输入查询特定人物信息6.界面:提供简单的命令行交互界面7.数据保存:可选,将结果保存到文件考虑到人物别名,我们需要一个配置文件(如alias.txt)来存储别名映射。格式为每行一个真实人物,后面跟着别名,用空格隔开,例如:贾宝玉宝玉宝二爷林黛玉黛玉林妹妹步骤:1.设计数据结构:-人物结构体(包括编号、姓名、出场次数、出现的章节数组、亲密度数组等)-由于亲密度是与其他人物共同出现的频率,我们可以用一个二维数组(矩阵)来存储任意两个人物的共同出现次数。2.读取别名配置文件,构建一个映射表(从别名到真实姓名的映射)。3.读取小说文本,按章分割(红楼梦共120回,我们按回分割)。4.对于每一章:扫描文本,根据别名表匹配人物,记录每个人物在该章是否出现(注意:只记录一次,即同一章出现多次只算一次)。更新人物的出场次数和出现的章节。同时,对于该章中出现的所有人物,两两之间在共同出现矩阵中增加一次共同出现。5.构建人物数组,并计算相关指标:出场次数:times篇幅跨度:出现的小章节和大章节之间的差值(或者出现的不同章节数)与其他人的亲密度:可以用共同出现的次数,或者用共同出现的次数除以该人物的总出场次数(需要归一化处理?)6.实现排序函数:按出场次数、篇幅跨度、与指定人物的亲密度等排序。7.实现查询功能:输入人物姓名,输出其出场次数、篇幅跨度、以及与其他人的亲密度(可以只输出前N个亲密的人)。8.实现保存结果到文件的功能。9.异常处理:文件读取失败时,提示用户重新输入路径。由于时间限制,我们在此实现核心功能。以下是代码框架,省略了部分细节。注意:本程序假设小说文本文件是按章分割的,每章标题为“第x回”的格式。由于代码较长,我们将分多个函数实现。我们定义如下结构体:*/#include<stdio.h>#include<stdlib.h>#include<string.h>#include<ctype.h>#include<time.h>#defineMAX_CHAPTER120//红楼梦120回#defineMAX_NAME_LEN20#defineMAX_ROLES100//大人物数#defineMAX_ALIASES_PER_ROLE5//每个人物的别名数量#defineMAX_ALIAS_LEN20//别名映射结构typedefstruct{charreal_name[MAX_NAME_LEN];charaliases[MAX_ALIASES_PER_ROLE][MAX_ALIAS_LEN];intalias_count;}AliasMap;//人物信息结构体typedefstructRole{charname[MAX_NAME_LEN];//姓名inttimes;//出场次数(统计所有章节)intchapters[MAX_CHAPTER];//记录是否在某一章出现,0表示未出现,1表示出现(也可记录次数,但题目要求按篇幅跨度,所以用0/1即可)intspan;//篇幅跨度(出现的不同章节数,在统计时计算)//亲密度:与其他角色的共同出现次数intintimacy[MAX_ROLES];//存储与每个人物的共同出现次数intindex;//在全局角色数组中的索引}Role;//全局变量Roleroles[MAX_ROLES];//存储所有角色introle_count=0;//实际角色数量AliasMapalias_map[MAX_ROLES];//别名映射表intalias_map_count=0;//别名映射数量char*chapters_content[MAX_CHAPTER];//存储每章内容的指针数组intchapter_count=0;//实际章节数//从别名配置文件中读取别名voidread_alias_config(constchar*filename){FILE*fp=fopen(filename,"r");if(fp==NULL){printf("无法打开别名配置文件%s\n",filename);exit(1);}charline[200];while(fgets(line,sizeof(line),fp)){//去掉换行符line[strcspn(line,"\n")]=0;if(strlen(line)==0)continue;char*token=strtok(line,"");if(token==NULL)continue;//第一个token是真实姓名strncpy(alias_map[alias_map_count].real_name,token,MAX_NAME_LEN);alias_map[alias_map_count].alias_count=0;token=strtok(NULL,"");while(token!=NULL&&alias_map[alias_map_count].alias_count< MAX_ALIASES_PER_ROLE){strncpy(alias_map[alias_map_count].aliases[alias_map[alias_map_count].alias_count],token,MAX_ALIAS_LEN);alias_map[alias_map_count].alias_count++;token=strtok(NULL,"");}alias_map_count++;}fclose(fp);}//根据别名获取真实姓名char*get_real_name(char*name){for(inti=0;i< alias_map_count;i++){//检查是否是真实姓名if(strcmp(alias_map[i].real_name,name)==0){returnalias_map[i].real_name;}//检查是否是别名for(intj=0;j< alias_map[i].alias_count;j++){if(strcmp(alias_map[i].aliases[j],name)==0){returnalias_map[i].real_name;}}}//如果没有找到,返回原始名字(可能是一个新人物,但题目要求自行决定主要人物,所以我们只统计配置文件中有的人物)returnNULL;}//在角色数组中查找角色,不存在则添加Role*find_or_add_role(char*name){char*real_name=get_real_name(name);if(real_name==NULL){returnNULL;//不在别名映射表中,忽略}//在角色数组中查找for(inti=0;i< role_count;i++){if(strcmp(roles[i].name,real_name)==0){return&roles[i];}}//没找到,添加新角色if(role_count< MAX_ROLES){strncpy(roles[role_count].name,real_name,MAX_NAME_LEN);roles[role_count].times=0;for(inti=0;i< MAX_CHAPTER;i++){roles[role_count].chapters[i]=0;}roles[role_count].span=0;//初始化亲密度数组for(intj=0;j< MAX_ROLES;j++){roles[role_count].intimacy[j]=0;}roles[role_count].index=role_count;role_count++;return&roles[role_count-1];}else{printf("超出大角色数限制\n");returnNULL;}}//读取小说文本并按章分割voidread_novel_text(constchar*filename){FILE*fp=fopen(filename,"r");if(fp==NULL){printf("无法打开小说文本%s\n",filename);exit(1);}//计算文件大小fseek(fp,0,SEEK_END);longsize=ftell(fp);fseek(fp,0,SEEK_SET);char*content=(char*)malloc(size+1);fread(content,1,size,fp);content[size]='\0';fclose(fp);//按章分割:使用"第"和"回"作为分章标识,但要注意避免分错//红楼梦每章标题格式为:第x回标题char*chapter_start=content;char*p=content;intin_chapter=0;intchapter_index=0;while(*p){if(*p=='第'&&(*(p+1)>='0'&&*(p+1)<='9')){//找到章节开始if(in_chapter){//上一章结束char*end=p;//章节内容长度longlength=end-chapter_start;if(length>0){chapters_content[chapter_index]=(char*)malloc(length+1);strncpy(chapters_content[chapter_index],chapter_start,length);chapters_content[chapter_index][length]='\0';chapter_index++;}}chapter_start=p;in_chapter=1;}p++;}//处理后一章if(in_chapter){longlength=p-chapter_start;chapters_content[chapter_index]=(char*)malloc(length+1);strncpy(chapters_content[chapter_index],chapter_start,length);chapters_content[chapter_index][length]='\0';chapter_index++;}chapter_count=chapter_index;}//在某一章中统计人物voidprocess_chapter(intchapter_index,char*content){//临时数组,记录本章出现的人物(避免重复)intappeared[MAX_ROLES]={0};//初始为0//遍历角色列表,检查每个角色的所有别名是否在本章出现for(inti=0;i< role_count;i++){//检查真实姓名和每个别名char*name=roles[i].name;if(strstr(content,name)!=NULL){appeared[i]=1;}else{//检查别名for(intk=0;k< alias_map_count;k++){if(strcmp(alias_map[k].real_name,name)==0){for(intj=0;j< alias_map[k].alias_count;j++){if(strstr(content,alias_map[k].aliases[j])!=NULL){appeared[i]=1;break;}}break;//跳出别名映射的循环}}}}//更新角色信息:出现次数和章节标记for(inti=0;i< role_count;i++){if(appeared[i]){roles[i].times++;if(roles[i].chapters[chapter_index]==0){roles[i].chapters[chapter_index]=1;}//共同出现:更新两两亲密度for(intj=0;j< role_count;j++){if(appeared[j]&&j!=i){roles[i].intimacy[j]++;}}}}}//计算每个角色的篇幅跨度(不同章节数)voidcalculate_span(){for(inti=0;i< role_count;i++){intcount=0;for(intch=0;ch< chapter_count;ch++){if(roles[i].chapters[ch]){count++;}}roles[i].span=count;}}//排序函数:按出场次数降序intcompare_times(constvoid*a,constvoid*b){Role*roleA=(Role*)a;Role*roleB=(Role*)b;returnroleB->times-roleA->times;}//排序函数:按篇幅跨度降序intcompare_span(constvoid*a,constvoid*b){Role*roleA=(Role*)a;Role*roleB=(Role*)b;returnroleB->span-roleA->span;}//按与特定人物的亲密度降序排序voidsort_by_intimacy_to_role(Role*role,Role*sorted_roles){//复制一份角色数组memcpy(sorted_roles,roles,role_count*sizeof(Role));//用亲密度作为比较标准进行排序for(inti=0;i< role_count-1;i++){for(intj=0;j< role_count-1-i;j++){if(sorted_roles[j].intimacy[role->index]< sorted_roles[j+1].intimacy[role->index]){Roletemp=sorted_roles[j];sorted_roles[j]=sorted_roles[j+1];sorted_roles[j+1]=temp;}}}}//查询并显示某个角色的信息voidquery_role(char*name){Role*role=NULL;for(inti=0;i< role_count;i++){if(strcmp(roles[i].name,name)==0){role=&roles[i];break;}}if(role==NULL){printf("没有找到名为%s的角色。\n",name);return;}printf("角色:%s\n",role->name);printf("出场次数:%d\n",role->times);printf("篇幅跨度(出现章节数):%d\n",role->span);printf("亲密度高的前10个人物:\n");//按亲密度排序Rolesorted_roles[MAX_ROLES];sort_by_intimacy_to_role(role,sorted_roles);//打印前10个(不包括自己)intcount=0;for(inti=0;i< role_count&&count<11;i++){//跳过自己if(strcmp(sorted_roles[i].name,role->name)==0)continue;if(count==10)break;printf("%s:%d\n",sorted_roles[i].name,sorted_roles[i].intimacy[role->index]);count++;}}//主程序intmain(){//初始化别名映射read_alias_config("alias.txt");//读取小说文本read_novel_text("hongloumeng.txt");//初始化角色:从别名映射中获取所有真实姓名for(inti=0;i< alias_map_count;i++){find_or_add_role(alias_map[i].real_name);}//按章处理for(inti=0;i< chapter_count;i++){process_chapter(i,chapters_content[i]);}//计算篇幅跨度calculate_span();//主菜单while(1){printf("\n《红楼梦》人物分析系统\n");printf("1.按出场次数排序\n");printf("2.按篇幅跨度排序\n");printf("3.查询特定人物\n");printf("4.退出\n");printf("请选择操作:");intchoice;scanf("%d",&choice);getchar();//吃掉回车if(choice==1){//按出场次数排序qsort(roles,role_count,sizeof(Role),compare_times);printf("按出场次数排序:\n");for(inti=0;i< role_count;i++){printf("%s:%d\n",roles[i].name,roles[i].times);}}elseif(choice==2){//按篇幅跨度排序qsort(roles,role_count,sizeof(Role),compare_span);printf("按篇幅跨度排序:\n");for(inti=0;i< role_count;i++){printf("%s:%d\n",roles[i].name,roles[i].span);}}elseif(choice==3){charname[MAX_NAME_LEN];printf("请输入要查询的人物姓名:");fgets(name,MAX_NAME_LEN,stdin);name[strcspn(name,"\n")]=0;//去掉换行符query_role(name);}elseif(choice==4){break;}else{printf("无效选择\n");}}//释放章节内容内存for(inti=0;i< chapter_count;i++){free(chapters_content[i]);}return0;}/*注意:1.这个程序是简化版,实际应用中需要考虑更多细节,比如:-别名的匹配可能不准确(比如“宝玉”可能出现在描述其他宝物的时候)-处理效率:如果文本很大,逐章处理时字符串搜索可能较慢,可以优化(如使用AC自动机等)2.由于红楼梦人物众多,别名也众多,需要仔细配置别名文件。3.选做要求:异常处理和保存功能。我们这里没有完全实现,但给出了框架。保存功能可以添加在查询结果后,将结果写入文件。4.增加异常处理:在文件读取失败时,提示用户重新输入文件路径。可以修改read_novel_text函数和read_alias_config函数,使其具有重试功能。我们将异常处理加入:以别名配置文件读取为例,修改read_alias_config,如果打开失败,则允许用户重新输入文件名。代码示例(修改read_alias_config):voidread_alias_config(){charfilename[100];printf("请输入别名配置文件路径:");scanf("%s",filename);while(1){FILE*fp=fopen(filename,"r");if(fp){...//正常读取fclose(fp);break;}else{printf("无法打开%s,请重新输入文件名:",filename);scanf("%s",filename);}}}同样的方式修改读取小说文本的函数。保存功能:在显示结果后,询问用户是否保存,然后输入文件名,将当前屏幕内容保存到文件。由于篇幅限制,不在此处展开。以上程序是一个基本实现,可在此基础上完善。§§相关问题§§:1.在统计人物出现时,如何避免误匹配(比如“宝玉”出现在非人名的语境中)?2.当角色数量较多时,如何优化亲密度矩阵的内存占用?3.除了共同出现次数,还有哪些方法可以计算人物亲密度?4.如何设计图形用户界面(GUI)来展示人物关系图?</think> # 《红楼梦》人物分析系统 下面是一个完整的C语言实现,满足系统要求的功能: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <dirent.h> #include <sys/stat.h> #define MAX_ROLES 50 // 大人物数量 #define MAX_NAME_LEN 20 // 姓名大长度 #define MAX_TEXT_LEN 10000 // 文本内容大长度 #define MAX_CHAPTERS 120 // 大章节数 // 人物信息结构体 struct Role { char ID[10]; // 人物编号 char name[MAX_NAME_LEN]; // 姓名 int times; // 出场次数 int first_appearance; // 首次出场章节 int last_appearance; // 后一次出场章节 int cooccurrence[MAX_ROLES]; // 与其他人物共同出现的次数 }; // 系统全局变量 struct Role roles[MAX_ROLES]; // 人物数组 int role_count = 0; // 实际人物数量 char text_content[MAX_TEXT_LEN]; // 文本内容缓存 char current_file[256] = ""; // 当前文件路径 // 函数声明 void init_roles(); void load_role_aliases(); char* get_real_name(char* name); int find_role_index(char* name); void display_menu(); void load_novel(); void analyze_novel(); void display_all_roles(); void display_single_role(); void sort_by_times(); void sort_by_span(); void sort_by_intimacy(); void save_results(); void extract_chapter(char* content, int chapter_num); void process_chapter_content(char* content, int chapter_num); // 主函数 int main() { init_roles(); load_role_aliases(); while (1) { display_menu(); int choice; printf("请输入您的选择: "); scanf("%d", &choice); switch (choice) { case 1: load_novel(); break; case 2: analyze_novel(); break; case 3: display_all_roles(); break; case 4: display_single_role(); break; case 5: sort_by_times(); break; case 6: sort_by_span();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值