课程设计

原创 2015年07月10日 11:47:40

#include<iostream>
#include<string>
#include<iomanip>
#include <stdlib.h>
#include<time.h>
#include<windows.h>
using namespace std;


class Calendar
{
private:
 int y;
 int m;
 int d;
 static int mon_days_R[12];//定义闰年时每个月的天数
 static int mon_days_NR[12];//定义非闰年时每个月的天数
 static int week_days[7];//定义星期,从星期六开始
public:
 Calendar();//构造函数初始化y,m,d
 void showtime();//显示日期
 int define_year_days(int year);//确定年份天数
 int define_mon_days(int mon);//确定月份天数
 int define_week_days();//确定月份首日星期数
 void print_Calendar();//显示当月日历
 void search_the_month();//查询月份
 void the_last_month();//上一个月
 void the_next_month();//下一个月
};
Calendar::Calendar()//构造函数初始化y,m,d
{
 time_t timer;
 time(&timer);
 tm* t_tm = localtime(&timer);
    y=t_tm->tm_year+1900;
 m=t_tm->tm_mon+1;
 d=t_tm->tm_mday;
}
void Calendar::showtime()//显示日期
{
 cout<<'\n'<<"  "<<y<<"年"<<m<<"月"<<d<<"日"<<'\n';
 cout<<"  -----------------------------------------"<<endl;
}

int Calendar::define_year_days(int year)//确定年份天数
{
 int year_days;
 if(((year%400==0) || (year%4==0 && year%100!=0)))
  year_days=366;
 else
  year_days=365;
 return year_days;
}
int Calendar::define_mon_days(int mon)//确定月份天数
{
 int mon_days;
 if(((y%400==0) || (y%4==0 && y%100!=0)))
  mon_days=mon_days_R[mon-1];
 else
  mon_days=mon_days_NR[mon-1];
 return mon_days;
}
int Calendar::define_week_days()//确定月份首日星期数
{
 long temp=0,temp1=0,temp2=0;
 long i,j,remainder;
 int week_d;
 if(y>=2000)
 {
  for(i=2000;i<y;i++)
  {
   int year_days=define_year_days(i);
   temp1+=year_days;
  };
 }
 if(m>=1&&m<13)
 {
  for(j=1;j<m;j++)
  {
   int mon_days=define_mon_days(j);
   temp2+=mon_days;
  };
 }
 temp=temp1+temp2;//总天数
 remainder=temp%7;
 week_d=week_days[remainder];
 return week_d;
}
void Calendar::print_Calendar()//显示当月日历
{
 while(1)
 {
  system("cls");
  showtime();
  int w_day,m_day;
  int t=1,p,q;
     w_day=define_week_days();
     m_day=define_mon_days(m);
     int chat[6][7];
     cout<<endl;
     cout<<"  日    一    二    三    四    五    六"<<endl;
     cout<<"  -----------------------------------------"<<endl;
     for(p=0;p<1;p++)
  {
      for(q=w_day;q<7;q++)
       chat[p][q]=t++;
  }
     for(p=1;p<6;p++)
  {
      for(q=0;q<7;q++)
   {
       chat[p][q]=t++;
       if(t>m_day)
        break;
   }
  }
  cout<<"  ";
  for(p=0;p<1;p++)
  {
   for(q=0;q<w_day;q++)
    cout<<"      ";
   for(q=w_day;q<7;q++)
    cout<<setfill('0')<<setw(2)<<chat[p][q]<<"    ";
  }
  cout<<endl;
  for(p=1;p<6;p++)
  {
   cout<<"  ";
   for(q=0;q<7;q++)
   {
    cout<<setfill('0')<<setw(2)<<chat[p][q]<<"    ";
          if(chat[p][q]==m_day)
     break;
   }
   cout<<endl;
   if(chat[p][q]==m_day)
    break;
  }
  cout<<endl<<endl;
  cout<<"  -----------------------------------------"<<endl;
  cout<<"  功能选项:"<<endl;
  cout<<"  -----------------------------------------"<<endl;
  cout<<"  1.查询日历"<<endl;
  cout<<"  2.上一个月"<<endl;
  cout<<"  3.下一个月"<<endl;
  cout<<"  0.返回主菜单"<<endl<<endl;
  cout<<"  请选择:";
  int choose;
  cin>>choose;
  if(choose==0) break;
  switch(choose)
  {
     case 1:
   search_the_month();//查询月份
   system("pause");
   break;
  case 2:
   the_last_month();//上一个月
   system("pause");
   break;
  case 3:
      the_next_month();//下一个月
   system("pause");
   break;
  default:
   cout<<"  选择有误!!"<<endl;
  }
 }
}
void Calendar::search_the_month()//查询月份
{
 char sel;
 do
 {
  system("cls");
  cout<<endl;
  cout<<"  请输入所查询时间:";
      cin>>y>>m>>d;
     if(y>=2000 && m>=1 && m<13 && d>=1 && d<=define_mon_days(m))
  {
   system("cls");
   showtime();
      print_Calendar();
  }
     else
  {
   cout<<"  输入有误,是否要继续查询(Y/N):";
      cin>>sel;
  }
 }while(sel=='Y' || sel=='y' );
}
void Calendar::the_last_month()//上一个月
{
 system("cls");
 if(m==1)
 {
  if(y==2000)
   cout<<"  时间已至最前"<<endl;
  else
  {
   m=12;
   --y;

  }
 }
 else
  --m;
 d=1;
 showtime();
 print_Calendar();

}
void Calendar::the_next_month()//下一个月
{
 system("cls");
 if(m==12)
 {
  m=1;
  ++y;
 }
 else
  ++m;
  d=1;
 showtime();
 print_Calendar();
}

 


