设计一个 Studnet(学生)类
1、基本信息:学号、姓名、性别、出生日期、年级、班级、院系、专业;
其中:基本信息为 private 属性,成员函数为 public 属性;
2、Student 类有多个构造函数:缺省构造函数、带参数的构造函数、带默认参数的构造
函数
3、基本功能:
1)使用对象数组保存学生对象;
2)可以从键盘输入学生的基本信息;
3)SetInfo(形参表)函数可以修改学生的基本信息函数,例如:班级、专业等;
4)Show()函数显示学生信息;

#include<iostream>
#include<string>
using namespace std;
class Student{public:Student();//缺省构造函数Student(int ,string ,char,int,int,int, int,int,string,string);//带参数构造函数。 Student(int ,string ,char,int,int,int);//默认为同一个年级。班级的人。 void SetInfo(int g,int c,string dep,string spe){grade=g;Class=c;department=dep;specialty=spe;}void Show(Student *p,int n);friend istream& operator >>(istream&,Student&);friend ostream& operator <<(ostream&,Student&);private:int num;string name; char sex;int year;int month;int day;int grade;int Class;//c大写。string department;string specialty;};Student::Student(){num=1000;name="xiaoming" ;sex='f';year=2000;month=1;day=1;grade=2019;Class=3;department="computer";specialty="computer science";
}
Student::Student(int n ,string nam,char s,int y,int m,int d, int g,int c,string dep,string spe){num=n;name=nam; sex=c;year=y;month=m;day=d;grade=g;Class=c;department=dep;specialty=spe;
}
Student::Student(int n ,string nam,char s,int y,int m,int d){num=n;name=nam; sex=s;year=y;month=m;day=d;grade=2019;Class=3;department="computer";specialty="computer science";
}
void Student::Show(Student *p,int n){cout<<"学生的学号、姓名、性别、出生日期、年级、班级、院系、专业为:"<<endl; for(int i=0;i<n;i++){cout<<p[i]<<endl;}
}
istream& operator >>(istream&input,Student&stu){input>>stu.num>>stu.name>>stu.sex>>stu.year>>stu.month>>stu.day;input>>stu.grade>>stu.Class>>stu.department>>stu.specialty;return input;
}
ostream& operator <<(ostream&output,Student&stu){output<<stu.num<<" "<<stu.name<<" "<<stu.sex<<" "<<stu.year<<" "<<stu.month<<" "<<stu.day<<" ";output<<stu.grade<<" "<<stu.Class<<" "<<stu.department<<" "<<stu.specialty;return output;
}
int main(){cout<<"请输入你想输入的学生的个数"<<endl;int n;cin>>n;cout<<endl;//创立学生数组:Student stu[100];for(int i=0;i<n;i++) {cout<<"请输入第"<<i+1<<"个学生的学号、姓名、性别、出生年、月、日、年级、班级、院系、专业;" ; cin>>stu[i] ;cout<<endl;}stu[0].Show(stu,n);//缺省构造函数的使用:cout<<"请输入你想修改的学生的序号,并输入年级、班级、院系、专业,在结尾输入0表示结束。" ;int x;while(cin>>x&&x) {int grade,Class;string dep,spe;cin>>grade>>Class>>dep>>spe;stu[x-1].SetInfo(grade,Class,dep,spe);cout<<"若您还想修改信息,请输入上面展示的学生的序号,然后输入年级、班级、院系、专业,否则输入0结束" <<endl; }cout<<"---------------------------------------------------" <<endl<<endl; stu[0].Show(stu,n);return 0;
}

运行结果:

