萬(wàn)年歷C語(yǔ)言程序設(shè)計(jì)_第1頁(yè)
萬(wàn)年歷C語(yǔ)言程序設(shè)計(jì)_第2頁(yè)
萬(wàn)年歷C語(yǔ)言程序設(shè)計(jì)_第3頁(yè)
萬(wàn)年歷C語(yǔ)言程序設(shè)計(jì)_第4頁(yè)
萬(wàn)年歷C語(yǔ)言程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、沈陽(yáng)航空航天大學(xué) 課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告 課程設(shè)計(jì)名稱:C C 語(yǔ)言課程設(shè)計(jì)語(yǔ)言課程設(shè)計(jì) 課程設(shè)計(jì)題目:萬(wàn)年歷軟件設(shè)計(jì)萬(wàn)年歷軟件設(shè)計(jì) 學(xué) 院:計(jì)算機(jī)學(xué)院 專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí): 學(xué) 號(hào): 姓 名: 指導(dǎo)教師:從麗暉 起止時(shí)間:2010年3月4日-2010年3月19日 目目 錄錄 第第 1 章章 需求分析需求分析.2 1.1 課程設(shè)計(jì)的題目及要求 .2 1.2 題目分析 .2 第第 2 章章 概要設(shè)計(jì)概要設(shè)計(jì).3 2.1 主要函數(shù)和函數(shù)功能描述 .3 2.1.1 主要函數(shù).3 2.1.2 函數(shù)的功能描述.3 2.2 功能模板 .4 第第 3 章章 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì).5 3

2、.1 程序說(shuō)明 .5 3.2 程序流程 .6 第第 4 章章 調(diào)試分析調(diào)試分析.7 4.1 調(diào)試過(guò)程中遇到的問(wèn)題及解決方法 .7 4.2 經(jīng)驗(yàn)總結(jié) .7 參考文獻(xiàn)參考文獻(xiàn).8 附附 錄錄.9 總結(jié)總結(jié).11 第 1 章 需求分析 1.1 課程設(shè)計(jì)的題目及要求課程設(shè)計(jì)的題目及要求 題目:萬(wàn)年歷軟件設(shè)計(jì)萬(wàn)年歷軟件設(shè)計(jì) 內(nèi)容:設(shè)計(jì)一個(gè)簡(jiǎn)單的萬(wàn)年歷軟件,可實(shí)現(xiàn)對(duì)任意年份日歷的輸出。內(nèi)容:設(shè)計(jì)一個(gè)簡(jiǎn)單的萬(wàn)年歷軟件,可實(shí)現(xiàn)對(duì)任意年份日歷的輸出。 1 1、輸入年、月、日:輸出時(shí)星期幾;輸入年、月、日:輸出時(shí)星期幾; 2 2、打印任意年份的日歷;打印任意年份的日歷; 3 3、界面要優(yōu)化,直觀,大方,美觀;界面

3、要優(yōu)化,直觀,大方,美觀; 基本要求:基本要求:1 1、獨(dú)立完成系統(tǒng)的設(shè)計(jì)、編碼和調(diào)試。、獨(dú)立完成系統(tǒng)的設(shè)計(jì)、編碼和調(diào)試。 2 2、系統(tǒng)利用、系統(tǒng)利用 C C 語(yǔ)言實(shí)現(xiàn)。語(yǔ)言實(shí)現(xiàn)。 3 3、按照課程設(shè)計(jì)規(guī)范書寫課程設(shè)計(jì)報(bào)告。、按照課程設(shè)計(jì)規(guī)范書寫課程設(shè)計(jì)報(bào)告。 4 4、熟練掌握基本的調(diào)試方法,并將程序調(diào)試通過(guò)。、熟練掌握基本的調(diào)試方法,并將程序調(diào)試通過(guò)。 1.2 題目分析題目分析 界面優(yōu)化,直觀,大方,美觀需要做一個(gè)菜單,可實(shí)現(xiàn)直接輸入所需要的界面優(yōu)化,直觀,大方,美觀需要做一個(gè)菜單,可實(shí)現(xiàn)直接輸入所需要的 信息,不用顯示源代碼。對(duì)于顯示任意一天的星期數(shù)可以利用網(wǎng)絡(luò)找到公式。信息,不用顯示源代

