日历记事本
要求:带有日程提醒功能的日历。
显示信息:用户可以向前查询前一个月的日期,也可以向后查询下一个月的日期。
定时提醒:用户可以针对某一天来添加,删除和编辑这一天的日程提醒信息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。
查询信息:用户可以查询到某个月的所有的提示信息
#include <iostream>
#include <string>
#include <iomanip>//格式输出如左对齐右对齐等
#include <fstream>
#include <ctime>
#include <cassert>//cassert里面主要是定义了assert宏
#include <conio.h>//包含getch()函数的头文件,conio.h是基本输入输出库,主要是文件和标准控制台的输入输出。里面有一个很常用的清屏函数clrsr()可以清屏!
using namespace std;
class Notes
{
public:
Notes();//默认构造函数
void new_notes();//新建记事
void alter_notes();//修改记事
void delet_notes();//删除记事
void scan_notes();//浏览记事
char choose_time();//选择记事的时间
char choose_thing();//选择事件的种类
private:
string signs;//标题
string data;//日期
string description;//事件描述
};
//日期类
class whatdata
{
public:
whatdata();//默认构造函数
int IsLeapYear(int Year); //判断是否是闰年
long YearDays(int Year); //计算某一年到1900年一月一日的相距天数
long TotalDays(int Year, int Month, int Day);//计算某年某月某日到1900年一月一日的相距天数
int GetLunar(int Y1, int M1, int D1, int &Y2, int &M2, int &D2); //这要是将公历转化为阴历
void select_day();//万年历之日历查询
void select_month();//万年历之月历查询
private:
string week;
string month;
string day;
string year;
};
class calendar_notebook:public Notes,public whatdata
{
public:
char first_page();//首页
void notes_manage();//记事本管理
void search_data();//日历查询
};
#define BEGINYEAR 1900
#define YEARCOUNT 150
struct LUNARINDEX //农历大小月数据索引结构,数据时间自1900年至2050年
{
long Days; // 天数,表示该农历年1月1日距公历元年元月1日的天数
short Mon13; // 该数据的0至12位分别标明农历1至13月的大小,含闰月
short Leap; // 该年的农历闰月值,15表示无闰月。
}LunarIndex[]={
{693626, 0X16D2, 8}, {694010, 0X0752, 15}, {694364, 0X0EA5, 15}, //1900
{694719, 0X164A, 5}, {695102, 0X064B, 15}, {695456, 0X0A9B, 15},
{695811, 0X1556, 4}, {696195, 0X056A, 15}, {696549, 0X0B59, 15},
{696904, 0X1752, 2}, {697288, 0X0752, 15}, {697642, 0X1B25, 6},
{698026, 0X0B25, 15}, {698380, 0X0A4B, 15}, {698734, 0X14AB, 5}, // 1914
{699118, 0X02AD, 15}, {699472, 0X056B, 15}, {699827, 0X0B69, 2},
{700211, 0X0DA9, 15}, {700566, 0X1D92, 7}, {700950, 0X0E92, 15},
{701304, 0X0D25, 15}, {701658, 0X1A4D, 5}, {702042, 0X0A56, 15},
{702396, 0X02B6, 15}, {702750, 0X15B5, 4}, {703135, 0X06D4, 15},
{703489, 0X0EA9, 15}, {703844, 0X1E92, 2}, {704228, 0X0E92, 15}, //1929
{704582, 0X0D26, 6}, {704965, 0X052B, 15}, {705319, 0X0A57, 15},
{705674, 0X12B6, 5}, {706058, 0X0B5A, 15}, {706413, 0X06D4, 15},
{706767, 0X0EC9, 3}, {707151, 0X0749, 15}, {707505, 0X1693, 7},
{707889, 0X0A93, 15}, {708243, 0X052B, 15}, {708597, 0X0A5B, 6},
{708981, 0X0AAD, 15}, {709336, 0X056A, 15}, {709690, 0X1B55, 4}, //1944
{710075, 0X0BA4, 15}, {710429, 0X0B49, 15}, {710783, 0X1A93, 2},
{711167, 0X0A95, 15}, {711521, 0X152D, 7}, {711905, 0X0536, 15},
{712259, 0X0AAD, 15}, {712614, 0X15AA, 5}, {712998, 0X05B2, 15},
{713352, 0X0DA5, 15}, {713707, 0X1D4A, 3}, {714091, 0X0D4A, 15},
{714445, 0X0A95, 8}, {714828, 0X0A97, 15}, {715183, 0X0556, 15}, //1959
{715537, 0X0AB5, 6}, {715921, 0X0AD5, 15}, {716276, 0X06D2, 15},
{716630, 0X0EA5, 4}, {717014, 0X0EA5, 15}, {717369, 0X064A, 15},
{717722, 0X0C97, 3}, {718106, 0X0A9B, 15}, {718461, 0X155A, 7},
{718845, 0X056A, 15}, {719199, 0X0B69, 15}, {719554, 0X1752, 5},
{719938, 0X0B52, 15}, {720292, 0X0B25, 15}, {720646, 0X164B, 4}, //1974
{721030, 0X0A4B, 15}, {721384, 0X14AB, 8}, {721768, 0X02AD, 15},
{722122, 0X056D, 15}, {722477, 0X0B69, 6}, {722861, 0X0DA9, 15},
{723216, 0X0D92, 15}, {723570, 0X1D25, 4}, {723954, 0X0D25, 15},
{724308, 0X1A4D, 10}, {724692, 0X0A56, 15}, {725046, 0X02B6, 15},
{725400, 0X05B5, 6}, {725784, 0X06D5, 15}, {726139, 0X0EA9, 15}, //1989
{726494, 0X1E92, 5}, {726878, 0X0E92, 15}, {727232, 0X0D26, 15},
{727586, 0X0A56, 3}, {727969, 0X0A57, 15}, {728324, 0X14D6, 8},
{728708, 0X035A, 15}, {729062, 0X06D5, 15}, {729417, 0X16C9, 5},
{729801, 0X0749, 15}, {730155, 0X0693, 15}, {730509, 0X152B, 4},
{730893, 0X052B, 15}, {731247, 0X0A5B, 15}, {731602, 0X155A, 2}, //2004
{731986, 0X056A, 15}, {732340, 0X1B55, 7}, {732725, 0X0BA4, 15}, //2007
{733079, 0X0B49, 15}, /*2009*/ {733433, 0X1A93, 5},/*2009*/{733817, 0X0A95, 15}, //2010
{734171, 0X052D, 15}, {734525, 0X0AAD, 4}, {734909, 0X0AB5, 15},
{735264, 0X15AA, 9}, {735648, 0X05D2, 15}, {736002, 0X0DA5, 15},
{736357, 0X1D4A, 6}, {736741, 0X0D4A, 15}, {737095, 0X0C95, 15}, //2019
{737449, 0X152E, 4}, {737833, 0X0556, 15}, {738187, 0X0AB5, 15},
{738542, 0X15B2, 2}, {738926, 0X06D2, 15}, {739280, 0X0EA5, 6},
{739664, 0X0725, 15}, {740018, 0X064B, 15}, {740372, 0X0C97, 5},
{740756, 0X0CAB, 15}, {741111, 0X055A, 15}, {741465, 0X0AD6, 3},
{741849, 0X0B69, 15}, {742204, 0X1752, 11}, {742588, 0X0B52, 15}, //2034
{742942, 0X0B25, 15}, {743296, 0X1A4B, 6}, {743680, 0X0A4B, 15},
{744034, 0X04AB, 15}, {744388, 0X055B, 5}, {744772, 0X05AD, 15},
{745127, 0X0B6A, 15}, {745482, 0X1B52, 2}, {745866, 0X0D92, 15},
{746220, 0X1D25, 7}, {746604, 0X0D25, 15}, {746958, 0X0A55, 15},
{747312, 0X14AD, 5}, {747696, 0X04B6, 15}, {748050, 0X05B5, 15}, //2049
{748405, 0X1DAA, 3}}; //2050
int month1[12]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
string week1[7]={"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"};
//string weeks[7] = {"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"};
//默认构造函数
Notes::Notes()
{
description = "xxx";//事件描述
signs = "xxx";//标题
data = "xxx";//日期
}
//默认构造函数
whatdata::whatdata()
{
week = "xxx";
month = "xxx";
day &#