面向对象第一次实验参考代码

#include <iostream.h>
#include <stdlib.h>  

//Global variable
int days[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};//days of month
char *Week[7] = {"Sunday","Monday","Tuesday","Wednesday","Thurday","Friday","Saturday"};  //Week  

class Date{//class defination
public:
    void SetDate(int,int,int);// initialization
    int IsLeapyear(int );  //Leap year or not
    int Week_day(int);  //Week_day
    void Show();  //days number
private:
    int year,month,day;
};  

void Date::SetDate(int y,int m,int d)
{
    year = y;
    month = m;
    day = d;
    if(year <= 0 || month <= 0 || day <= 0 || month > 12
		 || day > days[month])  //Date validity check
    {
        cout<<"The Date is invalid!"<<endl;
        exit(0);
    }
}  

int Date::IsLeapyear(int y)
{
    return y % 4 == 0 && y % 100 != 0 || y % 400 == 0;
}  

int Date::Week_day(int flag)
//flag 0:week 1:day_num;
{
    long sum = 0;
    int i;
    if(flag == 0)
        i = 1;
    else
        i = year;
    for(;i < year;i++)
    {
        if(IsLeapyear(i))
            sum += 366;
        else
            sum += 365;
    }
    for(int j = 1;j < month;j++)
        sum += days[j];
    if(month > 2 && IsLeapyear(year))
        sum++;
    sum += day;
    if(flag == 0)
        return sum % 7;
    return sum;
};  

void Date::Show()
{
    cout<<"The Date is:"<<year<<"-"<<month<<"-"<<day<<endl;
    cout<<"It‘s "<<*(Week+Week_day(0))<<endl;
    cout<<"It‘s "<<Week_day(1)<<" days of this year!"<<endl;
}  

void main()
{
    Date D;
    int y,m,d;
    cout<<"Please input the Date:"<<endl;
    cin>>y>>m>>d;
    D.SetDate(y,m,d);
    D.Show();
} 

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-25 11:06:08

面向对象第一次实验参考代码的相关文章

面向对象第四次实验参考代码

#include <iostream.h> #include <stdlib.h> #include <time.h> #define NULL 0 struct SNode{ int data; //data domain SNode *next; //pointer domain }; class Stack{ public: Stack(); ~Stack(); void Push(int e); //insert a data into stack int Po

第一次实验报告

实     验    报     告 课程:信息安全系统设计基础  班级:1353 姓名:黎静  学号:20135338 成绩:             指导教师:娄嘉鹏    实验日期:2015.9.20 实验密级:         预习程度:         实验时间:10:00--22:00 仪器组次:29         必修/选修: 选修            实验序号:1~12 第一次实验部分截图 一.Linux 简介 实验介绍 本节主要介绍 Linux 的历史,Linux 与 Wi

20145326《Java程序设计》实验二Java面向对象程序设计实验报告

20145326<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步骤 一.单元测试 1. 三种代码·伪代码·产品代码·测试代码Example:需求:我们要在一个MyUtil类中解决一个百分制成绩转成“优.良.中.及格.不及格”五级制成绩的功能. 伪代码: 百分制转五分制: 如果成绩小于60,转成“不及格” 如果成绩在60与70之间,转成“

Java第一次实验要求

Java语言程序设计第一次实验要求 实验一 简单Java程序设计 一.实验目的 1. 熟悉Java开发及运行环境: 2. 掌握Java程序开发的基本步骤: 3. 了解Java程序开发中的常见错误及其解决办法. 二.实验要求 1. 使用记事本编写所给的Java程序: 2. 使用JDK中提供的javac编译程序: 3. 根据编译与运行过程中所获得的错误信息修改程序直至获得正确的结果: 4. 采用Java语言编写一个简单的应用程序. 三.实验步骤 1. Java开发环境的配置 (1)在命令行下运行ja

【图像处理】第一次实验

1.任务说明 打开一幅图像,进行直方图均衡.将灰度线性变化,将灰度拉伸. 2.算法原理 1)        图像灰度化 在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫做灰度值,灰度范围为0-255.一般有四种方法对彩色进行灰度化,分别为: 分量法,最大值法,平均值法和加权平均法.本实验中采用平均值法,即 2)        直方图均衡 直方图表示数字图像中每一个灰度级与其出现频率间的统计关系.设有某一个灰度等级,属于该灰度等级的像素个数为nk,图像总像素个数为n,

js页面跳转参考代码大全

整理一下JS页面跳转参考代码 第一种:     <script language=/"javascript/" type=/"text/javascript/"> window.location.href=/"login.jsp?backurl=/"+window.location.href; </script> 第二种:     <script language=/"javascript/"&g

《信息安全系统设计基础》第一次实验报告--Linux 基础入门

<信息安全系统设计基础>第一次实验报告--Linux 基础入门 北京电子科技学院(BESTI) 实     验    报     告 课程:信息安全设计基础 班级:1352  姓名:孙小博  学号:20135217 成绩:            指导教师:娄嘉鹏      实验日期:2015.9.20 实验密级: 无     预习程度:           实验时间:12小时 仪器组次:17     必修/选修:必修   实验序号:01 实验目的与要求: 1. 学会安装使用Linux操作系统

大公司移动前端开发面试题——做转盘[参考代码]

题目在此 http://www.cnblogs.com/arfeizhang/p/turntable.html 这几天一直在忙,终于找到时间把参考代码放出来了.大家参考一下. 参考代码考虑到让入行不久的前端也看得懂,没有进行封装.变量名也没有进行简写,尽量一看就明白. 图片随手在网上截的,也许没有对准圆心.这段代码只考虑了webkit内核的浏览器,没做兼容.重在让大家弄懂原理. :P 如果感到有些卡帧,可能是转盘图片带来的效果.在调试器上试过,能维持50-60帧,流畅度还是让人满意的.在LG G

agsXMPP参考代码

agsXMPP 1.删除好友 XmppCon.RosterManager.RemoveRosterItem(node.RosterItem.Jid); 2.注销用户 void userConn_OnLogin(object sender) { FireShowMsg(string.Format("{0} Login", userConn.MyJID.User)); RegisterIq rIq = new RegisterIq(); rIq.Type = IqType.set; rIq