
文章目錄
- 前言
- 正文
- 一、圣誕樹實作的基本流程
- 二、整個程式由多檔案實作
- 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 <stdio.h>
#include <stdlib.h>
#include <time.h>
#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
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/392183.html
標籤:其他
