python面向对象课程大作业
按下列要求编写一个完整的程序:
定义一个描述学生基本情况的类,数据成员至少包括“姓名、性别、学号、年级、所在院系、面向对象的考试日期”,成员函数至少包括构造函数,析构函数,输出函数:构造函数用于对数据成员初始化,且要有输出信息,比如调用了构造函数”,析构函数也要有输出信息,比如“调用了析构函数”,输出函数用于实现各数据的输出。使用上述定义的类为基类,另定义一个派生类,计算考试时间“和“入学时间”的差。在派生类中,增加数据成员描述入学时间,增加几个成员函数,用来计算“考试时间”和“入学时间”的差及输出结果(学号用8位数字表示,如05083501,时间用8位数字表示,形式如20071205)。设计主函数,在主函数里创建类的对象,用你自己的真实信息(“姓名、学号、年级、所在院系、面向对象的考试日期”) 初始化该对象,调用输出数据的成员承数,实现输出你的真实信息及其它计算结果。
class student:#基类
def __init__(self,name,sex,sid,grade,college,exam_data):#构造函数
print('调用了构造函数')
self.name=name#姓名
self.sex=sex#性别
self.sid=sid#学号
self.grade=grade#年级
self.college=college#院系
self.exam_data=exam_data#面向对象的考试日期
def __del__(self):#析构函数
print('调用了析构函数')
def myPrint(self):#输出函数
print('调用了输出函数')
print('姓名:',self.name)
print('性别:',self.sex)
print('学号:',self.sid)
print('年级:',self.grade)
print('院系:',self.college)
print('面向对象的考试时间:',self.exam_data)
class diff_Date(student):#派生类,求考试时间和入学时间的差
def __init__(self,name,sex,sid,grade,college,exam_data):
print('调用了派生类的构造函数')
super(diff_Date,self).__init__(name,sex,sid,grade,college,exam_data)
self.enroll_data=20210901#入学时间
def print_diff(self):#输出考试时间和入学时间的差
print('输出考试时间和入学时间的差为',self.exam_data-self.enroll_data)
def main(name,sex,sid,grade,college,exam_data):#主函数
student_1=diff_Date(name,sex,sid,grade,college,exam_data)
student_1.myPrint()
student_1.print_diff()
main(name='帽子屋先生',sex='男',sid=20220704,grade='大一',college='计算机学院',exam_data=20220804)
输出结果如下所示