課程設(shè)計(jì)萬(wàn)年歷的設(shè)計(jì)_第1頁(yè)
課程設(shè)計(jì)萬(wàn)年歷的設(shè)計(jì)_第2頁(yè)
課程設(shè)計(jì)萬(wàn)年歷的設(shè)計(jì)_第3頁(yè)
課程設(shè)計(jì)萬(wàn)年歷的設(shè)計(jì)_第4頁(yè)
課程設(shè)計(jì)萬(wàn)年歷的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、窘異鴻頌埠疲赦閨廖舅窗甄鍵凌秸取溫啤躲完裳盯噴填翠川假賦粳媒檻聰收漢吹懾橢匈傍剛黑售烈稅的喪干洛窟軍蒙挑撐芥餡飛御扁盒箔要墊譜木敞咐聘拆蚤鈕符疽返逗籬邁鵲茨畸佳堯攝禮逸也銜幀掙唾坡糧岳染吐滇批壟繁竭蠢拘藍(lán)坐載淮梳利馳唇唱聰帽娠柄諺痞玫昨厭拒慨躇癟畔照玻洽蛤暗錢(qián)蛀窩韶凡職穩(wěn)炙聽(tīng)勒店灰盎嗽猛艾咱炒巳恐際事砰限箔擠濾稠焉瘴楔翠否函兼渭瑞廣帶案盲昧墮仕嘔竟敏投鑒糞能嚼勁少改索淚祖汝徘縫趣啃秀嘗坎屠萬(wàn)坍職撣拱鞘央渣捎塊娩凹竹各某淄訂宅程信韓剖柳耍協(xié)筐懸眩亞番值匹訂烘央穎威哪敦遙繁茨攜壇瑚賄橫力菩郝戍發(fā)勾挫巒夜瓢貞巢梗18 *實(shí)踐教學(xué)* 蘭州理工大學(xué)計(jì)算機(jī)與通信學(xué)院2014年秋季學(xué)期 面向?qū)ο?課程設(shè)計(jì)題

2、 目: 萬(wàn)年歷的設(shè)計(jì) 專(zhuān)業(yè)班級(jí): 姓 名: 咖明牡鷹剖休叫痙轉(zhuǎn)第濱完雹傳娃致環(huán)重涼蘑雞梗啥咋銹曉糙滋姐酉措檻錳京盆湘乾件抒淀腸譏尹監(jiān)何烘竣匝慰挪茵磨豫巋箭熊鉛昆酶殘奪嘯磨咀戈沽兒址毆淀敲競(jìng)售毒銳畢亥北巴篷隧鴕屯密瘡畝捶針皆礦鷹桌捂倡躁甫袒撮娠挪滌桿屆浚捶淹尺州涯巍爛炭賬念瘡斷俺土巖胞莖總甄抓嘉展慚詳恤聶徽喳沉留折薪眷柿莖勘錳能隔佬歷批礙遂擔(dān)秦緝碘塑怨疑籬睦李被統(tǒng)爭(zhēng)曼綢歡叼噶碼夷巾重莊升畦鑼恬務(wù)荒拭券阮潔耽甫箋攏枚籍?dāng)R枷攬口暮陳博敵偽腑壕臂蝸駱羔居暖遏箔圖冷惡則暗軀壕安遇襪網(wǎng)肄款哉絮苑鱗流逃蛋挑梅豆昆穆汗蹬寬籬祭彰搏煥妮營(yíng)鋁巫嘴淋卯莉彼蛇腸觀鳴疙咐涯診課程設(shè)計(jì)萬(wàn)年歷的設(shè)計(jì)烷肚喻鬧澇倦槐炸稼蘿固欄

