`
yiyeqinghuasoon
  • 浏览: 644504 次
文章分类
社区版块
存档分类
最新评论

C++编程实例-多态(二)

 
阅读更多

实验14多态(二)

【实验目的】

通过本实验,掌握类的纯虚函数的概念。

【实验要求】

熟练掌握纯虚函数的定义及使用方法。

【实验内容】

简单模拟输入学生的姓名及考试成绩,计算并显示学生成绩的学分值。

类S和类GS公有继承类Base。类Base的input()、output()函数、 get() 函数、score () 函数为纯虚函数。

#include<cstdio>

#include<iostream>

usingnamespacestd;

constintN=4;

constintM=5;

classBase{ //共有基类

public:

virtualvoidinput()=0;

virtualvoidoutput()=0;

virtualchar*get()=0;

virtualvoidscore()=0;

voidspace(char*p); //去掉字符串的空格

intcheck(inti); //成绩合理性检验

};

intBase::check(inti){

intx=-1;

while(x<=0||x>100){

cout<<"第"<<i+1<<"个成绩=";

cin>>x;

if(x>=0&&x<=100)break;

}

returnx;

}

voidBase::space(char*p){

char*q=p;

while(*p!='/0'){

if(*p!='')*q++=*p;

p++;

}

*q='/0';

}

classS:publicBase{ //模拟大学生类定义

private:

char*k;

ints[N],sum;

charx;

public:

S(){k=newchar[100];sum=0;}

~S(){delete[]k;}

voidinput(); //输入学生姓名

voidoutput(); //输出学生的学分值

char*get(){returnk;}

voidscore(); //成绩处理

};

voidS::input(){cout<<"输入一个(S)学生的姓名:";gets(k);}

voidS::output(){cout<<"(S)学生"<<k<<"的学分值x="<<x<<endl;}

voidS::score(){

cout<<"输入(S)学生"<<k<<"的成绩"<<endl;

for(inti=0;i<N;i++){

s[i]=check(i);sum+=s[i];

}

getchar();

if((float)sum/N>=70)x='1'; //平均分大于等于70分时学分值为1

elsex='0';

}

classGS:publicBase{ //模拟研究学生类定义

private:

char*k;

ints[M],sum;

charx;

public:

GS(){k=newchar[100];sum=0;}

~GS(){delete[]k;}

voidinput(); //输入学生姓名

voidoutput(); //输出学生的学分值

char*get(){returnk;}

voidscore(); //成绩处理

};

voidGS::input(){cout<<"输入一个(GS)学生的姓名:";gets(k);}

voidGS::output(){cout<<"(GS)学生"<<k<<"的学分值x="<<x<<endl;}

voidGS::score(){

cout<<"输入(GS)学生"<<k<<"的成绩"<<endl;

for(inti=0;i<M;i++){

s[i]=check(i);sum+=s[i];

}

getchar();

if((float)sum/M>=75)x='1'; //平均分大于等于75分时学分值为1

elsex='0';

}

voidfun(Base&a){

a.input();a.space(a.get());a.score();a.output();

}

intmain(){

Sa;fun(a);

GSb;fun(b);

return0;

}

分享到:
评论

相关推荐

    VISUAL C++MFC编程实例

    本书通过85个实例全面讲述了应用MFC进行Visual C++编程的思想。每个实例均以编写一个应用程序要走的步骤编写。全书共分四部分进行介绍,第一部分是基础知识,第二部分讲述用户界面的实例,第三部分讲述MFC内部处理...

    源码+电子书本Visual C++ MFC编程实例

    第二部分 用户界面实例 第5章 应用程序与环境 76 5.1 例1 规划MFC应用程序 76 5.2 例2 用AppWizard创建一个MFC 应用程序 79 5.3 例3 用ClassWizard创建一个类 83 5.4 例4 初始化应用程序屏幕 84 5.5 例5 保存应用...

    C编程思想--chinapub书籍--文本PDF

    本书作者根据自己学习C++的亲身体会及多年教学经验,用简单的例子和简练的叙述讲解C++编程,别具特色。 全书共分十八章,内容涉及对象的演化、数据抽象、隐藏实现、初始化与清除、函数重载与缺省参数、输入输出流...

    Visual C++MFC编程实例

    第二部分 用户界面实例 第5章 应用程序与环境 76 5.1 例1 规划MFC应用程序 76 5.2 例2 用AppWizard创建一个MFC 应用程序 79 5.3 例3 用ClassWizard创建一个类 83 5.4 例4 初始化应用程序屏幕 84 5.5 例5 保存应用...

    c++编程思想,c++实例编程

    本书作者根据自己学习C++的亲身体会及多年教学经验,用简单的例子和简练的叙述讲解C++编程,别具特色。 全书共分十八章,内容涉及对象的演化、数据抽象、隐藏实现、初始化与清除、函数重载与缺省参数、输入输出流...

    C++MFC编程实例

    第二部分 用户界面实例 第5章 应用程序与环境 76 5.1 例1 规划MFC应用程序 76 5.2 例2 用AppWizard创建一个MFC 应用程序 79 5.3 例3 用ClassWizard创建一个类 83 5.4 例4 初始化应用程序屏幕 84 5.5 例5 保存应用...

    C++编程思想1-5 清晰PDF

    本书作者根据自己学习C++的亲身体会及多年教学经验,用简单的例子和简练的叙述讲解C++编程,别具特色。 全书共分十八章,内容涉及对象的演化、数据抽象、隐藏实现、初始化与清除、函数重载与缺省参数、输入输出流...

    Visual C++ MFC编程实例

    本书作者根据自己学习C++的亲身体会及多年教学经验,用简单的例子和简练的叙述讲解C++编程,别具特色。 全书共分十八章,内容涉及对象的演化、数据抽象、隐藏实现、初始化与清除、函数重载与缺省参数、输入输出流...

    C++编程思想.pdf

    《C++编程思想》,原名《Thinking in C++》,作者:Bruce Eckel,翻译:刘宗田等,出版社:机械工业出版社,ISBN:7111071166,pdf 格式,大小 4MB。本资源仅包括前七章的内容。 内容简介: 本书作者根据自己学习C++...

    C++大学教程

    第1章 计算机与C++编程简介-------------------------------------------------1 1.1 简介--------------------------------------------------------------1 1.2 什么是计算机--------------------------------...

    C++编程思想习题

    16.3向上映射的二义性 16.4虚基类 16.4.1“最晚辈派生”类和虚基初始化 16.4.2使用缺省构造函数向虚基“警告” 16.5开销 16.6向上映射 16.7避免MI 16.8修复接口 16.9小结 16.10练习 第17章 异常处理 17.1C语言的出错...

    C++编程你也行(英文版)

    作者重点介绍类、模板、操作符重载、异常、命名空间等从事现代C++编程不可或缺的语言特性,以及容器、算法、迭代器等重要的标准库组件。本书通过例子代码和“代码详解”,将C++的精华展示给读者。. 本书可供完全...

    C++语言的入门教程---21天学通C++

    《21天学通C++》是C++语言的入门教程,较为系统地...第五篇的内容主要是C++编程实践,主要分析了标准模板库STL、模板与C++标准库和异常处理等;最后一篇中结合学生成绩管理系统开发实例,讲解如何使用C++进行实际开发.

    Visual C++mfc编程实例

    第二部分 用户界面实例 第5章 应用程序与环境 76 5.1 例1 规划MFC应用程序 76 5.2 例2 用AppWizard创建一个MFC 应用程序 79 5.3 例3 用ClassWizard创建一个类 83 5.4 例4 初始化应用程序屏幕 84 5.5 例5 保存应用...

    Visual C++ MFC编程实例.PDF

    本书通过85个实例全面讲述了应用MFC进行Visual C++编程的思想。每个实例均以编写一个应用程序要走的步骤编写。全书共分四部分进行介绍,第一部分是基础知识,第二部分讲述用户界面的实例,第三部分讲述MFC内部处理...

    C++面向对象编程的一些总结

    C++面向对象编程的一些总结,包括了继承、多态、以及深入探索C++对象模型中文版及其读书笔记

Global site tag (gtag.js) - Google Analytics