带你学会C++文字页面类项目——2.引子与首页部分制作

2023-11-22 11:40

本文主要是介绍带你学会C++文字页面类项目——2.引子与首页部分制作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

🔮前言

⭐声明部分

🌌引子部分制作 

🔋首页部分制作

🧳总结


 

🔮前言

        往期链接:1.初步引入与知识储备

        上一期我带大家认识了C++文字页面类项目和基础知识,这一次,我们来学习运用它们来进行运用。

⭐声明部分

        之前讲到,在做任何比较大且函数量多的项目,需要运用先声明再定义的函数定义方式,以便结构清晰,主函数为第一个定义函数。

        我们可以添加一些合适的注释,来增加可读性。这是一个范例:

//页面声明
void get_in();
void homepage();void page1_environment_protect();
void page1_centre1_ctell();
void page1_centre2_htell();
void page1_centre3_effect();void page2_make_changes();
void page2_centre1_pl();
void page2_centre2_eprp();
void page2_centre3_pt(); void page3_new_materials();
void page3_centre1_figure_out();
void page3_centre2_gn();
void page3_centre3_sp();void page4_questions(string);
void finish();
void chest(int,char);//小插件声明 
void alert(string);
void Slert(string);
void rgb_init();
void rgb_set(int wr,int wg,int wb,int br,int bg,int bb);

🌌引子部分制作 

        引子部分是最简单的。但是想做好也需要仔细阅读专栏中上一期内容。我们在引子部分可以运用alert函数进行。(上一篇提到过,不清楚请看上一篇)

        同时,我们也可以用Sleep语句来做分句。

        我们同时需要顾及到主函数的处理方法,主函数的写法是:

int main(){//主函数rgb_init();//初始化ANSI转义函数rgb_set(255,255,255,0,201,87);//配置颜色system("mode con cols=72 lines=28");//设置大小(可改变)get_in();//进入引子部分return 0;//主函数结束(没什么用,形式)
}

        这里再次强调,里面的子函数我们第一篇已经给到,如果不清楚请重新查阅。

        get_in就是引子部分。接着会跳转到引子部分。

        引子部分的结构简单:

void get_in(){system("cls");system("title 引子");/*文本,注意使用alert比cin更炫更美观*/homepage();//跳转到主页
}

        我们通过范例来学习,这是一个关于科技环保的引子素材(我自己编的,不涉嫌恶意搬运)

void get_in(){system("cls"); system("title 引子");cout<<"\t\t\t  ";rgb_set(200,255,255,0,201,87);alert("创未来·我的科技梦\n\n");rgb_set(255,255,255,0,201,87);alert("\t“科技是第一生产力”。自二十世纪开始,祖国的科学技术有了突破性的\n\n发展。\n\n");Sleep(500);alert("\t时至今日,科技仍是推动时代发展的利器。“科技梦”推动“中国梦”,\n\n祖国的科技日益渐进,成就了伟大壮举。\n\n\t我们作为新时代的接班人,也要掌握科技力量,为祖国的未来争光添彩。\n\n\t现在,许多科技内容高深莫测,我们没法掌握。但是关于环境保护,我们\n\n可以做到。\n\n\t让我们开始我们的生态科技学习之旅吧!");rgb_set(255,10,10,0,201,87);cout<<"\n\n\t3s后跳转到首页...";Sleep(1000);cout<<"\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\b1s后跳转到首页...";Sleep(1000);homepage();
}

        🔊重点详解:

        📀1.虽然引子部分在第一个,且不会重新出现,最初屏幕是空的。但是还需要加上清屏语句。虽然此处不加也没关系,但是需要注意的是:

        rgb_set运用到全屏幕(见下图,没运用好的现状)只有通过函数跳转或清屏构成。如果既没有跳转,又没有清屏,就会出现如下情况:

        所以,为了养成好习惯,我们最好添加system("pause");

        📀2.结构:

rgb_set(255,10,10,0,201,87);
cout<<"\n\n\t3s后跳转到首页...";
Sleep(1000);
cout<<"\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\b1s后跳转到首页...";
Sleep(1000);

        是我们制作过程中遇到最多的一种返回方式。能够成功模拟真实的跳转效果。

        📀3.双\n:

        可以看到,范例中运用了空行“\n\n”,是为了让用户看着舒服,一行换一下。我们可以先不添加,运行一遍后找到行末添加。

        现在,这就是我们的成果:

🔋首页部分制作

        首页的制作难度也比较低。通过switch加上getch()语句,分别添加小分支即可。

        直接上代码案例:

void homepage(){rgb_set(200,255,255,144,144,255);system("cls");system("title 首页");cout<<"\t\t\t\t";Slert("首页\n\n");rgb_set(255,255,0,144,144,255);cout<<"\t\t\t     ◎金币:"<<corn<<"\n";rgb_set(255,255,255,144,144,255);Slert(" 1. 环境保护\n\n");Slert(" 2. 改善生态环境\n\n");Slert(" 3. 开发新能源\n\n");Slert(" 4. 趣味答题\n\n");rgb_set(11,23,180,144,144,255);Slert("(*输入相应数字,前往平台,如想退出请按R)");
flag:	switch(getch()) {case '1':page1_environment_protect();break;case '2':page2_make_changes();break;case '3':page3_new_materials();break;case '4':page4_questions("");break;case 'r':finish();break;case 'R':finish();break;default:goto flag;break;}
}

        🔊重点详解:

        📀1.金币部分可有可无,看情况而定(自己制作主题)。

        📀2.flag与goto跳转的必要性是因为需要避免用户输错导致的卡壳或返回错误。

        📀3.颜色随你便,但是金币的颜色还是推荐255,255,0。

        📀4.之所以写r与R,是因为需要顾及到小写与大写的不同,后面多次都会用到。

🧳总结

        本期我带大家学了:

        声明的用法,主函数与引子,首页部分。

  

        下次我们学习答题器制作,十分精彩,不要错过,敬请期待。

这篇关于带你学会C++文字页面类项目——2.引子与首页部分制作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/409877

相关文章

C++实现回文串判断的两种高效方法

《C++实现回文串判断的两种高效方法》文章介绍了两种判断回文串的方法:解法一通过创建新字符串来处理,解法二在原字符串上直接筛选判断,两种方法都使用了双指针法,文中通过代码示例讲解的非常详细,需要的朋友... 目录一、问题描述示例二、解法一:将字母数字连接到新的 string思路代码实现代码解释复杂度分析三、

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

SpringBoot项目注入 traceId 追踪整个请求的日志链路(过程详解)

《SpringBoot项目注入traceId追踪整个请求的日志链路(过程详解)》本文介绍了如何在单体SpringBoot项目中通过手动实现过滤器或拦截器来注入traceId,以追踪整个请求的日志链... SpringBoot项目注入 traceId 来追踪整个请求的日志链路,有了 traceId, 我们在排

禁止HTML页面滚动的操作方法

《禁止HTML页面滚动的操作方法》:本文主要介绍了三种禁止HTML页面滚动的方法:通过CSS的overflow属性、使用JavaScript的滚动事件监听器以及使用CSS的position:fixed属性,每种方法都有其适用场景和优缺点,详细内容请阅读本文,希望能对你有所帮助... 在前端开发中,禁止htm

C++一个数组赋值给另一个数组方式

《C++一个数组赋值给另一个数组方式》文章介绍了三种在C++中将一个数组赋值给另一个数组的方法:使用循环逐个元素赋值、使用标准库函数std::copy或std::memcpy以及使用标准库容器,每种方... 目录C++一个数组赋值给另一个数组循环遍历赋值使用标准库中的函数 std::copy 或 std::

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::