版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言課程設(shè)計(jì)(萬(wàn)歷)C語(yǔ)言課程設(shè)計(jì)(萬(wàn)歷)C語(yǔ)言課程設(shè)計(jì)(萬(wàn)歷)山東交通學(xué)院面向?qū)ο笳n程設(shè)計(jì)萬(wàn)年歷系統(tǒng)院(系)別信息工程系班級(jí)計(jì)算111學(xué)號(hào)11081123姓名秦先生指導(dǎo)教師徐碩博時(shí)間2012-03-05—2012-03-09課程設(shè)計(jì)任務(wù)書題目萬(wàn)年歷系統(tǒng)系(部)信息工程系專業(yè)計(jì)算機(jī)科學(xué)與班級(jí)計(jì)算111學(xué)生姓名秦先生學(xué)號(hào)11081112303月05日至03月09日共1周指導(dǎo)教師(署名)系主任(署名)年代日成績(jī)?cè)u(píng)定表作品成績(jī)報(bào)成功績(jī)口試(辯論)成總評(píng)成績(jī)績(jī).目錄1課程設(shè)計(jì)概括..................................................................................................................51.1萬(wàn)年歷系統(tǒng)功能概括.....................................................................................................51.2開發(fā)環(huán)境概括.................................................................................................................52萬(wàn)年歷系統(tǒng)整體設(shè)計(jì)...................................................................................................62.1問題剖析.........................................................................................................................62.2整體設(shè)計(jì)流程圖.............................................................................................................73萬(wàn)年歷系統(tǒng)詳盡設(shè)計(jì)...................................................................................................84程序測(cè)試...............................................................................................................................94.1進(jìn)入程序界面.................................................................................................................94.2主菜單界面.....................................................................................................................94.3顯示目前時(shí)間界面.......................................................................................................104.4查問時(shí)間界面.............................................................................................................104.5查問時(shí)間犯錯(cuò)界面.......................................................................................................114.6退出程序界面...............................................................................................................124.7主菜單項(xiàng)選擇擇犯錯(cuò)界面.....................................................................錯(cuò)誤!不決義書簽。25程序源代碼13設(shè)計(jì)領(lǐng)會(huì)及此后的改良建議21參照文件..................................................................................................................................21課程設(shè)計(jì)概括1.1字符統(tǒng)計(jì)軟件功能概括模擬Windwos的日歷.日歷顯示功能。能依據(jù)系統(tǒng)日期進(jìn)行初始化,假如沒有任何輸入,則顯示系統(tǒng)日期所在月份的月歷。日歷查問、閏年判斷功能。輸入日期進(jìn)行查問,顯示查問日期所在月份的月歷,還將顯示所在年份能否為閏年。參數(shù)檢查功能。假如輸入日期不合法,查問將被拒絕,并顯示提示信息。1.2開發(fā)環(huán)境概括在實(shí)驗(yàn)室一人一臺(tái)微機(jī)。課程設(shè)計(jì)概括2.1問題剖析難點(diǎn)在于判斷禮拜,但依據(jù)蔡勒公式,能夠很簡(jiǎn)單地有年代日推測(cè)出星期:nDay=year-1+(year-1)/4-(year-1)/100+(year-1)/400+nday;w=nDay%7;此中year:要查問的年份nday:從該年的一月一日起到該天的天數(shù)w:得出的禮拜數(shù),w==0表示禮拜天。在打印月歷時(shí),只需知道第一天的禮拜,就能夠挨次輸入后邊的日期,經(jīng)過定長(zhǎng)度輸出日期,在碰到某時(shí)節(jié)禮拜六時(shí),就換行輸出,所以能夠依據(jù)月歷的格式輸出。關(guān)于初始輸入目前月歷,能夠經(jīng)過<time.h>中的time和localtime函數(shù)拿出系統(tǒng)時(shí)間進(jìn)行初始化。time_ttimer;structtm*gmt;time(&timer);gmt=localtime(&timer);gmt就是一個(gè)時(shí)間構(gòu)造體,能夠從中拿出年代日。閏年的判斷,能被4整除但不可以被100整除,或許能被400整除的年份為閏年,不然為平年。日期的查問,就是直接打印該天所在月份的月歷。判斷日期能否合法,能夠先判斷年代日能否有小于0的值,月和日能否有高出最大值12和31,假如經(jīng)過此判斷合法,再判斷能否時(shí)閏年,假如時(shí)閏年,則判斷二月份能否知足要求,閏年二月份不可以超出29天,平年二月份不可以超出28天。在查問過程中,假如發(fā)現(xiàn)輸入不合法或許不知足輸入要求,則要求從頭輸入。2.2整體設(shè)計(jì)流圖程序開始按提示輸入數(shù)字是再次輸入數(shù)字履行相應(yīng)的功能輸入的數(shù)字是不是0退出3萬(wàn)年歷系統(tǒng)詳盡設(shè)計(jì)intrunnian(intyear);該函數(shù)判斷某年是不是閏年,參數(shù)為閏年,0表示該年為平年。
year
表示要判斷的年份,返回值
1表示該年structtm*getDay( )
;該函數(shù)用以獲得系統(tǒng)的時(shí)間。該函數(shù)沒有參數(shù),返回值種類為
struct
tm*,
是一個(gè)包括時(shí)間的構(gòu)造體。intjiancha(intyear,intmonth,intday);該函數(shù)用以判斷輸入的年份能否合法,參數(shù)為要判斷的年代日,返回值為1表示該日期合法,為0表示不合法。intgetwDay(intyear,intmonth,intday);該函數(shù)用以依據(jù)一個(gè)日期推測(cè)禮拜,參數(shù)為要判斷的年代日。返回值為整型,123456分別表示禮拜一到禮拜六,0表示禮拜天。voidchaxun( );該函數(shù)用以顯示要查問的日期的月歷,無(wú)參數(shù)和返回值,。voidinlinebackMenu( );該函數(shù)為內(nèi)聯(lián)函數(shù),用以實(shí)現(xiàn)達(dá)成某項(xiàng)功能后按隨意字符鍵返回主菜單,無(wú)參數(shù)和返回值。voidcaidan(int&year,int&month,int&day);該函數(shù)參數(shù)為系統(tǒng)日期,無(wú)返回值,用戶在該函數(shù)履行時(shí)能夠選擇功能。程序測(cè)試4.1進(jìn)入程序后顯示4.2按隨意鍵返回主菜單4.3進(jìn)入主菜單后,按1,顯示目前時(shí)間4.4在主菜單界面按2,進(jìn)行日立的查問,并經(jīng)時(shí)期的合法性判斷和平潤(rùn)年的判斷。比如輸入:20201220.因?yàn)檩斎牒戏〞?huì)顯示:4.5進(jìn)入程序后顯示輸入:20121140,因?yàn)檩斎氩缓戏?,?huì)進(jìn)行報(bào)錯(cuò),要求從頭輸4.6在主界面中輸入3,程序退出4.7在主界面中輸入:eufhg,會(huì)顯示程序原代碼:#include<stdio.h>#include<time.h>#include<math.h>#include<string.h>#include<windows.h>#include<conio.h>intyear,month,day;//全局變量記錄時(shí)間intdaysOfMonth[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};intrunnian(intyear)//判斷是不是閏年{return(year%4==0&&year%100!=0||year%400==0)?1:0;}structtm*getDay( )//{
從系統(tǒng)獲得目前時(shí)間time_ttimer;structtm*gmt;time(&timer);gmt=localtime(&timer);returngmt;}intjianca(intyear,intmonth,intday)//{
檢查日期能否正確if(year<0||month<1||month>12||day<1||day>31)return0;switch(month){case1:case3:case5:case7:case8:case10:case12:if(day>31)return0;break;case4:case6:case9:case11:if(day>30)return0;break;default:if(runnian(year)&&day>29)return0;elseif(runnian(year)==0&&day>28)return0;}return1;}intgetwDay(intyear,intmonth,intday)//{
獲得禮拜intnday=0,nDay,i,w;for(i=0;i<month-1;i++)nday+=daysOfMonth[runnian(year)][i];nday+=day;nDay=year-1+(year-1)/4-(year-1)/100+(year-1)/400+nday;w=nDay%7;returnw;}intweek(intyear,intmonth,intday)//{
獲得禮拜intnday=0,nDay,i,w;for(i=0;i<month-1;i++)nday+=daysOfMonth[runnian(year)][i];nday+=day;nDay=year-1+(year-1)/4-(year-1)/100+(year-1)/400+nday;w=nDay%7;returnw;}voidty(intyear,intmonth,intday)//{
打印月歷inti;charwday[7][4]={"日","一","二","三","四","五","六"};printf("####################################\n");printf("####################################\n");printf("######%d年%d月%d日#######\n",year,month,day);printf("************************************\n");printf("************************************\n");for(i=0;i<7;i++)printf("%5s",wday[i]);printf("\n");intw;intnowDay=1;w=week(year,month,nowDay);//找到第一天的禮拜intn;n=daysOfMonth[runnian(year)][month-1];{//擱置第一天if(w==0)printf("%5d",nowDay);elseif(w==1)printf("%10d",nowDay);elseif(w==2)printf("%15d",nowDay);elseif(w==3)printf("%20d",nowDay);elseif(w==4)printf("%25d",nowDay);elseif(w==5)printf("%30d",nowDay);elseprintf("%35d\n",nowDay);}nowDay++;for(i=1;i<n;i++){w=week(year,month,nowDay);printf("%5d",nowDay);if(w==6)//假如是禮拜六則換行打印puts("\n");nowDay++;}printf("\n************************************\n");printf("************************************\n");}voidcaxun( )//查問日歷{system("cls");intyear,month,day;printf("請(qǐng)輸入你要查問的日期(格式為年代日,如2009113):");scanf("%d%d%d",&year,&month,&day);while(!jianca(year,month,day))//假如日期輸入不正確,則從頭輸入{printf("%c你輸入的日期錯(cuò)誤,請(qǐng)從頭輸入:");scanf("%d%d%d",&year,&month,&day);}system("cls");if(runnian(year))printf("\n
閏年\n\n");elseprintf("\n
平年\n\n");ty(year,month,day);}voidinlinebackMenu( ){printf("請(qǐng)按隨意字符鍵進(jìn)入主菜單:\n");getch( );/*system("cls");*/}voidcaidan(int&year,int&month,int&day)//主菜單{system("cls");printf("---------------------------------------------------\n");printf("---------------------------------------------------\n");printf("---------------------------------------------------\n");printf("---------------------------------------------------\n");printf("***************************************************\n");printf("***************************************************\n");printf("***********
主菜單
*************\n");printf("***************************************************\n");printf("****************************************************\n");printf("***********1.顯示日歷*************\n");printf("***********2.查問日歷*************\n");printf("***********3.退出*************\n");printf("************************\n");printf("************************\n");printf("************************\n");charm[100];intg=0;do{intf=0;do
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程總承包招標(biāo)合同范例
- 買賣按揭房合同范例
- 水泥噴漿機(jī)租賃合同范例
- 居家開荒保潔合同范例
- 銅仁職業(yè)技術(shù)學(xué)院《分析化學(xué)二》2023-2024學(xué)年第一學(xué)期期末試卷
- 桐城師范高等專科學(xué)?!董h(huán)境資源法》2023-2024學(xué)年第一學(xué)期期末試卷
- 桐城師范高等??茖W(xué)校《大數(shù)據(jù)處理與分布式計(jì)算》2023-2024學(xué)年第一學(xué)期期末試卷
- 人教版三年級(jí)上冊(cè)數(shù)學(xué) 第三單元測(cè)量《第1課時(shí)毫米的認(rèn)識(shí)》教學(xué)設(shè)計(jì)
- 通化醫(yī)藥健康職業(yè)學(xué)院《腫瘤生物學(xué)導(dǎo)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 通化醫(yī)藥健康職業(yè)學(xué)院《生物儀器原理與使用》2023-2024學(xué)年第一學(xué)期期末試卷
- 人工智能對(duì)中學(xué)教學(xué)的影響與應(yīng)對(duì)策略
- 閉合導(dǎo)線自動(dòng)計(jì)算表
- 分管學(xué)校安全、德育、后勤等業(yè)務(wù)副校長(zhǎng)述職報(bào)告
- 筆試考試:HSK筆試(三級(jí))真題模擬匯編(共603題)
- 全國(guó)城市一覽表-excel
- 國(guó)際金融課后習(xí)題答案(吳志明第五版)第1-9章
- 《WPS演示制作與設(shè)計(jì)》計(jì)算機(jī)應(yīng)用基礎(chǔ)高職專科一等獎(jiǎng)(含課件制作試題及答案)
- 《基于杜邦分析法周大福珠寶企業(yè)盈利能力分析報(bào)告(6400字)》
- 全國(guó)英語(yǔ)等級(jí)考試三級(jí)全真模擬試題二-2023修改整理
- 02R112 拱頂油罐圖集
- 全國(guó)民用建筑工程技術(shù)措施暖通空調(diào)動(dòng)力
評(píng)論
0/150
提交評(píng)論