设计一个学生类,包含学生学号,姓名,课程,成绩等基本信息,计算学生的平均成绩。

顺便多写了几个功能,实现结果如下图

#include<iostream>
using namespace std;
int add=0;//计有同一个课程的人数,用来算平均数
int a=0;//学生个数class Student{
private:long Snumber;//学号char *name;//姓名char *course;//课程int score;//成绩public:Student(long Snumber=0,char *name=NULL,char *course=NULL,int score=0){ //构造函数this->Snumber=Snumber,this->name=name,this->course=course,this->score=score;}~Student(){} //析构函数void setstudent(){  //录入学生信息cout<<"请输入学生姓名:"<<endl;name=(char *)malloc(20*sizeof(char));cin>>name;cout<<"请输入学生学号:"<<endl;cin>>Snumber;cout<<"请输入课程名"<<endl;course=(char *)malloc(20*sizeof(char));cin>>course;cout<<"请输入成绩"<<endl;cin>>score;}int findscore(char *cou) {//寻找同一个课程的人的成绩int judge1=0;int p;if(strlen(course)==strlen(cou)){for(p=0;p<strlen(course);p++){if(*(course+p)==*(cou+p))  judge1=judge1+1;}}if(judge1==p)  {add=add+1;  return score;}//返回成绩,计数加一else return 0;//若该同学没有这门课,则返回零}void findstudent(char *n){//按姓名查找这名同学int judge2=0;int q;if(strlen(name)==strlen(n)){for(q=0;q<strlen(name);q++){if(*(name+q)==*(n+q))  judge2=judge2+1;}}if(judge2==q) cout<<"姓名:"<<name<<"   学号:"<<Snumber<<"   课程:"<<course<<"   成绩:"<<score<<endl;//返回其信息}long getSnumber(){return Snumber;}//返回学号char *getname(){return name;}//返回姓名char *getcourse(){return course;}//返回课程int getscore(){return score;}//返回成绩};int main(){int c,e;//功能选择char *N1;//姓名输入float sum=0;//分数和int b=0;//每个人的分数char *s1;//课程名输入Student stu[100];//类的对象的数组for(int d=0;d<100;d++){cout<<"请选择服务:1-录入学生成绩;2-查询学生成绩;3-查询课程平均数;4-显示所有学生:";//功能选择cin>>c;switch(c){case 1:{for(int i=0;i<=100;i++){stu[i].setstudent();//学生录入a=a+1;//学生个数加一cout<<"'1'继续,'2'返回"<<endl;//是否继续录入cin>>e;if(e==2){break;}else if(e==1){continue;}else if(e!=1&&e!=2)  {cout<<"输入无效"<<endl;   break;}}break;}case 2:{cout<<"请输入需要查询的学生姓名:";N1=(char *)malloc(20*sizeof(char));cin>>N1;for(int i=0;i<a;i++){stu[i].findstudent(N1);}break;}case 3:{cout<<"请输入需要平均分数的课程名:";s1=(char *)malloc(20*sizeof(char));cin>>s1;for(int i=0;i<a;i++){b=stu[i].findscore(s1);sum=sum+b;}cout<<sum<<endl;cout<<add<<endl;cout<<"平均数为:"<<sum/add<<endl;add=0;sum=0;break;}case 4:{for(int i=0;i<a;i++){cout<<"姓名:"<<stu[i].getname()<<"   学号:"<<stu[i].getSnumber()<<"   课程:"<<stu[i].getcourse()<<"   成绩:"<<stu[i].getscore()<<endl;}break;}}}return 0;
}

