C語言萬年歷設(shè)計報告_第1頁
C語言萬年歷設(shè)計報告_第2頁
C語言萬年歷設(shè)計報告_第3頁
C語言萬年歷設(shè)計報告_第4頁
C語言萬年歷設(shè)計報告_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1 / 14 文檔可自由編輯打印C 語言課程設(shè)計報告題目:編寫萬年歷系統(tǒng)編寫萬年歷系統(tǒng) 年級:專業(yè): 班級:姓名:學(xué)號:2 / 14 文檔可自由編輯打印目目錄錄第 1 章 設(shè)計目的第 2 章 需求分析第 3 章 概要設(shè)計第 4 章 源程序清單第 5 章 執(zhí)行結(jié)果1)登陸界面2 2)顯示當(dāng)前日月歷 3)顯示具體日期信息第 6 章程序問題調(diào)試與課程設(shè)計心得3 / 14 文檔可自由編輯打印 第第 1 章設(shè)計目的章設(shè)計目的設(shè)計目的(實驗要求): 1.模仿現(xiàn)實生活中的掛歷. 2.當(dāng)前頁以系統(tǒng)當(dāng)前日期的月份為準(zhǔn)顯示當(dāng)前月的每一天(顯示出日及對應(yīng)的星期幾).3.當(dāng)系統(tǒng)日期變到下一月時,系統(tǒng)自動翻頁到下一月.

2、第 2 章需求分析(1)程序運(yùn)行時,首先給出菜單選項和輸入提示:(2)用戶可以通過主菜單選擇不同選項。輸入 1,通過輸入當(dāng)前日期可顯示當(dāng)前月的日歷;輸入 2,通過輸入具體日期(中間以空格分開)可顯示該日具體信息;輸入 3,則退出查詢系統(tǒng)。4 / 14 文檔可自由編輯打印第 3 章 概要設(shè)計 輸入具體日期1菜單選擇界面可通過下面所示函數(shù)時現(xiàn); 主要思路:通過 while 語句與 swichcase 以及 if 條件語句實現(xiàn)菜單的循環(huán)功能和不同選項的功能實現(xiàn)。閏年與平年的判斷:代碼如下: void main() int year,month,day,a,b; while(1) printf(nnn

3、n);printf( *nn);printf( * * n);開始輸入指令3.退出出、判斷是否為閏年1.當(dāng)前日期月2.具體日期信息輸入要查詢的當(dāng)前日期5 / 14 文檔可自由編輯打印printf( Welcome to enter calendar system n); printf( * * nn); printf( *nnn);printf( 1 The month of current date 2 Date 3 Exitn);printf( please import your choose,press Enter to define: );scanf(%d,&b); swit

4、ch(b) case 1: printf(n Please import the year,month and day which you want to check,the year,month and day separation by blank space: ); scanf(%d%d%d,&year,&month,&day); a=x3(year,month,1); if(a=0) printf(Error!Please import again.n); break; yueli(year,month,day); break; case 2: printf(n

5、 Please import the year,month and day which you want to check,the year,month and day separation by blank space: ); scanf(%d%d%d,&year,&month,&day); a=x3(year,month,day); if(a=0) printf(Error!Please import again.n); break; rili(year,month,day); break; case 3: exit(0); default: printf(Erro

6、r!Please import again.nn); 6 / 14 文檔可自由編輯打印2.閏年的判斷:計算所輸入的年份是否可被 4 整除,若不能被整除,為平年。若可被 4整除,計算此年份能否被 100 整除,不能被 100 整除則為閏年。既能被 4 整除,也能被 100 整除的年份,若也能被 400 整除,則為閏年,否則為平年。閏年 366 天,平年 365 天代碼:int runnian(int year) if(year%4=0&year%100!=0|year%400=0) return 1; else return 0; 3.判斷某月的天數(shù);通過函數(shù):7 / 14 文檔可自由編

7、輯打印int day1(int year,int month) int a12=31,28,31,30,31,30,31,31,30,31,30,31;若為閏,則二月為 29 天。 第 4 章 源程序清單#include#include/*定義頭文件*/int runnian(int year) if(year%4=0&year%100!=0|year%400=0) /*利用函數(shù)判斷輸入年份是閏年還是平年*/ return 1; else return 0;int day1(int year,int month)8 / 14 文檔可自由編輯打印 int a12=31,28,31,30,

