创建一个学生信息的类

目录

类的相关知识

类的一个实例


类的相关知识

  类的结构包括私有成员,公有成员,和保护成员。其中共有成员能够被外界直接访问,起着接口的作用,私有成员外界不能够直接访问,只有通过公有成员里的功能函数进行访问,使得成员被隐藏起来。一个实体的属性(数据)往往被定义为私有成员,方法(函数)被定义为公有成员,公有成员中必须有一个修改或者是定义数据的函数。一般在类体外,只有共有成员才可以采用".'运算符访问,私有成员,保护成员都不能采用"."运算符访问。可以进行对象之间的赋值,两个对象的所有属性都是相同的。

每一个类的成员函数都包含一个指向本类对象的指针

指针名为this

该指针指向本类对象的起始地

类的一个实例

​
#include<iostream>
#include<string.h>
#include<vector>
using namespace std;
class Info {
	private :
		long long int ID;
		char name[10];
		float program ;
		float network;
		float database;
	public:
		void initset(long long int a,char b[10],float c ,float d,float e){
			ID=a;
			strcpy(name,b);
			program=c;
			network=d;
			database=e;
		}
		float Getprogram();
		float Getnetwork();
		float Getdatabase();
		char Getname();
		float Getsum();
		void Sort();
		void Getoutstand(); 
		void print(){
			printf("Id:%lld\t姓名:%s\tprogram:%.2f\tnetwork:%.2f\tdatabase:%.2f\t总分%.2f\n",ID,name,program,network,database,network+program+database);
			
		}
	
};
float Info ::Getprogram(){//得到课程设计成绩 
	return program;
} 
char Info::Getname(){//得到姓名 
	return name[10];
}
float Info::Getnetwork(){//得到网络成绩 
	return network;
}
float Info::Getdatabase(){//得到数据库成绩 
	return database;
}
float Info ::Getsum(){//得到总分 
	return program+network+database;
}
void Sort(Info *student ,int n){//按照总分成绩从高到低打印学生的信息 
  Info tmp;
	for(int i=0 ;i<n-1;i++){//冒泡排序法 
		for(int j=0;j<n-i;j++){
			if(student[j].Getsum()<student[j+1].Getsum()){
				tmp=student[j];
				student[j]=student[j+1];
				student[j+1]=tmp;
						}
		}
	} 
	printf("排序后的学生信息为为:\n"); 
	for(int i=0;i<n;i++){//打印 
		student[i].print();
	}
	
}
void Getoutstand(Info *student,int n){
	printf("所有成绩大于等于80的学生信息为:\n");
	for(int i=0;i<n;i++){
		if(student[i].Getdatabase()>=80 && student[i].Getnetwork()>=80 && student[i].Getprogram()>=80){
			student[i].print();
		}
	}
}

int main(){
	printf("请输入录入学生信息的人数:"); 
	int m;//输入学生信息的人数 
	cin>>m;
    Info student[m];
	long long int a[m];//录入信息时用来暂存Id 
    char c[m][10]; //暂存姓名 
	float p[m];//暂存程序设计成绩 
	float n[m];//暂存网络成绩 
	float d[m];//暂存数据库成绩 
	printf("请输入学生的信息:\n");
	printf("ID:\t 姓名:\t program:\t network: \t database: \t\n");
	for(int i=0;i<3;i++){
		cin>>a[i]>>c[i]>>p[i]>>n[i]>>d[i];
		student[i].initset(a[i],c[i],p[i],n[i],d[i]);
	}
	//调用排序函数 
    Sort(student,m);
    //输出所有成绩都大于80的学生信息
	Getoutstand(student,m); 
	return 0;
}

​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值