




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、沈陽航空航天大學 課課 程程 設(shè)設(shè) 計計 報報 告告 課程設(shè)計名稱:C C 語言課程設(shè)計語言課程設(shè)計 課程設(shè)計題目:萬年歷軟件設(shè)計萬年歷軟件設(shè)計 學 院:計算機學院 專 業(yè):計算機科學與技術(shù) 班 級: 學 號: 姓 名: 指導教師:從麗暉 起止時間:2010年3月4日-2010年3月19日 目目 錄錄 第第 1 章章 需求分析需求分析.2 1.1 課程設(shè)計的題目及要求 .2 1.2 題目分析 .2 第第 2 章章 概要設(shè)計概要設(shè)計.3 2.1 主要函數(shù)和函數(shù)功能描述 .3 2.1.1 主要函數(shù).3 2.1.2 函數(shù)的功能描述.3 2.2 功能模板 .4 第第 3 章章 詳細設(shè)計詳細設(shè)計.5 3
2、.1 程序說明 .5 3.2 程序流程 .6 第第 4 章章 調(diào)試分析調(diào)試分析.7 4.1 調(diào)試過程中遇到的問題及解決方法 .7 4.2 經(jīng)驗總結(jié) .7 參考文獻參考文獻.8 附附 錄錄.9 總結(jié)總結(jié).11 第 1 章 需求分析 1.1 課程設(shè)計的題目及要求課程設(shè)計的題目及要求 題目:萬年歷軟件設(shè)計萬年歷軟件設(shè)計 內(nèi)容:設(shè)計一個簡單的萬年歷軟件,可實現(xiàn)對任意年份日歷的輸出。內(nèi)容:設(shè)計一個簡單的萬年歷軟件,可實現(xiàn)對任意年份日歷的輸出。 1 1、輸入年、月、日:輸出時星期幾;輸入年、月、日:輸出時星期幾; 2 2、打印任意年份的日歷;打印任意年份的日歷; 3 3、界面要優(yōu)化,直觀,大方,美觀;界面
3、要優(yōu)化,直觀,大方,美觀; 基本要求:基本要求:1 1、獨立完成系統(tǒng)的設(shè)計、編碼和調(diào)試。、獨立完成系統(tǒng)的設(shè)計、編碼和調(diào)試。 2 2、系統(tǒng)利用、系統(tǒng)利用 C C 語言實現(xiàn)。語言實現(xiàn)。 3 3、按照課程設(shè)計規(guī)范書寫課程設(shè)計報告。、按照課程設(shè)計規(guī)范書寫課程設(shè)計報告。 4 4、熟練掌握基本的調(diào)試方法,并將程序調(diào)試通過。、熟練掌握基本的調(diào)試方法,并將程序調(diào)試通過。 1.2 題目分析題目分析 界面優(yōu)化,直觀,大方,美觀需要做一個菜單,可實現(xiàn)直接輸入所需要的界面優(yōu)化,直觀,大方,美觀需要做一個菜單,可實現(xiàn)直接輸入所需要的 信息,不用顯示源代碼。對于顯示任意一天的星期數(shù)可以利用網(wǎng)絡(luò)找到公式。信息,不用顯示源代
4、碼。對于顯示任意一天的星期數(shù)可以利用網(wǎng)絡(luò)找到公式。 打印日歷先要判斷這個月的天數(shù),打印日歷先要判斷這個月的天數(shù),1,3,5,7,8,10,12 月為月為 31 天。天。 4,6,9,11 月為月為 30 天,天,2 月要判斷是否為閏年,是為月要判斷是否為閏年,是為 29 天,不是為天,不是為 28 天;判天;判 斷出天數(shù)后斷出天數(shù)后 計算本月第一天是星期幾,然后打印出日歷。計算本月第一天是星期幾,然后打印出日歷。 第 2 章 概要設(shè)計 2.1 主要函數(shù)和函數(shù)功能描述主要函數(shù)和函數(shù)功能描述 2.1.1 主要函數(shù)主要函數(shù) 1 關(guān)于設(shè)計菜單的函數(shù)關(guān)于設(shè)計菜單的函數(shù) menu_select().; 2
5、 leap()函數(shù);()函數(shù); 3 days_month()() 4 firstday()() 2.1.2 函數(shù)的功能描述函數(shù)的功能描述 1.菜單函數(shù)菜單函數(shù) mune_select()() ;直接顯示菜單;直接顯示菜單; 2 判斷是否為閏年的判斷是否為閏年的 leap()函數(shù);()函數(shù); 3 判斷這個月天數(shù)的判斷這個月天數(shù)的 days_month()() 4 判斷這個月第一天是星期幾的函數(shù)判斷這個月第一天是星期幾的函數(shù) firstday()() 2.2 功能模板圖顯示功能模板圖顯示 萬年歷軟件萬年歷軟件 1 顯 示菜 單. 2 輸 入年 月日 顯示 星期 幾 3.打 印日 歷 第三章 詳細設(shè)
6、計 3.1程序說明程序說明 先做一個菜單窗口,可以重復這個窗口, 輸入可以查詢?nèi)我饽骋惶斓男瞧跀?shù)例如輸入年月日得到 。 輸入可以打印任意月份的日歷例如輸入年月得到 對于第一個功能輸出任意天的星期先要算出輸入的是這一年的第幾天, (要注 意對閏年的判斷) 。然后利用公式 S=(year-1+(year-1)/4-(year-1)/100+(year-1) /400+sum)%7; X 表示年份,C 是該年份元旦開始到這一日的天數(shù) S/7 的系數(shù)就是星期數(shù). ,對日歷的打印,用函數(shù)()判斷要輸出的月份是多少天, 再用公式 w=(1+2*month+3*(month+1)/5+year+year/4
7、+year/400-year/100)%7+1; 算出輸入月份第一天的星期數(shù)。 3.2程序流程程序流程 主函數(shù)圖 計算星期圖 打印日歷圖 第第 4 章章 調(diào)試分析調(diào)試分析 4.1 調(diào)試過程中遇到的問題及解決方法調(diào)試過程中遇到的問題及解決方法 問題:問題: (1 1)問題:沒有毅力調(diào)程序,遇見困難總是逃避。解決辦法,在助導的把問題:沒有毅力調(diào)程序,遇見困難總是逃避。解決辦法,在助導的把 課設(shè)的重要程度說明后,堅持了下來。課設(shè)的重要程度說明后,堅持了下來。 (2 2)問題。很多程序都是不通過,總是無定義。問題。很多程序都是不通過,總是無定義。 解決辦法:沒有認真的看借來的書籍,沒有分清楚解決辦法:
8、沒有認真的看借來的書籍,沒有分清楚 t.ct.c 與與 V V。C C 的區(qū)別。的區(qū)別。 (3 3) 問題:打印的日歷總是提前一天,對控制格式還不是很了解。問題:打印的日歷總是提前一天,對控制格式還不是很了解。 解決方法解決方法: :細心調(diào)試發(fā)現(xiàn)問題的原因,然后解決;細心調(diào)試發(fā)現(xiàn)問題的原因,然后解決; (4 4) 問題問題: :對計算輸入年月日輸出星期幾的公式?jīng)]有具體查清,導致自己對計算輸入年月日輸出星期幾的公式?jīng)]有具體查清,導致自己 修改還沒有結(jié)果修改還沒有結(jié)果 ,浪費了時間。,浪費了時間。 4.2 經(jīng)驗總結(jié)經(jīng)驗總結(jié) 多看書籍尤其是教科書,把書上的知識點弄清楚然后看課外書來增加專多看書籍尤其
9、是教科書,把書上的知識點弄清楚然后看課外書來增加專 業(yè)知識,要好好利用學校圖書館的資源和網(wǎng)絡(luò)資源,但是不能盲目的抄襲。業(yè)知識,要好好利用學校圖書館的資源和網(wǎng)絡(luò)資源,但是不能盲目的抄襲。 做事要向前趕,不能拖。做事要向前趕,不能拖。 參考文獻參考文獻 11劉振安劉振安 C C 語言程序設(shè)計語言程序設(shè)計 課程設(shè)計課程設(shè)計 機械工業(yè)出版社機械工業(yè)出版社 20042004 22張長海張長海C C 語言程序設(shè)計語言程序設(shè)計MM北京:高等教育出版社,北京:高等教育出版社,20062006 33于帆于帆. .趙妮趙妮. .王中生等程序設(shè)計基礎(chǔ)王中生等程序設(shè)計基礎(chǔ) (C(C 語言版語言版) )清華大學出版社清
10、華大學出版社 44譚明金譚明金 俞海英俞海英 C C 語言程序設(shè)計實例精粹語言程序設(shè)計實例精粹 電子工業(yè)出版社電子工業(yè)出版社 附 錄 源程序代碼:源程序代碼: #include #include #include int leap (int year) ;/判斷是否為閏年 int days_month (int month,int year) ;/判斷這個月的天數(shù) int firstday(int month,int year);/顯示本月第一天是星期幾 int menu_select(); void f() int day,month,year,sum,leap,S; printf(n 請輸
11、入年月日n); scanf(%d%d%d, switch(month) case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; de
12、fault:printf(data error);break; sum=sum+day; if(year%400=0|(year%4=0 else leap=0; if(leap=1 S=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+sum)%7; /X 表示年份,C 是該年份元旦開始到這一日的天數(shù) /S/7 的系數(shù)就是星期數(shù) /01printf(%d,S); switch(S) case 1:printf(星期一n);break; case 2:printf(星期二n);break; case 3:printf(星期三n);break; case
13、4:printf(星期四n);break; case 5:printf(星期五n);break; case 6:printf(星期六n);break; case 0:printf(星期日n);break; void g() int i,j=1,k=1,a,b,month,year; printf(n 輸入年月:n); scanf(%d%d, b=days_month(month,year); a=firstday (month,year); printf(*n); printf( Sun Mon Tue Wed Thu Fri Sat n); if(a=7) for(i=1;i=b;i+) p
14、rintf(%4d,i); if(i%7=0) printf(n); if(a!=7) while (j=4*a) printf( ); j+; for(i=1;i=b;i+) printf(%4d,i); if(i=7*k-a) printf(n); k+; printf(n*n); printf(n); int leap (int year) if(year%4=0 else return 0; int days_month (int month,int year) if(month=1|month=3|month=5|month=7|month=8|month=10|month=12)
15、return 31; if(month=4|month=6|month=9|month=11) return 30; if(month=2 else return 28; int firstday(int month,int year) int w; w=(1+2*month+3*(month+1)/5+year+year/4+year/400-year/100)%7+1; return w; void main() for(;) switch(menu_select() case 1: printf(輸入年月日計算星期幾n);f(); break; case 2: printf(打印任意日歷
16、n);g(); break; case 3: printf(謝謝使用!n); exit(0); int menu_select() char s; int cn; printf(1. 輸入年月日計算星期幾n); printf(2. 打印任意日歷n); printf(3.謝謝使用! n); printf(input 1-3:); do s=getchar(); cn=(int)s-48; while(cn6); return cn; 總結(jié) 課程設(shè)計總結(jié):自從學習了課程設(shè)計總結(jié):自從學習了 C 語言后,一直覺得模模糊糊,什么也不會,一個語言后,一直覺得模模糊糊,什么也不會,一個 學期過去了總想學點現(xiàn)實中能用到的知識,在一開學就開始做課程設(shè)計學習如學期過去了總想學點現(xiàn)實中能用到的知識,在一開學就開始做課程設(shè)計學習如 可編寫程序心里比較高興吧,但是拿到題目以后有點暈,要我編寫一個萬年歷,可編寫程序心里比較高興吧,但是拿到題目以后有點暈,要我編寫一個萬年歷, 自己一點想法也沒有,后來上網(wǎng)看了一下大家的編寫的程序,暈啊自己一點想法也沒有,后來上網(wǎng)看了一下大家的編寫的程序,暈啊 ,看不懂!,看不懂! 沒辦法去了校圖書館去借書看看沒想到找了打印日歷的書,沒辦法去了校圖書館去借
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 手機中秋活動方案
- 手機賣場炒店活動方案
- 橋梁工程BIM施工方案及技術(shù)實施保障措施
- 安徽省定遠縣民族私立中學2025年化學高一下期末聯(lián)考試題含解析
- 安徽省“廬巢六校聯(lián)盟”2025屆高二化學第二學期期末統(tǒng)考試題含解析
- 海南省臨高縣波蓮中學2025屆化學高二下期末質(zhì)量檢測試題含解析
- 安徽省滁州市西城區(qū)中學2025屆高一化學第二學期期末教學質(zhì)量檢測模擬試題含解析
- 云南省曲靖市宣威五中第八中學2025屆高一下化學期末統(tǒng)考試題含解析
- 山東省滕州市第一中學2025年化學高一下期末復習檢測試題含解析
- 山西省孝義中學2025屆高二下化學期末統(tǒng)考試題含解析
- GB/T 45719-2025半導體器件金屬氧化物半導體(MOS)晶體管的熱載流子試驗
- 2024年安徽大學專職輔導員招聘筆試真題
- GB 9743-2024轎車輪胎
- 綠化工程施工技術(shù)方案及措施(可編輯)
- 會計知識競賽題庫附答案2021
- 廠房鋼筋混凝土地坪板工程施工方案
- 項目延期申請表(樣本)
- 固井工藝技術(shù)培訓教學課件(77p)
- 入團志愿書(2016版本)(可編輯打印標準A4) (1)
- 盤扣式腳手架模板與支撐架專項施工方案
- 消防器材購銷合同2
評論
0/150
提交評論