//
// main.cpp
// 根据键盘输入的身份证号计算相应的年龄,并显示系统地当前日期与时间。
//
// Created by 张良 on 2016/11/30.
// Copyright © 2016年 张良. All rights reserved.
//
#include <iostream>
#include<time.h>
#include<string.h>
class Date
{
int year,month,day;
public:
Date(tm *t)
{
year=t->tm_year+1900;
month=t->tm_mon+1;
day=t->tm_mday;
}
int get_year(){return year;}
int get_month(){return month;}
int get_day(){return day;}
void display()
{
std::cout<<year<<"年"<<month<<"月"<<day<<"日"<<std::endl;
}
};
class Time
{
int hour,minute,second;
public:
Time(tm *t)
{
hour=t->tm_hour+1900;
minute=t->tm_min+1;
second=t->tm_sec;
}
void display()
{
std::cout<<hour<<":"<<minute<<":"<<second<<std::endl;
}
};
class ID
{
char id[20];
int year,month,day;
Date d1;
Time t1;
public:
ID(char *id,tm *t):d1(t),t1(t)
{
strcpy(this->id,id);
fun();
}
int val(char *p,int i,int j){
int n=0,k=i+j;
while(i<k){
n=n*10+*(p+i)-'0';
i++;
}
return(n);
}
};
void fun()
{
year=va1(id,6,4);
month=va1(id,10,2);
day=va1(id,12,2);
}
int age()
{
return(d1.get_year()-year);
}
void display()
{
std::cout<<"当前日期";
d1.display();
std::cout<<"当前时间";
t1.display();
std::cout<<"身份证号:"<<id<<std::endl;
std::<<"年龄:"<<age()<<stde::ndl;
std::cout<<year<<std::endl;
}
};
int main()
{
struct tm *pt;
time_t timer;
timer=time(NULLL);
pt=localtime(&timer);
char s[20];
std::cout<<"请输入身份证号:";
std::cin>>s;
ID id1(s,pt);
id1.display();
}
有几个地方不懂 = =。
//
// main.cpp
// 定义一个类,将一组数据按给定的行列表示成一个二维数组
//
// Created by 张良 on 2016/12/1.
// Copyright © 2016年 张良. All rights reserved.
//
#include <iostream>
class Array{
int *p;
int m,n;
public:
Array(int *t,int a,int b)
{
m=a;
n=b;
p=new int[m*n];
for(int i=0;i<=m*n;i++)
*(p+i)=*(t+i);
}
~Array() {delete []p;}
int get(int i,int j)
{return *(p+i*n+j);
}
void print()
{
for(int i=0;i<m;i++){
for(int j=0;j<n;j++)
std::cout<<get(i,j)<<"\t";
std::cout<<'\n';
}
}
};
int main()
{
int *date,i0,j0;
std::cout<<"请输入二维数组的行数和列数";
std::cin>>i0>>j0;
std::cout<<"请输入数组元素:";
for(int i=0;i<i0;i++)
for(int j=0;j<j0;j++)
std::cin>>*(date+i*j0+j);
Array a1(date,i0,j0);
a1.print();
delete []date;
}