您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > C++结课报告(简易日程管理系统)
C++程序设计报告——基于命令Win32命令行应用程序的简易日程管理系统12010520033徐益C++语言程序设计教师:黄鹏宇作者1一、问题阐述日程管理就是将每天的工作和事务安排在日期中,并做一个有效的记录,方便管理日常的工作和事务,达到工作备忘的目的。同时也具有对员工日常工作进行指导、监督的作用。电子版的日程管理通常具有定时提醒和共享等功能。通过学习C++课程以及面向对象的程序设计,我发现日程管理中所需的日期、时间、记录等都可以抽象成类,并可以利用函数实现简单的添加、查询功能。由于能力的限制,本次“简易日程管理系统”的设计依旧基于Win32命令行应用程序(MFC好难啃……),主要实现的功能有:1、输入日程;2、查询全部日程;3、查询单条日程;4、修改时间。2二、基本设计包括流程图、类关系图、文件关系图。1、流程图开始功能选择输入日期输入起止时间输入日程内容是否记录数据?NO1、添加日程Yes将数据添加进recor.txt是否结束?将recor.txt中所有内容输出到命令行2、输出所有记录是否继续添加数据?Yes结束YesNo输入日期3、查询特定记录从record.txt中搜索制定时间的记录存在?输出该记录Yes输出“无记录”NoNo32、类关系图3、文件关系图Record类Time类Date类4三、源代码SIMPLESCHEDULESYSTEM.CPP#includestdafx.h#includeiostream#includefstream#includerecord.husingnamespacestd;voidmenue();voidaddRecord();voidgetRecord();voidchangeToday();voidgetRecordAll();ofstreamfout(RECORDPATH);Datetoday(2014,12,25);intmain(){while(true){menue();intn;cinn;switch(n){case1:{cout\nendl;addRecord();cout\nendl;break;}case2:{cout\nendl;getRecordAll();cout\nendl;break;}case3:{cout\nendl;changeToday();cout\nendl;break;}case4:{5cout\nendl;getRecord();cout\nendl;break;}case0:{return0;}default:{cout\nendl;cout输入错误endl;cout\nendl;break;}}cout按任意键继续;getchar();getchar();fout.close();}return0;}voidmenue(){cout**************************************************************endl;cout|************************************************************|endl;cout||endl;cout|简易日程管理系统|endl;cout||endl;cout|1:输入日程|endl;cout||endl;cout|2:全部日程|endl;cout||endl;cout|3:修改当前日期|endl;cout||endl;cout|4:查询日程|endl;cout||endl;cout|0:退出|endl;cout||endl;cout||endl;cout|************************************************************|endl;cout**************************************************************endl;coutendl;cout今天是today.getDate()endl;coutendl;coutendl;6cout请选择:endl;coutendl;}voidaddRecord(){stringdate,s_time,e_time,content;charch;intn;cout****************************************************************endl;cout*************************输入日程*******************************endl;cout****************************************************************endl;cout需输入的记录数:endl;cinn;for(inti=n;i0;i--){cout请输入日期(格式为****/**/**):endl;cindate;cout请输入开始时间(格式为**:**):endl;cins_time;cout请输入结束时间(格式为**:**):endl;cine_time;cout请输入事件内容:endl;cincontent;Recordrec(date,s_time,e_time,content);cout****************************************************************endl;coutrec.getRecord()endl;today.earlyDate(rec.getDate());cout****************************************************************endl;cout是否确认?(y/n):endl;cinch;if(ch=='y'){foutrec.getRecord()endl;cout*************************输入成功*******************************'\n'endl;}elsei++;//rec.~Record();}}voidgetRecord(){stringdate_s;boolisFind=false;cout****************************************************************endl;cout*************************查询日程*******************************endl;cout****************************************************************endl;cout请输入日期(格式为****/**/**):endl;cindate_s;cout**************************************************************endl;7Datedate(date_s);ifstreamfin(RECORDPATH);for(stringstr;getline(fin,str);){inty,m,d;charch;istringstreamsin(str);siny;sinch;sinm;sinch;sind;if(date.getYear()==y&&date.getMonth()==m&&date.getDay()==d){coutstrendl;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);){coutstrendl;cout**************************************************************endl;}}voidchangeToday(){stringdate;cout请输入日期(格式为****/**/**):endl;cindate;today.set(date);cout*************************设置成功*******************************endl;}8MYDATE.H#ifndefMYDATE_H#defineMYDATE_H#includeiostream#includeiomanip#includestdlib.husingnamespacestd;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
本文标题:C++结课报告(简易日程管理系统)
链接地址:https://www.777doc.com/doc-5278884 .html