C++定义一个教师类和一个学生类

cout<<"\tmajor:"<<major<<endl;
}Байду номын сангаас
Teacher::Teacher(int n,string na,string se,double s)//这边参数名最好不要取和数据名一样(比如name=name就不知道是哪个赋值给哪个了!)
{
num=n;
name=na;
sex=se;
/*定义一个教师类和一个学生类,二者有一部分数据成员是相同的,
例如:num(号码),name(姓名),sex(性别)。编写一个学生对象,
将其转变为教师类,只将以上三种相同数据成员移植过去即可。
#include<iostream>
#include<string>
using namespace std;
cout<<"\tname:"<<name<<endl;
cout<<"\tsex:"<<sex<<endl;
cout<<"\tnum:"<<num<<endl;
cout<<"\tsalary:"<<salary<<endl;
}
void main()
{
Student s1(167,"chen","f","Software");
salary=s;
}
Teacher::Teacher(Student &s)
{
num=s.num;
name=;
sex=s.sex;
cout<<"\nInput the teacher's salary:";
cin>>salary;
}
void Teacher::display()
{
cout<<"\nTeacher——"<<endl;
{
num=n;
name=na;
sex=s;
major=m;
}
void Student::display()
{
cout<<"\nStudent——"<<endl;
cout<<"\tname:"<<name<<endl;
cout<<"\tsex:"<<sex<<endl;
cout<<"\tnum:"<<num<<endl;
class Teacher;
class Student
{
public://friend Teacher;
Student(int,string,string,string);
void display();
int num;
string name;
string sex;
string major;
};
class Teacher
s1.display();
Teacher t1(906,"wang","f",6000),t2;
t2=Teacher(s1);
t1.display();
t2.display();
}*/
{
public:Teacher(){}
Teacher(int,string,string,double);
Teacher(Student &);
void display();
private:int num;
string name;
string sex;
double salary;
};
Student::Student(int n,string na,string s,string m)
合集下载

(完整word版)C++练习题

(完整word版)C++练习题

C++练习题一、编程题:所有的题需要在主函数中定义对象并测试类的功能。

1、编写一个三角形类,有计算面积,显示面积的功能等。

要求有无参数的和带参数的构造函数。

2、设计一个立方体类Box,它能计算并输出立方体的体积和表面积。

要求有无参数的和带参数的构造函数。

3、定义一个国家基类Country,包含国名、首都、人口等属性,派生出省类Province,增加省会城市、人口数量属性.4、利用Clock类,派生一个带“AM”、“PM"的新时钟类NewClock。

5、建立一个基类Building ,用来存储一座楼房的层数、房间数以及它的总平方英尺数。

建立派生类Housing,继承Building,并存储下面的内容:卧室和浴室的数量,另外,建立派生类Office,继承Building,并存储灭火器和电话的数目。

然后,编制应用程序,建立住宅楼对象和办公楼对象,并输出它们的有关数据.6、设计一个建筑物类Building,由它派生出教学楼Teach-Building和宿舍楼类Dorm—Building,前者包括教学楼编号、层数、教室数、总面积等基本信息,后者包括宿舍楼编号、层数、宿舍数、总面积和容纳学生总人数等基本信息.7、定义一个基类有姓名、性别、年龄,再由基类派生出教师类和学生类,教师类增加工号、职称和工资,学生类增加学号、班级、专业和入学成绩.8、声明一个Shape基类,在此基础上派生出Rectangle和Circle类,二者都有GetArea()函数计算对象的面积.使用Rectangle类创建一个派生类Square。

9、使用虚函数编写程序求球体和圆柱体的体积及表面积.由于球体和圆柱体都可以看作由圆继承而来,所以可以定义圆类circle作为基类。

在circle类中定义一个数据成员radius和两个虚函数area()和volume()。

由circle类派生sphere类和column类。

在派生类中对虚函数area()和volume()重新定义,分别求球体和圆柱体的体积及表面积.二、写出程序结果1、某学校对教师每月工资的计算公式如下:固定工资+课时补贴。

C中类与类定义及具体使用方法

C中类与类定义及具体使用方法

C中类与类定义及具体使用方法在C语言中,没有像C++那样的类的概念。

然而,我们可以通过一些技巧和约定来模拟类的行为。

在本文中,我将向您介绍如何在C语言中定义和使用类。

首先,让我们来看看如何定义一个类。

1.结构体定义:在C语言中,可以使用结构体来表示一个类的成员变量。

结构体是一种将不同类型的数据组合在一起的数据类型。

可以通过为该结构体添加成员来定义类的属性。

```ctypedef structint member_variable;//添加其他成员变量} MyClass;```在上面的例子中,我们定义了一个名为MyClass的结构体,并给它添加了一个名为member_variable的成员变量。

您可以根据需要添加其他成员变量。

2.方法定义:在C语言中,方法通常是作为函数来实现的。

我们可以为每个类定义一组特定的函数,这些函数将操作类的实例。

```cvoid init(MyClass *object)object->member_variable = 0;//初始化其他成员变量void set_member_variable(MyClass *object, int value)object->member_variable = value;int get_member_variable(MyClass *object)return object->member_variable;```在上述例子中,我们定义了三个函数:init、set_member_variable 和get_member_variable。

init函数用于初始化类的实例,set_member_variable函数用于设置成员变量的值,get_member_variable函数用于获取成员变量的值。

接下来,让我们看看如何使用定义的类。

1.实例化对象:要创建类的实例,我们需要声明一个结构体变量,并使用init函数对其进行初始化。

大学C 上机实验题目(版)

大学C 上机实验题目(版)

20XX年复习资料大学复习资料专业:班级:科目老师:日期:实验前言(建议认真阅读)一、上机实验的目的上机实验的目的是提高学生的分析问题、解决问题的能力和动手能力,通过实践环节理解C++语言的基本结构和程序设计方法。

通过亲手编程掌握C++语言编程的方法。

二、实验基本内容为了使学生在上机实验时目标明确,本实验指导书针对课程内容编写了五个实验。

学生在课内机时先完成指导书中标有“*”号的程序,理解所学的知识,在此基础上再编写其他应用程序。

指导书中的五个个实验如下:1. 函数与编译处理2. 指针与引用3. 类和对象4. 继承和派生类5. 多态性三、实验提交(特别提醒)1. 实验题目以附件形式提交,每个附件限一个源程序,附件以实验编号-题号-自己学号.cpp命名;如学号为20XXXX20XXXX20XXXX34的同学提交实验1的第5题,则附件命名方式为:1-5-20XXXX20XXXX20XXXX34.cpp,错误提交的将视为未提交。

2. 提交时间定为该次实验课的一周内,过期不再接收。

四、评分和作弊处理1. 要求提交实验题总数为6题(带“*”号),占期末总评成绩的20XX%;2. 存在抄袭和被抄袭的作业,无论抄袭与被抄袭者,本门课程平时成绩以零分记。

存在两次及两次以上抄袭和被抄袭者,本门课程以不及格记。

五、实验课要求(重点强调)1. 严禁QQ、MSN等即时软件工具聊天;2. 严紧接听手机、发送短信;3. 严紧玩游戏。

实验1 函数与编译处理一、实验目的1. 掌握函数声明、定义和使用的方法;2. 掌握形参与实参之间的对应关系;3. 掌握函数调用时,形参、实参之间的“值传递”和“引用传递”的区别;4. 掌握函数递归调用的方法;5. 掌握全局变量、局部变量、静态变量的使用方法;6. 掌握文件包含的使用方法。

二、实验内容1. 定义两个函数swap1和swap2,目的是实现两个整数的次序交换,其中swap1的参数是传递值参数,swap2的参数是引用参数,在程序中分别调用这两个函数,其输出结果如下所示:初始值:x=1,y=2调用swap1后的结果:x=1 y=2调用swap2后的结果:x=2 y=12. 编写一个函数,用来计算从键盘上输入的整数的阶乘。

Visual C++ 6.0实验五类和对象、继承和派生

Visual C++ 6.0实验五类和对象、继承和派生

上海电力学院实验报告课程名称Visual C++ 实验项目类和对象、继承和派生姓名储昊学号20132234 班级2013112 专业通信工程同组人姓名指导教师姓名实验日期实验内容程序Ex_Class:定义一个人员类CPerson,包括的数据成员有姓名、编号、性别和用于输入/输出的成员函数。

在此基础上派生出学生类Cstudent(增加成绩)和教师类Cteacher(增加教龄),并实现对学生和教师信息的输入/输出。

编写一个完整的测试程序,并将Ex_Class 所有的类定义保存在Ex_Class.h中,将类的成员函数实现代码保存在Ex_Class.cpp中。

实验准备和说明(1)在学习完第2章的“继承和派生”内容之后进行本次试验。

(2)编写本次上机所需要的程序。

实验步骤1.创建工作文件夹打开计算机,在“D:\Visual C++程序\LiMing\5”文件夹中创建一个新的子文件夹“5”。

2.输入程序Ex_Class.h(1)启动Visual C++6.0。

(2)单击标准工具栏上的“New Test File”按钮,在新打开的文档窗口中输入下列程序代码:#include<iostream.h>#include<string.h>class CPerson{public:CPerson(){strcpy(pName,"");strcpy(pID,"");}CPerson(char*name,char*id,bool isman=1){Input(name,id,isman);}void Input(char*name,char*id,bool isman) {setName(name);setID(id);setSex(isman);}void Output(){cout<<"姓名:"<<pName<<endl;cout<<"编号:"<<pID<<endl;char*str=bMan?"男":"女";cout<<"性别:"<<str<<endl;}public://姓名属性操作char*getName()const{return(char*)pName;}void setName(char*name){int n=strlen(name);strncpy(pName,name,n);pName[n]='\0';}//编号属性操作char*getID()const{return(char*)pID;}void setID(char*id){int n=strlen(id);strncpy(pID,id,n);pID[n]='\0';}//性别属性操作bool getSex(){return bMan;}void setSex(bool isman){bMan=isman;}private:char pName[20];char pID[20];bool bMan;};class CStudent:public CPerson{public:CStudent(char*name,char*id,bool isman=1);~CStudent(){}void InputScore(double score1,double score2,double score3);void Print();CPerson student;private:double dbScore[3];};class CTeacher:public CPerson{public:CTeacher(char*name,char*id,bool isman=1,int years=10);~CTeacher(){}void Print();private:int nTeachYears;};(3)单击标准工具栏上的“Save”按钮,弹出“保存为”文件对话框。

VC++实验指导书

VC++实验指导书

Visual C++程序设计实验指导书实验1 认识Visual C++6.05中文版开发环境实验内容(1)熟悉VisualC++6。

05的开发环境。

(2)操作工具栏和项目工作区窗口。

(3)用应用程序向导创建一个控制台应用项目Ex_Hello。

(4)输入并执行一个新的C++程序Ex_Simple.实验准备和说明(1)建议在本教材第一次上课时进行本次实验。

(2)熟悉Windows 2000或XP操作系统的环境和基本操作。

(3)熟悉实验报告的书写格式,这里给出一下建议:实验报告采用A4纸,封面一般包括实验目次.实验题目,班级,姓名,日前和机构名称.报告内容一般包括实验目的和要求。

实验步骤,实验思考和总结。

需要指出的是,实验步骤不是书本内容的重复,而是自己结合实验内容进行探索的过程,教师也可根据具体情况提出新的实验报告格式和新的要求.(4)阅读以下关于VisualC++的说明:Visual C++是Microsoft公司推出的目前使用极为广泛的基于WINDOUWS平台的可视化编程环境。

是在以往的版本不断更新的基础上形成的,其功能强大,灵活性好,完全可以扩展以及具有强有力的Internet支持,在各种c++语言开发工具中脱颖而出,成为目前最为流行的C++语言集成开发环境。

Visual C++6。

0分为标准版,企业版和专业版3种,但其基本功能是相同。

Visual C++6。

5中文版是在Visual C++6。

0基础上进行汉化的以一个版本,本书以此版本作为编程环境。

为统一起见,我们仍称之为Visual C++6.0。

实验步骤1。

打开计算机,启动windouws2000操作系统2。

建工作文件夹3。

启动Visual C++6.04。

创建一个控制台应用项目5。

认识开发环境界面6。

认识工具栏7。

工具栏的显示和隐藏8.工具栏的浮动与停泊9。

项目工作区窗口10。

修改代码,编译运行11。

输入一个新的C++程序12。

修正语法错误13.退出Visual C++6。

C++_II_练习题(2)

C++_II_练习题(2)

C++ II 练习题(2)一.单项选择题(每题2分,共20分)1.在C++中,有关类和对象正确说法是( A )。

A.对象是类的一个实例 B.对象是类的存储空间C.一个类只能有一个对象 D.类是程序包,对象是存储空间2.在类定义中,称为接口的成员是( C )。

A. 所有类成员B. private或protected的类成员C. public的类成员D. public或private的类成员3. 一个类的友员函数能够通过( D )访问该类的所有成员。

A.静态数据 B.析构造函数 C.this指针 D.类对象参数4. 下面描述错误的是( B )。

A.自定义构造函数应该是公有成员函数 B.构造函数可以是虚函数C.构造函数在建立对象时自动调用执行 D.构造函数可以重载5. 在类的继承关系中,基类的(B)成员在派生类中可见。

A. 所有B. public和protectedC. 只有publicD. 只有protected6.设B类是A类的派生类,有说明语句A a, *ap;B b, *bp;则以下正确语句是(C)。

A. a=b;B. b=a;C. ap=&b;D. bp=&a;7.C++中,以下( D )语法形式不属于运行时的多态。

A. 根据if语句的求值决定程序流程B. 根据基类指针指向对象调用成员函数C. 根据switch语句的求值决定程序流程D. 根据参数个数、类型调用重载函数8. 假设对A类定义一个重载“+”号运算符的成员函数,以便实现两个A类对象的加法,并返回相加结果,则该成员函数的函数原型为( B )。

A.A operator +( const A &A1, const A &A2 ); B.A A:: operator +( const A &A2 );C.A::operator +( A &A2 ); D.A A::operator +( );9. 一个类模板定义了静态数据成员,则( A )。

《面向对象程序设计》实验指导书 (1-6个实验,含参考代码)要点

面向对象程序设计实验指导书(适用:电子信息11级)彭召意陶立新编写计算机与通信学院2014.9目录实验一 C++基础的应用 (1)实验二类和对象的应用 (3)实验三类的构造函数、析构函数的应用 (4)实验四友员和运算符重载 (5)实验五类的继承与派生 (6)实验六类的多态性与虚函数 (7)附录:各实验的程序代码 (8)实验一 C++基础的应用(实验课时:2 实验性质:设计)实验名称: C++基础的应用实验目的: (1)进一步学习VC++6.0开发环境及程序调试方法。

(2)练习C++函数的定义及使用;(3)练习C++数组的定义及使用;(4)练习C++指针的定义及使用;(5)练习C++结构体的定义及使用;(6)练习多文件的程序的编译和运行方法;实验设备:(1)硬件:个人微机(配置不低于:CPU为P4,主频1.6G,内存256MB,硬盘40GB);(2)软件:操作系统为WindowsXP(或2000、server2003等),工具软件为Visual C++6.0。

实验内容: (1)熟悉Visual C++6.0编译系统的常用功能,特别是debug调试功能;(2)编程1:编写一个程序c1.cpp,用来求2个或3个整数的最大数。

要求:用重载函数的方法来求最大数;函数原型:int max( int a, int b) 和int max( int a, int b,int c)。

(3)编程2:编写一个程序c2.cpp,求:a!+ b! + c!的值。

要求:使用递归函数。

主程序和函数分开到两个源程序文件中,分别进行编译后,再运行;(4)编程3:有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号;(5)编程4:建立一个动态链表并进行输出和删除管理。

链表的每个节点为学生信息,包括:学号,姓名,性别,下一学生信息的指针。

程序的工作:(a)建立三个学生信息的节点,然后顺序输出该三个学生信息;(b)删除中间的节点,再顺序输出学生信息。

面向对象程序设计课程设计

面向对象程序设计课程设计本课程设计是在学习面向对象程序设计之后的实践教学环节。

该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。

要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。

学生通过课程设计在下述各方面得到锻炼:1、能根据实际问题的具体情况,结合面向对象的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。

2、提高程序设计和调试能力。

学生通过上机实习,验证自己设计的算法和程序的正确性。

学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。

课程设计内容1、了解并掌握中小型综合应用程序的一般设计方法,具备初步的独立分析和设计能力;2、初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3、提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4、训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风;5、课题的代码要求达到一定工作量,并具有一定的深度和难度;6、根据课题程序的分析和设计过程,撰写课程设计报告。

课程设计要求课程设计结束应提交程序源代码、课程设计报告的电子稿和打印稿,以作为整个课程设计评分的书面依据和存档材料。

课程设计报告以规定的格式书写、打印并装订,排版及图、表要清楚、工整。

课程设计报告的内容如下:1.封面:题目、班级、学号、姓名、指导教师和完成日期。

2.正文包括以下内容:1、根据实现的功能,划分出合理的对象类,明确对象类间的关系。

2、为每个对象类设计正确的域和方法,为每个方法设计合理的方法体。

同时,为对象类及内部的域和方法运用正确的修饰符,如访问控制符等。

3、编程简练,程序功能齐全,能正确运行。

4、说明书、流程图要清楚,规范。

5、总结和体会:程序编写和调试过程中遇到了哪些问题,是如何解决的,以及对设计与实现过程的回顾和分析;经验和体会等。

C++定义与实现

习C++ -> 类(Classes)的定义与实现一、"类" 的介绍在C++中, 用 "类" 来描述 "对象", 所谓的"对象"是指现实世界中的一切事物。

那么类就可以看做是对相似事物的抽象, 找到这些不同事物间的共同点, 如自行车和摩托车, 首先他们都属于"对象", 并且具有一定得相同点, 和一些不同点, 相同点如他们都有质量、都有两个轮子, 都是属于交通工具等。

"都有质量"、"两个轮子"属于这个对象的属性, 而"都能够当做交通工具"属于该对象具有的行为, 也称方法。

类是属于用户自定义的数据类型, 并且该类型的数据具有一定的行为能力, 也就是类中说描述的方法。

通常来说, 一个类的定义包含两部分的内容, 一是该类的属性, 另一部分是它所拥有的方法。

以 "人类" 这个类来说, 每个人都有自己的姓名、年龄、出生日期、体重等, 为人类的属性部分, 此外, 人能够吃饭、睡觉、行走、说话等属于人类所具有的行为。

上面举例中所描述的 "人" 类仅仅是具有人这种对象的最基础的一些属性和行为, 可以称之为人的"基类"。

再说说一些具有一些职业的人, 例如学生, 一个学生还具有"基类"中所没有的属性, 如学校、班级、学号; 也可以具有基类所不具有的行为, 如每天需要去上课, 需要考试等。

学生类可以看做是基类的一个扩展, 因为他具有基类的所有属性和行为, 并且在此基础上增加了一些基类所没有的属性和行为, 像"学生"这样的类称为"人类"这个基类的"派生类"或者"子类"。

在学生的基础上海可以进一步的扩展出其他更高级的类, 如"研究生"类。

python编程练习题

Python编程练习题一、基础语法篇1. 编写一个Python程序,输出“Hello, World!”。

2. 计算并输出1+2+3++100的和。

3. 编写一个程序,交换两个变量的值。

4. 输出当前日期和时间。

5. 编写一个判断闰年的程序,输入年份,输出是否为闰年。

6. 输出九九乘法表。

7. 编写一个程序,计算并输出一个整数列表的平均值。

8. 将字符串中的所有小写字母转换为大写字母。

9. 编写一个程序,统计字符串中字母、数字和其他字符的数量。

10. 输出斐波那契数列的前20项。

二、函数与模块篇1. 编写一个函数,计算两个数的最大公约数。

2. 编写一个函数,实现字符串的反转。

3. 编写一个函数,判断一个数是否为素数。

4. 导入math模块,计算并输出e的平方根。

5. 编写一个模块,实现计算圆的面积和周长。

6. 定义一个装饰器,统计函数运行时间。

7. 编写一个器,实现斐波那契数列的。

8. 使用lambda表达式编写一个求两个数最大值的函数。

9. 编写一个递归函数,计算阶乘。

10. 定义一个类,实现一个简单的计算器功能(加、减、乘、除)。

三、列表、元组与字典篇1. 创建一个包含110的整数列表。

2. 输出列表中的最大值和最小值。

3. 将列表中的每个元素乘以2。

4. 删除列表中的偶数。

5. 输出列表中的元素及其索引。

6. 编写一个程序,实现列表的冒泡排序。

7. 创建一个元组,包含姓名、年龄和性别信息。

8. 输出元组中的第二个元素。

9. 将元组转换为列表。

10. 编写一个程序,统计字符串中每个字母的出现次数(使用字典)。

四、文件操作篇1. 编写一个程序,读取文件内容并输出。

2. 将一段文字写入到文件中。

4. 读取一个文本文件,统计其中的单词数量。

5. 编写一个程序,复制一个文件到指定目录。

6. 读取一个CSV文件,并输出其中的数据。

7. 将一个列表写入到JSON文件中。

8. 读取一个JSON文件,并转换为Python对象。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档