int Calendar::mon_days_R[12]={31,29,31,30,31,30,31,31,30,31,30,31};//定义闰年时每个月的天数
int Calendar::mon_days_NR[12]={31,28,31,30,31,30,31,31,30,31,30,31};//定义非闰年时每个月的天数
int Calendar::week_days[7]={6,0,1,2,3,4,5};//定义星期,从星期六开始

 

int main()
{
    int select;
   
 while(1)
 {
  system("cls");
  cout<<endl;
  cout<<"  -----------------------------------------"<<endl;
  cout<<"                 日历记事本                "<<endl;
  cout<<"  -----------------------------------------"<<endl;
  cout<<"             1--使用万年历                 "<<endl;
  cout<<"             2--新建记事本                 "<<endl;
  cout<<"             3--查看记事本                 "<<endl;
  cout<<"             0--退出                       "<<endl;
  cout<<endl;
  cout<<"  请选择:";
  cin>>select;
  if(select==0) break;
  switch(select)
  {
  case 1:
   {
    Calendar chat1;
       chat1.print_Calendar();
       system("pause");
       break;
   }
  default:
   cout<<"  选择有误,请重新选择"<<endl;
  }

 }

 return 0;
}

Java课程设计完整版

补充之前的java课程设计,不仅仅只有方法,更加人性化的在控制台给予提示输入,加入了键盘输入的代码 下面是源码,很长的前两个类仅仅是判断是多了equals()方法,不知道为什么,加入了键盘输入方法就...
  • qq_26626113
  • qq_26626113
  • 2015年07月05日 22:32
  • 712

C++课程设计报告

ATM柜员机模拟程序设计实验报告 1.     需求分析 随着市场经济的发展,人们的物质生活得到了极大的提高,手中的剩余资金也日益增多。受传统观念的影响,绝大多数的人把资金放进了银行,而在要使用现...
  • u013926920
  • u013926920
  • 2014年06月21日 21:15
  • 1677

asp.net课程设计心得(一)

前言: 每学期一度的课程设计又到了!谈到课程设计,真是几家欢喜几家愁啊。有想法的,基础好的同学,四五天就完事了;而那些学完了这门课还没弄明白的学的是什么的同学,就头痛了。上网下载、图书馆借指导书...
  • BOBO12082119
  • BOBO12082119
  • 2010年12月14日 21:36
  • 3115

C++课程设计总结

最近为了课设过了一段野人般的生活…我也是初步学习MFC,所以很多东西都不甚了解,很多技巧和用法都是综合各家之言而成…有什么不确切的地方,希望大家指正……   首先介绍一下我的程序,没有想到新颖的...
  • ggemini
  • ggemini
  • 2013年04月05日 18:34
  • 852

课程设计 开源项目

本人GitHub地址: msandroid 课程设计汇总 以下是个人本科期间做过的可以开源的一些课程设计题目;感兴趣的可以Follow一下,供大家参考交流payrollsystem C++...
  • qwm8777411
  • qwm8777411
  • 2015年11月25日 21:27
  • 1582

数据结构各种内部排序课程设计

  /*dataList.h*/       #include       #include       const   int   DefaultSize=100;       templatecl...
  • woshinigeno1
  • woshinigeno1
  • 2010年05月19日 18:02
  • 566

java课程设计(计算器)

JAVA课程 设 计 报 告              1206401-18   瞿杰 一、设计时间    2013年6月 24日-----6月28日 二、设计地点    湖南城市学院实验...
  • u010372095
  • u010372095
  • 2013年06月27日 13:44
  • 3478

课程设计——通讯录管理系统

整理了一下文件,找到了去年做课程设计的报告,保存一下代码,有一个说法:过了6个月再去看自己写的代码,如果觉得写的不好,就说明有了一点进步;这样说明应该还是有那么一点点进步~ #include #i...
  • u014253173
  • u014253173
  • 2014年06月08日 10:05
  • 2651

王爽 汇编 课程设计1

assume cs:code;年份year segmentdb '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1...
  • u010452022
  • u010452022
  • 2015年10月28日 15:25
  • 540

Android课程设计,生活记事本

目录 0  绪论..............................................................................................
  • shawshank_bingo
  • shawshank_bingo
  • 2016年07月02日 15:13
  • 4375
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:课程设计
举报原因:
原因补充:

(最多只允许输入30个字)