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]='\0'; /*逆序*/ 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)



浙公网安备 33010602011771号