目录
引入
本文是通过面向对象对日历进行实现;
主要会有以下几个模块:模型 视图 控制(也算是浅浅的实现了一下MCV😄 )
文件结构:
在这里我们使用的这几个文件分别对应它们要实现的功能
ModelDate(模型) 获取数据并处理返回数据
ViewDate(视图) 将获得的数据进行组织,并最终向用户输出,可以直观的看到web界面
controller(控制器) 控制着我们不同功能的转换
Controller.h 😁
#ifndef CONTROLLER_H
#define CONTROLLER_H
class ViewDate;
class ModelDate;
class Controller
{
private:
//需要将视图与模式连接起来
ViewDate* pview; //视图指针
ModelDate* pmodel;//模式指针 上述两个指针并不产生对象
public:
Controller();
~Controller();
void SetView(ViewDate* pv);//设计视图将外部视图的地址设置给pview
void SetModel(ModelDate *pm);//将模式的地址给pmode
void Run();
void Now();
void NextYear();
void PrevYear();
void NextMonth();
void PrevMonth();
};
#endif
Controller.cpp 😁
#include<stdio.h>
#include"Controller.h"
#include "ViewDate.h"
#include "ModelDate.h"
Controller::Controller() //控制对象 将视图对象和模式对象关联
:pview{
nullptr }, pmodel{
nullptr}
{
}
Controller::~Controller()
{
}
void Controller::SetView(ViewDate* pv)
{
pview = pv;
}
void Controller::SetModel(ModelDate* pm)
{
pmodel = pm;
}
void Controller::Run() //策略形式来运行
{
int select = 0;
do
{
select = pview->Menum();
switch (select)
{
case 0:break;
case 1:
NextMonth();
break;
case 2:
PrevMonth();
break;
case 3:
NextYear();
break;
case 4:
PrevYear();
break;
default:
printf("select error\n");
break;
}
} while (select != 0);
}
void Controller::Now()
{
pmodel->Now();
}
void Controller::NextYear()
{
pmodel->NextYear();
}
void Controller::PrevYear()
{
pmodel->PrevYear();
}
void Controller::NextMonth()
{