今天比较无聊,就随便找了个程序设计来做,下面是源代码,以及效果图...不喜请喷!
/*题目1:年历显示。
功能要求:
(1) 输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。
(2) 输入年月,输出该月的日历。
(3) 输入年月日,输出距今天还有多少天,星期几,是否是公历节日。
*/
 //日历
// Coder @Gxjun 2014/3/30/10:35
#include<iostream>
#include<ctime>
#include<string>
#include<iomanip>
using namespace std;
namespace isprimer
{
int ren[]={,,,,,,,,,,,,} ; //是闰年
int pin[]={,,,,,,,,,,,,} ;
}
namespace mon
{
int ren_month[]={,,,,,,,,,,,,};
int pin_month[]={,,,,,,,,,,,,};
}
bool isprim(int year)
{
if(year%==||(year%==&&year%!=))
return true;
return false;
}
void print(int month,int weekly,int tol_day)
{ int k=;
cout.width();
cout<<month<<" SUN MON TUE WED THU FRI SAT"<<endl;
cout<<" ";
int kongge=weekly%;
while(kongge)
{
cout<<" ";
kongge--;
}
for(k=;k<=tol_day ;k++)
{
cout<<setw()<<setiosflags(ios::right)<<k<<" ";
if(weekly%==)
cout<<endl<<" ";
weekly++;
}
cout<<endl;
}
class Calender
{
public :
Calender(){};
Calender(int y):year(y){};
Calender(int y,int m): year(y),month(m){};
Calender(int y,int m,int d): year(y),month(m),day(d){};
~Calender(){};
void show1();
void show2();
void show3();
private:
int year;
int month;
int day;
};
void Calender::show1()
{
time_t current;
struct tm *t;
time(&current); //得到目前的时间
t=localtime(&current);
t->tm_year+=;
t->tm_mon+=;
cout<<"今天的时间为:"<<t->tm_year<<" 年 ";
cout<<t->tm_mon<<" 月 "<<t->tm_mday<<" 日"<<endl;
cout<<"您要查询的时间为: "<<year<<" 年 "<<month<<" 月 "<<day<<"日"<<endl;
//判断是否闰年
using namespace isprimer ;
int en,start;
if(isprim(t->tm_year)) //这一天为闰年
start=ren[t->tm_mon-]+t->tm_mday ;
else
start=pin[t->tm_mon-]+t->tm_mday ;
if(isprim(year))
en=ren[month-]+day;
else
en=pin[month-]+day;
int year_cha=year - t->tm_year;
int ans=(year_cha/)*+(year_cha - year_cha/)*+en-start;
cout<<"相隔:"<<ans<<" 天"<<endl;
cout<<"那一天是:"<<t->tm_wday+ans%<<endl;
};
void Calender::show2()
{
time_t current;
struct tm *t;
time(&current); //得到目前的时间
t=localtime(&current);
int en,start,sday=;
using namespace isprimer ;
t->tm_year+=;
t->tm_mon++;
if(isprim(t->tm_year)) //这一天为闰年
start=ren[t->tm_mon-]+t->tm_mday ;
else
start=pin[t->tm_mon-]+t->tm_mday ;
using namespace mon ;
if(isprim(year))
en=ren[month-]+sday;
else
en=pin[month-]+sday;
int year_cha=year - t->tm_year;
int ans=(year_cha/)*+(year_cha - year_cha/)*+en-start;
//得到本月初一是星期几
int weekly=t->tm_wday+ans%;
if(weekly<)weekly+=;
if(isprim(year))
print(month,weekly,ren_month[month]);
else
print(month,weekly,pin_month[month]);
};
void Calender::show3()
{
int start,ans;
using namespace mon;
time_t k;
time(&k);
struct tm *t;
t=localtime(&k);
//推出其为星期几即可
int sday,mon;
sday=mon=;
t->tm_year+=;
t->tm_mon++;
using namespace isprimer;
if(isprim(t->tm_year))
start=ren[t->tm_mon-]+t->tm_mday;
else
start=pin[t->tm_mon-]+t->tm_mday;
int year_cha=(year-t->tm_year);
ans=(year_cha/)*+(year_cha - year_cha/)*+-start;
int weekly=t->tm_wday+ans%;
if(weekly<)weekly+=;
if(isprim(year))
{
for(int i=;i<= ;i++ )
print(i,(weekly+ren[i-])%,ren_month[i]);
}
else
for(int i=;i<= ;i++ )
print(i,(weekly+pin[i-])%,pin_month[i]); };
int main()
{
int tem,aa,bb,cc;
cout<<"你想要查找什么?";
cout<<"1.某年某月某日距现在的天数以及是星期几?"<<endl;
cout<<"2.某年某月的一个月的日历"<<endl;
cout<<"3.某年的日历"<<endl;
cin>>tem;
switch(tem)
{
case :
{
cout<<"输入年 月 日"<<endl;
cin>>aa>>bb>>cc;
Calender stu(aa,bb,cc);
stu.show1();
} ;break;
case :
{
cout<<"输入年 月"<<endl;
cin>>aa>>bb;
Calender tt(aa,bb);
cout<<"this is "<<aa<<" Calender !"<<endl;
tt.show2();
break;
}
case :
{
cout<<"输入 年"<<endl;
cin>>aa;
Calender stu(aa);
stu.show3();
}
}
return ;
}

