c++ 定义日期的结构体类型DATE,它包含年,月,日三个成员,定义学生结构体类

(1)定义日期的结构体类型DATE,它包含年、月、日三个成员,定义学生结构体类型STUDENT,它包含学号、姓名、出生日期(DATE类型)、成绩。
(2)编写一个input函数,用来从键盘输入某个学生的数据,input函数的定义格式如下:
void input(STUDENT &st)//形参为引用变量
{ …… }(3)编写一个print函数,用来输出某个学生的数据,print函数定义格式如下:
void print(STUDENT *st) //形参为指针变量
{ …… }(4)编写main函数,其中定义2个学生(用数组实现),调用input函数输入2
个学生的数据(用for语句实现),然后调用print函数输出2个学生的数据(用for语句实现)。

#include <iostream>

using namespace std;

typedef struct __date
{
int nYear;
int nMonth;
int nDay;
friend ostream& operator << (ostream &o, const __date& d)
{
o << d.nYear << "年" << d.nMonth << "月" << d.nDay << "日";
return o;
}

} DATE;

#define MAX_LEN_NAME 20
typedef struct __student
{
int nId;
char strName[MAX_LEN_NAME];
DATE iDate;
int nGrade;
} STUDENT;

void input(STUDENT &st)
{
cout << "请输入学号:";
cin >> st.nId;
cout << "请输入姓名:";
cin >> st.strName;
cout << "请输入出生日期(年 月 日):";
cin >> st.iDate.nYear
>> st.iDate.nMonth 
>> st.iDate.nDay;
cout << "请输入分数:";
cin >> st.nGrade;
}

void print(STUDENT *st)
{
cout << "学号:" << st->nId << endl;
cout << "姓名:" << st->strName << endl;
cout << "出生日期" << st->iDate << endl;
cout << "分数:" << st->nGrade << endl;
}

int main()
{
const int nCount = 2;
STUDENT st[nCount];
for (int i=0; i<nCount; ++i)
{
cout << "请输入第" << i+1 << "位学生的数据" << endl;
input(st[i]);
cout << endl;
}

cout << endl;

for (int i=0; i<nCount; ++i)
{
cout << "输出第" << i+1 << "位学生的数据" << endl;
print(&st[i]);
cout << endl;
}
return 0;
}

温馨提示:答案为网友推荐,仅供参考
相似回答