版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目錄</b></p><p> 第一章 課程設(shè)計(jì)的目的和要求1</p><p> 第二章 課程設(shè)計(jì)內(nèi)容及要求2</p><p> 第三章 設(shè)計(jì)說明3</p><p> 第四章 課程設(shè)計(jì)心得體會(huì)5</p><p> 附錄1:參考文獻(xiàn)6</p
2、><p> 附錄2:程序代碼7</p><p> 第一章 課程設(shè)計(jì)的目的和要求</p><p> C語言課程設(shè)計(jì)的主要目的是培養(yǎng)學(xué)生綜合運(yùn)用C語言程序設(shè)計(jì)課程所學(xué)到的知識(shí),編寫C程序解決實(shí)際問題的能力,以及嚴(yán)謹(jǐn)?shù)墓ぷ鲬B(tài)度和良好的程序設(shè)計(jì)習(xí)慣。</p><p> 通過課程設(shè)計(jì)的訓(xùn)練,學(xué)生應(yīng)該能夠了解程序設(shè)計(jì)的基本開發(fā)過程,掌握編寫、調(diào)
3、試和測試C語言程序的基本技巧,充分理解結(jié)構(gòu)化程序設(shè)計(jì)的基本方法。</p><p> C語言程序設(shè)計(jì)的主要任務(wù)是要求學(xué)生遵循軟件開發(fā)過程的基本規(guī)范,運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的方法,按照課程設(shè)計(jì)的題目要求,分析、設(shè)計(jì)、編寫、調(diào)試和測試C語言程序及編寫設(shè)計(jì)報(bào)告。</p><p><b> 本課程設(shè)計(jì)的目標(biāo)</b></p><p> 1鞏固和加深學(xué)生對(duì)
4、c++語言課程的基本知識(shí)的理解和掌握</p><p> 2 掌握c++語言編程的和程序調(diào)試的基本技能</p><p> 3 掌握利用c++語言進(jìn)行程序軟件設(shè)計(jì)的方法</p><p> 4 提高書寫程序設(shè)計(jì)說明文檔的能力</p><p> 5 提高運(yùn)用c語言解決實(shí)際問題得能力</p><p><b>
5、 基本要求</b></p><p> 1 分析課程設(shè)計(jì)題目得要求</p><p> 2 對(duì)系統(tǒng)功能模塊進(jìn)行分析,寫出詳細(xì)設(shè)計(jì)說明文檔</p><p> 3 編寫程序代碼,調(diào)試程序使能正確運(yùn)行</p><p> 4 設(shè)計(jì)完成的軟件要便于操作和使用 </p><p> 5 設(shè)計(jì)完成后提交課程設(shè)計(jì)報(bào)告&
6、lt;/p><p> 第二章 課程設(shè)計(jì)內(nèi)容及要求</p><p><b> 設(shè)計(jì)背景:</b></p><p> 隨著高科技時(shí)代的到來,人們?cè)絹碓较硎苤娮有畔⒓夹g(shù)給人生活帶來的便捷與高效。人們也漸漸不能滿足于傳統(tǒng)的掛式日歷。傳統(tǒng)掛式日歷得使用方式較為繁瑣,而且每天都要去手動(dòng)翻頁。因此電子萬年歷漸漸地興起了。</p><p
7、><b> 設(shè)計(jì)要求:</b></p><p> 模仿現(xiàn)實(shí)生活中的掛歷,以當(dāng)前頁系統(tǒng)當(dāng)前日期的月份為準(zhǔn)顯示當(dāng)前月的每一天(顯示出日及對(duì)應(yīng)的星期幾)。前系統(tǒng)日期變到下一月時(shí),系統(tǒng)自動(dòng)翻頁到下一個(gè)月。</p><p><b> 第三章 設(shè)計(jì)說明</b></p><p><b> 系統(tǒng)模塊圖</b&
8、gt;</p><p><b> 流程圖:</b></p><p><b> 運(yùn)行某次截圖如下:</b></p><p> 圖3.3某次程序運(yùn)行圖</p><p> 第四章 課程設(shè)計(jì)心得體會(huì)</p><p> 進(jìn)過三周的課程設(shè)計(jì),我獨(dú)立完成了一個(gè)較大的C語言程序的設(shè)
9、計(jì),以及認(rèn)真完成了課程設(shè)計(jì)的設(shè)計(jì)報(bào)告。</p><p> 回憶著三周的時(shí)間,我的收獲很大。首先,通過這次課程設(shè)計(jì),我熟練的掌握并運(yùn)用了所學(xué)的知識(shí)進(jìn)行了編程,而且取得了成功,這大大激發(fā)了我對(duì)編程的興趣;其次,在涉及的過程中所遇到的困難,我都認(rèn)真的去思考,和同學(xué)以及老師交流,或者利用網(wǎng)上資源來獲取幫助,了解解決辦法。通過各種渠道,完善所學(xué)到的東西。最后,我了解到了軟件開發(fā)的答題過程和各個(gè)必要的步驟,這對(duì)我將來的學(xué)習(xí)
10、和應(yīng)用都是很有幫助的。</p><p> 對(duì)于計(jì)算機(jī)專業(yè)的大學(xué)生來說,積累實(shí)戰(zhàn)經(jīng)驗(yàn)是一項(xiàng)極其重要的內(nèi)容,很可能成為將來就業(yè)的敲門磚。而程序設(shè)計(jì)綜合課程設(shè)計(jì)就是積累實(shí)戰(zhàn)經(jīng)驗(yàn)的一個(gè)過程,雖然程序的規(guī)模不是很大,但是能夠讓我們盡早的認(rèn)識(shí)軟件開發(fā)的重要性和必要性,為將來的就業(yè)打下堅(jiān)實(shí)的基礎(chǔ)。</p><p><b> 附錄1:參考文獻(xiàn)</b></p><
11、;p> 譚浩強(qiáng):C程序設(shè)計(jì),清華大學(xué)出版社,2005年7月第三版</p><p> 譚浩強(qiáng):C++程序設(shè)計(jì),清華大學(xué)出版社,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> /*功能:得到每個(gè)月第一天是星期幾星期 一 二 三 四 五 六 日</p><p> 返回值:1 2 3 4 5 6 7如果返回為0,則出錯(cuò)*/</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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計(jì)--萬年歷
- 萬年歷c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)--萬年歷
- c語言課程設(shè)計(jì)萬年歷系統(tǒng)
- C語言課程設(shè)計(jì)--萬年歷.doc
- c語言課程設(shè)計(jì)--萬年歷系統(tǒng)
- c語言課程設(shè)計(jì)——萬年歷的設(shè)計(jì)
- c語言課程設(shè)計(jì)--大賽評(píng)分、萬年歷
- c語言課程設(shè)計(jì)--多功能萬年歷
- c++萬年歷課程設(shè)計(jì)
- c++課程設(shè)計(jì)--萬年歷
- 萬年歷c++課程設(shè)計(jì)
- 《c++課程設(shè)計(jì)》萬年歷
- 萬年歷c++課程設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)--萬年歷電子時(shí)鐘
- 萬年歷課程設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論