论我在掘金发的第一篇文章
大家好,这里是机长。这是我第一次来这里写文章。
第一次写文章是在洛谷(www.luogu.com.cn) 写的,后来因为洛谷博客下线了,一直苦于找不到合适的能写博客的网站,直到我发现了这里。
不管怎么说,这里的风格很适合我。今后我会在这里发发博客,写写文章。
对了,我最近一直在编写一个程序,所有的代码都是我独立完成。 代码在此
#include<bits/stdc++.h>
#include<Windows.h>
using namespace std;
#define KEY_DOWN(vKey) ((GetAsyncKeyState(vKey) & 0x8000) ? 1:0)
//虚拟键码对照表 https://blog.csdn.net/feitianxiake200/article/details/13244351/
string stop="awa";
void color(int);
void xy(int,int);
int S_len(string);
int SL(string);
string LS(long long);
double SD(string);
string DS(double);
void O1();
void O2();
void O3();
void O4();
void T1();
void T2();
void T_1();
void F1();
void F1_1(string up[],string dn[]);
void F1_2(string up[],string dn[]);
void F2();
void F2_1();
void F2_2();
void ST();
void ov();
void OV();
int main(){
//ST();
color(15);
srand(time(NULL)); //随机数 种子,必须放在主函数内 time(NULL)表示当前时间,每过一秒加1
string zong_ZT;
int fen_ZT;
cout<<"---------------------------------------------------------------"<<endl;
cout<<"|| ______________________________ ||"<<endl;
cout<<"||-------------[____ [___ 珠窝海程序 ___] ____]--------------||"<<endl; //标题介绍
cout<<"|| ||"<<endl;
cout<<"---------------------------------------------------------------"<<endl;
while(1){
cout<<"---请选择你要使用的 程序种类:"<<endl;
cout<<"---0.退出程序"<<endl<<"---1.数学"<<endl<<"---2.字符串"<<endl<<"---3.设置"<<endl<<"---4.其它"<<endl;
cin>>zong_ZT;
if(zong_ZT=="0"){
break;
}else if(zong_ZT=="1"){
cout<<"请选择你要使用的功能:"<<endl;
cout<<"1.判断奇偶数"<<endl<<"2.加减乘除"<<endl<<"3.输出杨辉三角(仅支持32行内)"<<endl<<"4.闰年判断"<<endl;
cin>>fen_ZT;
if(fen_ZT==1){
O1();
ov();
}else if(fen_ZT==2){
O2();
ov();
}else if(fen_ZT==3){
O3();
ov();
}else if(fen_ZT==4){
O4();
ov();
}else{
cout<<"不好意思,目前没有这个功能。请重新进入!"<<endl;
ov();
}
}else if(zong_ZT=="2"){
int fen_ZT;
cout<<"请选择你要使用的功能:"<<endl;
cout<<"1.垂直直方图"<<endl<<"2.大小写转换"<<endl;
cin>>fen_ZT;
if(fen_ZT==1){
T1();
ov();
}else if(fen_ZT==2){
T2();
ov();
}
}else if(zong_ZT=="3"){
cout<<"不好意思,作者正在制作此功能中ing... 请重新进入!"<<endl;
ov();
}else if(zong_ZT=="4"){
int fen_ZT;
cout<<"请选择你要使用的功能:"<<endl;
cout<<"1.古诗默写"<<endl<<"2.连点器"<<endl;
cin>>fen_ZT;
if(fen_ZT==1){
F1();
ov();
}else if(fen_ZT==2){
F2();
ov();
}else{
cout<<"不好意思,目前没有这个功能。请重新进入!"<<endl;
ov();
}
}else if(zong_ZT=="awa"){
cout<<"恭喜你发现了彩蛋!!!"<<endl;
Sleep(2000);
cout<<"彩蛋:https://www.bilibili.com/video/BV1he4y1w7wB/?spm_id_from=333.337.search-card.all.click"<<endl;
Sleep(3000);
cout<<"30秒后将会直接重置界面。";
Sleep(30000);
}else{
system("cls");
color(12*16+14);
xy(2,6);
cout<<" "<<endl;
xy(3,6);
cout<<" "<<endl;
xy(4,6);
cout<<" 输入错误!!!程序自动关闭!!! "<<endl;
xy(5,6);
cout<<" "<<endl;
xy(6,6);
cout<<" "<<endl;
for(int i=0;i<3;i++){
Sleep(500);
xy(4,16);
cout<<" ";
Sleep(500);
xy(4,16);
cout<<"输入错误!!!程序自动关闭!!!";
}
Sleep(1250);
color(15);
break;
}
system("cls"); //清屏
cout<<"----------------------------------------------------"<<endl;
}
OV();
return 0;
}
int S_len(string a[]){
int i=0;
while(1){
if(a[i]!="\0") ++i;
else break;
}
return i;
}
int SL(string a){
int b;
stringstream c;
c<<a;
c>>b;
return b;
}
string LS(long long a){
string b;
stringstream c;
c<<a;
c>>b;
return b;
}
double SD(string a){
double b;
stringstream c;
c<<a;
c>>b;
return b;
}
string DS(double a){
string b;
stringstream c;
c<<a;
c>>b;
return b;
}
void color(int x)//字体、背景颜色函数,这个只有正整数可以产生颜色,小数,负数都是原来的字
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x);//(改色)
}
/*
色谱 这个方式的代码不但可以改前景色,还能改背景色
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 10 = 淡绿色
3 = 浅绿色 11 = 青色
4 = 红色 12 = 淡红色
5 = 紫色 13 = 淡紫色
6 = 黄色 14 = 淡黄色
7 = 白色 15 = 亮白色
*/
void xy(int y,int x) //光标定位
{ //详情请去网址:
COORD coord; //https://blog.csdn.net/DUXS11/article/details/125891950?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-125891950-blog-88182204.235^v43^pc_blog_bottom_relevance_base4&spm=1001.2101.3001.4242.2&utm_relevant_index=2
coord.X=x;
coord.Y=y;
HANDLE a=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(a,coord);
}
void O1(){
string a;
int wsh;
cout<<"请输入一个整数:";
cin>>a;
wsh=a.length();
if(int(a[wsh-1])%2==0) cout<<"它是个偶数!"<<endl;
else cout<<"它是个奇数!"<<endl;
}
void O2(){
int jjcc;
cout<<"请选择运算:"<<endl;
cout<<"1.加法"<<endl<<"2.减法"<<endl<<"3.乘法"<<endl<<"4.除法"<<endl;
cin>>jjcc;
if(jjcc==1){
int a1[300]={0},b1[300]={0},c[300];
char a[300],b[300];
cout<<"把两个加数用空格隔开:"<<endl;
cin>>a>>b;
int as=strlen(a),bs=strlen(b),cs=1,q=0;
for(int i=1;i<=as;i++){
a1[i]=a[as-i]-48;
}
for(int i=1;i<=bs;i++){
b1[i]=b[bs-i]-48;
}
while(cs<=as || cs<=bs){
c[cs]=a1[cs]+b1[cs]+q;
q=c[cs]/10;
c[cs]=c[cs]%10;
cs++;
}
c[cs]=q;
while(c[cs]==0 && cs>1){
cs--;
}
for(int i=cs;i>=1;i--){
cout<<c[i];
}
cout<<endl;
}else if(jjcc==2){
}else{
cout<<"不好意思,作者还没做好这个功能awa"<<endl;
}
}
void O3(){
int n;
cout<<"要输出前几行?"<<endl;
cin>>n;
int a[n][n]={0};
for(int i=0;i<n;i++){
for(int o=0;o<=i;o++){
if(o==0||o==i) a[i][o]=1;
else a[i][o]=a[i-1][o-1]+a[i-1][o];
cout<<a[i][o]<<" ";
}
cout<<endl;
}
}
void O4(){
long long a,b,c;
cout<<"请输入一个年份:";
cin>>a;
b=a/100,c=b*100;
if(c == a){
b=a/400,c=b*400;
if(c == a){
cout<<"它是闰年"<<endl;
}else{
cout<<"它是平年"<<endl;
}
}else{
b=a/4,c=b*4;
if(a == c){
cout<<"它是闰年"<<endl;
}else{
cout<<"它是平年"<<endl;
}
}
cout<<endl;
/*
char a[200];
cout<<"请输入一个年份:";
cin>>a;
int b,b1,c;
b==strlen(a); //这里一直出值为1 ,怎么调都没用
cout<<b;
b1=b-1;
c=(a[b1]-'0')*10 + (a[b]-'0');
cout<<c;
if(c==0){
int b2,b3;
b2=b-2;b3=b-3;
c=(int)(a[b3]-'0')*10 + (a[b2]-'0');
}
if(c%4==0){
cout<<"它是闰年"<<endl;
}else{
cout<<"它是平年"<<endl;
}
----2024.3.2.21时卓海在家制出
*/
}
void T1(){
char word,abc[26];
bool awa;
cout<<"大写字母 or 小写字母 (0 or 1):";
cin>>awa;
if(awa){
word='a';
}else{
word='A';
}
for(int i=0;i<26;i++){
abc[i]=word;
word++;
}
string a;
int q=INT_MIN,n,ABC[26]={0},h;
cout<<"请输入文段的行数(输入阿拉伯数字):";
cin>>h;
for(int Chara=0;Chara<=h;Chara++){
getline(cin,a);
n=a.length();
for(int i=0;i<n;i++){
for(int j=0;j<26;j++){
if(abc[j]==a[i]){
ABC[j]++;
break;
}
}
}
}
for(int i=0;i<26;i++){
if(q<ABC[i]) q=ABC[i];
}
cout<<endl;
for(int i=q;i>0;i--){
for(int j=0;j<26;j++){
if(ABC[j]>=i){
cout<<"* ";
}else{
cout<<" ";
}
}
cout<<endl;
}
for(int i=0;i<26;i++){
cout<<abc[i]<<" ";
}
cout<<endl;
}
void T2(){
int awa=0;
cout<<"大写转换小写 or 小写转换大写 or 小孩子才做选择,我都要 (0 or 1 or 2):";
cin>>awa;
int cs,i,j=0;
cout<<"请输入文段的行数(输入阿拉伯数字):";
cin>>cs;
cin.get();
struct eng{
string a;
}hs[cs];
cout<<"请输入:"<<endl;
while(cs>0){
cs--;
j++;
getline(cin,hs[cs].a);
i=hs[cs].a.length();
while(i>0){
i--;
if(awa==0){
if(hs[cs].a[i]>='A'&&hs[cs].a[i]<='Z'){
hs[cs].a[i]=char(hs[cs].a[i]+32);
}
}else if(awa==1){
if(hs[cs].a[i]>='a'&&hs[cs].a[i]<='z'){
hs[cs].a[i]=char(hs[cs].a[i]-32);
}
}else if(awa==2){
if(hs[cs].a[i]>='A'&&hs[cs].a[i]<='Z'){
hs[cs].a[i]=char(hs[cs].a[i]+32);
}else if(hs[cs].a[i]>='a'&&hs[cs].a[i]<='z'){
hs[cs].a[i]=char(hs[cs].a[i]-32);
}
}
}
}
while(j>0){
j--;
cout<<hs[j].a<<endl;
}
}
void F1(){
while(1){
system("cls");
/*
"丞相祠堂何处寻","映阶碧草自春色","三顾频烦天下计","出师未捷身先死","风急天高猿啸哀","无边落木萧萧下","万里悲秋常作客","艰难苦恨繁霜鬓"
"锦官城外柏森森","隔叶黄鹂空好音","两朝开济老臣心","长使英雄泪满襟","渚清沙白鸟飞回","不尽长江滚滚来","百年多病独登台","潦倒新停浊酒杯"
*/
//61对
string up[80]={"唧唧复唧唧","不闻机杼声","问女何所思","女亦无所思","昨夜见军帖","军书十二卷","阿爷无大儿","愿为市鞍马","东市买骏马","南市买辔头","旦辞爷娘去","不闻爷娘唤女声","旦辞黄河去","不闻爷娘唤女声","万里赴戎机","朔气传金柝","将军百战死","归来见天子","策勋十二转","可汗问所欲","愿驰千里足","爷娘闻女来","阿姊闻妹来","小弟闻姊来","开我东阁门","脱我战时袍","当窗理云鬓","出门看火伴","同行十二年","雄兔脚扑朔","双兔傍地走","独坐幽篁里","深林人不知","谁家玉笛暗飞声","此夜曲中闻折柳","故园东望路漫漫","马上相逢无纸笔","草树知春不久归","杨花榆荚无才思","前不见古人","念天地之悠悠","岱宗夫如何","造化钟神秀","荡胸生曾云","会当凌绝顶","飞来山上千寻塔","不畏浮云遮望眼","莫笑农家腊酒浑","山重水复疑无路","箫鼓追随春社近","从今若许闲乘月","浩荡离愁白日斜","落红不是无情物","烟笼寒水月笼沙","商女不知亡国恨","宣室求贤访逐臣","可怜夜半虚前席","莫言下岭便无难","政入万山围子里","黄梅时节家家雨","有约不来过夜半"};
string dn[80]={"木兰当户织","唯闻女叹息","问女何所忆","女亦无所忆","可汗大点兵","卷卷有爷名","木兰无长兄","从此替爷征","西市买鞍鞯","北市买长鞭","暮宿黄河边","但闻黄河流水鸣溅溅","暮至黑山头","但闻燕山胡骑鸣啾啾","关山度若飞","寒光照铁衣","壮士十年归","天子坐明堂","赏赐百千强","木兰不用尚书郎","送儿还故乡","出郭相扶将","当户理红妆","磨刀霍霍向猪羊","坐我西阁床","著我旧时裳","对镜帖花黄","火伴皆惊忙","不知木兰是女郎","雌兔眼迷离","安能辨我是雄雌","弹琴复长啸","明月来相照","散入春风满洛城","何人不起故园情","双袖龙钟泪不干","凭君传语报平安","百般红紫斗芳菲","惟解漫天作雪飞","后不见来者","独怆然而涕下","齐鲁青未了","阴阳割昏晓","决眦入归鸟","一览众山小","闻说鸡鸣见日升","自缘身在最高层","丰年留客足鸡豚","柳暗花明又一村","衣冠简朴古风存","拄杖无时夜叩门","吟鞭东指即天涯","化作春泥更护花","夜泊秦淮近酒家","隔江犹唱后庭花","贾生才调更无伦","不问苍生问鬼神","赚得行人错喜欢","一山放出一山拦","青草池塘处处蛙","闲敲棋子落灯花"};
char words[4]={'A','B','C','D'};
cout<<"请选择您所需要的模式:"<<endl;
int zt;
cout<<"0.退出"<<endl;
cout<<"1.单首模式"<<endl;
cout<<"2.七下all模式"<<endl;
cin>>zt;
switch(zt){
case 0:
return;
case 1:
F1_1(up,dn);break;
case 2:
F1_2(up,dn);break;
default:
cout<<"输入错误! 请重新输入!";
return;
}
}
}
void F1_1(string up[],string dn[]){
int uz[20]={0,31,33,35,37,39,41,45,47,51,53,55,57,59,61};
cout<<"请选择你要默写的古诗:"<<endl;
cout<<"0.退出"<<endl;
cout<<"1.木兰诗"<<endl;
cout<<"2.竹里馆"<<endl;
cout<<"3.春夜洛城闻笛"<<endl;
cout<<"4.逢入京使"<<endl;
cout<<"5.晚春"<<endl;
cout<<"6.登幽州台歌"<<endl;
cout<<"7.望岳"<<endl;
cout<<"8.登飞来峰"<<endl;
cout<<"9.游山西村"<<endl;
cout<<"10.己亥杂诗"<<endl;
cout<<"11.泊秦淮"<<endl;
cout<<"12.贾生"<<endl;
cout<<"13.过松源晨炊漆公店(其五)"<<endl;
cout<<"14.约客"<<endl;
int zt;
cin>>zt;
if(zt==0) return;
else if(zt<0 || zt>14){
cout<<"输入错误! 请重新输入!";
Sleep(1500);
return;
}
zt--;
while(1){
int a=rand() % (uz[zt+1]-uz[zt]) + uz[zt];
bool c=rand()%2;
string b;
if(c){
cout<<"请输入“"+ up[a] +"”的下半句:";
cin>>b;
if(b==dn[a]){
cout<<"答对啦!";
}else{
cout<<"答错了,正确答案是: "+dn[a]<<" \n";
}
}else{
cout<<"请输入“"+ dn[a] +"”的上半句:";
cin>>b;
if(b==up[a]){
cout<<"答对啦!";
}else{
cout<<"答错了,正确答案是: "+up[a]<<" \n";
}
}
int pd;
cout<<"还要继续答题吗?( 1 or 0 ) ";
cin>>pd;
if(pd){
system("cls");
}else{
break;
}
}
}
void F1_2(string up[],string dn[]){
while(1){
int a=rand()%61;
bool c=rand()%2;
string b;
if(c){
cout<<"请输入“"+ up[a] +"”的下半句:";
cin>>b;
if(b==dn[a]){
cout<<"答对啦!";
}else{
cout<<"答错了,正确答案是: "+dn[a]<<" \n";
}
}else{
cout<<"请输入“"+ dn[a] +"”的上半句:";
cin>>b;
if(b==up[a]){
cout<<"答对啦!";
}else{
cout<<"答错了,正确答案是: "+up[a]<<" \n";
}
}
int pd;
cout<<"还要继续答题吗?( 1 or 0 ) ";
cin>>pd;
if(pd){
system("cls");
}else{
break;
}
}
}
void F2(){
system("cls");
int zt;
cout<<"请输入你要的连点器功能:"<<endl;
cout<<"0.退出"<<endl<<"1.鼠标连点" <<endl<<"2.键盘连点" <<endl;
cin>>zt;
if(zt==0) return;
else if(zt<0 || zt>2){
cout<<"输入错误! 请重新输入!";
return;
}
switch(zt){
case 1:
F2_1();
case 2:
F2_2();
}
return;
}
void F2_1(){
system("cls");
int zt;
cout<<"请输入你要连点的鼠标按键(退出/0 左键/1 or 右键/2 or 左右键都要/3):";
cin>>zt;
if(zt<0 or zt>3){
cout<<"输入错误! 请退出重进!";
return;
}else if(zt==0){
F2();
return;
}
int t;
cout<<"1000毫秒 = 1秒"<<endl;
cout<<"请输入你要连点的频次(毫秒,如输入错误则默认为 10 ):";
cin>>t;
if(t<1 || t>10000) t=10;
cout<<endl<<"按下 Alt + 左Windows 键 以重启"<<endl;
cout<<"3秒后开始运行"<<endl<<endl;
Sleep(3000);
switch(zt){
case 1:
while(1){
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 );
Sleep(t);
if(KEY_DOWN(18) && KEY_DOWN(91)){
break;
}
}
case 2:
while(1){
mouse_event (MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 );
Sleep(t);
if(KEY_DOWN(18) && KEY_DOWN(91)){
break;
}
}
case 3:
while(1){
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 );
mouse_event (MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 );
Sleep(t);
if(KEY_DOWN(18) && KEY_DOWN(91)){
break;
}
}
}
system ("pause");
F2();
return;
}
void F2_2(){
system("cls");
int awa[18]={0,16,17,18,91,92,87,65,83,68,38,40,37,39,8,9,32,13};
int zt;
cout<<"请输入你要连点的键盘按键"<<endl;
cout<<"退出/0 Shift键/1 Ctrl键/2 Alt键/3 左Win键/4 右Win键/5"<<endl;
cout<<"W/6 A/7 S/8 D/9"<<endl;
cout<<"方向键 上/10 下/11 左/12 右/13"<<endl;
cout<<"Backspace删除键/14 Tab键/15 Space空格键/16 Enter回车键/17"<<endl;
cout<<"请输入:";
cin>>zt;
if(zt == 0){
F2();
return;
}else if(zt<0 || zt>17){
cout<<"输入错误! 请退出重进!";
return;
}
int t;
cout<<"1000毫秒 = 1秒"<<endl;
cout<<"请输入你要连点的频次(毫秒,如输入错误则默认为 10 ):";
cin>>t;
if(t<1 || t>10000) t=10;
cout<<endl<<"按下 “ | & \\ ” 以重启"<<endl;
cout<<"3秒后开始运行"<<endl<<endl;
Sleep(3000);
while(1){
keybd_event(awa[zt],0,0,0);
keybd_event(awa[zt],0,KEYEVENTF_KEYUP,0);
Sleep(t);
if(KEY_DOWN(220)){
break;
}
}
system ("pause");
F2();
return;
}
void ST(){
color(15);
int a=50;
xy(1,3);
cout<<"|||";
for(int i=0;i<a;i++){
printf("-");
}
cout<<"|||";
xy(5,3);
cout<<"|||";
for(int i=0;i<a;i++){
printf("-");
}
cout<<"|||";
xy(2,3);
cout<<"|||";
xy(3,3);
cout<<"|||";
xy(4,3);
cout<<"|||";
xy(2,56);
cout<<"|||";
xy(3,56);
cout<<"|||";
xy(4,56);
cout<<"|||";
xy(6,0);
cout<<" 加载ing...";
color(11*16);
for(int i=0;i<a;i++){
xy(2,6+i);
printf(" ");
xy(3,6+i);
printf(" ");
xy(4,6+i);
printf(" ");
Sleep(i*6);
}
color(11*16+12);
xy(3,26);
cout<<"加载完成!!!";
Sleep(800);
color(15);
system("cls");
}
void ov(){
cout<<"\n\n";
while(1){
string st;
cout<<"输入“" + stop + "”以重置界面:";
cin>>st;
if(st==stop) break;
}
}
void OV(){
system("cls");
cout<<"正在关闭程序中......"<<endl; //关闭程序代码
Sleep(1000);
for(int i=0;i<100;){
Sleep(80);
if(i>93 && i<98){
Sleep(1000);
i=98;
}else if(i==98){
Sleep(1000);
i=99;
}else if(i==99){
Sleep(1250);
i=100;
}else{
i+=rand()%4+1;
}
cout<<"当前关闭进度为";
color(14);
cout<<i;
color(15);
cout<<"%"<<endl;
}
Sleep(1000);
cout<<"||------------------------------------------------------||"<<endl;
cout<<"|| 关闭成功 ! ! ! ||"<<endl;
cout<<"||------------------------------------------------------||"<<endl;
Sleep(2000);
}
恳求各位大佬提出意见
最后谢谢大家观看到这里,我是机长,我们下次再见!