《C++程序设计》课设
课设任务
(1) 从头开始, 编写一个完整的控制台模式下的可执行程序,实现题目要求的功能。
(2) 撰写设计报告。
课设要求
(1) 编程实现每个题目所要求之功能; 并鼓励扩展功能;
(2) 应使用数组、 结构体组织运行时数据, 使用动态内存分配、链表等数据结构存储
运行时数量变化之数据;
(3) 应使用磁盘文件存储程序所用之长久数据,部分题目会提供一些程序运行必须的
数据文件;
(4) 运用结构化思想,多用函数来实现相关功能。 运用面向对象编程思想, 使用类的
封装特性将程序数据及操作其之函数由类来实现。可使用类的继承特性定义多级类;
(5)少用全局变量或全局数组,以函数参数和返回值的形式进行数据传递;
(6) 使用控制台窗口进行交互,提示内容及输出内容整齐美观, 容错性强,界面提示
清楚,交互性好; 各类标识符命名规范及具有描述性,添加尽量多的注释内容。
(7) 程序的执行流程、 选项、提示、输出内容应清晰、明白、合理。
(8) 要原创, 使用已学过的 C++知识即可,不需要到网上查找乱七八糟你自己也搞不
清楚的代码。
显示月历
( 1)可显示一个或多个月的公历月历,显示形式可自定义
( 2)正确显示星期, 正确处理大小月、闰年等问题
( 3) 有回到当前月、 前一月、下一月等功能。 排列美观、间距恰当。
( 4)有记事、 节日、 提醒等功能。 可实现中国农历和农历节目之功能。
作品展示
实现代码
#pragma warning(disable:4996)
#include <iostream>
#include <string>
#include <ctime>
#include <list>
#include <sstream>
#include <math.h>
#include<time.h>
using namespace std;
int yearNum = 0, monthNum = 0, tempYearNum= yearNum, tempMonthNum= monthNum; //声明全局变量 年 月
typedef struct Note { //事件结构体
int y; //年
int m; //月
int d; //日
string title; //标题
string content; //内容
} note;
typedef std::list<Note> listRemind; // 代办列表
listRemind reminds; //实例
int main() { // 主程序
void printMenu(); //声明函数
// 基于当前系统的当前日期/时间
time_t timer;
time(&timer);
tm* t_tm = localtime(&timer);
yearNum= t_tm->tm_year+ 1900;
monthNum= t_tm->tm_mon+1;
tempYearNum = yearNum;
tempMonthNum = monthNum;
printMenu();
}
/***
工具类
*/
class Util {
public:
/**
根据年份计算全年天数
根据年份判断是否闰年
是 366
否 365
*/
static int ctorDayByYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) // 判断是否是闰年
return 366; // 闰年 366天
else
return 365; // 平年 365天
}
/**
计算一个月的天数
*/
static int ctorDayByMonth(int year, int month)