這篇文章主要介紹了C語言實現的程序員老黃歷,涉及日期的判定及流程控制的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了C語言實現的程序員老黃歷。分享給大家供大家參考。具體如下:
以前看到過一個jquery程序員老黃歷頁面,覺得挺有創意的,自己閑著用C語言也寫了一個,基本就是隨機數的生成,沒什么難度,大家隨便看看,高手請繞過此篇,控制臺程序沒什么美觀可言,已經盡量弄得好看點了。
- #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語言程序設計有所幫助。
新聞熱點
疑難解答