首页 > 编程 > C++ > 正文

C语言实现的程序员老黄历实例

2020-05-23 14:19:20
字体:
来源:转载
供稿:网友

这篇文章主要介绍了C语言实现的程序员老黄历,涉及日期的判定及流程控制的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了C语言实现的程序员老黄历。分享给大家供大家参考。具体如下:

以前看到过一个jquery程序员老黄历页面,觉得挺有创意的,自己闲着用C语言也写了一个,基本就是随机数的生成,没什么难度,大家随便看看,高手请绕过此篇,控制台程序没什么美观可言,已经尽量弄得好看点了。

 

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

运行效果如下图所示:

C语言实现的程序员老黄历实例

希望本文所述对大家的C语言程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表