版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
-.z.-----總結(jié)資料C++程序設(shè)計(jì)報(bào)告C++程序設(shè)計(jì)報(bào)告——基于命令Win32命令行應(yīng)用程序的簡易日程管理系統(tǒng)*益
C++語言程序設(shè)計(jì)
教師:黃鵬宇作者日程管理就是將每天的工作和事務(wù)安排在日期中,并做一個(gè)有效的記錄,方便管理日常的工作和事務(wù),到達(dá)工作備忘的目的。同時(shí)也具有對員工日常工作進(jìn)展指導(dǎo)、監(jiān)視的作用。電子版的日程管理通常具有定時(shí)提醒和共享等功能。通過學(xué)習(xí)C++課程以及面向?qū)ο蟮某绦蛟O(shè)計(jì),我發(fā)現(xiàn)日程管理中所需的日期、時(shí)間、記錄等都可以抽象成類,并可以利用函數(shù)實(shí)現(xiàn)簡單的添加、查詢功能。由于能力的限制,本次"簡易日程管理系統(tǒng)〞的設(shè)計(jì)依舊基于Win32命令行應(yīng)用程序〔MFC好難啃……〕,主要實(shí)現(xiàn)的功能有:輸入日程;查詢?nèi)咳粘?;查詢單條日程;修改時(shí)間。包括流程圖、類關(guān)系圖、文件關(guān)系圖。1、流程圖2、類關(guān)系圖包含于包含于包含于包含于3、文件關(guān)系圖SimpleScheduleSystem.cpp#include"stdaf*.h"#include<iostream>#include<fstream>#include"record.h"usingnamespacestd;voidmenue();voidaddRecord();voidgetRecord();voidchangeToday();voidgetRecordAll();ofstreamfout(RECORDPATH);Datetoday(2014,12,25);intmain(){while(true){menue();intn;cin>>n;switch(n){case1:{cout<<"\n"<<endl;addRecord();cout<<"\n"<<endl;break;}case2:{cout<<"\n"<<endl;getRecordAll();cout<<"\n"<<endl;break;}case3:{cout<<"\n"<<endl;changeToday();cout<<"\n"<<endl;break;}case4:{cout<<"\n"<<endl;getRecord();cout<<"\n"<<endl;break;}case0:{return0;}default:{cout<<"\n"<<endl;cout<<"輸入錯(cuò)誤"<<endl;cout<<"\n"<<endl;break;}}cout<<"按任意鍵繼續(xù)";getchar();getchar();fout.close();}return0;}voidmenue(){cout<<"**************************************************************"<<endl;cout<<"|************************************************************|"<<endl;cout<<"||"<<endl;cout<<"|簡易日程管理系統(tǒng)|"<<endl;cout<<"||"<<endl;cout<<"|1:輸入日程|"<<endl;cout<<"||"<<endl;cout<<"|2:全部日程|"<<endl;cout<<"||"<<endl;cout<<"|3:修改當(dāng)前日期|"<<endl;cout<<"||"<<endl;cout<<"|4:查詢?nèi)粘蘾"<<endl;cout<<"||"<<endl;cout<<"|0:退出|"<<endl;cout<<"||"<<endl;cout<<"||"<<endl;cout<<"|************************************************************|"<<endl;cout<<"**************************************************************"<<endl;cout<<""<<endl;cout<<"今天是"<<today.getDate()<<endl;cout<<""<<endl;cout<<""<<endl;cout<<"請選擇:"<<endl;cout<<""<<endl;}voidaddRecord(){stringdate,s_time,e_time,content;charch;intn;cout<<"****************************************************************"<<endl;cout<<"*************************輸入日程*******************************"<<endl;cout<<"****************************************************************"<<endl;cout<<"需輸入的記錄數(shù):"<<endl;cin>>n;for(inti=n;i>0;i--){cout<<"請輸入日期〔格式為****/**/**〕:"<<endl;cin>>date;cout<<"請輸入開場時(shí)間〔格式為**:**〕:"<<endl;cin>>s_time;cout<<"請輸入完畢時(shí)間〔格式為**:**〕:"<<endl;cin>>e_time;cout<<"請輸入事件內(nèi)容:"<<endl;cin>>content;Recordrec(date,s_time,e_time,content);cout<<"****************************************************************"<<endl;cout<<rec.getRecord()<<endl;today.earlyDate(rec.getDate());cout<<"****************************************************************"<<endl;cout<<"是否確認(rèn)?〔y/n):"<<endl;cin>>ch;if(ch=='y'){fout<<rec.getRecord()<<endl;cout<<"*************************輸入成功*******************************"<<'\n'<<endl;}elsei++;// rec.~Record();}}voidgetRecord(){stringdate_s;boolisFind=false;cout<<"****************************************************************"<<endl;cout<<"*************************查詢?nèi)粘?******************************"<<endl;cout<<"****************************************************************"<<endl;cout<<"請輸入日期〔格式為****/**/**〕:"<<endl;cin>>date_s;cout<<"**************************************************************"<<endl;Datedate(date_s);ifstreamfin(RECORDPATH);for(stringstr;getline(fin,str);){inty,m,d;charch;istringstreamsin(str);sin>>y;sin>>ch;sin>>m;sin>>ch;sin>>d;if(date.getYear()==y&&date.getMonth()==m&&date.getDay()==d){cout<<str<<endl;today.earlyDate(date);isFind=true;}}if(!isFind)cout<<"沒有記錄"<<endl;cout<<"**************************************************************"<<endl;}voidgetRecordAll(){cout<<"****************************************************************"<<endl;cout<<"*************************全部日程*******************************"<<endl;cout<<"****************************************************************"<<endl;ifstreamfin(RECORDPATH);for(stringstr;getline(fin,str);){cout<<str<<endl;cout<<"**************************************************************"<<endl;}}voidchangeToday(){stringdate;cout<<"請輸入日期〔格式為****/**/**〕:"<<endl;cin>>date;today.set(date);cout<<"*************************設(shè)置成功*******************************"<<endl;}myDate.h#ifndefMYDATE_H#defineMYDATE_H#include<iostream>#include<iomanip>#include<stdlib.h>usingnamespacestd;classDate{intyear,month,day;public:voidset(inty,intm,intd);voidset(strings);Date(){}Date(inty,intm,intd);Date(strings);intgetYear(){returnyear;}intgetMonth(){returnmonth;}intgetDay(){returnday;}stringgetDate();boolisLeapYear()const;boolisLate(Datedate);voidprint()const;voidaddDay(intn);intearlyDate(Datedate);};Date::Date(inty,intm,intd){year=y;month=m;day=d;}//------------------------------------------------Date::Date(strings){year=atoi(s.substr(0,4).c_str());month=atoi(s.substr(5,2).c_str());day=atoi(s.substr(8,2).c_str());}//------------------------------------------------voidDate::set(inty,intm,intd){year=y;month=m;day=d;}//------------------------------------------------voidDate::set(strings){year=atoi(s.substr(0,4).c_str());month=atoi(s.substr(5,2).c_str());day=atoi(s.substr(8,2).c_str());}//------------------------------------------------inlineboolDate::isLeapYear()const{return(year%4==0&&year%100!=0)||(year%400==0);}//------------------------------------------------inlinevoidDate::print()const{cout<<setfill('0');cout<<setw(4)<<year<<'/'<<setw(2)<<month<<'/'<<setw(2)<<day<<endl;cout<<setfill('');}//------------------------------------------------voidDate::addDay(intn){for(inti=n;i>0;i--){day++;switch(month){case4:;case6:;case9:;case11:if(day>30){day=1;month++;}break;case12:if(day>31){day=1;month=1;year++;}break;case2:if((isLeapYear()&&day>29)||day>28){day=1;month++;}break;default:if(day>31){day=1;month++;}break;}}}//------------------------------------------------stringDate::getDate(){stringstreamss;ss<<setw(4)<<setfill('0')<<year<<"/"<<setw(2)<<setfill('0')<<month<<"/"<<setw(2)<<setfill('0')<<day;stringstr=ss.str();// ss.~stringstream();returnstr;}boolDate::isLate(Datedate){if(year>date.year)returntrue;elseif(year==date.year){if(month>date.month)returntrue;elseif(month=date.month){if(day>date.day)returntrue;}}returnfalse;}intDate::earlyDate(Datedate){if(isLate(date)){cout<<"已過期"<<endl;return-1;}else{inti=0;Dateda(year,month,day);for(;date.isLate(da);i++)da.addDay(1);cout<<"距今還有"<<i<<"天"<<endl;}}#endifmyTIME.h#ifndefMYTIME_H#defineMYTIME_H#include<iostream>#include<iomanip>#include<stdlib.h>usingnamespacestd;classTime{inthour,minute;public:Time(){}Time(inth,intm);Time(strings);voidset(inth,intm);voidset(strings);voidprint()const;stringgetTime();};Time::Time(inth,intm){hour=h;minute=m;}//------------------------------------------------Time::Time(strings){hour=atoi(s.substr(0,2).c_str());minute=atoi(s.substr(3,2).c_str());}//------------------------------------------------voidTime::set(inth,intm){hour=h;minute=m;}//------------------------------------------------voidTime::set(strings){hour=atoi(s.substr(0,2).c_str());minute=atoi(s.substr(3,2).c_str());}//------------------------------------------------inlinevoidTime::print()const{cout<<setfill('0');cout<<setw(2)<<hour<<':'<<setw(2)<<minute;cout<<setfill('');}//------------------------------------------------stringTime::getTime(){stringstreamss;ss<<setw(2)<<setfill('0')<<hour<<":"<<setw(2)<<setfill('0')<<minute;stringstr=ss.str();// ss.~stringstream();returnstr;}//------------------------------------------------#endifReCord.h#ifndefRECORD_H#defineRECORD_H#include<iostream>#include<iomanip>#include<stdlib.h>#include<string>#include<sstream>#include"myDate.h"#include"myTime.h"#defineRECORDPATH"record.t*t"usi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒店贈(zèng)品禮品贈(zèng)送管理
- 體育休閑行業(yè)工程師的工作總結(jié)
- 班級文化建設(shè)與維系計(jì)劃
- 廣東省佛山市禪城區(qū)2023-2024學(xué)年六年級上學(xué)期英語期末試卷
- 第24章 圓-單元測評卷(1)-2024-2025學(xué)年數(shù)學(xué)人教版九年級上冊(含答案解析)
- 2023-2024學(xué)年四川省成都市青羊區(qū)樹德中學(xué)高一(下)期中地理試卷
- 《地球公轉(zhuǎn)必修》課件
- 《能言善辯的名人》課件
- 2024年陜西省榆林市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2021年江蘇省淮安市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 吉首大學(xué)《高等數(shù)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 打印和復(fù)印服務(wù)協(xié)議
- 針灸習(xí)題庫(附參考答案)
- 前置胎盤手術(shù)配合
- 期末試卷(試題)-2024-2025學(xué)年五年級上冊數(shù)學(xué)北師大版
- 采購經(jīng)理年終述職報(bào)告
- 2024年中國電信服務(wù)合同標(biāo)準(zhǔn)文本
- 四川省成都市2023-2024學(xué)年高一上學(xué)期語文期末考試試卷(含答案)
- 2024-2025學(xué)年人教版八年級上冊數(shù)學(xué)期末必刷壓軸60題(原卷版)
- 浙江省嘉興市(2024年-2025年小學(xué)五年級語文)部編版專題練習(xí)(上學(xué)期)試卷及答案
- 投標(biāo)述標(biāo)演講稿
評論
0/150
提交評論