4、碼。對(duì)于顯示任意一天的星期數(shù)可以利用網(wǎng)絡(luò)找到公式。 打印日歷先要判斷這個(gè)月的天數(shù),打印日歷先要判斷這個(gè)月的天數(shù),1,3,5,7,8,10,12 月為月為 31 天。天。 4,6,9,11 月為月為 30 天,天,2 月要判斷是否為閏年,是為月要判斷是否為閏年,是為 29 天,不是為天,不是為 28 天;判天;判 斷出天數(shù)后斷出天數(shù)后 計(jì)算本月第一天是星期幾,然后打印出日歷。計(jì)算本月第一天是星期幾,然后打印出日歷。 第 2 章 概要設(shè)計(jì) 2.1 主要函數(shù)和函數(shù)功能描述主要函數(shù)和函數(shù)功能描述 2.1.1 主要函數(shù)主要函數(shù) 1 關(guān)于設(shè)計(jì)菜單的函數(shù)關(guān)于設(shè)計(jì)菜單的函數(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 判斷這個(gè)月天數(shù)的判斷這個(gè)月天數(shù)的 days_month()() 4 判斷這個(gè)月第一天是星期幾的函數(shù)判斷這個(gè)月第一天是星期幾的函數(shù) firstday()() 2.2 功能模板圖顯示功能模板圖顯示 萬(wàn)年歷軟件萬(wàn)年歷軟件 1 顯 示菜 單. 2 輸 入年 月日 顯示 星期 幾 3.打 印日 歷 第三章 詳細(xì)設(shè)

6、計(jì) 3.1程序說(shuō)明程序說(shuō)明 先做一個(gè)菜單窗口,可以重復(fù)這個(gè)窗口, 輸入可以查詢?nèi)我饽骋惶斓男瞧跀?shù)例如輸入年月日得到 。 輸入可以打印任意月份的日歷例如輸入年月得到 對(duì)于第一個(gè)功能輸出任意天的星期先要算出輸入的是這一年的第幾天, (要注 意對(duì)閏年的判斷) 。然后利用公式 S=(year-1+(year-1)/4-(year-1)/100+(year-1) /400+sum)%7; X 表示年份,C 是該年份元旦開始到這一日的天數(shù) S/7 的系數(shù)就是星期數(shù). ,對(duì)日歷的打印,用函數(shù)()判斷要輸出的月份是多少天, 再用公式 w=(1+2*month+3*(month+1)/5+year+year/4

7、+year/400-year/100)%7+1; 算出輸入月份第一天的星期數(shù)。 3.2程序流程程序流程 主函數(shù)圖 計(jì)算星期圖 打印日歷圖 第第 4 章章 調(diào)試分析調(diào)試分析 4.1 調(diào)試過(guò)程中遇到的問(wèn)題及解決方法調(diào)試過(guò)程中遇到的問(wèn)題及解決方法 問(wèn)題:?jiǎn)栴}: (1 1)問(wèn)題:沒有毅力調(diào)程序,遇見困難總是逃避。解決辦法,在助導(dǎo)的把問(wèn)題:沒有毅力調(diào)程序,遇見困難總是逃避。解決辦法,在助導(dǎo)的把 課設(shè)的重要程度說(shuō)明后,堅(jiān)持了下來(lái)。課設(shè)的重要程度說(shuō)明后,堅(jiān)持了下來(lái)。 (2 2)問(wèn)題。很多程序都是不通過(guò),總是無(wú)定義。問(wèn)題。很多程序都是不通過(guò),總是無(wú)定義。 解決辦法:沒有認(rèn)真的看借來(lái)的書籍,沒有分清楚解決辦法:

