一个小发明
  • 板块灌水区
  • 楼主一只小菜包
  • 当前回复16
  • 已保存回复16
  • 发布时间2023/12/1 18:34
  • 上次更新2023/12/1 20:45:19
查看原帖
一个小发明
907233
一只小菜包楼主2023/12/1 18:34

这是一个帖子评价器,汲取了很多资料拼凑来的,望能得到改进意见!

// HKJC 3.7.0 帖子质量评价生成器 
// 仅适用 Windows 用户,确保版本在 C++11 及以上
//作者:ZWMXC2/Dream_Country
//如有雷同,纯属巧合!
#include<iostream>
#include<string>
#include<windows.h>
#define END system("cls"),cout<<"未定义行为,已退出程序。",system(">nul 2>nul pause"),exit(0)
using namespace std;
const string version=" 3.5.1 ";
const string title=R"(#######################
# H  H  K K   J   CCC #
# HHHH  KK    J  C    #
# H  H  K K  JJ   CCC #
#######################
)";
int op,vop;
double all;
string v,ret,opp[10]{""," JC 或疑似 JC ","无意义","恶意哗众取宠","违规"},g[10]{""," $\\color{#CFB53B}{S}$"," $\\color{#FF0000}{A}$"," $\\color{#e47833}{B}$"," $\\color{#bc1717}{C}$"};
void get(){cout<<">>>";cin>>op;}
void getstring(){
  cout<<">>>";
  char c;
  while((c=getchar())==' '||c=='\n') ;
  getline(cin,v);
  v.insert(v.begin(),c);
  while(v.back()==' '||v.back()=='\n') v.pop_back();
}
void Copy(string TempBin) {
  HGLOBAL hMemBin=NULL;
  PCHAR LockBin=NULL;
  OpenClipboard(NULL);
  EmptyClipboard();
  hMemBin=GlobalAlloc(GMEM_MOVEABLE,TempBin.size()+1);
  LockBin=(PCHAR)GlobalLock(hMemBin);
  RtlMoveMemory(LockBin,TempBin.c_str(),TempBin.size()+1);
  GlobalUnlock(hMemBin);
  LockBin=NULL;
  SetClipboardData(CF_TEXT,hMemBin);
  CloseClipboard();
}
int grfr(string a){
  if(a=="S") return 1;
  if(a=="A") return 2;
  if(a=="B") return 3;
  if(a=="C") return 4;
  END;
}
int main(){
  SetConsoleTitle("Mr.Hacker集成开发系统项目(HKJC) 3.7.0 帖子质量评价生成器  作者:ZWMXC2");
  SetWindowLongPtrA(GetConsoleWindow(),GWL_STYLE,GetWindowLongPtrA(GetConsoleWindow(),GWL_STYLE)&~WS_SIZEBOX&~WS_MAXIMIZEBOX&~WS_MINIMIZEBOX);
  cout<<title;
  Sleep(2000);
  MessageBox(NULL,(LPCTSTR)TEXT("欢迎使用HKJC产品! 作者:ZWMXC2  请问您是否使用?"), (LPCTSTR)TEXT("HKJC"), MB_YESNO);
  system("cls");
  cout<<"该帖类型是?(回复数字)\n【1】JC 或疑似 JC\n【2】无意义\n【3】恶意哗众取宠\n【4】其他情况的违规\n【5】自定义\n\n";
  get();
  vop=op;
  system("cls");
  if(op<=4&&op>=1)
    ret="本帖是"+opp[op]+"帖\n\n";
  else if(op==5){
    cout<<"自定义帖子类型。\n\n";
    getstring();
    string sa="",sb="";
    if((v.front()<='Z'&&v.front()>='A')||(v.front()<='z'&&v.front()>='a')||(v.front()<='9'&&v.front()>='1')) sa=" ";
    if((v.back()<='Z'&&v.back()>='A')||(v.back()<='z'&&v.back()>='a')||(v.front()<='9'&&v.front()>='1')) sb=" ";
    ret="本帖是"+sa+v+sb+"\n\n";
    system("cls");
  }
  else END;
  cout<<"是否取消引导?请确保你熟悉 HKJC 评价标准。(回复数字)\n【1】好\n【2】算了\n\n";
  get();
  if(op==1){
    system("cls");
    int po[10]{0,7,4,2,1};
    cout<<"该帖内容丰富度评价为?(回复等级,如 A,最高 S,最低 C)\n\n";
    getstring();
    ret+="该帖内容丰富度评价为"+g[grfr(v)]+"\n\n",all+=po[grfr(v)];
    system("cls");
    cout<<"该帖内容潮流度评价为?(回复等级,如 A,最高 S,最低 C)\n\n";
    getstring();
    ret+="该帖内容潮流度评价为"+g[grfr(v)]+"\n\n",all+=po[grfr(v)];
    system("cls");
    cout<<"该帖内容像xxs评价为?(回复等级,如 A,最高 S,最低 C)\n\n";
    getstring();
    ret+="该帖内容像xxs评价为"+g[grfr(v)]+"\n\n",all+=po[grfr(v)];
    system("cls");
    cout<<"该帖文本表达评价为?(回复等级,如 A,最高 S,最低 C)\n\n";
    getstring();
    ret+="该帖文本表达评价为"+g[grfr(v)]+"\n\n",all+=po[grfr(v)];
    system("cls");
    cout<<"该帖情感真实度评价为?(回复等级,如 A,最高 S,最低 C)\n\n";
    getstring();
    ret+="该帖情感真实度评价为"+g[grfr(v)]+"\n\n",all+=po[grfr(v)];
    system("cls");
    cout<<"该帖创新性评价为?(回复等级,如 A)\n\n";
    getstring();
    ret+="该帖创新性评价为"+g[grfr(v)]+"\n\n",all+=po[grfr(v)];
    system("cls");
    all/=6;
    ret+="**综合评价";
    if(all>=6) ret+=g[1];
    else if(all>=3) ret+=g[2];
    else if(all>=1.5) ret+=g[3];
    else ret+=g[4];
    ret+="**\n\n";
  }
  else if(op==2){
    system("cls");
    cout<<"该帖前后文有矛盾吗?(回复数字)\n【1】有\n【2】无\n\n";
    get();
    if(op<=2&&op>=1){
      ret+="该帖内容丰富度评价为";
      if(op==1) ret+=g[4],all+=1;
      else{
        system("cls");
        cout<<"该帖有观点、理由、证据三个要素中的几个?(回复数字)\n【1】1 个\n【2】2 个\n【3】3 个\n【4】0 个\n\n";
        get();
        if(op<=4&&op>=1){
          if(op==4) ret+=g[4],all+=1;
          if(op==1) ret+=g[3],all+=2;
          if(op==2) ret+=g[2],all+=4;
          if(op==3) ret+=g[1],all+=7;
        }
        else END;
      }
    }
    else END;
    ret+="\n\n";
    system("cls");
    cout<<"该帖前后文连贯吗?(回复数字)\n【1】很连贯,过渡自然\n【2】有但又不太连贯\n【3】什么玩意,牛头不对马嘴\n\n";
    get();
    if(op<=3&&op>=1){
      ret+="该帖文本表达评价为";
      if(op==3) ret+=g[4],all+=1;
      else if(op==2) ret+=g[3],all+=2; 
      else{
        system("cls");
        cout<<"该帖艺术手法效果明显吗?(回复数字)\n【1】效果明显\n【2】有点效果\n【3】用了艺术手法但和没用一样\n【4】艺术手法都没有\n\n";
        
		get();
        if(op<=4&&op>=1){
          if(op==4) ret+=g[4],all+=1;
          if(op==1) ret+=g[1],all+=7;
          if(op==2) ret+=g[2],all+=4;
          
          if(op==3) ret+=g[3],all+=2;
        }
        else END;
      }
      
    }
    
    else END;
    ret+="\n\n";
    system("cls");
    cout<<"该帖有真实情感吗?(回复数字)\n【1】有\n【2】无\n\n";
    get();
    if(op<=2&&op>=1){
      ret+="该帖情感真实度评价为";
      if(op==2) ret+=g[4],all+=1;
      else{
        system("cls");
        cout<<"该帖真实感情明显吗?(回复数字)\n【1】很明显\n【2】表达不够好,但仍可以感觉到\n【3】有情感但十分模糊、不清晰\n\n";
        get();
        if(op<=3&&op>=1){
          if(op==1) ret+=g[1],all+=7;
          if(op==2) ret+=g[2],all+=4;
          if(op==3) ret+=g[3],all+=2;
        }
        else END;
      }
    }
    else END;
    ret+="\n\n";
    system("cls");
    cout<<"该帖的写法你有印象吗?(回复数字)\n【1】有\n【2】无\n\n";
    get();
    if(op<=2&&op>=1){
      ret+="该帖创新性评价为";
      system("cls");
      if(op==1){
        cout<<"和你印象中的差别大不大?(回复数字)\n【1】有些差别\n【2】简直一模一样\n\n";
        get();
        if(op<=2&&op>=1){
          if(op==1) ret+=g[3],all+=2;
          if(op==2) ret+=g[4],all+=1;
        }
        else END;
      } 
      else{
        cout<<"该帖的新型写法对你来说新奇、震惊吗?(回复数字)\n【1】嗯\n【2】没有\n\n";
        get();
        if(op<=2&&op>=1){
          if(op==1) ret+=g[1],all+=7;
          if(op==2) ret+=g[2],all+=4;
        }
        else END;
      }
    }
    else END;
    ret+="\n\n";
    system("cls");
    all/=4;
    ret+="**综合评价";
    if(all>=6) ret+=g[1];
    else if(all>=3) ret+=g[2];
    else if(all>=1.5) ret+=g[3];
    else ret+=g[4];
    ret+="**\n\n";
  }
  else END;
  if(vop==5){
    string id; 
    if(all>=6) id=" S";
    else if(all>=3) id=" A";
    else if(all>=1.5) id=" B";
    else id=" C";
    cout<<"总分为 "<<all<<",等级为"+id+",自定义结尾句。\n\n";
    getstring();
    ret+=v+"\n";
  }
  else{
    cout<<"要自定义结尾句吗?(回复数字)\n【1】要\n【2】不要\n\n";
    get();
    system("cls");
    if(op==1){
      string id; 
      if(all>=6) id=" S";
      else if(all>=3) id=" A";
      else if(all>=1.5) id=" B";
      else id=" C";
      cout<<"总分为 "<<all<<",等级为"+id+",自定义结尾句。\n\n";
      getstring();
      ret+=v+"\n";
    }
    else if(op==2){
      if(all>=3){
        if(vop==1) ret+="## 楼主 JC 实力可以,期待下次的表演。(手动狗头)\n";
        if(vop==2) ret+="## 再怎么说,都是无意义。\n";
        if(vop==3) ret+="## 楼主 NB,再来几个!\n";
        if(vop==4) ret+="## 好,但是违规了,建议删除帖子。\n";
      }
      else{
        if(vop==1) ret+="## 楼主 JC 实力一般,希望下次能带给我们更好观感。\n";
        if(vop==2) ret+="## 楼主帖子质量低迷且无意义,希望提升质量。\n";
        if(vop==3) ret+="## 楼主 NB,但你这实力不行啊,回炉重造一下吧。\n";
        if(vop==4) ret+="## 帖子质量低,还请不要再违规了。xxs警告!\n";
      }
    }
    else END;
  }
  ret+="\n_BY [HKJC 质量评价生成器 "+version+"](https://www.luogu.com.cn/blog/Mr-hacker/hkjc-plscj-zong)_\n";
  system("cls");
  cout<<"接下来是预览!\n\n--------------------\n\n";
  cout<<ret<<"\n";
  cout<<"--------------------\n\n按任意键复制";
  system(">nul 2>nul pause");
  Copy(ret); 
  system("cls");
  cout<<"已复制,感谢使用!";
  system(">nul 2>nul pause");
  return 0;
}


2023/12/1 18:34
加载中...