C++ 第4次上机实验报告-学生类


一、问题及代码:

/*
* 文件名称: 学生类-输出学生信息、班长信息
* 作    者:  宋 健
* 完成日期: 2016 年 4  月 22 日 
* 版 本 号:v1.0 
* 对任务及求解方法的描述部分: 输出学生信息、班长信息,运用声明好的类及测试函数,完成类中成员函数的定义,使用基类、派生类构造函数;
* 输入描述:输入信息
* 问题描述: 输出学生信息、班长信息
* 程序输出: 使用基类、派生类构造函数输出学生信息、班长信息  
* 问题分析: 
* 算法设计: 类的定义及基类、派生类构造函数
*/  
#include <iostream>
#include <string>
using namespace std;
class Stu   //声明基类
{
public:
    Stu(int n, string nam );  //基类构造函数
    void display( );          //成员函数,输出基类数据成员
protected:        //(*)访问权限为保护型的数据成员
    int num;      //学生学号
    string name;  //学生姓名
};
Stu::Stu(int n, string nam )
{
	name=nam;
	num=n;
	
};
void Stu::display()
{
	cout<<"姓名"<<name<<endl;
	cout<<"学号"<<num<<endl;
};

class StuDetail: public Stu              //声明派生类StuDetail
{
public:
    //学生nam,学号n,a岁,家住ad,他的班长是nam1,学号n1
    StuDetail(int n, string nam,int a, string ad,int n1, string nam1); //派生类构造函数
    void show( ); //成员函数,输出学生的信息
    void show_monitor( );    //成员函数,输出班长信息
private:
    Stu monitor;   //学生所在班的班长,班长是学生,是Stu类的成员
    int age;       //学生年龄
    string addr;   //学生的住址
};

StuDetail::StuDetail(int n, string nam,int a, string ad,int n1, string nam1):Stu(n,nam),monitor(n1,nam1)
{
	age=a;
	addr=ad;
};
void StuDetail::show()
{
	cout<<"学生信息:"<<endl;
	cout<<"学号"<<num<<endl;
	cout<<"姓名"<<name<<endl;
	cout<<"年龄"<<age<<endl;
	cout<<"住址"<<addr<<endl;
};
void  StuDetail::show_monitor()
{
	cout<<endl;
	cout<<"班长信息:"<<endl;
	monitor.display();
}

int main( )
{
  //学生张三,10010号,19岁,家住江西南昌,他的班长是李四,学号10001  
    StuDetail s(10010,"张三",19,"江西南昌",10001,"李四");
	s.show( );                       //输出学生信息
    s.show_monitor();                //输出班长信息
    return 0;
}

二、运行结果;



三、心得体会

只有多练才能熟练运用基类函数、派生函数;


四、知识点总结

派生类构造函数的格式:

派生类名::派生类名(参数总表):基类名(参数表),对象成员名(对象成员参数表)

{

新增成员初始化语句;

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
题目: 为某高校的学籍和成绩管理设计一系统。要求建立的数据有: (1)学生类,包含班级号、学号、姓名、专业等成员; (2)学生成绩类,包含班级号、学号,课程名,成绩等成员。 完成下列功能:首先输入学生数据及成绩数据,再根据提示分别实现查找功能。其中:  函数 Xslr 负责学生数据录入;  函数 Cjlr 负责成绩数据录入;  函数 Look1 负责根据姓名查找学生的基本信息和成绩信息;  函数 Look2 负责根据班级列出学生的基本信息;  函数 Dayin1 负责依据班级输出满足条件的学生的基本情况;  函数 Dayin2 负责输出某一同学的成绩单。   题目: 设计一个电子通信录。其中包括如下类: (1)通信地址类 addr。包含公有数据:  成员 char post[10]; //邮编  成员 char ad[40]; //家庭地址  构造函数 addr(char p[10]="",char a[40]="");  成员函数 void setadd(addr a); //用 a 为当前对象赋值 (2)出生年月类 birth。包含公有数据:  成员 int year; //年份  成员 int month; //月份  成员 int day; //日期  构造函数 birth(int y=0,int m=0,int d=0);  成员函数 void setbir(birth b); //用 b 为当前对象赋值 (3)类 friends。包含数据:  私有成员 int number; //序号  私有成员 char name[20]; //姓名  私有成员 char sex; //性别  私有成员 char telephone[13]; //联系电话  公有成员 birth bir; //出生年月  公有成员 addr add; //通信地址  公有构造函数 friends(int nu=0,char n[20]=" ",char s=' ',int y=0,int m=0,int d=0,char p[10]=" ",char a[40]=" ",char t[13]=" ");  公有成员函数 void setfri(int nu,char n[20],char s,birth b,addr a,char t[13]); //为 当前对象赋值  公有成员函数 friends input(friends &bb); //为对象 bb 输出数据  公有成员函数 int search(friends aa[100],char n[20]); //在 aa 中查找姓名为 n 的对象  公有成员函数 void show(friends aa); //输出对象 aa  公有成员函数 void delet(friends aa[100],int k); //在 aa 中删除下标为 k 的元素 (4)在主函数中完成主菜单的设计,并根据输入值完成所需操作。  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值