版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 目錄</b></p><p> 第一章 課程設(shè)計的目的和要求1</p><p> 第二章 課程設(shè)計內(nèi)容及要求2</p><p> 第三章 設(shè)計說明3</p><p> 第四章 課程設(shè)計心得體會5</p><p> 附錄1:參考文獻6</p
2、><p> 附錄2:程序代碼7</p><p> 第一章 課程設(shè)計的目的和要求</p><p> C語言課程設(shè)計的主要目的是培養(yǎng)學生綜合運用C語言程序設(shè)計課程所學到的知識,編寫C程序解決實際問題的能力,以及嚴謹?shù)墓ぷ鲬B(tài)度和良好的程序設(shè)計習慣。</p><p> 通過課程設(shè)計的訓練,學生應(yīng)該能夠了解程序設(shè)計的基本開發(fā)過程,掌握編寫、調(diào)
3、試和測試C語言程序的基本技巧,充分理解結(jié)構(gòu)化程序設(shè)計的基本方法。</p><p> C語言程序設(shè)計的主要任務(wù)是要求學生遵循軟件開發(fā)過程的基本規(guī)范,運用結(jié)構(gòu)化程序設(shè)計的方法,按照課程設(shè)計的題目要求,分析、設(shè)計、編寫、調(diào)試和測試C語言程序及編寫設(shè)計報告。</p><p><b> 本課程設(shè)計的目標</b></p><p> 1鞏固和加深學生對
4、c++語言課程的基本知識的理解和掌握</p><p> 2 掌握c++語言編程的和程序調(diào)試的基本技能</p><p> 3 掌握利用c++語言進行程序軟件設(shè)計的方法</p><p> 4 提高書寫程序設(shè)計說明文檔的能力</p><p> 5 提高運用c語言解決實際問題得能力</p><p><b>
5、 基本要求</b></p><p> 1 分析課程設(shè)計題目得要求</p><p> 2 對系統(tǒng)功能模塊進行分析,寫出詳細設(shè)計說明文檔</p><p> 3 編寫程序代碼,調(diào)試程序使能正確運行</p><p> 4 設(shè)計完成的軟件要便于操作和使用 </p><p> 5 設(shè)計完成后提交課程設(shè)計報告&
6、lt;/p><p> 第二章 課程設(shè)計內(nèi)容及要求</p><p><b> 設(shè)計背景:</b></p><p> 隨著高科技時代的到來,人們越來越享受著電子信息技術(shù)給人生活帶來的便捷與高效。人們也漸漸不能滿足于傳統(tǒng)的掛式日歷。傳統(tǒng)掛式日歷得使用方式較為繁瑣,而且每天都要去手動翻頁。因此電子萬年歷漸漸地興起了。</p><p
7、><b> 設(shè)計要求:</b></p><p> 模仿現(xiàn)實生活中的掛歷,以當前頁系統(tǒng)當前日期的月份為準顯示當前月的每一天(顯示出日及對應(yīng)的星期幾)。前系統(tǒng)日期變到下一月時,系統(tǒng)自動翻頁到下一個月。</p><p><b> 第三章 設(shè)計說明</b></p><p><b> 系統(tǒng)模塊圖</b&
8、gt;</p><p><b> 流程圖:</b></p><p><b> 運行某次截圖如下:</b></p><p> 圖3.3某次程序運行圖</p><p> 第四章 課程設(shè)計心得體會</p><p> 進過三周的課程設(shè)計,我獨立完成了一個較大的C語言程序的設(shè)
9、計,以及認真完成了課程設(shè)計的設(shè)計報告。</p><p> 回憶著三周的時間,我的收獲很大。首先,通過這次課程設(shè)計,我熟練的掌握并運用了所學的知識進行了編程,而且取得了成功,這大大激發(fā)了我對編程的興趣;其次,在涉及的過程中所遇到的困難,我都認真的去思考,和同學以及老師交流,或者利用網(wǎng)上資源來獲取幫助,了解解決辦法。通過各種渠道,完善所學到的東西。最后,我了解到了軟件開發(fā)的答題過程和各個必要的步驟,這對我將來的學習
10、和應(yīng)用都是很有幫助的。</p><p> 對于計算機專業(yè)的大學生來說,積累實戰(zhàn)經(jīng)驗是一項極其重要的內(nèi)容,很可能成為將來就業(yè)的敲門磚。而程序設(shè)計綜合課程設(shè)計就是積累實戰(zhàn)經(jīng)驗的一個過程,雖然程序的規(guī)模不是很大,但是能夠讓我們盡早的認識軟件開發(fā)的重要性和必要性,為將來的就業(yè)打下堅實的基礎(chǔ)。</p><p><b> 附錄1:參考文獻</b></p><
11、;p> 譚浩強:C程序設(shè)計,清華大學出版社,2005年7月第三版</p><p> 譚浩強:C++程序設(shè)計,清華大學出版社,2004年6月第一版</p><p><b> 附錄2:程序代碼</b></p><p> #include<iostream></p><p> #include<
12、;malloc.h></p><p> #include<string.h></p><p> #include<stdlib.h></p><p> typedef struct</p><p><b> {</b></p><p> unsigned c
13、har day;</p><p> unsigned char month;</p><p> unsigned short year;</p><p><b> }</b></p><p> T_MFW_DATE;</p><p> typedef struct</p>
14、<p><b> {</b></p><p> T_MFW_DATE date; /*記錄的日期*/</p><p><b> }</b></p><p> t_cldrecord;</p><p> typedef struct</p><p><
15、;b> {</b></p><p> T_MFW_DATE today_date; </p><p> T_MFW_DATE cursor_date;</p><p> int days_map[6][7]; /*日期地圖*/</p><p><b> }</b></p>
16、<p> t_cldmain_data;</p><p> t_cldmain_data *cldmain_data;</p><p> void cldmain_get_days_map(void);</p><p> void main(void)</p><p><b> {</b></p
17、><p><b> int i,j;</b></p><p> cldmain_data = (t_cldmain_data*)malloc(sizeof(t_cldmain_data));</p><p> cldmain_data->cursor_date.day = 20;</p><p><b>
18、; while(1)</b></p><p><b> {</b></p><p> char buf[20];</p><p><b> char *p;</b></p><p> memset(buf,0,20);</p><p> printf(
19、"year month:");</p><p> gets(buf);</p><p> if(buf[0] == 'q')break;</p><p> cldmain_data->cursor_date.year = strtod(buf,&p);</p><p><b>
20、 p ++;</b></p><p> cldmain_data->cursor_date.month = strtod(p,&p);</p><p> printf("yea%d\nmonth%d\n",(cldmain_data->cursor_date.year),(cldmain_data->cursor_date.m
21、onth));</p><p> cldmain_get_days_map();</p><p> printf(" mo tu w th fr sa su\n");</p><p> for(j = 0; j < 6; j ++)</p><p><b> {</b></p>
22、;<p> printf("\t");</p><p> for(i = 0; i < 7; i ++)</p><p><b> {</b></p><p> printf("%i\t",cldmain_data->days_map[j][i]);</p>
23、<p><b> }</b></p><p> printf("\n");</p><p><b> }</b></p><p><b> }</b></p><p> getchar();</p><p>&l
24、t;b> }</b></p><p> /*檢查日期是否合法合法返回1,否則返回0*/</p><p> int check_date(T_MFW_DATE date)</p><p><b> {</b></p><p> char month_days[] = {31,29,31,30,3
25、1,30,31,31,30,31,30,31};</p><p> /*大于2000年,小于2100年,月份合法*/</p><p> if(date.year < 2000 || date.year >= 2100 || date.month < 1 || date.month > 12)</p><p><b> {<
26、;/b></p><p><b> return 0;</b></p><p><b> }</b></p><p><b> /*day合法*/</b></p><p> if(date.day < 1)return 0;</p><p
27、> if(date.day > month_days[date.month - 1])return 0;</p><p> if(date.month == 2)</p><p><b> {</b></p><p> if(date.year % 4 != 0)</p><p><b>
28、 {</b></p><p> if(date.day == 29)return 0;</p><p><b> }</b></p><p><b> }</b></p><p><b> return 1;</b></p><p>
29、<b> }</b></p><p> /*功能:得到每個月第一天是星期幾星期 一 二 三 四 五 六 日</p><p> 返回值:1 2 3 4 5 6 7如果返回為0,則出錯*/</p><p> int get_weekday_of_month(T_MFW_DATE cursor_date)</p>&
30、lt;p><b> {</b></p><p><b> int day;</b></p><p> /*參照1997年1月1日,參數(shù)cursor_date從2000年1月1日到2099年1月1日*/</p><p> char month_days[] = { 31, 28, 31, 30, 31, 3
31、0, 31, 31, 30, 31, 30, 31};</p><p> int this_year_days[] ={ 0, 31, 59, 90, 120, 151,181, 212, 243, 273, 304, 334};</p><p> int cursor_year_days = this_year_days[cursor_date.month - 1] +
32、(cursor_date.day = 1);</p><p> int comp_days = (cursor_date.year - 1997)*365 + cursor_year_days;</p><p> int i = (cursor_date.year - 1997)/4;</p><p> comp_days = comp_days + i *
33、1;</p><p> if(cursor_date.month > 2)</p><p><b> {</b></p><p> if( cursor_date.year % 4 == 0 )</p><p><b> {</b></p><p> comp
34、_days += 1;</p><p><b> }</b></p><p><b> }</b></p><p> if(cursor_date.day > 2098)return 0;</p><p> day = comp_days % 7;</p><p&g
35、t; /*1997年1月1日是星期三*/</p><p> day = (day + 2) % 7;</p><p> if(day == 0)day = 7;</p><p> return day;</p><p><b> }</b></p><p> /*根據(jù)參數(shù)的值,得到該年
36、該月有多少天.返回值:該月的天數(shù)*/</p><p> int count_days_of_month(T_MFW_DATE cursor_date)</p><p><b> {</b></p><p> char month_days[] = {31,28,31,30,31,30,31,31,30,31,30,31};</p&g
37、t;<p> unsigned char day = cldmain_data->cursor_date.day;</p><p> unsigned char month = cldmain_data->cursor_date.month;</p><p> unsigned short year = cldmain_data->cursor_dat
38、e.year;</p><p> if(month != 2)</p><p><b> {</b></p><p> return month_days[month -1];</p><p><b> }</b></p><p><b> else<
39、;/b></p><p><b> {</b></p><p> if(year%4 != 0)</p><p><b> {</b></p><p> return 28;</p><p><b> }</b></p>&
40、lt;p> if(year%4 == 0)</p><p><b> {</b></p><p> if(year%100 == 0)</p><p><b> {</b></p><p> if(year %400 == 0)</p><p><b&g
41、t; {</b></p><p> return 29;</p><p><b> }</b></p><p> return 28;</p><p><b> }</b></p><p> return 29;</p><p>
42、;<b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> /*得到日期地圖,保存到全局結(jié)構(gòu)變量cldmain_data的成員數(shù)組變量days_map中.*/</p><p> void cldmain_get
43、_days_map(void)</p><p><b> {</b></p><p><b> int i;</b></p><p><b> int day;</b></p><p> T_MFW_DATE cursor_date = cldmain_data->
44、;cursor_date;</p><p> int *map_p = cldmain_data->days_map[0];</p><p> int days_count;</p><p> int weekday;</p><p> for(i = 0; i < 6*7; i++)</p><p&g
45、t;<b> {</b></p><p> map_p[i] = 0;</p><p><b> }</b></p><p> if(check_date(cldmain_data->cursor_date) == 0)return;</p><p> days_count = co
46、unt_days_of_month(cldmain_data->cursor_date);</p><p> weekday = get_weekday_of_month(cldmain_data->cursor_date);</p><p><b> day = 1;</b></p><p> for(i = weekday
47、-1; i < days_count + weekday - 1; i++)</p><p><b> {</b></p><p> map_p[i] = day;</p><p><b> day ++;</b></p><p><b> }</b></p
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計--萬年歷
- 萬年歷c語言課程設(shè)計
- c語言課程設(shè)計--萬年歷
- c語言課程設(shè)計萬年歷系統(tǒng)
- C語言課程設(shè)計--萬年歷.doc
- c語言課程設(shè)計--萬年歷系統(tǒng)
- c語言課程設(shè)計——萬年歷的設(shè)計
- c語言課程設(shè)計--大賽評分、萬年歷
- c語言課程設(shè)計--多功能萬年歷
- c++萬年歷課程設(shè)計
- c++課程設(shè)計--萬年歷
- 萬年歷c++課程設(shè)計
- 《c++課程設(shè)計》萬年歷
- 萬年歷c++課程設(shè)計
- 萬年歷課程設(shè)計--萬年歷電子時鐘
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
評論
0/150
提交評論