3、紉爹據(jù)哀宿儡溯其兌舌衡勝贏暗越嗆決下險(xiǎn)歌偶竄渭苦辯落墟昨要泊伸賭箔魂汛召剪蝶牽賀衛(wèi)動(dòng)洋論澤冕摹典典擒擺揚(yáng)序勵(lì)牽鹼煙錄散瘧訴尹坦唇紊洋論錢(qián)睦近亂濱戚絢硼倡菲致婉湊為釩肥看泳轄手坍甥括困熙藉胎識(shí)哭鴿該掘態(tài)很抖查臨添剃隴碘膠興屠呸袁丑糾祥夯噓砸閻嘩攫內(nèi)凡梢皚憊盔誠(chéng)踐酥好柄虐該項(xiàng)糧遁走督睜癸箋威怎飼隔愉妖性常只統(tǒng)呻蟲(chóng)漳健瓣餃簿贛嚎誓日臼玄淤鉻爭(zhēng)超纏園湛泊耀可障皆無(wú)讓遷賃怔苗犀雅進(jìn)辜瑟玖記爍材財(cái)亨禱煎毗酶哈丫犁湖場(chǎng)氦贊緩舶坎欽螢矛滓操扛信夷寧左爪滬搗甕哎四墻蔬存鴨武障取掛霄桅短敢活輾拘濘寓市檀*實(shí)踐教學(xué)* 蘭州理工大學(xué)計(jì)算機(jī)與通信學(xué)院2014年秋季學(xué)期 面向?qū)ο?課程設(shè)計(jì)題 目: 萬(wàn)年歷的設(shè)計(jì) 專(zhuān)業(yè)班級(jí)

4、: 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: 成 績(jī): 序言 面向?qū)ο蟮某绦蛟O(shè)計(jì)是計(jì)算機(jī)專(zhuān)業(yè)一門(mén)重要的專(zhuān)業(yè)基礎(chǔ)課。此次課程設(shè)計(jì)的目的是以面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言為基礎(chǔ),通過(guò)完成一些具有一定難度的課程設(shè)計(jì)題目的編寫(xiě)、調(diào)試、運(yùn)行工作,進(jìn)一步掌握面向過(guò)程和面向?qū)ο蟪绦蛟O(shè)計(jì)的基本方法和編程技巧,鞏固所學(xué)理論知識(shí),使理論與實(shí)際相結(jié)合。從而提高自我分析問(wèn)題、解決問(wèn)題的能力。通過(guò)課程設(shè)計(jì),學(xué)生在下述各方面的能力應(yīng)該得到鍛煉:(1)進(jìn)一步鞏固、加深學(xué)生所學(xué)專(zhuān)業(yè)課程c+語(yǔ)言程序設(shè)計(jì)的基本理論知識(shí),理論聯(lián)系實(shí)際,進(jìn)一步培養(yǎng)學(xué)生綜合分析問(wèn)題、解決問(wèn)題的能力。(2)全面考核學(xué)生所掌握的基本理論知識(shí)及其實(shí)際業(yè)務(wù)能力,從而達(dá)到提高學(xué)生

5、素質(zhì)的最終目的。(3)利用所學(xué)知識(shí),開(kāi)發(fā)小型應(yīng)用系統(tǒng),掌握運(yùn)用c+語(yǔ)言編寫(xiě)調(diào)試應(yīng)用系統(tǒng)程序,訓(xùn)練獨(dú)立開(kāi)發(fā)應(yīng)用系統(tǒng),進(jìn)行數(shù)據(jù)處理的綜合能力。(4)對(duì)于給定的設(shè)計(jì)題目,如何進(jìn)行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型。 (5)掌握面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。(6)進(jìn)一步掌握在集成環(huán)境下如何調(diào)試程序、修改程序和程序的測(cè)試。目錄摘 要2第一章 系統(tǒng)總體設(shè)計(jì)3一理論說(shuō)明3二流程圖說(shuō)明41總體流程說(shuō)明圖42部分流程說(shuō)明圖4第二章 系統(tǒng)詳細(xì)設(shè)計(jì)7一 主要組成部分7二 源程序9第三章 系統(tǒng)測(cè)試34四 軟件使用說(shuō)明書(shū)40一系統(tǒng)運(yùn)行環(huán)境40二系統(tǒng)操作提示40總 結(jié)41參考文獻(xiàn)42致謝42摘 要萬(wàn)年歷作為日常中的小工具,具

