版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì) 設(shè)計(jì)說(shuō)明書(shū) 課程名稱(chēng): 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì) 設(shè)計(jì)題目: 萬(wàn)年歷程序 指導(dǎo)教師: 班 級(jí): 學(xué) 號(hào): 學(xué)生姓名: 同組人員: 計(jì)算機(jī)科學(xué)與工程系 2011 年 6 月 23 日 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 1 - 目 錄 第第 1 章章 選選 題題.2 1.1 題目背景.2 1.2 系統(tǒng)實(shí)現(xiàn)的具體分工.2 1.2.1選題.2 1.2.2團(tuán)隊(duì)分工.2 1.3 開(kāi)發(fā)環(huán)境.2 第第 2 章章 設(shè)計(jì)內(nèi)容設(shè)計(jì)內(nèi)容.3 2.1 實(shí)現(xiàn)功能.3 2.2 概要設(shè)計(jì)(涉及類(lèi)的框圖).3 2.3 界面設(shè)計(jì).3 第第 3 章章 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn).4 3.1 涉及知識(shí)點(diǎn).
2、4 3.2 系統(tǒng)運(yùn)行(主要運(yùn)行界面抓圖).4 3.3 源程序清單(關(guān)鍵代碼).5 第第 4 章章 測(cè)試與實(shí)驗(yàn)結(jié)果測(cè)試與實(shí)驗(yàn)結(jié)果.13 第第 5 章章 結(jié)束語(yǔ)結(jié)束語(yǔ).17 參考文獻(xiàn)參考文獻(xiàn).17 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 2 - 第 1 章 選 題 1.1 題目背景 c+教學(xué)起步的背景 1996 年,國(guó)外計(jì)算機(jī)產(chǎn)業(yè)界正在全面興起面向?qū)ο缶幊痰脑O(shè)計(jì)與熱潮, 其主要工具就是 c+。c+在數(shù)據(jù)類(lèi)型的安全上,彌補(bǔ)了 c 的不足,克服了 c 的種種安隱患,用 c+開(kāi)發(fā)的產(chǎn)品正在穩(wěn)步上市,并開(kāi)始超過(guò)了 c。c+的開(kāi)發(fā)工具正在穩(wěn)步推出,在 windows 環(huán)境 下的主要 c+開(kāi)發(fā)工具 mi
3、crosoft visual c+6.0 標(biāo)志著 c+開(kāi)發(fā)工具已經(jīng)成熟。隨著科技的迅猛發(fā) 展,在快節(jié)奏的工作于生活中,時(shí)間與我們每個(gè)人都有非常密切的關(guān)系,每個(gè)人都受時(shí)間影響著, 我們必須對(duì)時(shí)間有一個(gè)準(zhǔn)確而又方便的度量,因此我們?cè)O(shè)計(jì)了萬(wàn)年歷。該萬(wàn)年歷能夠?qū)崿F(xiàn)時(shí)間日期 的運(yùn)行,顯示陽(yáng)歷的年、月、日、星期等信息。 1.2 系統(tǒng)實(shí)現(xiàn)的具體分工 1.2.1 選題 系統(tǒng)分為日歷類(lèi)(calendar)和三大功能模塊,功能一(print_y() )輸出整年的日歷;功能二 (print_m())輸出某年具體的月份;功能三(print_d())輸出具體的某年某月某日是星期幾 1.2.2團(tuán)隊(duì)分工 表 1.1 項(xiàng)目分
4、工一覽表 角色姓名承擔(dān)的具體任務(wù) 組長(zhǎng) (1)類(lèi)的定義與分析 (2)功能 1: 輸入一個(gè)年份能夠把這一年的 日期打印出來(lái)。 組員 (1)功能 2:輸入一個(gè)月份能夠把該月的情況 輸出出來(lái)。 (2)功能 3:輸入具體的一天能夠輸出該天是 星期幾。 1.3 開(kāi)發(fā)環(huán)境 編程工具:visual c+ 6.0 機(jī)型:方正電腦 處理器名稱(chēng):intel(r)core(tm)2 duo cpu e7200 2.53ghz 硬盤(pán)驅(qū)動(dòng)器:wdc wd1600aajs-22waao 系統(tǒng)內(nèi)存:金士頓內(nèi)存 2gb 顯示卡:nvidia geforce 9400 gt 顯示器:方正科技 fg981-w9 面向?qū)ο蟪绦蛟O(shè)計(jì)
5、 c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 3 - 操作系統(tǒng):microsoft windows xp professional 第 2 章 設(shè)計(jì)內(nèi)容 2.1 實(shí)現(xiàn)功能 1、輸入一個(gè)年份能夠把這一年的日期打印出來(lái)。 2、輸入一個(gè)月份能夠把該月的情況輸出出來(lái)。 3、輸入具體的一天能夠輸出該天是星期幾。 2.2 概要設(shè)計(jì)(涉及類(lèi)的框圖) 2.3 界面設(shè)計(jì) 界面設(shè)計(jì)在工作流程上分為結(jié)構(gòu)設(shè)計(jì)、交互設(shè)計(jì)、視覺(jué)設(shè)計(jì)三個(gè)部分。 結(jié)構(gòu)設(shè)計(jì)也稱(chēng)概念設(shè)計(jì) (conceptual design) ,是界面設(shè)計(jì)的骨架。該萬(wàn)年歷系統(tǒng)運(yùn)行時(shí)界面 上的目錄體系和詞語(yǔ)定義易于用戶理解和操作,例如主界面的目錄體系包括 1.年份查詢(xún);2.月歷
6、查 詢(xún); 3.退出。月份查詢(xún)里下設(shè):1.查詢(xún)?cè)職v;2.查詢(xún)?nèi)掌凇?面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 4 - 第 3 章 系統(tǒng)實(shí)現(xiàn) 3.1 涉及知識(shí)點(diǎn) 類(lèi)封裝、面向?qū)ο蟪绦蛟O(shè)計(jì)、數(shù)組的應(yīng)用、循環(huán)語(yǔ)句的使用、過(guò)程化設(shè)計(jì)的思想等。 3.2 系統(tǒng)運(yùn)行(主要運(yùn)行界面抓圖) 系統(tǒng)主界面 查詢(xún)?cè)職v界面 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 5 - 查詢(xún)?nèi)掌诮缑?3.3 源程序清單(關(guān)鍵代碼) #include #include #include #include class cdatetime private: int year; int month; int days; int wda
7、y; /星期 private: int yeartodays(int y); int datestodays(); int monthtoweek(); int yearmonthtoday( int y,int m); public: cdatetime(int y=0,int m=0,int d=0) year=y; month=m; days=d; wday=datestoweek(); cdatetime() 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 6 - void now(); int datestoweek(); void lasttime(); void inputyear
8、month(); void printmonth(); void inputdates(); int week() return wday; friend ostream -y; return(d+i); int cdatetime:yearmonthtoday(int y,int m ) int mday=0; switch(m) case 1: case 3: case 5: case 7: case 8: case 10: case 12: mday=31; break; case 2: if(y % 4 =0 else mday=28; break; case 4: case 6: c
9、ase 9: case 11: mday=30; break; default: 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 7 - mday=0; return mday; int cdatetime:datestodays( ) int total = 0; while( month 1) total += yearmonthtoday(year ,month-1); -month; int num = yeartodays( year); return (total +num +days); int cdatetime:datestoweek()/判斷該日為星期幾 int w = da
10、testodays(); return (w%7); void cdatetime:lasttime() void cdatetime:inputdates() cout輸入年:year; cout輸入月:month; while( month 12) cout重新輸入月:month; cout輸入天days; void cdatetime:inputyearmonth() cout輸入年:year; cout輸入月:month; while( month 12) 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 8 - cout重新輸入月:month; int cdatetime:monthto
11、week( ) int t = datestodays( ); return (t-days)%7; void cdatetime:printmonth( ) int y=year; int m=month; cout-endl; cout*endl; cout 日 一 二 三 四 五 六endl; int w = monthtoweek( ); if( w !=6) for( int i =0;i=w;i+)/判斷每個(gè)月的第一天為星期幾 cout ; int k = yearmonthtoday(y,m); for( int j = 1 ;j= k; +j)/輸出每個(gè)月的天數(shù) coutset
12、w(2)setw(2)j; if( (j+w+1)%7 =0) coutendl; coutendl; cout-endl; cout*endl; ostream return out; int fn1(void) int i,j,k; cdatetime d1,d2,d3,d4,d5; cout * 請(qǐng)選擇: * endl; cout * 1.查詢(xún)?cè)職v* endl; cout * 2.查詢(xún)?nèi)掌? endl; cout * 0.退出 * i; 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 9 - while(i!=0) switch(i) case 0: break; case 1: d1.i
13、nputyearmonth(); d1.printmonth(); cout0.返回:j; while(j!=0) switch(j) case 0: break; default: cout請(qǐng)重新選擇j; cout0 返回j; break; case 2: d4.inputdates(); k=d4.datestoweek(); cout星期kendl; break; case 3: d5.inputdates(); / d5.lasttime(); break; default: while(i3) cout請(qǐng)重新輸入i; cout1.查詢(xún)?cè)職vendl; 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)
14、驗(yàn)報(bào)告 - 10 - cout2.查詢(xún)?nèi)掌趀ndl; cout0 退出i; return 0; class data private: int year; / int monthdaysn; public: void getyear(); /提示用戶輸入想要查詢(xún)的年份 int ioleapyear(); /判斷該年是不是閏年 int weekday(); /判斷該年的元旦是星期幾 / void setweek(); int monthday(int i); /該年每個(gè)月的天數(shù) void disp(); /顯示結(jié)果。 ; char* weekd7=一,二,三,四,五,六,日; /記錄星期一到星期
15、天 void data:getyear() coutyear; int data:ioleapyear() if(year%4=0 else return 0; int data:weekday() int n=year-1900; /已知 1900 年的元旦剛好是星期一 / if(year%400=0) / n=n+(n-1)/4+2; / else n=n+(n-1)/4+1; / 判斷,以每年個(gè)整星期計(jì)算 year 年比 n 年多出來(lái)的天數(shù) n=n%7; if(n=0) return 7; /返回輸入的年份的元旦是星期幾 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 11 - else
16、return n; int data:monthday(int i) if(i=1|i=3|i=5|i=7|i=8|i=10|i=12) return 31; else if (i=2) if(ioleapyear() return 29; else return 28; else return 30; void data:disp() int i; int n=weekday(); for(i=1;i=12;i+) /總共的月份 int lemp=1; coutendlsetw(5)i月份endl; cout-endl; for(int j=0;j7;j+) coutsetw(5)weekd
17、j; coutendl-endl; for(int k=1;kn;k+,lemp+) /輸入每月第一天的起始位置,用空格補(bǔ)充 coutsetw(5) ; for(int d=1;d=monthday(i);d+,lemp+) coutsetw(5)d; if(lemp=7) /控制一行輸出到星期天,如果到星期天則重新計(jì)數(shù) coutendl; lemp=0; n=lemp%7; /當(dāng)輸出完一個(gè)月后,記錄這個(gè)月的最后一天在哪,尋找下個(gè) 月的 if(n=0) /第一天的起始位置 n=7; coutendl-endlendlendl; 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 12 - int f
18、n2(void) data a; coutsetw(45)萬(wàn)年歷查詢(xún)endl; cout- endl; a.getyear(); a.disp(); return 0; void main() int x; cout *歡迎使用萬(wàn)年歷*endl; cout * 1 年份查詢(xún) *endl; cout * 2.月歷查詢(xún) *endl; cout * 3. 退出 *endl; coutx; switch(x) case 1: fn2();main();break; case 2: fn1();main();break; case 3: exit;break; 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
19、- 13 - 第 4 章 測(cè)試與實(shí)驗(yàn)結(jié)果 1 年份查詢(xún)年份查詢(xún) 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 14 - 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 15 - 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 16 - 2.月份查詢(xún)?cè)路莶樵?xún) 3.日期查詢(xún)?nèi)掌诓樵?xún) 面向?qū)ο蟪绦蛟O(shè)計(jì) c+ 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 - 17 - 第 5 章 結(jié)束語(yǔ) 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的 重要環(huán)節(jié),是對(duì)我們的實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程。隨著科學(xué)技術(shù)發(fā)展的日新月異,當(dāng)今 計(jì)算機(jī)應(yīng)用在生活中可以說(shuō)是無(wú)處不在。因?yàn)樽鳛槎粚?shí)際的大學(xué)生來(lái)說(shuō)掌握程序開(kāi)發(fā)技術(shù)是十 分重要的,而語(yǔ)言又是最常見(jiàn)的,功能最強(qiáng)大的一種高級(jí)語(yǔ)言,因此做好 c+課程設(shè)計(jì)是十分必要 的。經(jīng)過(guò)一個(gè)學(xué)期對(duì)c+程序設(shè)計(jì)的學(xué)習(xí),我學(xué)習(xí)到了基本的理論知識(shí),了解到了 c+語(yǔ)言程 序設(shè)計(jì)的思想,這些知識(shí)都為我的課程實(shí)踐和進(jìn)一步的學(xué)習(xí)打下了堅(jiān)實(shí)的基礎(chǔ)。通過(guò) c+課程設(shè)計(jì), 一方面是為了檢查這一個(gè)學(xué)期來(lái)計(jì)算機(jī)語(yǔ)言的學(xué)習(xí)成果,另一方面也是為了讓我們進(jìn)一步掌握和熟 練地運(yùn)用它,與此同時(shí),也能夠
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年職業(yè)技能認(rèn)證培訓(xùn)服務(wù)合同書(shū)3篇
- 2024年版技術(shù)轉(zhuǎn)讓合同服務(wù)內(nèi)容擴(kuò)展
- 承德護(hù)理職業(yè)學(xué)院《汽車(chē)新技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 成都銀杏酒店管理學(xué)院《數(shù)值分析與算法》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度航空安全員聘用與培訓(xùn)協(xié)議書(shū)
- 2024年裝配式建筑配件瓦工施工合同范本3篇
- 二零二五年工廠食堂員工用餐健康指導(dǎo)承包合同3篇
- 教學(xué)課件:瀝青材料的流變學(xué)特性解析
- 2024權(quán)戰(zhàn)略合作協(xié)議
- 2025版空置工業(yè)廠房租賃及倉(cāng)儲(chǔ)物流服務(wù)合同3篇
- Unit1WhatsthematterSectionB2a-2e教學(xué)設(shè)計(jì)人教版八年級(jí)英語(yǔ)下冊(cè)
- 幼兒園大班音樂(lè)教案《爆米花》教學(xué)反思
- 行政單位固定資產(chǎn)盤(pán)點(diǎn)報(bào)告
- 光學(xué)焦度計(jì)的原理與應(yīng)用
- 《兩小兒辯日》教學(xué)案例:培養(yǎng)學(xué)生的思辨能力
- 2024年廣東省普通高中學(xué)業(yè)水平考試化學(xué)試卷(修改+答案)版
- 2024年小學(xué)生中華經(jīng)典誦讀知識(shí)競(jìng)賽參考題庫(kù)500題(含答案)
- 日拱一卒行穩(wěn)致遠(yuǎn)
- 培訓(xùn)內(nèi)驅(qū)力的課件
- 管理后臺(tái)策劃方案
- 人防、物防、技防工作措施
評(píng)論
0/150
提交評(píng)論