热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

程序员式浪漫:圣诞树成为最新流行趋势

文章目录前言正文一、圣诞树实现的基本流程二、整个程序由多文件实现1、test.h文件2、test.cpp源文件3、shengdanshu.cpp源文件结语前言MerryChrist

《听说最近圣诞树很流行啊,程序员式浪漫来咯~》

文章目录

    • 前言
    • 正文
  • 一、圣诞树实现的基本流程
  • 二、整个程序由多文件实现
    • 1、test.h 文件
    • 2、test.cpp源文件
    • 3、shengdanshu.cpp源文件
    • 结语

前言

Merry Christmas,everyone! 圣诞节到了,大家都在开心的谈论到圣诞树和圣诞老人等有趣的话题。然后作为代码人,仍然也离不开生活,当然生活也离不开代码哈!
在生活中有很多浪漫,提到代码人或程序员,大家都只能想到他们只会埋头敲键盘,除了敲代码还是敲代码!这样的认知是片面的,程序员也有自己的趣事,也也拥有程序员式浪漫!这里我们就来看一个简单的程序员式浪漫吧!今天,forever 将给大家带来一棵圣诞树哦~快去将此树送给你们最亲最爱的人吧!

正文

一、圣诞树实现的基本流程

1、创建工程,首先考虑自己的整个工程需要由多少头文件和源文件组成,forever 的详细工程创建如下面分析;
2、考虑好对应给每个文件分配什么内容(头文件和源文件),即它们的作用;
3、接下来放主函数,以主函数为主干,对其进行分支;
4、祝福语函数的实现;
5、菜单函数的实现;
6、圣诞树由四层组成,首先打印圣诞树树顶;
7、打印圣诞树第二层;
8、打印圣诞树第三层;
9、打印圣诞树底部;
10、完整的圣诞树。

二、整个程序由多文件实现

1、test.h 文件

test.h 文件是程序整体的头文件,它包含库函数头文件的引用、宏定义以及函数的声明。

头文件代码如下:


#include
#include
#include
#define HIGH1 8
#define HIGH2 16
#define WIDE 6
#define C 8
void manu();
void Blessingwords();//祝福语函数
void firsttree(char ch[C], int c, int n);//打印第一层树顶函数
void secoundtree(char ch[C], int c, int n);//打印圣诞树第二层函数
void threetree(char ch[C], int c, int n);//打印圣诞树第三层函数
void underthetree(char ch[C], int c, int n);//打印圣诞树底层函数
void loverheart();//打印爱心函数

2、test.cpp源文件

这个源文件里放的是主函数,是整个程序的主体。


#include "test.h"
int main()
{
srand((unsigned int)time(NULL));//生成随机值的前缀
Blessingwords();//调用祝福语函数
printf("\n");
unsigned int m = 0;
do
{
unsigned int n = 0;
char ch[C] = "!@#$%&*";
manu();//调用菜单函数
printf("宝儿,请选择以上数字后按enter:");
scanf("%d", &m);
printf("\n");
switch (m)
{
case 0:printf("宝儿,请收好你的专属圣诞树,虽然圣诞节是西方节日,但仍然在这里祝你圣诞节快乐,祝你每天都开开心心的!\n");
break;
case 1:printf("宝儿,请输入你心中圣诞树的大小(50-100整数)后按enter:");
scanf("%d", &n);
firsttree(ch,C,n);//调用打印树顶函数
secoundtree(ch, C, n);//调用打印圣诞树第二层函数
threetree(ch, C, n);//调用打印圣诞树第三层函数
underthetree(ch, C, n);//调用打印圣诞树根部函数
printf("宝儿,请收好你的专属圣诞树,虽然圣诞节是西方节日,但仍然在这里祝你圣诞节快乐,祝你每天都开开心心!\n");
loverheart();
break;
default:printf("你有点皮哦!请重新输入正确数字!\n");
}
} while (m);
return 0;
}

3、shengdanshu.cpp源文件

这个源文件是主函数的分支,实现主函数里面调用的自定义函数,也是整个程序具体逻辑的实现。


