freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c語言課程設(shè)計--萬年歷(已修改)

2025-06-21 10:01 本頁面
 

【正文】 C 語 言 課 程 設(shè) 計 報 告 2021年 6月 15 日 設(shè)計題目: 萬年歷 學(xué) 生 姓 名 : 葉磊 學(xué) 生 學(xué) 號 : 20211010125 專 業(yè) 班 級 : 數(shù)學(xué)與應(yīng)用數(shù)學(xué)一班 學(xué) 院 名 稱 : 數(shù)學(xué)與計量經(jīng)濟學(xué)院 同組人姓名: 胡凡 指 導(dǎo) 老 師 : 姚 蘭 1 1 需求分析 問題描述 我們需要實現(xiàn)萬年歷的功能,那么如何實現(xiàn)這個功能呢 ?我們都很清楚,普通年份和閏年是有區(qū)別的,那么該怎么區(qū)分這種一天的差別對于萬年歷日期現(xiàn)實的影響呢?而且已知一個日期,那么我 們怎么能夠知道它是星期幾?是不是需要一個參照物來比較呢?而且還有很多關(guān)于萬年歷的美化問題,占位符的考慮等等。另外我們還必須判斷輸入的萬年歷是否合法,這也需要一個子函數(shù)來實現(xiàn) 。好吧,至于基礎(chǔ)的判斷閏年也是不在話下了。 輸入數(shù)據(jù)要求 我們要考慮三種情況,這三種情況下是不能夠?qū)崿F(xiàn)這個萬年歷的功能的: /*如果給定的日期中年份部分為非正數(shù) */ if(=0) printf(年份不符合要求 !\n printf(請重新輸入 ) /*如果給定的日期 中月份部分為負數(shù) ,為 0或者大于 12*/ if(12||1) printf(月份不符合要求 !\n)。 printf(請重新輸入 )。 getchar()。 exit(0)。 /*如果給定的日期中天數(shù)部分為非正數(shù) ,或者大于 31*/ a[2]=28+leap()。 if(a[]||1) printf(日期不符合要求 !\n)。 printf(請重新輸入 )。 getchar()。 exit(0)。 輸出數(shù)據(jù)要求 根據(jù)輸入數(shù)據(jù),輸出數(shù)據(jù) 必須嚴格的按照 占位符進行邏輯的策劃,然后得知一行萬年歷的日期的占位符是 38個占位符,于是空格占位符和字符顯示出來的那些占位符就需要有一個限定使得其不凌亂特別應(yīng)該注意空格符的占位。 開發(fā)環(huán)境和工具 開發(fā)環(huán)境: WINDOWS 7 開發(fā)工具: DevC++ 2 成員分工 葉磊 :主調(diào)模塊、 萬年歷功能實現(xiàn) 、 數(shù)據(jù)測試 、 注釋編寫 胡凡 :總體設(shè)計、 主調(diào)模塊、備忘錄功 能實現(xiàn) 、 注釋編寫 2 總體設(shè)計 總體設(shè)計思路 1. 設(shè)計思路 考慮到日期與備忘的一一對應(yīng),采用結(jié)構(gòu)體來解決該題成為一個可行的思路。首先,定義結(jié)構(gòu)體類型,使得年月日與 備忘直接綁定在一起。通過程序中這一臨時存放數(shù)據(jù)的變量,使用文件的讀寫功能向文件中寫入文件以及讀出信息以暫時使用。 針對日歷的輸出,首要考慮的是當月 1 日的輸出位置,即需要求出該月 1 日是星期幾。針對這個問題,我們以 2021年 1月 1日為基點,求所求日期與基點距離的天數(shù)之差,之后根據(jù)除以 7取的余數(shù)來看星期。選擇 2021年 1月 1日為基點,是因為其滿足計 算的兩個條件:,使得計算相差天數(shù)的計算變得更為簡單。 ,使得相差的天數(shù)除以 7 所取出來的余數(shù)正好按日歷從左至右顯示(我們 輸出的日歷從左往右依次為星期日、一、二、三、四、五、六)。我們考慮 2021 年前與后的兩種情況。 2021 年后所需的即為正常余數(shù), 2021 年前的則需要用 7 減去得到的余數(shù)才是所欲要的值。之后經(jīng)過一定的輸出格式即可將日歷輸出。 針對備忘錄的編寫,考慮到定義了一個結(jié)構(gòu)體使得年月日與備忘相連,因此可以將年月日與備忘一同存入文件??紤]到萬年備忘錄的龐大,為了節(jié)省時間和空 間,我們想出了一個算法:在 添加 寫入文件時, 一律將數(shù)據(jù)內(nèi)容寫入文件末尾(即使用 ab+追加模式);而當讀取文件時,則將文件內(nèi)的年月日與外部參數(shù)輸入的年月日相比較,不相同則位置指針下移,一直到年月日相同或者無法讀取為止。這樣編寫可以避免考慮年份的上限大?。ㄒ驗槿绻x一個二維數(shù)組,雖然也可以將日期和備忘一一對應(yīng),但是這樣的話處理這個數(shù)組的上限就不好操作了。如果數(shù)組開太大會直接影響運行速度),而且在存入的備忘不太多的情況下在時間和空間上都可以節(jié)?。臻g只跟存入的備忘數(shù)目有關(guān),而不是直接開很大的數(shù)組,這樣即使年份很大 也不會對空間大小有什么影響)。另外,我們設(shè)計了備忘修改功能、備忘刪除(單日或全部),使得操作可以更人性化。 最后,在自學(xué)了命令行參數(shù)之后,我們用 argc 和 *argv[]將主函數(shù)寫出,并且用 getopt 函數(shù)來處理接收的參數(shù)并返回命令選項。之后便可以通過返回的命令選項用 switch 語句選擇所需要實現(xiàn)的功能。 以上即為我們對該課題的總體設(shè)計思路。 2. 數(shù)據(jù)存儲 將年月日與對應(yīng)的備忘放于同一結(jié)構(gòu)體變量中,在使用文件讀寫時作為一個整體使用,也方便了添加功能、修改功能、刪除功能的實現(xiàn)。 3 模塊結(jié)構(gòu)圖 根據(jù)需求將系統(tǒng)劃分 為四個功能模塊, 函數(shù)之間的調(diào)用 關(guān)系 如圖 。 圖 晚年備忘錄 的模塊結(jié)構(gòu)圖 1) Main:主函數(shù)。 2) leap:閏年判斷。 3) checkDate:檢查日期合法性 4) show_calender:顯示當日的日歷(未輸入日時顯示當月 1日的日歷)。 5) memo_read:備忘的讀取。 6) memo_written:備忘的寫入。 7) memo_modify:備忘的修改。 8) memo_delete:備忘的刪除(當日)。 9) memo_delete_all:備忘的刪除(全部)。 模塊說明 (以從上至下,從左至右的順序說明) 1. MathPath模塊 函數(shù)原型: int main(int argc,char *argv[]) 功 能: 主函數(shù) 輸入?yún)?shù): argc—— int類型,表示 錄入?yún)?shù)的個數(shù) *argv[]—— char類型, 各元素記錄 各種 錄入 字符串的首地址 輸出參數(shù): 0—— int類型, 返回給系統(tǒng)一個值,說明程序正常終止 2. leap模塊 函數(shù)原型: int leap(int t_year) 功 能: 閏年判斷 輸入?yún)?shù): t_year— — int類型,表示 需要判斷閏年的年份 memo_written memo_modify memo_delete memo_delete_all memo_read leap checkDate Main show_calender 箭頭出發(fā)的函數(shù)調(diào)用箭頭指向的函數(shù) 4 輸出參數(shù): 1—— int類型, 如果是閏年則返回 1; 0—— int類型, 如果是非閏年則返回 0; 3. checkDate 模塊 函數(shù)原型: void checkDate() 功 能: 檢查輸入年月日的合法性 輸入?yún)?shù): year—— int類型,表示 年份 month—— int類型,表示 月份 day—— int類型,表示 日期 輸出參數(shù): 無 4. show_calender模塊 函數(shù)原型: void show_calender() 功 能: 顯示日歷 輸 入?yún)?shù): —— int類型,表示 年份 —— int類型,表示 月份 —— int類型,表示 日期 輸出參數(shù): 無 5. memo_read模塊 函數(shù)原型: void memo_read() 功 能: 從文件讀取 備忘 輸入?yún)?shù): —— int類型,表示 年份 —— int類型,表示 月份 —— int類型,表示 日期 輸出參數(shù): 無 6. memo_written模塊 函數(shù)原 型: void memo_written () 功 能: 將備忘寫入文件 輸入?yún)?shù): —— int類型,表示 年份 —— int類型,表示 月份 —— int類型,表示 日期 輸出參數(shù): 無 7. memo_modify模塊 函數(shù)原型: void memo_modify () 功 能: 修改備忘 輸入?yún)?shù): —— int類型,表示 年份 —— int類型,表示 月份 —— int類型,表示 日期 輸出參數(shù): 無 8. memo_delete 模塊 函數(shù)原型: void memo_delete () 功 能: 刪除備忘(當日) 輸入?yún)?shù): —— int類型,表示 年份 5 —— int類型,表示 月份 —— int類型,表示 日期 輸出參數(shù): 無 9. memo_delete_all模塊 函數(shù)原型: void
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1