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