• C++-课后习题-日期类DATE时间类Time


    #include <stdlib.h>
    #include <stdio.h>
    #include <iostream>
    #include <ctype.h>
    #include <string.h>
    
    using namespace std;
    
    char* itoa(int num,char* str,int radix)
    {/*索引表*/
        char index[]="0123456789ABCDEF";
        unsigned unum;/*中间变量*/
        int i=0,j,k;
        /*确定unum的值*/
        if(radix==10&&num<0)/*十进制负数*/
        {
            unum=(unsigned)-num;
            str[i++]='-';
        }
        else unum=(unsigned)num;/*其他情况*/
        /*转换*/
        do{
            str[i++]=index[unum%(unsigned)radix];
            unum/=radix;
           }while(unum);
        str[i]='';
        /*逆序*/
        if(str[0]=='-')
            k=1;/*十进制负数*/
        else
            k=0;
         
        for(j=k;j<=(i-1)/2;j++)
        {       char temp;
            temp=str[j];
            str[j]=str[i-1+k-j];
            str[i-1+k-j]=temp;
        }
        return str;
    }
    
    class Time
    {
    private:
        int Hour,Minute,Second;
    public:
        Time(int h=0,int m=0,int s=0)
        {Hour=h;Minute=m;Second=s;}
        void SetTime(int,int,int);
        void GetTime(char *);
    };
    
    void Time::SetTime(int h,int m,int s)
    {Hour=h;Minute=m;Second=s;}
    
    void Time::GetTime(char *Time)
    {
        char h[4],m[2],s[2];
        itoa(Hour,h,10);
        itoa(Minute,m,10);
        itoa(Second,s,10);
        Time=h;
        strcat(Time,":");
        strcat(Time,m);
        strcat(Time,":");
        strcat(Time,s);
    }
    class Date
    {
    private:
        int Year,Month,Day;
    public:
        Date(int y=2020,int m=1,int d=1)
        {Year=y;Month=m;Day=d;}
        void SetDate(int,int,int);
        void GetDate(char *);
    };
    
    void Date::SetDate(int y, int m, int d)
    {Year=y;Month=m;Day=d;}
    
    void Date::GetDate(char *Date)
    {
        char y[4],mo[2],d[2];
        itoa(Year,y,10);
        itoa(Month,mo,10);
        itoa(Day,d,10);
        Date=y;
        strcat(Date,"/");
        strcat(Date,mo);
        strcat(Date,"/");
        strcat(Date,d);
        
    }
    class DateTime:public Date,public Time
    {
    public:
        DateTime(int y,int m,int d,int h,int mi,int s):Date(y,m,d),Time(h,mi,s){}
        
        void SetDateTime(int y,int m,int d,int h,int mi,int s)
        {
            SetDate(y,m,d);
            SetTime(h,mi,s);
        }
        void GetDateTime(char *dt)
        {
            char *Time = nullptr,*Date = nullptr;
            GetTime(Time);
            GetDate(Date);
            strcat(Date,"  ");
            strcat(Date,Time);
        }
    };
    
    int main()
    {
        char *dt = nullptr;
        DateTime a(2020,05,01,12,00,00);
        a.GetDateTime(dt);
        printf("%s",dt);
    }

    讨论:(可在此讨论本题中遇到的问题和解决思路)

    1.如何把整型转换为字符串

    解决方法:使用itoa实现

    2.itoa在Xcode无法使用

    3.datatime的构造函数仅传递参数?

    4.报错:Thread 1: EXC_BAD_ACCESS (code=EXC_I386_GPFLT)

     

     

  • 相关阅读:
    2015-3-27
    2015-3-26
    2015-3-25
    2015-3-24
    oracle数据字典表 系统表
    PowerDesigner教程系列(六)概念数据模型
    PowerDesigner教程系列(五)概念数据模型
    PowerDesigner教程系列(四)概念数据模型
    PowerDesigner教程系列(三)概念数据模型
    PowerDesigner教程系列(二)概念数据模型
  • 原文地址:https://www.cnblogs.com/loglian/p/12880374.html
Copyright © 2020-2023  润新知