C++Student类
设计一个学生类,包含学生学号,姓名,课程,成绩等基本信息,计算学生的平均成绩。
顺便多写了几个功能,实现结果如下图
#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类相关推荐
- Python---已知Person类,继承Person类生成Teacher类(增加参数:科目)和Student类(增加参数:专业)。
题目:已知Person类,继承Person类生成Teacher类(增加参数:科目)和Student类(增加参数:专业). 已知Person类如下: class Person(object):# Per ...
- Day14作业 三、编程题 写一个Student类,属性:名字,年龄,分数,班级 (注意分包)
三.编程题 写一个Student类,属性:名字,年龄,分数,班级 (注意分包) 写一个测试类:创建一个集合,里面装6个学生(有三个班级class01,class02,class03) 例如:list. ...
- python student类_9.Python类和对象
9.1 类(class) 面向对象最重要的概念就是类(Class)和实例(Instance),类是抽象的模板 以Student类为例,在Python中,定义类是通过class关键字 class后面紧接 ...
- 创建一个Student 类 包含属性有 序号 姓名 年龄 生日 提供对应的setter/getter 创建对象,完成赋值(setter赋值和构造方法赋值) 在控制台输出学生对象的信息
public class Student {/*1 创建一个Student 类 包含属性有 序号 姓名 年龄 生日 提供对应的setter/getter创建对象,完成赋值(setter赋值和构造方法赋 ...
- (C++实例)实现people类、student类,teacher类、graduate类、助教类继承和派生并测试
1.问题描述 共有以下 4小点 的类继承.派生关系: (1)从people(人员)类派生出student(学生)类,添加属性:班号char classNo[7]; (2)从people类派生出teac ...
- 建立student类,在此类中所有数据定义为私有数据变量。并建立一个student对象数组,用附件中的数据进行初始化。计算每个学生三门课程的总分和平均成绩(C++实验)
一.实验目的: (1)掌握类的创建,成员数据和成员函数的构建. (2)掌握构造函数的重载. (3)掌握静态成员函数和静态成员函数的使用. 二.实验内容和要求: (1)按照附件"成绩表.txt ...
- .设计一个Student类,该类中包括学生的姓名和成绩。创建Student类的5个对象,如下所示: 姓名 成绩 刘德华 85 张学友 100 刘杰 65 章子怡 58 周迅 76 将以上5个对象
.设计一个Student类,该类中包括学生的姓名和成绩.创建Student类的5个对象,如下所示: 姓名 成绩 刘德华 85 张学友 100 刘杰 65 章子怡 58 周迅 76 将以上5个对象放入A ...
- 定义Student类
1 问题 定义一个Student类,属性有学号,姓名,年龄,性别,语文成绩,数学成绩,英语成绩. 2 方法 创建两个学生对象,并给属性赋值和调用方法学习,考试(打印输出学习,考试即可) public ...
- python定义一个student类_从零开始学Python-Day38-类和实例
原标题:从零开始学Python-Day38-类和实例 面向对象编程中最重要的概念就是类(Class)和实例(Instance),其中"类"是抽象的模板,"实例" ...
- python定义一个student类、有下面的_Python基础(小白教程)之面向对象
原标题:Python基础(小白教程)之面向对象 Python的类 > 在这门语言中,类使用 class 语句来定义.在类中包含了一系列语句,比如赋值语句,def 定义函数等.从面向对象的角度看, ...
最新文章
- AMD芯片支持oracle数据库,oracle 11gR2 amdu 工具可以直接使用
- 央视曝光紫砂锅名单_大家看今天中午《每周质量报告》没,美的牌 紫砂锅含有剧毒。家里有这牌子...
- VC++实现混合静态分裂视窗的方法
- Qt多线程-QThreadPool线程池与QRunnable
- VS2010新建Web网站与新建Web应用程序的区别
- 情人节海报psd分层模板|好的图层,任你选择
- android端和javaWeb端实现Mqtt消息推送
- LeetCode: Word Break II [140]
- Linux桌面版横评:一、评测背景
- Hbuilder 屏幕放大缩小
- 中断占用CPU的时间分析
- 笔记本计算机bios设置,笔记本怎么进入bios设置【方法步骤】
- js 获得较浅的颜色_了解较少的颜色功能
- 数据仓库上云那些事儿
- 魔众EDM邮件营销系统 v1.1.0 页面SEO优化,系统升级调整
- 格拉姆--施密特(Gram-Schmidt)正交化方法笔记
- python实现秒表计时器
- 销售人员如何寻找客户?
- 让我来问问你,Python不能做什么?
- 博途软件在安装flexible时无法选择安装的的问题