#include "test.h"
void Blessingwords()//实现祝福语函数
{
printf("Christmas is coming.\n");
printf("I give you a Christmas tree.\n");
printf("I wish you a smooth exam in advance.\n");
printf("Wish you have a happy Christmas with your boyfriend (girlfriend) ha!\n");
printf("\n");
}
void manu()//菜单函数
{
printf("——————————————————\n");
printf("——— 1.请接收您的专属圣诞树 ———\n");
printf("——— 0.已经收下圣诞树并感谢 ———\n");
printf("——————————————————\n");
printf("\n");
}
void firsttree(char ch[C],int c,int n)//实现打印树顶函数
{
for (int i = 0; i < n / 3; i += 4)
{
for (int j = 0; j < n / 2 - i / 2; j++)
{
printf(" ");
}
for (int j = 0; j <= i; j++)
{
int s = rand() % 7;
printf("%c",ch[s]);
}
printf("\n");
}
}
void secoundtree(char ch[C], int c, int n)//实现打印圣诞树第二层函数
{
for (int i = 0; i < (n / 3)+HIGH1; i += 4)
{
for (int j = 0; j < n / 2 - i / 2; j++)
{
printf(" ");
}
for (int j = 0; j <= i; j++)
{
int s = rand() % 7;
printf("%c", ch[s]);
}
printf("\n");
}
}
void threetree(char ch[C], int c, int n)//实现打印圣诞树第三层函数
{
for (int i = 0; i < (n / 3) + HIGH2; i += 4)
{
for (int j = 0; j < n / 2 - i / 2; j++)
{
printf(" ");
}
for (int j = 0; j <= i; j++)
{
int s = rand() % 7;
printf("%c", ch[s]);
}
printf("\n");
}
}
void underthetree(char ch[C], int c, int n)//实现打印圣诞树根部函数
{
int s = rand() % 7;
for (int i = 0; i < n / 3; i += 4)
{
for (int j = 0; j <n/2-3; j++)
{
printf(" ");
}
for (int j = 0; j <= WIDE; j++)
{
int s = rand() % 7;
printf("%c", ch[s]);
}
printf("\n");
}
}
void loverheart()//实现爱心打印函数
{
printf("收到圣诞树了,再附带一颗爱心\n");
printf("\n");
char c = '*';
//心冠
for (int i = 1; i < 4; i++)
{
for (int j = 1; j < 27 - i * 2; j++)
{
printf(" ");
}
for (int k = 1; k <= i * 4 + 1; k++)
{
printf("%c", c);
}
for (int m = 1; m <= 9 - 4 * (i - 1); m++)
{
printf(" ");
}
for (int n = 1; n <= i * 4 + 1; n++)
{
printf("%c", c);
}
printf("\n");
}
//心的中间部分
for (int i = 1; i < 4; i++)
{
for (int j = 1; j < 20; j++)
{
printf(" ");
}
for (int k = 1; k <= 29; k++)
{
printf("%c", c);
}
printf("\n");
}
//心的底部倒三角
for (int i = 1; i < 8; i++)
{
for (int j = 1; j < 20 + 2 * i; j++)
{
printf(" ");
}
for (int k = 1; k <= 29 - 4 * i; k++)
{
printf("%c", c);
}
printf("\n");
}
}

整体程序运行结果:
《听说最近圣诞树很流行啊,程序员式浪漫来咯~》
《听说最近圣诞树很流行啊,程序员式浪漫来咯~》

结语

圣诞节降至,今天 forever 给大家呈现的就是这颗圣诞树以及树后附赠的真心哈!让大家也感受感受理科生甚至是程序员式浪漫,也希望给大家带来很多乐趣和提高对代码的兴趣,消除枯燥乏味!
快拿起树去送给你最亲最爱的人吧!
生活中不缺少美,只是缺少发现的眼;当然,生活中也不缺少乐趣,只是缺少发现而已。虽然圣诞节是洋节,我们不过于看重,但是一句“祝大家圣诞节快乐!”还是可以说的哈!
谢谢观看!
再见!
以上代码均可运行,所用编译环境为 vs2019 ,运行时注意加上编译头文件#define _CRT_SECURE_NO_WARNINGS 1


推荐阅读
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 在 Flutter 开发过程中,开发者经常会遇到 Widget 构造函数中的可选参数 Key。对于初学者来说,理解 Key 的作用和使用场景可能是一个挑战。本文将详细探讨 Key 的概念及其应用场景,并通过实例帮助你更好地掌握这一重要工具。 ... [详细]
  • 异常要理解Java异常处理是如何工作的,需要掌握一下三种异常类型:检查性异常:最具代表性的检查性异常是用户错误或问题引起的异常ÿ ... [详细]
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • 本文介绍如何使用Objective-C结合dispatch库进行并发编程,以提高素数计数任务的效率。通过对比纯C代码与引入并发机制后的代码,展示dispatch库的强大功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文介绍了如何使用 Spring Boot DevTools 实现应用程序在开发过程中自动重启。这一特性显著提高了开发效率,特别是在集成开发环境(IDE)中工作时,能够提供快速的反馈循环。默认情况下,DevTools 会监控类路径上的文件变化,并根据需要触发应用重启。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
author-avatar
玄天战猫
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有