【C++】实现todolist

共包含一个.h文件,两个.cpp文件。

1.Todo.h文件存放Todo类的声明

一个Todo对象是todolist的一条待做事项。

#ifndef TODO_H
#define TODO_H
#include<bits/stdc++.h>
using namespace std;

class Todo
{	
	public: 
		Todo();
		Todo(int alarm_time, bool cycle_alarm, int build_time, string content, bool if_done);
		/*--------查看Todolist一项的内容-------*/
		string show_content();
		int show_alarm_time();
		bool show_cycle_alarm();
		int show_build_time();
		bool show_if_done();
		/*--------修改Todolist一项的内容-------*/
		void modify_content(string content);
		void modify_alarm_time(int alarm_time);
		void modify_cycle_alarm(bool cycle_alarm);
		//void modify_build_time(int build_time);
		void modify_if_done(bool if_done);
		/*--------不需要删除单个项的方法---------*/ 

	private:
		
	//提醒时间 (选填 
	int alarm_time; //随意设的类型  
	
	//是否周期性提醒(需要有创建时间)
	bool cycle_alarm;
	int build_time; //随意设置的类型 
	
	//内容 (必填 
	string content;
	
	//是否完成
	bool if_done;
};

#endif

2.Todo.cpp文件是类方法的实现。

具体就是对TodoList的某一项进行增删改查。

#include "Todo.h"

Todo::Todo(){
	
}
Todo::Todo(int alarm_time, bool cycle_alarm, int build_time, string content, bool if_done)
{
	this->alarm_time=alarm_time;
	this->cycle_alarm = cycle_alarm;
	this->build_time=build_time;
	this->content=content;
	this->if_done=if_done;	
}

/*--------查看Todolist一项的内容-------*/
string Todo::show_content(){
	return this->content;
}

int Todo::show_alarm_time(){
	return this->alarm_time;
}

bool Todo::show_cycle_alarm(){
	return this->cycle_alarm;
}

int Todo::show_build_time(){
	return this->build_time;
}

bool Todo::show_if_done(){
	return this->if_done;
}
/*--------修改Todolist一项的内容-------*/
void Todo::modify_content(string content){
	this->content=content;
}

void Todo::modify_alarm_time(int alarm_time){
	this->alarm_time=alarm_time;
}

void Todo::modify_cycle_alarm(bool cycle_alarm){
	this->cycle_alarm=cycle_alarm;
}

//void Todo::modify_build_time(int build_time){
//	this->build_time=build_time;
//}

void Todo::modify_if_done(bool if_done){
	this->if_done=if_done;
}
/*--------不需要删除单个项的方法---------*/ 

3.main.cpp。

用对象数组的形式建立TodoList。实现按条件批量增删改查。

#include<bits/stdc++.h>
#include<iostream>
#include"Todo.h"
using namespace std;

#define NOW 1 
int  todo_num=0;  //设为全局变量 

void print_todolist(Todo (&todolist)[100]);
void query(Todo (&todolist)[100]);
void modify(Todo (&todolist)[100]);
void delete_all(Todo (&todolist)[100]);
void delete_item(Todo (&todolist)[100]);
void new_item(Todo (&todolist)[100]);

int main(){
	/*------测试Todolist类的各个方法---------*/
	Todo todolist[100];  //大小为100的数组
	todo_num=3; 	//这里记录todolist里面的项目的个数 
	
	/*----创建几个todo进去----*/
	Todo todo0 = Todo(2,false,NOW,"go to shopping",false);  
	Todo todo1 = Todo(3,true,NOW,"submmit homework",false);
	Todo todo2 = Todo(4,false,NOW,"have dinner",false);
	todolist[0]=todo0;
	todolist[1]=todo1;
	todolist[2]=todo2;
	
	/*--------测试--------*/
	while(true){
		int choice;
		co
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的todolist示例,使用Vuex实现状态管理: 1. 安装vuex ``` npm install vuex --save ``` 2. 创建store.js文件,并在其中定义state、mutations、actions和getters ```javascript import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const state = { todoList: [] } const mutations = { addTodo (state, todo) { state.todoList.push(todo) }, deleteTodo (state, todo) { const index = state.todoList.indexOf(todo) state.todoList.splice(index, 1) }, updateTodo (state, { todo, text }) { todo.text = text }, completeTodo (state, todo) { todo.completed = !todo.completed }, clearCompletedTodos (state) { state.todoList = state.todoList.filter(todo => !todo.completed) } } const actions = { addTodo ({ commit }, text) { commit('addTodo', { text: text, completed: false }) }, deleteTodo ({ commit }, todo) { commit('deleteTodo', todo) }, updateTodo ({ commit }, { todo, text }) { commit('updateTodo', { todo, text }) }, completeTodo ({ commit }, todo) { commit('completeTodo', todo) }, clearCompletedTodos ({ commit }) { commit('clearCompletedTodos') } } const getters = { completedTodos: state => state.todoList.filter(todo => todo.completed), activeTodos: state => state.todoList.filter(todo => !todo.completed) } export default new Vuex.Store({ state, mutations, actions, getters }) ``` 3. 在main.js中引入store.js,并将其注入到Vue实例中 ```javascript import Vue from 'vue' import App from './App.vue' import store from './store.js' new Vue({ el: '#app', store, render: h => h(App) }) ``` 4. 在组件中使用store ```javascript <template> <div> <input v-model="newTodoText" @keyup.enter="addNewTodo"> <ul> <li v-for="todo in todos" :key="todo.id"> <input type="checkbox" v-model="todo.completed" @change="completeTodo(todo)"> <input type="text" v-model="todo.text" @blur="updateTodoText(todo)" :disabled="todo.completed"> <button @click="deleteTodo(todo)">Delete</button> </li> </ul> <button @click="clearCompletedTodos">Clear Completed</button> </div> </template> <script> export default { computed: { todos () { return this.$store.state.todoList } }, methods: { addNewTodo () { if (!this.newTodoText) return this.$store.dispatch('addTodo', this.newTodoText) this.newTodoText = '' }, deleteTodo (todo) { this.$store.dispatch('deleteTodo', todo) }, updateTodoText (todo) { this.$store.dispatch('updateTodo', { todo, text: todo.text }) }, completeTodo (todo) { this.$store.dispatch('completeTodo', todo) }, clearCompletedTodos () { this.$store.dispatch('clearCompletedTodos') } }, data () { return { newTodoText: '' } } } </script> ``` 以上就是一个简单的使用Vuex实现todolist的示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值