8、31,30,31,31,30,31,30,31;/*定義數(shù)組確定 12 個月每個月的天數(shù)*/ if(runnian(year) /*如果輸入年份是閏年*/ a1=29; /*二月 29 天*/ return amonth-1;int day2(int year,int month,int day) int i,sum=0; for(i=1;imonth;i+) sum+=day1(year,i); sum+=day; return sum;int week1(int year,int month,int day) int number=(year-1)+(year-1)/4-(year-1)/

9、100+(year-1)/400+day2(year,month,day); number%=7; return number;char *Week2(int number) switch(number) /*分類一周七天*/ case 0:return Sunday; case 1:return Monday; case 2:return Tueaday; case 3:return Wednesday; case 4:return Thurday; case 5:return Friday; case 6:return Saturday; default:return Error!plea

10、se import again.n;/*不符和上面七種情況的報錯提示*/ void x1(int year,int month,int day) int number=week1(year,month,day); if(runnian(year)printf(common year);/*年份為閏年則輸出閏年*/ else printf(common year); printf( %d year %d month %d 9 / 14 文檔可自由編輯打印day%10snn,year,month,day,Week2(number);/*按年 月 日輸出結(jié)果*/void x2(int year,in

11、t month) int max,number,i,j=1; max=day1(year,month); number=week1(year,month,1); printf(%2s%2s%2s%2s%2s%2s%2sn, Sunday , Monday , Tueaday, Wednesday , Thurday , Friday ,Saturday );/*按照間隔打印日歷*/ for(i=0;inumber;i+) printf( ); while(j=max) printf(%8d,j); if(i%7=6) printf(n); i+; j+; printf(nn);int x3(i

12、nt year,int month,int day) if(year0|month12|dayday1(year,month) /*當(dāng)輸入值出現(xiàn)這些情況時*/ return 0; /*返回 0*/ else return 1; /*返回 1*/void yueli(int year,int month,int day) if(runnian(year) printf(leap year); else printf(common year); printf( %d year %d month %d daynn,year,month,day); x2(year,month);void rili(i

13、nt year,int month,int day)10 / 14 文檔可自由編輯打印 printf(n); x1(year,month,day);void main() int year,month,day,a,b; while(1) printf(nnnn); printf( *nn); printf( * * n); printf( Welcome to enter calendar system n); printf( * * nn); printf( *nnn); printf( 1 The month of current date 2 Date 3 Exitn); printf(

14、 please import your choose,press Enter to define: ); scanf(%d,&b); switch(b) case 1: /*選擇 1 時*/ printf(nPlease import the year,month and day which you want to check,the year,month and day separation by blank space: ); /*給出輸入提示*/ scanf(%d%d%d,&year,&month,&day); /*輸入需要查詢的年 月 日*/ a=x3(

15、year,month,1); if(a=0) printf(Error!Please import again.n);/*輸入值異常時報錯*/ break; yueli(year,month,day); break; case 2: /*選擇 2 時*/11 / 14 文檔可自由編輯打印 printf(nPlease import the year,month and day which you want to check,the year,month and day separation by blank space: ); /*給出輸入提示*/ scanf(%d%d%d,&year

16、,&month,&day);/*輸入年 月 日*/ a=x3(year,month,day); if(a=0) printf(Error!Please import again.n);/*輸入值異常時報錯*/ break; rili(year,month,day); break; case 3: exit(0); default: printf(Error!Please import again.nn); 第 5 章 執(zhí)行結(jié)果1)登陸界面12 / 14 文檔可自由編輯打印2 2)顯示當(dāng)前日歷月 3)顯示具體日期信息13 / 14 文檔可自由編輯打印第 6 章程序問題調(diào)試與課程設(shè)計心得1)程序問題調(diào)試(1) 調(diào)用的 week2 函數(shù)中,忘記在萬年歷中一周的第一天是 sunday。(2)定義的 runnian 語句中沒有返回值,無法判斷是否為閏年。 (3)定義的x1 與 x2 函數(shù)實現(xiàn)的功能時混淆。(4)被調(diào)用函數(shù) X3 中的返回值要用于主調(diào)函數(shù)中的判斷,但是未在主調(diào)函數(shù)中賦值給整型變量。(5)對于數(shù)組,數(shù)組的初始化要進(jìn)行正確的賦值,以及對于數(shù)組的使用與

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論