万年历系统c++实现.docx
- 文档编号:3470540
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:26
- 大小:20.25KB
万年历系统c++实现.docx
《万年历系统c++实现.docx》由会员分享,可在线阅读,更多相关《万年历系统c++实现.docx(26页珍藏版)》请在冰豆网上搜索。
万年历系统c++实现
C++实现简单万年历的编程代码(本人是在vs2010运行)供参考
/************************************************************************************************************************
*Name:
Date.h
*Author:
彭天越
*Description:
date类的设计,日期的相关信息,如备忘录等
*Date:
2012-06-18--2012-06-20
*Copyright:
HNSUniversity
*************************************************************************************************************************/
#pragmaonce
#include"P_Calendar.h"
#include"Time.h"
#include
#include
classDate:
publicP_Calendar
{
private:
Timestarttime;
Timeendtime;
stringtheme;
stringplace;
public:
Date(inty,intm,intd,Timetstart,Timetover,stringth,stringpl);
stringgettheme()const;
stringgetplace()const;
Timegetstarttime()const;
Timegetendtime()const;
voiddisplay()const;
~Date(void);
};
/************************************************************************************************************************
*Name:
Date.cpp
*Author:
彭天越
*Description:
Date类的设计,日期的相关信息,如备忘录等
*Date:
2012-06-17
*Copyright:
HNSUniversity
*************************************************************************************************************************/
#include"Date.h"
Date:
:
Date(inty,intm,intd,Timetstart,Timetover,stringth,stringpl)
:
P_Calendar(y,m,d)
{
starttime=tstart;
endtime=tover;
theme=th;
place=pl;
}
stringDate:
:
gettheme()const
{
returntheme;
}
stringDate:
:
getplace()const
{
returnplace;
}
TimeDate:
:
getstarttime()const
{
returnstarttime;
}
TimeDate:
:
getendtime()const
{
returnendtime;
}
voidDate:
:
display()const
{
cout<<"主题:
"< cout<<"地方: "< } Date: : ~Date(void) { } /************************************************************************************************************************ *Name: P_calendar.h *Author: 彭天越 *Description: calendar类的设计,实现相关的功能 *Date: 2012-06-17--2012-06-18 *Copyright: HNSUniversity *************************************************************************************************************************/ #pragmaonce #include #include #include usingnamespacestd; classP_Calendar { private: intyear; intmonth; intday; public: P_Calendar(void);/******************************************************************************构造函数,实现初始化*/ P_Calendar(inty,intm,intd);/*************************************************************************重载构造函数*/ intgetWeek(inty,intm,intd);/******************************************************************获取特定日期的星期*/ intgetyear()const; intgetmonth()const; intgetday()const; intgetTotalDay(inty,intm,intd);/*************************************************************从0到指定日期的天数*/ voidprintMonth(inty,intm);/********************************************************************显示某年某月的日历*/ voidprintMonth(); voidprintWeek(intw);/*****************************************************************************将数字转换为星期*/ voidprintdate(); ~P_Calendar(void); }; /************************************************************************************************************************ *Name: P_calendar.cpp *Author: 彭天越 *Description: calendar类的设计,实现相关的功能 *Date: 2012-06-17--2012-06-18 *Copyright: HNSUniversity *************************************************************************************************************************/ #include"P_Calendar.h" intinlineIsLeapYear(inty)/**************************************************小程序多次调用定义为内联函数,提高运行效率*/ { if((y%4==0&&y%100! =0)||(y%400==0)) return1; else return0; } P_Calendar: : P_Calendar(void) { year=0; month=0; day=0; } P_Calendar: : P_Calendar(inty,intm,intd) { year=y; month=m; day=d; } intP_Calendar: : getTotalDay(inty,intm,intd) { intTotalday=0; intMonthDays[12]={0,31,28,31,30,31,30,31,31,30,31,30}; for(inti=0;i { if(IsLeapYear(i)) Totalday=Totalday+366; else Totalday=Totalday+365; } for(inti=0;i { Totalday=Totalday+MonthDays[i]; } if(m>2)/***************************************************************************当月份小于2月是比用考虑是否为闰年*/ Totalday=Totalday+IsLeapYear(y); returnTotalday+d; } intP_Calendar: : getWeek(inty,intm,intd) { intweek=getTotalDay(y,m,d)%7; week+=5;/****************************************************************************因为0年1月1日是星期六,所以加5*/ week=week%7; returnweek; } voidP_Calendar: : printMonth(inty,intm) { intMonthdays[12]={31,28,31,30,31,30,31,31,30,31,30,31};/*****************************每月份的天数,先假设不是润年*/ stringLeapyear; if(IsLeapYear(y)) { Leapyear="闰年"; Monthdays[1]=29;/***************************************************************考虑闰年的情况,2月份天数为28*/ } else { Leapyear="非闰年"; } cout<<"\t\t\t"< cout<<"日\t一\t二\t三\t四\t五\t六"< intweek=getWeek(y,m,1); cout< for(inti=1;i<=Monthdays[m-1];i++) { intweek=getWeek(y,m,i); switch(week) { case0: cout< break; case1: cout< break; case2: cout< break; case3: cout< break; case4: cout< break; case5: cout< break; case6: cout< break; default: cout<<"操作错误! "< } } cout< } intP_Calendar: : getyear()const { returnyear; } intP_Calendar: : getmonth()const { returnmonth; }intP_Calendar: : getday()const { returnday; } voidP_Calendar: : printWeek(intw) { switch(w) { case0: cout<<"星期日"< break; case1: cout<<"星期一"< break; case2: cout<<"星期二"< break; case3: cout<<"星期三"< break; case4: cout<<"星期四"< break; case5: cout<<"星期五"< break; case6: cout<<"星期六"< break; default: cout<<"对不起,输入有误! "< } } voidP_Calendar: : printdate() { cout< } P_Calendar: : ~P_Calendar(void) { } /************************************************************************************************************************ *Name: Time.h *Author: 彭天越 *Description: time类的设计,实现时间相关功能 *Date: 2012-06-20 *Copyright: HNSUniversity *************************************************************************************************************************/ #pragmaonce #include #include usingnamespacestd; classTime { private: inthour; intminute; public: Time(void); Time(inth,intm); intgethour()const;/************************************************************************不改变数据的声明为常函数*/ intgetminute()const; voidsetTime(inth,intm); Timeoperator=(constTime&t);/******************************************************************重载=作为成员函数*/ voiddisplaytime(); friendostream&operator<<(ostream&cout,Time&temp);/*******声明为友元函数,重载<<运算符,返回值的选择实现连续输出*/ friendistream&operator>>(istream&cin,Time&temp);/********声明为友元函数,重载>>运算符,返回值的选择实现连续输出*/ ~Time(void); }; /************************************************************************************************************************ *Name: Time.cpp *Author: 彭天越 *Description: time类的设计,实现时间相关功能 *Date: 2012-06-20 *Copyright: HNSUniversity *************************************************************************************************************************/ #include"Time.h" Time: : Time(void)/**********************************************************************************************进行初始化*/ { hour=0; minute=0; } Time: : Time(inth,intm) { hour=h; minute=m; } intTime: : gethour()const { returnhour; } intTime: : getminute()const { returnminute; } voidTime: : setTime(inth,intm) { hour=h; minute=m; } TimeTime: : operator=(constTime&t) { hour=t.gethour(); minute=t.getminute(); return*this; } voidTime: : displaytime() { cout< (2)< "< (2)< } ostream&operator<<(ostream&cout,Time&temp) { cout< returncout; } istream&operator>>(istream&cin,Time&temp) { cin>>temp.hour>>temp.minute; returncin; } Time: : ~Time(void) { } /************************************************************************************************************************ *Name: Perpetual_calendar.cpp *Author: 彭天越 *Description: 万年历主函数,17号实现操作界面,18号实现显示当前日历和跳至指定日期日历,20号完成剩下功能模块 *Date: 2012-06-17--2012-06-20 *Copyright: HNSUniversity *************************************************************************************************************************/ #include #include"time.h"/*******************************************************************************调用本地时间和日期头文件*/ #include #include"Date.h" #include #include usingnamespacestd; voiddoMainmenu(charch); voidaddmemorandum(); voiddeletememorandum(); voiddisplayallmemorandum(); voiddisplaymemorandum(); intinlineIsLeapYear(inty); voidsavedate(); vector intmain() { charchoice; constintmenu=5; charmenus[menu][30]={"1.跳至指定日期","2.添加备忘录","3.删除备忘录","4.查看所有","5.退出万年历"}; ifstreamfin("date.txt");/**************************************************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 万年历 系统 c+ 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)