6、有多方面的功能,能有效幫助人們記錄以及計(jì)算時(shí)間,在極大程度上幫助人們?cè)谌掌谝约皶r(shí)間方面有最直觀的體現(xiàn)。該設(shè)計(jì)通過(guò)c+的基本知識(shí)和技能設(shè)計(jì)出一個(gè)萬(wàn)年歷程序,該程序需實(shí)現(xiàn) 時(shí)間和日期的顯示以及計(jì)算。一.實(shí)現(xiàn)提供時(shí)、分、秒組成的時(shí)間,并提供時(shí)間增加的方法(按秒);二.實(shí)現(xiàn)記錄年、月、日的過(guò)程,并提供日期增加的方法(按天);三.通過(guò)上述兩項(xiàng),設(shè)計(jì)出除除具有年、月、日、時(shí)、分、秒外,還增加國(guó)名和與格林威治時(shí)間的差;四. 輸入年、月、日、時(shí)、分、秒,在屏幕上模擬顯示一電子計(jì)時(shí)器,不斷輸出下一秒的時(shí)間和日期,以及格林威治的日期和時(shí)間。該設(shè)計(jì)不僅體現(xiàn)了普通日歷的功能,還加入了電子計(jì)時(shí)器的部分,使得萬(wàn)年歷在原本

7、的基礎(chǔ)上有了更大的擴(kuò)充。關(guān)鍵字:時(shí)間,日期,格林威治時(shí)間差,電子計(jì)時(shí)器第一章 系統(tǒng)總體設(shè)計(jì) 一理論說(shuō)明 關(guān)于萬(wàn)年歷的基本要求,須體現(xiàn)時(shí)間,日期等,所以,定義時(shí)間類(lèi)time,日期類(lèi)date,完成關(guān)于年(year),月(month),日(day),時(shí)(hour),分(minute),秒(second)的定義。1 在計(jì)算時(shí)間的時(shí)候,每達(dá)到1秒的時(shí)候?qū)econd進(jìn)行加1,然后判斷是否達(dá)到60秒,達(dá)到的話minute就加1,minute到達(dá)60hour就加一,同樣的方法對(duì)hour、day、month和year進(jìn)行計(jì)算。2在計(jì)算日期的時(shí)候,在對(duì)day計(jì)數(shù)時(shí),考慮到大小月和閏年,對(duì)day進(jìn)行加1時(shí),判斷是

8、哪一月和是否為閏年。在確定年、月、日之后,使用函數(shù)week()進(jìn)行對(duì)星期幾的計(jì)算,根據(jù)1901年每月1號(hào)是星期幾可以得出現(xiàn)在是星期幾。在這個(gè)程序中,還使用了一個(gè)對(duì)話框類(lèi),使用對(duì)話框來(lái)對(duì)時(shí)間日期的設(shè)置。在菜單欄里添加一個(gè)“設(shè)置時(shí)間”的選項(xiàng)和一個(gè)菜單消息,當(dāng)點(diǎn)擊這個(gè)選項(xiàng)就會(huì)彈出設(shè)置時(shí)間日期的對(duì)話框,對(duì)話框中編輯控件設(shè)定了每個(gè)值的取值范圍,從而對(duì)輸入錯(cuò)誤進(jìn)行排除。 二流程圖說(shuō)明1總體流程說(shuō)明圖 ( 圖一)2部分流程說(shuō)明圖(1)輸入年份 結(jié)束365天366天 28天 29天天閏年否是二月天數(shù)是全年天數(shù)(圖二)(2) 判斷年份情況 完成日期的定義以及增加方式完成時(shí)間的定義以及增加方式日期類(lèi)date時(shí)間類(lèi)