c++_设计一个 Studnet(学生)类相关推荐

  1. python自定义类模拟三维向量及其运算_设计一个三维向量类,并实现向量的加法、减法以及向量与标量的乘...

    Python 3.4.2代码如下 class Vecter3: def __init__(self, x=0, y=0, z=0): self.X = x self.Y = y self.Z = z ...

  2. python三维向量运算_设计一个三维向量类,并实现向量的加法、减法以及向量与标量的乘...

    Python 3.4.2代码如下 class Vecter3: def __init__(self, x=0, y=0, z=0): self.X = x self.Y = y self.Z = z ...

  3. 设计一个表示学生的类:Student,该类的属性包括name、age、scores(包含语文、数学和英语三科成绩,每科成绩的类型为整数),此外该类还有3个方法。

    设计一个表示学生的类:Student,该类的属性包括name.age.scores(包含语文.数学和英语三科成绩,每科成绩的类型为整数),此外该类还有3个方法. (1)获取学生姓名的方法:get_na ...

  4. 为什么写了value属性 jq赋值value值不显示_为什么 String 要设计成 final,又如何设计一个不可变类呢?...

    前面聊了聊面试必考 String 的坑,具体可以细看<你真的懂 Java 的 String 吗?>,也留下了一个疑问,为什么 String 要被设计成 final 呢?其实,如果你读的认真 ...

  5. 先设计一个基本账户类,再通过继承基本账户类设计一个储蓄账户类,储蓄账户 类中增加密码、地址、最小余额和利率等成员变量,并增加一些银行账户经常用到的成员函数。 要求: (1)类

    先设计一个基本账户类,再通过继承基本账户类设计一个储蓄账户类,储蓄账户 类中增加密码.地址.最小余额和利率等成员变量,并增加一些银行账户经常用到的成员函数. 要求: (1)类中的成员函数具有输入.输出 ...

  6. 定义一个Teacher(教师)类,和一个Student(学生)类

    定义一个Teacher(教师)类,和一个Student(学生)类,二者有一部分数据成员是相同的,例如num(号码),name(姓名),sex(性别).编写程序,将一个Student对象 转换为Teac ...

  7. 设计一个长方形的类,成员的变量有长与宽,成员函数要求周长与面积,然后进行测试。

    设计一个长方形的类,成员的变量有长与宽,成员函数要求周长与面积,然后进行测试. #include using namespace std; class cfx { private: float len ...

  8. 设计一个圆形的类即Circle类。

    题目内容: 设计一个圆形的类即Circle类,具体要求如下: (1) 创建一个圆形的类,即Circle类,添加radius一个成员变量(数据类型为double ),表示圆形的半径: (2) 定义一个有 ...

  9. 设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类、三角形类来继承图形类,并实现上述两个方法

    设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类.长方形类.正方形类.三角形类来继承图形类,并实现上述两个方法 设计抽象类 就要使用abstract关键字,抽象类中的 ...

最新文章

  1. RibbitMQ 大数据分布式下的消息队列思
  2. 当我们在讨论奢侈品行业时,人工智能可以做什么?
  3. 从GitHub中整理出来的15个最受欢迎的Python开源框架,你喜欢哪个
  4. Redis的基本操作二
  5. 如何解决Android SDK无法下载Package的问题(.net)
  6. hive分区用2个字段有何限制_[特性]Hive动态分区功能使用
  7. 什么是PostgreSQL?跟MySQL、Oracle比强在哪?
  8. 信息学奥赛一本通(1002:输出第二个整数)
  9. 链表C++ | 从尾部打印头部(使用栈、递归实现)_3
  10. kuboard使用mysql_基于 Kubernetes 的微服务图形化管理界面 Kuboard
  11. 用VC实现洪水***程序
  12. CAN总线学习总结2——CAN错误及CAN busoff处理机制
  13. js Math.rander的用法
  14. 下载阿里云免费ssl证书
  15. 树莓派的ssh连接配置
  16. JobScheduler用法
  17. 防止表单重复提交方法
  18. 分享5个黑科技APP,都是优秀好资源,手机里没有的可惜了
  19. Linux 基本操作 看完这篇Linux基本的操作就会了
  20. 验证(Verification)与确认(Validation)的区别

热门文章

  1. 飞凌嵌入式-基于国产A40i核心板-医用呼吸机解决方案
  2. linux中mv、cp、rm分别是什么意思
  3. apple 密码 seeion has time out 无法再本机上重设密码
  4. 已解决 vmware 虚拟机安装后没有虚拟网卡问题
  5. 使用思博伦卫星导航模拟器GSS7000方法
  6. 构建器builder模式 + lombok @Builder的介绍及使用
  7. (7,4)汉明码编码译码及计算最小码距——基于MATLAB编程
  8. 多边形最小外接矩形 旋转卡壳
  9. Oracle PLSQL 读文件与写文件
  10. fuchsia代码管理