C++ 面向对象的日历(万年历)

引入

本文是通过面向对象对日历进行实现;
主要会有以下几个模块:模型 视图 控制(也算是浅浅的实现了一下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()
	{
   
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mi ronin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值