效果图:

c++课程设计(日历)的更多相关文章

  1. 单片机课程设计——《基于AT89S52单片机和DS1302时钟芯片的电子时钟(可蓝牙校准)》

    引言 本设计以AT89S52单片机为控制核心,时钟芯片DS1302提供时钟源,配合LCD1602液晶显示模块,组成基本硬件系统,同时利用HC-05嵌入式蓝牙串口通讯模块,可在手机端进行日期.时间的校准 ...

  2. c++课程设计之菜单选择

    a) 从键盘输入n个数,选择升序还是降序输出 b)创新了日历 c) 添加了射箭游戏 d)还加入了好玩的24点游戏     学生签名:  年  月   日   课程设计(论文)评阅意见 等 级 项    ...

  3. [课程设计]任务进度条&开发日志目录

    任务进度条&开发日志目录 周期 时间 任务 Sprint One   11.14     ●  Scrum团队分工及明确任务1.0    Sprint One   11.15   ●  Scr ...

  4. 课程设计 --- 黑白棋中的 AI

    原文链接:https://www.dreamwings.cn/reversi/3013.html 到了考试周了佯,可是偏偏这个时候迎来了很多很多的课程设计,幸好教授把C语言的课程设计提前发出了,不然都 ...

  5. Java课程设计——扫雷(winmine)

    因为是我的课程设计,要是有冲突就不好了,转载注明出处!!! 程序很简单,毕竟我是搞acm的,我就只介绍一下闪光点. 中心空白搜索的时候,我用的DFS: 有一点是要注意的,就是JFrame不支持重画,还 ...

  6. [课程设计]Scrum 1.6 多鱼点餐系统开发进度

    [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...

  7. [课程设计]Scrum 1.7 多鱼点餐系统开发进度

    [课程设计]Scrum 1.7 多鱼点餐系统开发进度(点餐菜式内容添加及美化) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题 ...

  8. [课程设计]Scrum 1.3 多鱼点餐系统开发进度

    [课程设计]Scrum 1.3 多鱼点餐系统开发进度   Scrum 1.3 多鱼点餐系统开发进度 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追 ...

  9. [课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐

    [课程设计]Scrum团队分工及明确任务1.0 ----多鱼点餐 一.开发背景 多鱼点餐系统是一套比较系统化的针对餐厅点餐服务的产品,从顾客进入餐厅点餐到用餐结束再到最后的结账买单,需要全面的.高效的 ...

  10. [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复)

    [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...

随机推荐

  1. 从原型模式(Prototype Pattern)到 Clone

    前面提到抽象工厂的实现,这里说说抽象工厂的原型实现,与工厂方法的实现不同,原型实现有他自己的优点和缺点 原型的优点: 1. 效率:clone是native方法,比new的效率高,当使用复杂循环嵌套对象 ...

  2. 【POJ】【2068】Art Gallery

    计算几何/半平面交 裸的半平面交,关于半平面交的入门请看神犇博客:http://blog.csdn.net/accry/article/details/6070621 然而代码我是抄的proverbs ...

  3. go语言之进阶篇成员操作

    1.成员操作 示例: package main import "fmt" type Person struct { name string //名字 sex byte //性别, ...

  4. Retrofit 简介 wiki 文档

    简介 Type-safe HTTP client for Android and Java by Square, Inc. GitHub主页:https://github.com/square/ret ...

  5. 创建spring boot项目启动报错遇到的问题

    1.Spring boot,Mybatis 启动报错 Failed to auto-configure a DataSource *************************** APPLICA ...

  6. ASP 未结束的字符串常量

    之前的电脑是XP的,前段时间公司将电脑升级到了Windows7 今天在处理一个asp项目时发现打开就报错了"未结束的字符串常量" 在网络上了解到是因为编码的问题,但我的项目文件都是 ...

  7. COM中的HRESULT

  8. [Javascript] Prototype 1

    You can add prototype to any object in Jacascript likes Object, Array, String... prototype 有继承的作用,比如 ...

  9. Hibernate(十四)缓存

    一.什么是缓存 缓存是介于应用程序和永久必数据存储源之间,目的是为了降低应用程序直接读写永久必数据存储源的频率,从而提高运行性能 缓存通常是在内存中的如: Office中的Word.excel Hib ...

  10. Android Gson解析json详解

    目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),解析速度最快的是Gson,下载地址:https://co ...