本文实例讲述了C语言实现的程序员老黄历。分享给大家供大家参考。具体如下:
以前看到过一个jquery程序员老黄历页面,觉得挺有创意的,自己闲着用C语言也写了一个,基本就是随机数的生成,没什么难度,大家随便看看,高手请绕过此篇,控制台程序没什么美观可言,已经尽量弄得好看点了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
#include <stdio.h>
#include <time.h>
int random( int dayseed, int indexseed)
//根据当前时间“天 ”产生伪随机数。
{
int i,n;
n = dayseed % 11117;
for (i = 0; i < 100 + indexseed; i++)
{
n = n * n;
n = n % 11117; // 11117 是个质数
}
return n;
}
int isWeekend( struct tm *p)
{
return p->tm_wday == 0 || p->tm_wday == 6;
}
int main( int argc, char *argv[])
{
char *weeks[6] = { "一" , "二" , "三" , "四" , "五" , "六" , "日" };
printf ( "|-------------------------------------|\n" );
printf ( "| 程序员老黄历beta 1.0 |\n" );
printf ( "|-------------------------------------|\n" );
time_t timep;
struct tm *p;
time (&timep);
p = localtime (&timep);
//此函数获得的tm结构体的时间,是已经进行过时区转化为本地时间
printf ( "|-------------------------------------|\n" );
printf ( "| 今天是%d年%d月%d日 星期%s |\n" ,1900+p->tm_year,1+p->tm_mon,p->tm_mday,weeks[p->tm_wday-1]);
printf ( "|-------------------------------------|\n" );
int randNum=random(p->tm_mday, 2); //产生伪随机数
int randNum1=random(p->tm_mday, 3);
char *activities[27][3] = {
{ "写单元测试" , "写单元测试将减少出错" , "写单元测试会降低你的开发效率" },
{ "白天上线" , "今天白天上线是安全的" , "可能导致灾难性后果" },
{ "重构" , "代码质量得到提高" , "你很有可能会陷入泥潭" },
{ "使用%t" , "你看起来更有品位" , "别人会觉得你在装逼" },
{ "跳槽" , "该放手时就放手" , "鉴于当前的经济形势,你的下一份工作未必比现在强" },
{ "招人" , "你遇到千里马的可能性大大增加" , "你只会招到一两个混饭吃的外行" },
{ "面试" , "面试官今天心情很好" , "面试官不爽,会拿你出气" },
{ "提交辞职申请" , "公司找到了一个比你更能干更便宜的家伙,巴不得你赶快滚蛋" , "鉴于当前的经济形势,你的下一份工作未必比现在强" },
{ "申请加薪" , "老板今天心情很好" , "公司正在考虑裁员" },
{ "晚上加班" , "晚上是程序员精神最好的时候" , "" , },
{ "命名变量\"%v\"" , "" , "" },
{ "写超过%l行的方法" , "你的代码组织的很好,长一点没关系" , "你的代码将混乱不堪,你自己都看不懂" },
{ "提交代码" , "遇到冲突的几率是最低的" , "你遇到的一大堆冲突会让你觉得自己是不是时间穿越了" },
{ "代码复审" , "发现重要问题的几率大大增加" , "你什么问题都发现不了,白白浪费时间" },
{ "开会" , "写代码之余放松一下打个盹,有益健康" , "你会被扣屎盆子背黑锅" },
{ "晚上上线" , "晚上是程序员精神最好的时候" , "你白天已经筋疲力尽了" },
{ "修复BUG" , "你今天对BUG的嗅觉大大提高" , "新产生的BUG将比修复的更多" },
{ "设计评审" , "设计评审会议将变成头脑风暴" , "人人筋疲力尽,评审就这么过了" },
{ "需求评审" , "" , "" },
{ "打DOTA" , "你将有如神助" , "你会被虐的很惨" , }, //这里往下的是周末特定情况 (19-27)
{ "洗澡" , "你几天没洗澡了?" , "会把设计方面的灵感洗掉" , },
{ "锻炼一下身体" , "" , "能量没消耗多少,吃得却更多" , },
{ "抽烟" , "抽烟有利于提神,增加思维敏捷" , "除非你活够了,死得早点没关系" , },
{ "在妹子面前吹牛" , "改善你矮穷挫的形象" , "会被识破" , },
{ "撸管" , "避免缓冲区溢出" , "强撸灰飞烟灭" , },
{ "浏览成人网站" , "重拾对生活的信心" , "你会心神不宁" , },
{ "上微博" , "今天发生的事不能错过" , "会看到令人心情不好的事" , },
{ "上AB站" , "还需要理由吗?" , "满屏的兄贵我会说出来?" , }
};
printf ( "|-------------------------------------|\n" );
if (isWeekend(p))
printf ( "| 宜: \n| %2s\n| %s\n" ,activities[19+randNum%8][0],activities[randNum%27][1]);
else
printf ( "| 宜: \n| %2s\n| %s\n" ,activities[randNum%17][0],activities[randNum%27][1]);
printf ( "|-------------------------------------|\n" );
printf ( "|-------------------------------------|\n" );
if (isWeekend(p))
printf ( "| 不宜:\n| %s\n| %s\n" ,activities[19+randNum1%8][0],activities[randNum1%27][2]);
else
printf ( "| 不宜:\n| %s\n| %s\n" ,activities[randNum1%17][0],activities[randNum1%27][2]);
printf ( "|-------------------------------------|\n" );
/*座位朝向*/
char *directions[8]= { "北方" , "东北方" , "东方" , "东南方" , "南方" , "西南方" , "西方" , "西北方" };
printf ( "|-------------------------------------|\n" );
printf ( "| 座位朝向:面向 %s 写程序,BUG 最少.\n" ,directions[randNum%8]);
/*今日宜饮*/
char *drinks[14] = { "水" , "茶" , "红茶" , "绿茶" , "咖啡" , "奶茶" , "可乐" , "牛奶" , "豆奶" , "果汁" , "果味汽水" , "苏打水" , "运动饮料" , "酸奶" , "酒" };
printf ( "|-------------------------------------|\n" );
printf ( "| 今日宜饮:%s,%s\n" ,drinks[randNum%14],drinks[randNum1%14]);
/*女神亲近指数*/
int ambiguous = randNum%10;
printf ( "|-------------------------------------|\n" );
if (10==ambiguous)
printf ( "| 亲近指数为10,上吧,骚年!\n" );
else
printf ( "| 女神亲近指数:%d \n" ,ambiguous);
printf ( "|-------------------------------------|\n" );
return 0;
}
|
运行效果如下图所示:
希望本文所述对大家的C语言程序设计有所帮助。