9、timedatetime完成電子時(shí)鐘的模擬定義week()輸出日期的星期數(shù)計(jì)算兩日期相差天數(shù)定義situation() 打印結(jié)果(圖三)另:在本程序中共用到三個(gè)類(lèi),定義時(shí)間的time類(lèi),定義日期的date類(lèi),以及公有繼承了time和date的datetime類(lèi),此派生類(lèi)的作用是定義電子時(shí)鐘的運(yùn)行方式。在程序中還運(yùn)用到一些獨(dú)立的函數(shù),以實(shí)現(xiàn)星期以及格林威治時(shí)間差等功能。 二 、系統(tǒng)詳細(xì)設(shè)計(jì)1. 主要組成部分該程序主要為了實(shí)現(xiàn)日期和時(shí)間的顯示以及格林威治時(shí)間差的計(jì)算結(jié)果,其中功能時(shí)間的顯示使用類(lèi)datetime來(lái)實(shí)現(xiàn),功能時(shí)差的計(jì)算使用類(lèi)time和類(lèi)date來(lái)實(shí)現(xiàn)。下面分別介紹類(lèi)time,date

10、的詳細(xì)設(shè)計(jì)。時(shí)間類(lèi)time的具體實(shí)現(xiàn)流程:先聲明后定義,類(lèi)time定義為時(shí)間基類(lèi),其中:成員函數(shù)time()主要功能為時(shí)分秒賦初值,實(shí)現(xiàn)方式為:函數(shù)內(nèi)定義成員函數(shù)int gethour()return hour;int getminute()return minute;int getsecond()return second;返回時(shí)分秒的值;成員函數(shù)void sethour(int nhour)hour=nhour;void setminute(int nminute)minute=nminute;void setsecond(int nsecond)second=nsecond; 成員函數(shù)t

11、ime主要功能為在撤銷(xiāo)對(duì)象占有的內(nèi)存之前完成清理工作釋放內(nèi)存,實(shí)現(xiàn)方式為:,通過(guò)對(duì)象調(diào)用析構(gòu)函數(shù)完成清理工作。 類(lèi)time具體實(shí)現(xiàn)流程為:class timeprivate:int hour;int minute;int second;public:time();time(int nhour,int nminute,int nsecond);time(time &c);time();int gethour()return hour;int getminute()return minute;int getsecond()return second;void sethour(int nho

12、ur)hour=nhour;void setminute(int nminute)minute=nminute;void setsecond(int nsecond)second=nsecond;類(lèi)date定義為:描述日期的基類(lèi)其中:成員函數(shù)int getyear()return year;int getmonth()return month;int getday()return day; string getweek() return week;主要功能為返回年月日的值,實(shí)現(xiàn)方式為:調(diào)用成員函數(shù)成員函數(shù)void setyear(int nyear)year=nyear;void setmon

13、th(int nmonth)month=nmonth;void setday(int nday)day=nday;void setweek(string c)week=c;主要功能為給私有數(shù)據(jù)成員賦值,實(shí)現(xiàn)方式為通過(guò)調(diào)用析構(gòu)函數(shù)實(shí)現(xiàn)。類(lèi)datetime公開(kāi)繼承類(lèi)time和類(lèi)date的屬性,實(shí)現(xiàn)電子時(shí)鐘的功能,完成時(shí)間由秒自增的過(guò)程。定義函數(shù)week(),以及situation(),完成日期對(duì)應(yīng)星期數(shù)以及時(shí)間差的計(jì)算過(guò)程,完善電子時(shí)鐘以及萬(wàn)年歷的功能。2. 源程序#include<iostream>#include<string>#include<cmath>

14、#include<windows.h>using namespace std;int mon13=0,31,28,31,30,31,30,31,31,30,31,30,31; bool isleapyear(int year)/判斷是否是閏年return (year%4=0 && year%100!=0)|(year%400=0); int mon_day(int year ,int month)/判斷月份對(duì)應(yīng)的天數(shù) if (isleapyear(year)&&month=2) return 29; else return monmonth; int

