面向对象程序设计(C++)实验报告


    

    面象程序设计
    (C++)
    实验报告


    姓名:
    学院:数学计算机学院
    班级:10级计算机类班
    学号:













    实验5 单继承
    实验目
    1.掌握派生类方式
    2.解派生类中基类成员基类成员派生类中访问控制
    3 掌握继承中构造函数析构函数调程
    二实验容步骤
    1 出Document类Document派生出Book类增加PageCount变量函数中进行测试创建Book类象进行初始化输出书名页数


    2 设计单基继承类层次程序利Person类派生出Student类增加属性xh(学号)Person类中少姓名年龄等数成员成员函数中构造函数初始化析构函数释放相应存储单元输出函数输出数成员值成员函数根需添加函数中进行测试

    3 设计员类person日期类date员类派生出学生类student教师类professor学生类教师类数成员birthday日期类函数中进行测试
    三实验源程序运行结果
    实验()源程序:
    #include
    #include
    using namespace std
    class Document
    {
    public
    Document(){}
    ~Document()
    Document(char*name)
    char *Name
    void PrintNameOf()
    }
    DocumentDocument(char*name)
    {
    Namenew char[strlen(name+1)]
    strcpy(Namename)
    }
    Document~Document(){
    delete []Name
    }
    void DocumentPrintNameOf()
    {
    cout<}
    class Bookpublic Document
    {
    public
    int PageCount
    Book(char *aint b)Document(a)
    {
    PageCountb
    }

    }
    void main()
    {
    char BookName[20]
    int n
    cout<<请输入书名:< cin>>BookName
    cout<<请输入书页数:< cin>>n
    Book b(BookNamen)
    cout<<书名:< cout<<页数:<}
    运行结果:


    实验(二)源程序:
    #include
    #include
    using namespace std
    class person{
    public
    person(){
    name张三
    age0
    }
    person(string cint a){
    namec
    agea
    }
    ~person(){}
    void setname(string c){
    namec
    }
    string getname(){
    return name
    }
    void setage(int a){
    agea
    }
    int getage(){
    return age
    }
    private
    string name
    int age
    }
    class studentpublic person
    {
    public
    student(){
    xh0
    }
    student(int d){
    xhd
    }
    student(string cint aint d)person(ca){
    xhd
    }
    ~student(){}
    void setxh(int d){
    xhd
    }
    int getxh(){
    return xh
    }
    private
    int xh
    }
    void main(){
    string c
    cout<<请输入学生姓名:\n
    cin>>c
    cout<<请输入学生年龄:\n
    int a
    cin>>a
    cout<<请输入学生学号:\n
    int d
    cin>>d
    student n(cad)
    cout<<请输入学生姓名: < cout<<请输入学生年龄: < cout<<请输入学生学号: <}

    运行结果:


    实验(三)源程序:
    #include
    using namespace std
    class person{
    public
    person(){
    name张三
    age0
    }
    person(string cint a){
    namec
    agea
    }
    ~person(){}
    void setname(string c){
    namec
    }
    string getname(){
    return name
    }
    void setage(int a){
    agea
    }
    int getage(){
    return age
    }
    private
    string name
    int age
    }
    class date{
    public
    date(){
    year2011
    month12
    day17
    }
    ~date(){}
    date(int yint mint d){
    yeary
    monthm
    dayd
    }
    int getyear(){
    return year
    }
    int getmonth(){
    return month
    }
    int getday(){
    return day
    }
    private
    int year
    int month
    int day
    }
    class studentpublic person{
    public
    student(){
    birthdaydate()
    }
    student(int yint mint d)birthday(ymd)
    {

    }
    ~student(){}
    void getbirthday(){
    cout<<学生生日:\n
    cout< }
    private
    date birthday
    }
    class teacherpublic person{
    public
    teacher(){
    birthdaydate()
    }
    teacher(int yint mint d)birthday(ymd)
    {
    birthdaydate(ymd)
    }
    ~teacher(){}
    void getbirthday(){
    cout<<老师生日:\n
    cout< }
    private
    date birthday
    }
    void main(){
    cout<<请输入学生生日:< int ymd
    cin>>y>>m>>d
    student s(ymd)
    cout<<请输入老师生日:< cin>>y>>m>>d
    teacher t(ymd)
    sgetbirthday()
    tgetbirthday()
    }
    运行结果:

    实验6 继承
    实验目
    1.掌握基继承访问方法
    2.理解类层次中访问规
    3.掌握虚基类定义
    二实验容步骤
    1 定义学生类Student教师类Teacher学生类姓名学号私数成员教师类姓名工作证号职称课程周学时数定义助教类TA继承学生类教师类该类学生类全部数成员教师类课程周学时数数成员求:类提供定义构造函数析构函数通名函数ShowInfo显示全部数成员值

    2 设计虚基类Person包含姓名年龄私数成员相关成员函数派生出领导类Leader包含职务部门私数成员相关成员函数Person派生出工程师类Engineer包含职务专业私数成员相关成员函数LeaderEngineer类派生出工程师类Chairman采相关数进行测试
    三实验源程序运行结果
    实验()源程序:
    #include
    #include
    class Student{
    protected
    char s_name[20]
    int id_s
    public
    Student(char *nameint id)
    void ShowInfo()
    }

    class Teacher{
    protected
    char t_name[20]
    int id_t
    char position[30]
    char lesson[30]
    int hour
    public
    Teacher(char *posint h)
    Teacher(char *nameint idchar *lesschar *posint h)
    void ShowInfo()
    }

    class TApublic Studentpublic Teacher{
    public
    TA(char *namechar idchar *lessint h)
    void ShowInfo()
    }
    StudentStudent(char *nameint id){
    strcpy(s_namename)
    id_sid
    }
    void StudentShowInfo(){
    cout<<姓名:<}

    TeacherTeacher(char *lessint h){
    strcpy(lessonless)
    hourh
    }
    TeacherTeacher(char *nameint idchar *lesschar *posint h){
    strcpy(t_namename)
    strcpy(lessonless)
    strcpy(positionpos)
    id_tid
    hourh
    }
    void TeacherShowInfo(){
    cout<<姓名:<}

    TATA(char *namechar idchar *lessint h)Student(nameid)Teacher(lessh){}
    void TAShowInfo(){
    StudentShowInfo()
    cout<<课程:<}

    void main(){
    TA ta(刘九州14c++64)
    taShowInfo()
    }
    运行结果:

    实验(二)源程序:
    #include
    #include
    class Person{ 虚基类person类
    char name[30]
    int age
    public
    Person(char *nint a)
    void setname(char *n)
    void setage(int a)
    char *getname()
    int getage()
    }
    class Leadervirtual public Person{ 领导类
    char job[30] 职务
    char dep[30] 部门
    public
    Leader(char *jbchar *dp)
    void setjob(char *jb)
    void setdep(char *dp)
    char *getjob()
    char *getdep()
    }

    class Engineervirtual public Person{ 工程师类
    char major[30] 专业
    char prof[30] 职称
    public
    Engineer(char *majchar *pf)
    void setmajor(char *maj)
    void setprof(char *pf)
    char *getmajor()
    char *getprof()
    }

    class Chairmanpublic Leaderpublic Engineer{ 工程师类
    public
    Chairman(char *nint achar *jbchar *dpchar *majchar *pf)
    void disp()
    }
    PersonPerson(char *nint a){
    strcpy(namen)
    agea
    }
    void Personsetname(char *n){
    strcpy(namen)
    }
    void Personsetage(int a){
    agea
    }
    char *Persongetname(){
    return name
    }
    int Persongetage(){
    return age
    }

    LeaderLeader(char *jbchar *dp)Person(30){
    strcpy(jobjb)
    strcpy(depdp)
    }
    void Leadersetjob(char *jb){
    strcpy(jobjb)
    }
    void Leadersetdep(char *dp){
    strcpy(depdp)
    }
    char *Leadergetjob(){
    return job
    }
    char *Leadergetdep(){
    return dep
    }

    EngineerEngineer(char *majchar *pf)Person(30){
    strcpy(majormaj)
    strcpy(profpf)
    }
    void Engineersetmajor(char *maj){
    strcpy(majormaj)
    }
    void Engineersetprof(char *pf){
    strcpy(profpf)
    }
    char *Engineergetmajor(){
    return major
    }
    char *Engineergetprof(){
    return prof
    }
    ChairmanChairman(char *nint achar *jbchar *dpchar *majchar *pf)Person(na)Leader(jbdp)Engineer(majpf){}
    void Chairmandisp(){
    cout<<姓名:<}

    void main(){
    Chairman c(刘九州21厅长财政厅济学高级济师)
    cdisp()
    }
    运行结果:










    实验7 态虚函数
    实验目
    1理解态概念
    2掌握虚函数实现运行时态
    3掌握利抽象类
    二实验容步骤
    1 设计图形类(Shape)派生出三角形类(Triangle)正方形类(Square)圆形类(Circle)利虚函数计算图形面积函数中进行测试
    2 定义教师类教师类派生出讲师副教授教授类教师工资分基工资课时费津贴构成假设讲师副教授教授基工资分8009001000元课时费分时404550元津贴分130018002300定义虚函数计算教师工资通函数进行验证
    三实验源程序运行结果
    实验()源程序:
    #include
    using namespace std
    class Shape
    {
    public
    virtual float area()
    {return 00}
    }
    class Trianglepublic Shape
    {
    public
    Triangle()
    {bc10h10}
    Triangle(float bcfloat h)
    {
    this>bcbcthis>hh}
    bool setbc(float a)
    {if(a>0)bca}
    float getbc()
    {return bc}
    bool setg(float b)
    {if(b>0)hb}
    float getg()
    {return h}
    float area()
    {return bc*h2}
    protected
    float bch
    }
    class Squarepublic Shape
    {
    public
    Square()
    {l10}
    Square(float m)
    {this>lm}
    bool setbc(float c)
    {if(c>0)lc}
    float getbc()
    {return l}
    float area()
    {return l*l}
    protected
    float l
    }
    class Circlepublic Shape
    {
    public
    Circle()
    {radius10}
    Circle(float R)
    { this>radiusR}
    bool setRadius(float r)
    {if(r>0)radiusr}
    float getRadius()
    {return radius}
    float area()
    {return 314159*radius*radius}
    protected
    float radius
    }
    void displayShapeArea(Shape *p)
    {
    cout<<图形面积<

    area()<}
    void main()
    {
    Shape *p1*p2*p3
    Triangle T(150100)
    Square S(100)
    Circle C(100)
    p1&T
    p2&S
    p3&C
    displayShapeArea(p1)
    displayShapeArea(p2)
    displayShapeArea(p3)


    }

    运行结果:


    实验(二)源程序:
    #include
    using namespace std
    class teacher
    {
    public

    virtual float wage()
    {return 00}
    }
    class lecturerpublic teacher
    {
    public
    lecturer()
    {WorkHours10}
    lecturer(float WorkHours)
    {
    this>WorkHoursWorkHours
    }
    bool setWorkHours(float h)
    {
    if(h>0)WorkHoursh}
    float getWorkHours()
    {return WorkHours}
    float wage()
    {
    return (800+40*WorkHours+1300)
    }
    protected
    float WorkHours
    }
    class AssociateProfessorpublic teacher
    {
    public
    AssociateProfessor()
    {WorkHours10}
    AssociateProfessor(float WorkHours)
    {
    this>WorkHoursWorkHours
    }
    bool setWorkHours(float h)
    {
    if(h>0)WorkHoursh}
    float getWorkHours()
    {return WorkHours}
    float wage()
    {
    return (900+45*WorkHours+1800)
    }
    protected
    float WorkHours
    }
    class Professorpublic teacher
    {
    public
    Professor()
    {WorkHours10}
    Professor(float WorkHours)
    {
    this>WorkHoursWorkHours
    }
    bool setWorkHours(float h)
    {
    if(h>0)WorkHoursh}
    float getWorkHours()
    {return WorkHours}
    float wage()
    {
    return (1000+50*WorkHours+2300)
    }
    protected
    float WorkHours
    }
    void displayWage(teacher *s)
    {
    cout<<工资<wage()<}
    void main()
    {
    teacher *s1*s2*s3
    lecturer L(305)
    AssociateProfessor A(206)
    Professor P(105)
    s1&L
    s2&A
    s3&P
    displayWage(s1)
    displayWage(s2)
    displayWage(s3)

    }
    运行结果:

    实验8 运算符重载
    实验目
    掌握C++中运算符重载机制运算符重载方式
    二实验容步骤
    1 编写简单复数类Scomplex求友元函数重载+运算符成员函数重载运算符够实现整数浮点数复数加法减法进行测试

    2 空间点p坐标(xyz)中xyz整数编写点类Point3D定义空间两点间加+减运算相应三坐标值分进行加减运算求实现空间两点间加+减赋值运算空间两点间较 运算求编写Point3D类声明定义测试程序

    3 设计时间类Time包括时分秒等私数成员重载+运算符实现时间加法减法运算进行测试
    三实验源程序运行结果
    实验()源程序:
    #include
    class Scomplex{
    private
    double realimag
    public
    Scomplex(){
    real0 实部
    imag0 虚部
    }
    Scomplex(double xdouble y)
    {
    realx
    imagy
    }
    Scomplex& operator (Scomplex s)
    double getreal()
    {
    return real
    }
    double getimag()
    {
    return imag
    }
    friend Scomplex operator+(int iScomplex s)
    friend Scomplex operator+(double dScomplex s)
    friend Scomplex operator(int iScomplex s)
    friend Scomplex operator(double dScomplex s)
    }
    Scomplex& Scomplexoperator (Scomplex s){
    if(this&s)
    return *this
    realsreal
    imagsimag
    return *this
    }
    Scomplex operator+(int iScomplex s){
    Scomplex t
    treali+sreal
    timagsimag
    return t
    }
    Scomplex operator+(double dScomplex s){
    Scomplex t
    treald+sreal
    timagsimag
    return t
    }
    Scomplex operator(int iScomplex s){
    Scomplex t
    trealisreal
    timagsimag
    return t
    }
    Scomplex operator(double dScomplex s){
    Scomplex t
    trealdsreal
    timagsimag
    return t
    }
    void main(){
    Scomplex s1(3452)s2
    s21+s1
    cout<<复数s2:(< s262+s1
    cout<<复数s2:(< s25s1
    cout<<复数s2:(< s232s1
    cout<<复数s2:(<}

    运行结果:

    实验(二)源程序:
    #include
    class Point3D
    {
    public
    Point3D()
    {
    x1
    y1
    z1
    }
    Point3D(int aint bint c)
    {
    xa
    yb
    zc
    }
    int getx()
    {
    return x
    }
    int gety()
    {
    return y
    }
    int getz()
    {
    return z
    }
    Point3D& operator (Point3D p)
    Point3D operator +(Point3D p)
    Point3D operator (Point3D p)
    bool operator (Point3D p)
    private
    int xyz
    }
    Point3D& Point3Doperator (Point3D p)
    {
    if(this&p)
    return *this
    xpx
    ypy
    zpz
    return *this
    }
    Point3D Point3Doperator +(Point3D p)
    {
    Point3D t
    txx+px
    tyy+py
    tzz+pz
    return t
    }
    Point3D Point3Doperator (Point3D p)
    {
    Point3D t
    txxpx
    tyypy
    tzzpz
    return t
    }
    bool Point3Doperator (Point3D p)
    {
    if(xpx&&ypy&&zpz)
    return true
    else
    return false
    }
    void main()
    {
    Point3D p1(123)p2(123)p3p4
    p3p1+p2
    cout<<两点相加
    (<
    p4p2p1
    cout<<两点相减
    (< if(p1p2)
    cout< else
    cout<}
    运行结果:

    实验(三)源程序:
    #include
    class Time
    {
    public
    Time()
    {hour0
    minute0
    second0
    }
    Time(int hint mint s)
    {
    hourh
    minutem
    seconds
    }
    void setHour(int h)
    {hourh}
    void setMinute(int m)
    {minutem}
    void setSecond(int s)
    {seconds}
    int getHour()
    {return hour}
    int getMinute()
    {return minute}
    int getSecond()
    {return second}
    void displayTime()
    {
    cout< }
    Time operator + (Time)
    Time operator (Time)
    private
    int hour
    int minute
    int second
    }
    Time Timeoperator+(Time t){
    int carryhhmmss
    sssecond+tgetSecond()
    if(ss>60){
    ss60
    carry1
    }
    else carry0
    mmminute+tgetMinute()+carry
    if(mm>60){
    mm60
    carry1
    }
    else carry0
    hhhour+tgetHour()+carry
    if(hh>24)
    hh24
    Time tt(hhmmss)
    return(tt)
    }
    Time Timeoperator(Time t){
    int borrowhhmmss
    sssecondtgetSecond()
    if(ss<0){
    ss+60
    borrow1
    }
    else borrow0
    mmminutetgetMinute()borrow
    if(mm<0){
    mm+60
    borrow1
    }
    else borrow0
    hhhourtgetHour()borrow
    if(hh<0) hh+24
    Time tt(hhmmss)
    return(tt)
    }

    void main(){
    Time t1(13240)t2(153730)t3
    t3t1+t2
    t3displayTime()
    t3t1t2
    t3displayTime()
    }
    运行结果:


    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    中南大学-c++课设报告面向对象编程(C++)

    中南大学面向对象编程(C++)实验报告学生姓名 学 院 信息科学与工程学院 ...

    2年前   
    479    0

    JAVA面向对象程序设计教案

    教 案任课教师: 课程名称:面向对象程序设计(Java) 任课班级:专科计算机班、专科网络班、专科软件班 授课时间: 2013-2014-2学期教 案编号:1章节Java SE...

    2年前   
    346    0

    南京信息工程大学滨江学院C++面向对象程序设计期末复习资料

    +++ 面向对象程序设计复习资料一、概念、填空题1. 面向对象的四大特性是:抽象、封装、继承、多态2. 构造函数的作用是创建对象时为对象赋初值,析构函数的作用是释放对...

    8个月前   
    153    0

    《面向对象程序设计C++》期末试卷及标准答案集总

    《面向对象程序设计C++》期末考试试卷(B)班级: 姓名: 学号: 分数: 题号一二三四总分得分试卷说明:本套试题共四个大题...

    1年前   
    519    0

    面向对象程序设计期末复习题资料

    面向对象程序设计期末复习题一、单项选择题1.对于类中定义的成员,其隐含访问权限为【 B 】 A) public B) private C) static D) protected2.关于...

    10个月前   
    283    0

    面向对象程序设计实验指导书

            《面向对象程序设计》 实  验  指  导  书     张家精   编 写         适用专业:     信息与计算科学        ...

    9年前   
    5854    0

    面向对象分析与设计(UML) 综合实验报告超市管理系统

    面向对象分析与设计(UML)综合实验报告项目名称:超市管理系统目 录第1章 系统需求分析 41.1 超市管理系统业务概述 41.2 超市管理系统各子系统需求分析 51.2.1 仓库管理子系统 ...

    2年前   
    861    0

    《高级语言程序设计》实验报告

    1.掌握在Visual C++6.0环境下C程序的建立、编辑、编译和执行过程。2.掌握C程序的最基本框架结构,完成简单程序的编制与运行。3.了解基本输入输出函数scanf()、printf ()...

    2年前   
    429    0

    C语言程序设计实验报告

    C语言程序设计实验报告  实验名称 计算出1000以内10个最大素数之和   实验目的   1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语...

    10年前   
    943    0

    《高级语言程序设计》实验报告

    设计一种用单链表存储多项式的结构(每个结点存储一项的系数和指数,类型都为int)并编写一个产生多项式链表的函数和一个实现两个多项式相加和相乘的函数。

    5年前   
    3500    0

    Visual C++程序设计与应用教程课后答案

    Visual C++程序设计与应用教程课后答案1.6 习 题1. 填空题(1) 项目工作区一般在集成开发环境的左侧。它展示一个项目的几个方面,它们分别是ClassView、Resour...

    10个月前   
    512    0

    C++程序设计课程教学大纲

    教师学科教案[ 20 – 20 学年度 第__学期 ]任教学科:_____________任教年级:_____________任教老师:_____________C++程序设计 课程教...

    10个月前   
    224    0

    C++程序设计试卷2010(有答案)

    XX大学 试题纸课 程 面向对象的程序设计C++ (B) 班 级 学 号 姓 名 题号一二...

    2年前   
    524    0

    C++语言程序设计稿件管理数据系统

    XX大学 本科生课程设计(实践)任务书、设计报告 (C++语言程序设计) 题 目 稿件管理数据系统 学生姓名 指导教师 学 院 专业班级 学生学号 计...

    5年前   
    1630    0

    单像空间后方交会实验报告(c++版)

    单像空间后方交会姓名: 学号: 时间: 2013目录一、 作业任务 - 3 -二、 计算原理 - 3 -三、 算法流程 - 7...

    1年前   
    474    0

    2022年电大C++语言程序设计考试题库及答案

    一、单选题1. 在定义函数的格式类型修饰符 函数名 (形式参数表)函数体;中,函数体可以是( )。A、基本语句 B、复合语句C、空语句 D、语句序列2.A>B&&A<=B的值( ...

    2年前   
    598    0

    C++程序设计实践上机指导书第八次

    C++程序设计实践上机指导书(第八次)专业 计算机科学与技术 班级 学号 ...

    3年前   
    518    0

    C++程序设计学生成绩管理信息系统设计与开发

    C++程序设计课程设计说明书题目: 学生成绩管理信息系统设计与开发 学生姓名: 学 号: 院...

    2年前   
    597    0

    铜陵学院C语言程序设计实验报告

    《C语言程序设计》 实验报告第二学期班 级 学 号姓 名指导教师实验一 Visual C++ 6.0编程环境与C语言程序的调试过程一、实验学时2 学时。二、...

    1年前   
    241    0

    C语言实验报告《逻辑结构程序设计》

    C语言实验报告《逻辑结构程序设计》  学号:__________    姓名:__________    班级:__________    日期:__________   指导教师:_____...

    12年前   
    735    0

    文档贡献者

    文***品

    贡献于2021-06-15

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!

    该用户的其他文档