C++Student类相关推荐

  1. Python---已知Person类,继承Person类生成Teacher类(增加参数:科目)和Student类(增加参数:专业)。

    题目:已知Person类,继承Person类生成Teacher类(增加参数:科目)和Student类(增加参数:专业). 已知Person类如下: class Person(object):# Per ...

  2. Day14作业 三、编程题 写一个Student类,属性:名字,年龄,分数,班级 (注意分包)

    三.编程题 写一个Student类,属性:名字,年龄,分数,班级 (注意分包) 写一个测试类:创建一个集合,里面装6个学生(有三个班级class01,class02,class03) 例如:list. ...

  3. python student类_9.Python类和对象

    9.1 类(class) 面向对象最重要的概念就是类(Class)和实例(Instance),类是抽象的模板 以Student类为例,在Python中,定义类是通过class关键字 class后面紧接 ...

  4. 创建一个Student 类 包含属性有 序号 姓名 年龄 生日 提供对应的setter/getter 创建对象,完成赋值(setter赋值和构造方法赋值) 在控制台输出学生对象的信息

    public class Student {/*1 创建一个Student 类 包含属性有 序号 姓名 年龄 生日 提供对应的setter/getter创建对象,完成赋值(setter赋值和构造方法赋 ...

  5. (C++实例)实现people类、student类,teacher类、graduate类、助教类继承和派生并测试

    1.问题描述 共有以下 4小点 的类继承.派生关系: (1)从people(人员)类派生出student(学生)类,添加属性:班号char classNo[7]; (2)从people类派生出teac ...

  6. 建立student类,在此类中所有数据定义为私有数据变量。并建立一个student对象数组,用附件中的数据进行初始化。计算每个学生三门课程的总分和平均成绩(C++实验)

    一.实验目的: (1)掌握类的创建,成员数据和成员函数的构建. (2)掌握构造函数的重载. (3)掌握静态成员函数和静态成员函数的使用. 二.实验内容和要求: (1)按照附件"成绩表.txt ...

  7. .设计一个Student类,该类中包括学生的姓名和成绩。创建Student类的5个对象,如下所示: 姓名 成绩 刘德华 85 张学友 100 刘杰 65 章子怡 58 周迅 76 将以上5个对象

    .设计一个Student类,该类中包括学生的姓名和成绩.创建Student类的5个对象,如下所示: 姓名 成绩 刘德华 85 张学友 100 刘杰 65 章子怡 58 周迅 76 将以上5个对象放入A ...

  8. 定义Student类

    1 问题 定义一个Student类,属性有学号,姓名,年龄,性别,语文成绩,数学成绩,英语成绩. 2 方法 创建两个学生对象,并给属性赋值和调用方法学习,考试(打印输出学习,考试即可) public ...

  9. python定义一个student类_从零开始学Python-Day38-类和实例

    原标题:从零开始学Python-Day38-类和实例 面向对象编程中最重要的概念就是类(Class)和实例(Instance),其中"类"是抽象的模板,"实例" ...

  10. python定义一个student类、有下面的_Python基础(小白教程)之面向对象

    原标题:Python基础(小白教程)之面向对象 Python的类 > 在这门语言中,类使用 class 语句来定义.在类中包含了一系列语句,比如赋值语句,def 定义函数等.从面向对象的角度看, ...

最新文章

  1. AMD芯片支持oracle数据库,oracle 11gR2 amdu 工具可以直接使用
  2. 央视曝光紫砂锅名单_大家看今天中午《每周质量报告》没,美的牌 紫砂锅含有剧毒。家里有这牌子...
  3. VC++实现混合静态分裂视窗的方法
  4. Qt多线程-QThreadPool线程池与QRunnable
  5. VS2010新建Web网站与新建Web应用程序的区别
  6. 情人节海报psd分层模板|好的图层,任你选择
  7. android端和javaWeb端实现Mqtt消息推送
  8. LeetCode: Word Break II [140]
  9. Linux桌面版横评:一、评测背景
  10. Hbuilder 屏幕放大缩小
  11. 中断占用CPU的时间分析
  12. 笔记本计算机bios设置,笔记本怎么进入bios设置【方法步骤】
  13. js 获得较浅的颜色_了解较少的颜色功能
  14. 数据仓库上云那些事儿
  15. 魔众EDM邮件营销系统 v1.1.0 页面SEO优化,系统升级调整
  16. 格拉姆--施密特(Gram-Schmidt)正交化方法笔记
  17. python实现秒表计时器
  18. 销售人员如何寻找客户?
  19. 让我来问问你,Python不能做什么?
  20. 博途软件在安装flexible时无法选择安装的的问题

热门文章

  1. echarts双向柱状图效果实现
  2. Vue生成带图片logo以及文字的二维码组件,可下载二维码为图片,附组件调用代码--核心qrcode
  3. 【对讲机的那点事】酒店通信数字调度管理系统的搭建
  4. 2020ICPC·小米 网络选拔赛第一场
  5. 商品sku 和批量编辑 js算法
  6. 前端之路:bootstrap 好看漂亮的按钮设计。
  7. 软件比硬件简单多了?
  8. 记一篇工作中遇到的问题及解决问题的经验感受.
  9. 基于SSM花卉商城设计与实现
  10. Pytorch训练Bilinear CNN模型笔记