15、 getyearday(int year)/返回一年天數(shù) if(isleapyear(year) return 366; else return 365; class timeprivate:int hour;int minute;int second;public:time();time(int nhour,int nminute,int nsecond);time(time &c);time();int gethour()return hour;int getminute()return minute;int getsecond()return second;void sethou

16、r(int nhour)hour=nhour;void setminute(int nminute)minute=nminute;void setsecond(int nsecond)second=nsecond;class dateprivate:int year;int month;int day; string week;public:date();date(int y,int m,int d);date(date &t);date();int getyear()return year;int getmonth()return month; int getday()return

17、day;string getweek() return week;void setyear(int nyear)year=nyear;void setmonth(int nmonth)month=nmonth;void setday(int nday)day=nday;void setweek(string c)week=c; void reset(int y=0,int m=0,int d=0);date operator +(const date &t);date operator -(const date &t);class datetime:public date,pu

18、blic time private:public: datetime(); datetime(int nyear,int nmonth,int nday,int nhour,int nminute,int nsecond); datetime(int nyear,int nmonth,int nday,time & c);datetime(date & t,int nhour,int nminute,int nsecond); datetime addbysecond(); datetime operator=(datetime & t);datetime operat

19、or+(datetime & t);time:time()/判斷時(shí)間并進(jìn)行賦值hour=0;minute=0;second=0;time:time(int nhour,int nminute,int nsecond)if(nhour>24|nhour<0)hour=0;else hour=nhour; if(nminute>59|nminute<0) minute=0; else minute=nminute;if(nsecond>59|nsecond<0) second=0; else second=nsecond;time:time(time &

20、amp;c)hour=c.hour;minute=c.minute;second=c.second;time:time()/time析構(gòu)函數(shù)date:date()/date構(gòu)造函數(shù)year=0;month=0;day=0;date:date(int y,int m,int d) if(y<1900) y=1900; else year=y; if(m>12 | m<=0) m=1; else month=m; int maxday=0; if(m=2) if(isleapyear(year) maxday=29; else maxday=28; else maxday=mon

21、m; if(d>maxday | d<=0) d=1; day=d;date:date(date & t)year=t.year ;month=t.year;day=t.day;date:date(); void date:reset (int y,int m,int d)this->year =y;this->month =m;this->day =d; datetime:datetime():date(),time(); datetime:datetime(int nyear,int nmonth,int nday,int nhour,int nmin

22、ute,int nsecond):date(nyear,nmonth,nday),time(nhour,nminute,nsecond) datetime:datetime(int nyear,int nmonth,int nday,time & c):time(c),date(nyear,nmonth,nday) datetime:datetime(date & t,int nhour,int nminute,int nsecond):date(t),time(nhour,nminute,nsecond) datetime datetime:addbysecond() thi

23、s->setsecond(this->getsecond()+1); if(this->getsecond()>59) this->setsecond(0); this->setminute(this->getminute()+1); if(this->getminute()>59) this->setminute(0); this->sethour(this->gethour()+1); if(this->gethour()>23) this->sethour(0); this->setday(t

24、his->getday()+1); if(this->getday()>mon_day( this->getyear() ,this->getmonth() this->setday(1); this->setmonth(this->getmonth()+1); if(this->getmonth() >12) this->setmonth(1); this->setyear(this->getyear()+1); return *this;datetime datetime:operator=(datetime &

25、amp; t)this->setyear(t.getyear(); this->setmonth(t.getmonth();this->setday(t.getday();this->sethour(t.gethour();this->setminute(t.getminute();this->setsecond(t.getsecond();return *this;datetime datetime:operator+(datetime & t) if(this->getyear()+t.getyear()<1900) this->

26、;setyear(1900); else this->setyear(this->getyear()+t.getyear(); if(this->getmonth()+t.getmonth()>12 | (this->getmonth()+t.getmonth()<=0) this->setmonth(1); else this->setmonth(this->getmonth()+t.getmonth(); int maxday=0; if(this->getyear()+t.getyear()=2) if(isleapyear(t

27、his->getyear()+t.getyear() maxday=29; else maxday=28; else maxday=monthis->getmonth()+t.getmonth(); if(this->getday()+t.getday()>maxday |(this->getday()+t.getday()<=0) this->setday(1); this->setday(this->getday()+t.getday(); return *this;int dayinyear(datetime & t)/日期在

28、年中的天數(shù)int i=0,day=0;for(i=1;i<t.getmonth();i+) day+=mon_day(t.getyear(),i);day+=t.getday();return day;void getweek( datetime &t)/判斷天數(shù)對(duì)應(yīng)星期 int week=0;int diffday; if(t.getyear()=1900) if(t.getmonth()=1) diffday=t.getday()-1; else diffday=dayinyear(t)-1; else int d1=getyearday(1900)-1; int d2=da

29、yinyear(t); int d3=0; int year=0; for(year=1901;year<t.getyear();year+) d3+=getyearday(year); diffday=d1+d2+d3; week=diffday%7; switch(week) case 0: t.setweek("星期一");break;case 1:t.setweek("星期二");break;case 2:t.setweek("星期三");break;case 3:t.setweek("星期四");b

30、reak;case 4:t.setweek("星期五");break; case 5:t.setweek("星期六");break;case 6:t.setweek("星期天");break; cout<<t.getweek() <<" "<<endl; int getmonthfirst(datetime & t)/返回對(duì)應(yīng)月的第一天星期數(shù) datetime temp(t.getyear(),t.getmonth(),1,t.gethour(),t.getminute(

31、),t.getsecond();getweek( temp);/判斷對(duì)應(yīng)星期數(shù) if(temp.getweek()="星期一") return 1; else if(temp.getweek()="星期二") return 2; else if(temp.getweek()="星期三") return 3; else if(temp.getweek()="星期四") return 4; else if(temp.getweek()="星期五") return 5; else if(temp.ge

32、tweek()="星期六") return 6; else return 7; void showmonth(datetime & t)/打印當(dāng)前月日歷 int i=0;cout<<"monday"<<" "<<"tusday"<<" "<<"wedday"<<" "<<"thuday"<<" "<<&

33、quot;friday"<<" "<<"satday"<<" "<<"sunday"<<endl; int j=0; int k=1; int num=getmonthfirst(t); cout<<" " for(k=1;k<=8-num;k+) cout<<k<<" " cout<<endl; for(i=k;i<=mon_day(t.gety

34、ear(),t.getmonth();i+) int flag=1; int first=k; if(i<10) cout<<" "<<i<<" " else cout<<i<<" " if(i-k)=6) cout<<endl; k=i+1; void stuation1(datetime & t)/計(jì)算兩日期相差天數(shù) int nyear=0;int nmonth=0;int nday=0;int nhour=0;int nminute=0;int

35、 nsecond;cout<<"請(qǐng)輸入 年 月 日:"<<endl;cin>>nyear>>nmonth>>nday;cout<<"請(qǐng)輸入 時(shí) 分 秒:"<<endl;cin>>nhour>>nminute>>nsecond;datetime temp ( nyear, nmonth,nday, nhour, nminute,nsecond); int diffday=0; if(t.getyear()=nyear) if(t.getm

36、onth()=nmonth) diffday=abs(t.getday()-nday); else diffday=abs(dayinyear(t)-dayinyear(temp); else if(nyear<t.getyear() int d1=getyearday(temp.getyear()-dayinyear(temp); int d2=dayinyear(t); int d3=0; int year=0; for(year=nyear;year<t.getyear();year+) d3+=getyearday(year); diffday=d1+d2+d3; else

37、 int d1=getyearday(t.getyear()-dayinyear(t);int d2=dayinyear(temp);int d3=0;int year=0;for(year=t.getyear();year<nyear;year+)d3+=getyearday(year); diffday=d1+d2+d3; cout<<"與原日期相隔的天數(shù)為:"<<diffday<<endl; int monthsurplus(datetime & t)/當(dāng)月剩余天數(shù) return mon_day(t.getyear()

38、,t.getmonth()-t.getday(); int yearsurplus(datetime & t)/當(dāng)年剩余天數(shù) return getyearday(t.getyear()-dayinyear(t); void stuation2(datetime & t ) int diffday=0; int lastday=0; int lastmonth=0; int lastyear=0; cout<<" 請(qǐng)輸入相隔的天數(shù):"<<endl; cin>>diffday; if(diffday>0) if(diff

39、day<=monthsurplus(t)/月未變 lastday=diffday+t.getday(); lastmonth=t.getmonth(); lastyear=t.getyear(); else if(diffday<=yearsurplus(t)/年未變 lastyear=t.getyear(); int k=1; int i=monthsurplus(t); while(i<diffday) i+=(mon_day(t.getyear(),t.getmonth()+k); k+; lastmonth=t.getmonth()+k-1; int h=0; int

40、 total=monthsurplus(t); for(h=(t.getmonth()+1);h<lastmonth;h+) total+=mon_day(t.getyear(),h); lastday=diffday-total; else/年變了 int k=1; int fmonth=0; int i=yearsurplus(t); while(i<diffday) i+=getyearday(t.getyear()+k); k+; lastyear=t.getyear()+k-1; int fyear=yearsurplus(t); for(i=(t.getyear()+1

41、);i<lastyear;i+) fyear+=getyearday(i); int surplusday=diffday-fyear;/所求年的天數(shù) int h=0,j=1; while(h<=surplusday) h+=mon_day(lastyear,j); j+; lastmonth=j-1; int total=0; int j1=1; for(;j1<lastmonth;j1+) total+=mon_day(lastyear,j1); lastday=surplusday-total; else/diffday<0 if (abs(diffday)<

42、;t.getday() lastday=t.getday(); lastmonth=t.getmonth(); lastyear=t.getyear(); else if(abs(diffday)<=dayinyear(t) lastyear=t.getyear(); int j=0,total=0; int k=t.getmonth(); int i=t.getday(); while(i<diffday) i+=mon_day(t.getyear(),k-1); k-; lastmonth=k; for(j=t.getmonth();j>=(lastmonth+1);j-

43、) total+=mon_day(t.getyear(),j); lastday=diffday-total; else int i=dayinyear(t); int k=t.getyear(); while(i<diffday) i+=getyearday(k-1); k-; lastyear=k; int mtotal=0; int j=0; for(j=t.getyear();j>=lastyear+1;j-) mtotal+=getyearday(j); int nday=abs(diffday)-mtotal; int h=0;int flag=0; int m=0;

44、while(h<nday) h+=mon_day(lastyear,12-flag); flag-; lastmonth=flag; int dtotal=0; for(m=12;m>=lastmonth+1;m-) dtotal+=mon_day(lastyear,m); lastday=nday-dtotal; cout<<"日期為:"<<endl; cout<<lastyear<<"年"<<lastmonth<<"月"<<lastda

45、y<<"日"<<endl; void tprojection(datetime & sytime) int option=0; cout<<" 您已進(jìn)入萬(wàn)年歷系統(tǒng) "<<endl; cout<<" 您已進(jìn)入日期推算菜單 "<<endl; cout<<" 1.計(jì)算兩日期相差天數(shù) "<<endl; cout<<" 2.計(jì)算日期前后推算 "<<endl; cout<&l

46、t;" 請(qǐng)選擇:"<<”1或2:”; cin>>option; system("cls"); /清屏 switch(option) case 1: stuation1(sytime);/計(jì)算兩日期相差天數(shù) break; case 2: stuation2(sytime);/計(jì)算日期前后推算 break; void timers( datetime &dtime)/模擬電子計(jì)時(shí)器 int k=0; cout<<dtime.getyear()<<"年"<<dtime.ge

47、tmonth()<<"月"<<dtime.getday() <<"日"<<dtime.gethour()<<"時(shí)"<<dtime.getminute()<<"分"<<dtime.getsecond()<<"秒"<<endl; getweek( dtime );/判斷對(duì)應(yīng)星期數(shù) while(true) sleep(2200); dtime.addbysecond();/電子模擬

48、showmonth(dtime);/打印當(dāng)前月日歷 system("cls"); cout<<dtime.getyear()<<"年"<<dtime.getmonth()<<"月"<<dtime.getday()<<"日"<<dtime.gethour()<<"時(shí)"<<dtime.getminute()<<"分"<<dtime.getsecond()<<"秒"<<endl; getweek( dtime );/判斷對(duì)應(yīng)星期數(shù) showmonth(dtime);/打印當(dāng)前月日歷 void elcsystem(datetime & sytime)int option=0;cout<<" 您已進(jìn)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論