c ++题库_c++基础知识

(30) 2024-09-23 14:01:01

目录

🔮前言

📕大体框架

📗所有string制作

💴1.question

💵2.ans

💶3.encourage

📘3s跳转制作

📙宝箱页制作

📔综合制作

🧳总结


🔮前言

        往期链接:2.引子与首页部分制作

        上一期,我们学习了引子与首页部分的制作。本次我带大家来认识答题器基本制作。

📕大体框架

        在制作答题器时,我们大体思路为:

string question={"...",...};//题目字符串 string ans="ABCD...";//答案字符串 string encourage={"...",...};//系统鼓励字符串,可有可无 void questions(){ 1.页面颜色,标题等; for(int i=1;i<题目数;i++){ 输入; 判断,score++; 其他; } 2.宝箱页跳转与否 }

        也就是先进行题目与答案的整合,包括系统提示(待会会讲)。这样代码可读性更高。

📗所有string制作

💴1.question

        这里指题目部分。我们可以加上需要(1.  2.等),但最好不用加,在for循环内再加。这样题目次序就没有限制。我们一般会多用\n\n空行分隔,做的要清晰一点。比如:

c ++题库_c++基础知识 (https://mushiming.com/)  第1张

        这里,我给出范例:

string question2[6]={"由于重金属矿物的不科学开采和利用,没有造成了什么现象?\n\nA.金属元素侵入土壤\n\nB.土质结构改变\n\nC.增加泥土含金量,造福当地村民\n\nD.影响农作物生长","如果泥砂涌入大海,有可能发生什么?\n\nA.危及海洋生物链\n\nB.引发洪灾\n\nC.海水淹没陆地\n\nD.填海造地后多植树就会对环境好","生态文明是指什么?\n\nA.人类遵循社会主义,共产主义与环境保护三者精神成果的总和\n\nB.人类遵循人、自然、社会和谐发展这一客观规律而取得的物质与精神成果的总和\n\nC.人们拥有保护环境的习惯\n\nD.建设崇明东滩湿地","从哪三大效益的需要来看,山区的自然地貌决定了最适宜发展的就是林业?\n\nA.经商,旅游业,经济\n\nB.环境,风气,态度\n\nC.民主,富强,智慧\n\nD.经济、社会、生态","植树造林应遵循什么?\n\nA.雨水多,土地肥沃\n\nB.天时、地利、人和\n\nC.心情好就行\n\nD.与树交流感情"};

💵2.ans

        ans指回答结果。对于一题给一个大写字母(小写也不是不行,就是后面需要改变处理方式)

        他只用一个string就可以完成。例如:

string ans="CDAAB";

💶3.encourage

        系统提示。指作对几道题,就给不同的鼓励。直接给到:

string encourage[30]={"一往无前,路漫漫其修远兮!恭喜您答对1题!","众望攸归,曾无与二!且喜青云足下生!恭喜您答对2题!","韦编三绝,观隅反三,书中自有颜如玉!恭喜您答对3题!","精诚所至,金石为开。名扬四海,指日可待!恭喜您答对4题!","学富五车,梅花香自苦寒来!恭喜您答对5题!","四清六活,天生我材必有用!恭喜您答对6题!","七步成诗,我辈岂是蓬蒿人!恭喜您答对7题!","八斗之才,指示青云借羽翰!恭喜您答对8题!","声闻九皋,卓尔超群,九万抟扶排羽翼!恭喜您答对9题!","十年寒窗逢佳日,且喜青云足下生!恭喜您答对10题!","金榜高悬姓字真,分明折得一枝春!恭喜您答对11题!","海阔凭鱼跃,天高任鸟飞!恭喜您答对12题!","千淘万漉虽辛苦,吹尽狂沙始到金!恭喜您答对13题!","三万里河东入海,五千仞岳上摩天!恭喜您答对14题!","不畏浮云遮望眼,自缘身在最高层!恭喜您答对15题!","循序而渐进,熟读且精思。恭喜您答对16题!","春风得意马蹄疾,一日看尽长安花!恭喜您答对17题","操千曲而后晓声,观千剑而后识器!恭喜您答对18题!","少年莫坠青云志,敢许天下第一流!恭喜您答对19题!","一万年来谁著史,八千里外觅诸侯!恭喜您,答对,20题!!!"}; 

        是不是很有文学气息?其是这是现在希望学的系统提示,作者借鉴模仿。

c ++题库_c++基础知识 (https://mushiming.com/)  第2张

📘3s跳转制作

        一些3s跳转,往往是大家在一些小游戏内可以普遍看到的。对于C++的3s跳转,我们宜可轻松完成。

        这里用到了退格键\b的用法,有不清楚的可以看我的往期文章:

        往期文章:详解那些C++中特殊的转义字符(\b, \r, \f 等)

        先看一看普通跳转:

cout<<"\n\n\t3s后跳转..."; Sleep(1000); cout<<"\b\b\b\b\b\b\b\b\b\b\b2s后跳转..."; Sleep(1000); cout<<"\b\b\b\b\b\b\b\b\b\b\b1s后跳转..."; Sleep(1000);

        我们还可以改成跳转首页,跳转至下一题。但记住,中文字符占两个位,需要两个\b符!!! 

        其他没什么好说的,我们继续。

📙宝箱页制作

        我们先学习如何做宝箱。宝箱主要用颜文字:

 /###((\o/))####/ | /_____//^\\____/# | | # |# | | 超 # 宝 |# | | 级 # 箱 |#/ |_______#____ __|/ 恭喜你全做对了,点击x键领取宝箱!)

        我们需要先输出宝箱图案,在进行getch()=='x'与否进行判断。用户点击x键,进行宝箱领取,金币添加。

        为了保证金币数与返回到原页面,我们还需要给定参数n代表金币数且字符w代表原页面。这里原页面的函数根据自己的要求所定。

        所以代码为:

void chest(int n,char w){ rgb_set(255,97,0,189,252,201); system("cls"); system("title 开宝箱"); cout<<"\t\t\t\t"; alert("宝箱\n\n"); rgb_set(255,153,18,189,252,201); cout<<"\t\t\t ◎金币:"<<corn<<"\n"; rgb_set(255,97,0,189,252,201); Slert(" /###((\\o/))####/ |\n /_____//^\\\\____/# |\n | # |# |\n | 超 # 宝 |# |\n | 级 # 箱 |#/\n |_______#____ __|/\n 恭喜你全做对了,点击x键领取宝箱!)"); while(1){ switch(getch()){ case 'x':{ system("cls"); cout<<"\t\t\t\t"; alert("宝箱\n\n"); rgb_set(255,153,18,189,252,201); cout<<"\t\t\t ◎金币:"<<corn<<"\n"; corn+=n; rgb_set(255,97,0,189,252,201); if(n<10){ Slert("\\ 恭喜您获得了 /\n \\ "); cout<<n; Slert(" /\n \\ 枚 /\n \\ ◎ /\n \\ /\n\n\n"); }else{ Slert("\\ 恭喜您获得了 /\n \\ "); cout<<n; Slert(" /\n \\ 枚 /\n \\ ◎ /\n \\ /\n\n\n"); } rgb_set(0,97,255,189,252,201); cout<<"\n\n\t3s后返回..."; Sleep(1000); cout<<"\b\b\b\b\b\b\b\b\b\b\b2s后返回..."; Sleep(1000); cout<<"\b\b\b\b\b\b\b\b\b\b\b1s后返回..."; Sleep(1000); if(w=='1') page1_environment_protect(); else if(w=='2') page2_make_changes(); else if(w=='3') page3_new_materials(); else homepage(); break; } case 'X':{ system("cls"); cout<<"\t\t\t\t"; alert("宝箱\n\n"); rgb_set(255,153,18,189,252,201); cout<<"\t\t\t ◎金币:"<<corn<<"\n"; corn+=n; rgb_set(255,97,0,189,252,201); if(n<10){ Slert("\\ 恭喜您获得了 /\n \\ "); cout<<n; Slert(" /\n \\ 枚 /\n \\ ◎ /\n \\ /\n\n\n"); }else{ Slert("\\ 恭喜您获得了 /\n \\ "); cout<<n; Slert(" /\n \\ 枚 /\n \\ ◎ /\n \\ /\n\n\n"); } rgb_set(0,97,255,189,252,201); cout<<"\n\n\t3s后返回..."; Sleep(1000); cout<<"\b\b\b\b\b\b\b\b\b\b\b2s后返回..."; Sleep(1000); cout<<"\b\b\b\b\b\b\b\b\b\b\b1s后返回..."; Sleep(1000); if(w=='1') page1_environment_protect(); else if(w=='2') page2_make_changes(); else if(w=='3') page3_new_materials(); else homepage(); break; } } } }

📔综合制作

        接着,我们来完成答题部分制作。

        直接上代码:

void questions(){ rgb_set(0,0,0,189,252,201); system("cls"); system("title 趣味答题"); cout<<"\t\t\t\t"; Slert("趣味答题\n\n"); rgb_set(255,153,18,189,252,201); cout<<"\t\t\t ◎金币:"<<corn<<"\n"; rgb_set(48,128,20,189,252,201); int score=0; char answ; for(int i=1;i<=5;i++){ cout<<i<<'.'; Slert(question[i-1]); Slert("\n\n请输入您的答案:_____\b\b\b\b\b"); cin>>answ; if(answ==ans[i-1]||answ==ans[i-1]+32){ corn++; rgb_set(0,0,0,189,252,201); system("cls"); cout<<"\t\t\t\t"; cout<<"趣味答题\n\n"; rgb_set(255,153,18,189,252,201); cout<<"\t\t\t ◎金币:"<<corn<<"\n"; rgb_set(0,50,240,189,252,201); Slert("\t系统提示:"); Slert(encourage[score++]); }else{ rgb_set(0,0,0,189,252,201); system("cls"); cout<<"\t\t\t\t"; cout<<"趣味答题\n\n"; rgb_set(255,153,18,189,252,201); cout<<"\t\t\t ◎金币:"<<corn<<"\n"; rgb_set(0,50,240,189,252,201); Slert("\t系统提示:信心来自于实力,实力来自于勤奋。继续加油!"); } rgb_set(255,0,0,189,252,201); if(i!=5){ cout<<"\n\n\t3s后跳转到下一题..."; Sleep(1000); cout<<"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b2s后跳转到下一题..."; Sleep(1000); cout<<"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b1s后跳转到下一题..."; Sleep(1000); }else{ cout<<"\n\n\t3s后跳转..."; Sleep(1000); cout<<"\b\b\b\b\b\b\b\b\b\b\b2s后跳转..."; Sleep(1000); cout<<"\b\b\b\b\b\b\b\b\b\b\b1s后跳转..."; Sleep(1000); } rgb_set(0,0,0,189,252,201); system("cls"); cout<<"\t\t\t\t"; cout<<"趣味答题\n\n"; rgb_set(255,153,18,189,252,201); cout<<"\t\t\t ◎金币:"<<corn<<"\n"; rgb_set(48,128,20,189,252,201); } if(score==5){ chest(5,'1'); } alert("\n\t恭喜您完成答题,点击R返回。"); while(1){ switch(getch()){ case 'r': 原函数; break; case 'R': 原函数; break; } } } 

        做出来效果十分的不错。大家如果不想做大的项目,只想做一个答题器,可以对此代码进行删改。

🧳总结

        本期我带大家学了:

        答题器中的string,3s跳转,宝箱页,答题器制作。

c ++题库_c++基础知识 (https://mushiming.com/)  第3张  

        下次我们进行综合完善环节,非常精彩,敬请期待。

THE END

发表回复