8、沒有認(rèn)真的看借來(lái)的書籍,沒有分清楚 t.ct.c 與與 V V。C C 的區(qū)別。的區(qū)別。 (3 3) 問(wèn)題:打印的日歷總是提前一天,對(duì)控制格式還不是很了解。問(wèn)題:打印的日歷總是提前一天,對(duì)控制格式還不是很了解。 解決方法解決方法: :細(xì)心調(diào)試發(fā)現(xiàn)問(wèn)題的原因,然后解決;細(xì)心調(diào)試發(fā)現(xiàn)問(wèn)題的原因,然后解決; (4 4) 問(wèn)題問(wèn)題: :對(duì)計(jì)算輸入年月日輸出星期幾的公式?jīng)]有具體查清,導(dǎo)致自己對(duì)計(jì)算輸入年月日輸出星期幾的公式?jīng)]有具體查清,導(dǎo)致自己 修改還沒有結(jié)果修改還沒有結(jié)果 ,浪費(fèi)了時(shí)間。,浪費(fèi)了時(shí)間。 4.2 經(jīng)驗(yàn)總結(jié)經(jīng)驗(yàn)總結(jié) 多看書籍尤其是教科書,把書上的知識(shí)點(diǎn)弄清楚然后看課外書來(lái)增加專多看書籍尤其

9、是教科書,把書上的知識(shí)點(diǎn)弄清楚然后看課外書來(lái)增加專 業(yè)知識(shí),要好好利用學(xué)校圖書館的資源和網(wǎng)絡(luò)資源,但是不能盲目的抄襲。業(yè)知識(shí),要好好利用學(xué)校圖書館的資源和網(wǎng)絡(luò)資源,但是不能盲目的抄襲。 做事要向前趕,不能拖。做事要向前趕,不能拖。 參考文獻(xiàn)參考文獻(xiàn) 11劉振安劉振安 C C 語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì) 課程設(shè)計(jì)課程設(shè)計(jì) 機(jī)械工業(yè)出版社機(jī)械工業(yè)出版社 20042004 22張長(zhǎng)海張長(zhǎng)海C C 語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)MM北京:高等教育出版社,北京:高等教育出版社,20062006 33于帆于帆. .趙妮趙妮. .王中生等程序設(shè)計(jì)基礎(chǔ)王中生等程序設(shè)計(jì)基礎(chǔ) (C(C 語(yǔ)言版語(yǔ)言版) )清華大學(xué)出版社清

10、華大學(xué)出版社 44譚明金譚明金 俞海英俞海英 C C 語(yǔ)言程序設(shè)計(jì)實(shí)例精粹語(yǔ)言程序設(shè)計(jì)實(shí)例精粹 電子工業(yè)出版社電子工業(yè)出版社 附 錄 源程序代碼:源程序代碼: #include #include #include int leap (int year) ;/判斷是否為閏年 int days_month (int month,int year) ;/判斷這個(gè)月的天數(shù) int firstday(int month,int year);/顯示本月第一天是星期幾 int menu_select(); void f() int day,month,year,sum,leap,S; printf(n 請(qǐng)輸

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(輸入年月日計(jì)算星期幾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. 輸入年月日計(jì)算星期幾n); printf(2. 打印任意日歷n); printf(3.謝謝使用! n); printf(input 1-3:); do s=getchar(); cn=(int)s-48; while(cn6); return cn; 總結(jié) 課程設(shè)計(jì)總結(jié):自從學(xué)習(xí)了課程設(shè)計(jì)總結(jié):自從學(xué)習(xí)了 C 語(yǔ)言后,一直覺得模模糊糊,什么也不會(huì),一個(gè)語(yǔ)言后,一直覺得模模糊糊,什么也不會(huì),一個(gè) 學(xué)期過(guò)去了總想學(xué)點(diǎn)現(xiàn)實(shí)中能用到的知識(shí),在一開學(xué)就開始做課程設(shè)計(jì)學(xué)習(xí)如學(xué)期過(guò)去了總想學(xué)點(diǎn)現(xiàn)實(shí)中能用到的知識(shí),在一開學(xué)就開始做課程設(shè)計(jì)學(xué)習(xí)如 可編寫程序心里比較高興吧,但是拿到題目以后有點(diǎn)暈,要我編寫一個(gè)萬(wàn)年歷,可編寫程序心里比較高興吧,但是拿到題目以后有點(diǎn)暈,要我編寫一個(gè)萬(wàn)年歷, 自己一點(diǎn)想法也沒有,后來(lái)上網(wǎng)看了一下大家的編寫的程序,暈啊自己一點(diǎn)想法也沒有,后來(lái)上網(wǎng)看了一下大家的編寫的程序,暈啊 ,看不懂!,看不懂! 沒辦法去了校圖書館去借書看看沒想到找了打印日歷的書,沒辦法去了校圖書館去借

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論