




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一、課程設計的內容要求:模仿現實生活中的掛歷.當前頁以系統(tǒng)當前日期的月份為準顯示當前月的每一天(顯示出日及對應的星期幾).當系統(tǒng)日期變到下一月時,系統(tǒng)自動翻頁到下一月二、課程設計的要求與數據1、進一步掌握和利用C語言進行程設計的能力;2、進一步理解和運用結構化程序設計的思想和方法;3、初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法;4、學會調試一個較長程序的基本方法;5、學會利用流程圖或N-S圖表示算法;6、掌握書寫程序設計開發(fā)文檔的能力。三、課程設計應完成的工作1、編寫完成相應題目的程序;2、編寫課程設計報告,課程設計報告的內容應包括以下6個部分:1)需求分析:包括設計題目、設計要求以及系統(tǒng)功能需求
2、分析;2)總體設計:包括系統(tǒng)總體設計框架和系統(tǒng)功能模塊圖;3)詳細設計:包括主要功能模塊的算法設計思路以及對應的工作流程圖;4)調試分析過程描述:包括測試數據、測試輸出結果,以及對程序調試過程中存 在問題的思考(列出主要問題的出錯現象、出錯原因、解決方法及效果等,適當 的包含結果截圖);5)總結:課程設計完成了哪些功能,有沒有什么擴展功能?還有哪些地方需要改 進?課程設計過程中的學習體會與收獲、對本次課程設計的認識以及自己的建議 等內容;6)附錄:主要源程序代碼,含必要的注釋。3、答辯:在實驗室建立程序運行的環(huán)境,并在指導教師的監(jiān)督下,獨立解決問題、運行程序和回答教師提出的問題。四、課程設計進
3、程安排序號設計各階段內容地點起止日期實驗1下達任務書,說明設計要求;收集資料3#5176.18實驗2總體方案設計、詳細設計3#5176.19實驗3編寫程序,調試分析3#5176.20實驗4撰寫報告并上交,答辯3#5176.21五、應收集的資料及主要參考文獻1譚浩強.C程序設計(第三版)M,北京:清華大學出版社,2005.92譚浩強.C程序設計題解與上機指導(第三版)M,北京:清華大學出版社,2005.73文U振安 孫忱 文U燕君.C程序設計課程設計.北京:機械工業(yè)出版社,2004.9發(fā)出任務書日期:2007年6月18日指導教師簽名:計劃完成日期:2007年6月22日基層教學單位責任人簽章:主管
4、院長簽章:1設計目的與要求42總體設計43詳細設計5-74調試分析 8-15總結106附錄11-126答辯記錄(正文處請留出適當空白) 12-137指導教師意見(正文處請留出十行空白) 131目的與要求1. 課程設計的目的課程設計為學生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實 際應用問題進行有機結合,鍛煉學生分析、解決實際問題的能力,提高學生項目開發(fā)及程 序調試能力。2. 課程設計的內容及要求利用學到的編程知識和編程技巧,通過設計編寫一個萬年歷系統(tǒng),幫助熟悉程序編寫, 及時查究錯誤,獨立完成。要求:模仿現實生活中的掛歷(顯示出日及對應的星期當前頁以系統(tǒng)當前日期的月份為準顯
5、示當前月的每一天幾).當系統(tǒng)日期變到下一月時,系統(tǒng)自動翻頁到下一月2總體設計3詳細設計1.由于要以系統(tǒng)當前日期的月份為準顯示當前月的每一天,所以用如下”獲取系統(tǒng)當前日期”并分別賦值給變量year,mo nth,day: time_t today;struct tm *p;time( &today);p=localtime(&today);year=p->tm_year+1900;mon th=p->tm_ mon+1;day=p->tm_mday;注意1,由于返回的是1900到現在的秒數,所以year后面要加上1900,又起始是1月,所以mon要加1;注意2,
6、頭文件#include<time.h> 不能忘了 .2.對得到的系統(tǒng)日期進行處理,算出當天是星期幾if(year>=0)/由于已知公元元年1月1日為星期一,所以以改日為基準計算for(i=0;i<year;i+)if(i%4=0 && i%100!=0)|i%400=0)/ 判斷是否為閏年days=days+366;else days=days+365;if(year%4=0 && year%1OO!=O)|year%4OO=O)/ 判斷是否為閏年for( j=O;j<month-1;j+)days=days+m2j;m=m2mon
7、th;/算出當月天數 else for(j=0;j< mon th-1;j+)days=days+m1j;m=m1m on th;/算出當月天數days=days+day-2; II元年1月1日為星期一 ,days得出與之前的那個星期天相差的天數n=days%7;II余數n為0為星期天,1為星期一.打印日期錯誤YY判斷是否為閏年Ndays=days+365i=i+1Yi<yearYNY判斷是否為閏年Nm=m2mo nthdays=days+m1jm=m1mo nthYj<m on th-1Ndays=days+day-2n=days%7if(day>1)k=(7-(da
8、y-n+6)%7)%7;else if(day=1)k=n;N流程圖day>1k=nj<mo nth-1days=days+m2jdays=days+366/此月第一天是星期幾3.由當天是星期幾換算成該月第一天是星期幾k=7-(day-n+6)%74打印輸出本月當前月歷:printf(" sun mon tue wen thu fri satn"); for(o=0;o<k;o+)printf(" ");for(o=k;o<k+m;o+)pri ntf("%4d",o-k+1);if(o%7=6)prin tf
9、("n");流程圖4調試分析1,在當天的系統(tǒng)時間(06年7月21號)運行后;07年7月2,為了驗證是否是日期跳到下個月是自動跳換的,我改了系統(tǒng)時間,設定為 21號,運行結果如下:3,由于上面兩次試運行都成功了,所以我把系統(tǒng)時間設定為過去的06年6月,考察看是否還能正常運行:thti宀 r C: >ocumgh± s uid Sq±± in.gsXPCWBorDcbugkj.可以看到,幾次試運行都是成立的,而且根據設計,這個萬年歷可以顯示的月歷可以 到公元元年!當然調試過程中也遇到了一些問題 ,如:1234567z : D#C-aBE&am
10、p;t.3 UliJ. Sc*tt lags«91B11121314151617181? ZB212223242526272S2930認n y keyta2RSI7-B?sun moni tue ven thu fri sat發(fā)現這是k被賦予了 7的結果,所以我就在 k=7-(day-n+6)%7;的基礎上做了修改:k=(7-(day-n+6)%7)%7;所以遇到的問題就解決了!還有一個想法就是定義了days是整型,理論上可能導致超出整型的范圍,所以應該可以考慮使用long型,不過必要性不是很大所以忽略基本完成了設計的要求內容(模仿顯示生活中的掛歷,當前頁以系統(tǒng)當前日期的月份為準顯示
11、當前月的沒一天 (顯示出日期對應的星期幾),當系統(tǒng)日期變到下一月時, 系統(tǒng)自動翻頁到下一月),不過顯示頁面有待改進,可以更加人性化一些。還有的問題就是現在的 是獲取系統(tǒng)時間自動換頁顯示日歷,不過沒有實現人工換頁的功能,如果實現的話,應該 要定義變量year , mo nth , day ;為可以直接賦值的,那樣的話便可以隨意查詢任意一個 月的日歷了!在本次課程設計中,我體會到了很多 C語言學習中的心得,我深深體會到查找資料的 重要性,因為本次設計需要比較全面的 C語言知識,需要從書本查找大量的幫助資料,所 以很考大家自我學習提高的能力。在此設計前,我都不敢想象自己可以用學到的C語言做出這樣的程
12、序出來,總覺得自信不夠,但通過這次設計,經過了幾夜塵戰(zhàn)最后把程序運行出來時,內心的喜悅是難以言 表的。這次的成功不僅給了我學號 C語言用好C語言的動力,也給了我更加深入的學習C語言的動力,C語言確實是一門很實際的計算機語言!通過這次設計也使自己對 C語言的掌握提高到了一個新的水平,能夠利用C語言編寫出一個實用的程序,很大程度提高了程序綜合設計能力、分析能力和編程能力,以及自我 動手能力等等。這對以后學習和工作中遇到問題也是很有幫助的,畢竟我曾經戰(zhàn)勝過它!7.附錄#in clude<stdio.h>#in clude<time.h>int mai n(void)int y
13、ear,m on th,day;int days=O,i,j, n, m,k,o;int m1=31,28,31,30,31,30,31,31,30,31,30,31;int m2=31,29,31,30,31,30,31,31,30,31,30,31;time_t today;struct tm *p;time(&today);p=localtime(&today);/轉換成本地時間的日期year=p->tm_year+1900;mon th=p->tm_ mon+1;day=p->tm_mday;printf(”4d-%02dn",year,mo
14、nth);/ 打印出年月if(year>=0)/由于已知公元元年 1月1日為星期一,所以以改日為基準計算for(i=0;i<year;i+)if(i%4=0 && i%100!=0)|i%400=0)/ 判斷是否為閏年days=days+366;else days=days+365;if(year%4=0 && year%100!=0)|year%400=0)/ 判斷是否為閏年for( j=0;j<month-1;j+)days=days+m2j;if(o%7=6)else for(j=0;j< mon th-1;j+)days=days+m1j;m=m1m on th;/算出當月天數days=days+day-2; /元年1月1日為星期一 ,days得出與之前的那個星期天相差的天數n=days%7;/余數n為0代表為星期天,1代表為星期一.else printf("日期錯誤 n ”);if(day>1)k=(7-(day-n+6)%7)%7;/通過轉換
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 搞笑結婚協議書合同圖片
- 貴州國考筆試試題及答案
- 合同作廢補償協議書模板
- 旅游公司合同協議書
- 數字文化產業(yè)商業(yè)模式創(chuàng)新:2025年數字影視與新媒體營銷策略研究報告
- 地皮轉讓定金合同協議書
- 2025年電子產品租賃合同樣本
- 2025二手汽車買賣合同2
- 2025合作合同范本:兩人合伙協議書模板
- 2025年直播電商主播影響力與品牌忠誠度營銷策略研究報告
- 2024年廣東省廣州市越秀區(qū)中考二模數學試題(含答案)
- 2025屆各地名校4月上旬高三語文聯考作文題目及范文12篇匯編
- 【9語一?!?025年4月天津市和平區(qū)九年級中考一模語文試卷(含答案)
- 骨科科室工作總結匯報
- 青少年網絡安全知識講座
- 2025年高考物理大題突破+限時集訓(含解析)
- 三基中醫(yī)培訓試題及答案
- GB 28050-2025食品安全國家標準預包裝食品營養(yǎng)標簽通則
- 河北省石家莊市2025屆普通高中畢業(yè)年級教學質量檢測(二)數學試卷(含答案)
- 成人重癥患者顱內壓增高防控護理專家共識(2024版)解讀課件
- 防機械傷害培訓課件
評論
0/150
提交評論