定义学生类: 定义教师类:

定义学生类:
(1)有平时(int)、期末成绩(int)、组成比例(float)三个私有数据成员;
(2)有成员函数setProp,根据键盘输入,设置组成比例,取值在0到1之间,比如0.4,则表示成绩=平时40%+期末60%;
(3)有计算并输出成绩函数compScore,根据组成比例计算并输出成绩。
定义教师类:
(1)有私有数据成员stu,是学生对象指针;
(2)有构造函数,带整型参数,以其值为大小创建学生对象数组,用stu指向;
(3)有成员函数assign,参数为数组下标,用于为一个学生对象设置平时、期末成绩。
(4)有成员函数show,参数为数组下标,用于调用一个学生对象的compScore函数。
main函数中:
(1)在不定义学生对象的情况下,调用学生类的setProp函数,键盘输入并设置组成比例;
(2)输入学生数,由此定义教师对象。
(3)调用assign,为数组中每个学生对象给平时、期末成绩,两个成绩由键盘输入;
(4)调用compScore,逐个计算并输出每个学生的成绩,以空格隔开。
举例1:
输入:0.4 3 70 90 60 80 55 88
输出:82 72 74.8
举例2:
输入:0.5 4 70 90 60 80 55 88 66 77
输出:80 70 71.5 71.5

#include <iostream>
using namespace std;
class Student
{
 private:
 	int a;
 	int b;
 	static float c;
 public:
 	static void setProp()              //访问静态成员 
	 {
	 	cin>>c;
	 }
	void comScore(int no)             //计算成绩并输出 
	{
		float g;
		g=a*c+b*(1-c);
		cout<<g<<" ";
	}
	void getter(int x,int y)         //访问成绩函数 
	{
		a=x;
		b=y;
	}
};
class Teacher
{
private:
	Student* stu;
public:
	Teacher(int num)       //建立学生列表 
	{
		stu=new Student[num];
	}
    void assign(int no)     //设置成绩 
	{
		int x,y;
		cin>>x>>y;
		this->stu[no].getter(x,y);
	}
	void show(int no)
	{
		stu[no].comScore(no);
	} 
	~Teacher()
	{
	  delete []stu;
	}
	
};
float Student::c=0;                  //静态成员访问需要初始化 
int main(){
	Student::setProp();              //输入成绩比例 
	int num,i;
	cin>>num;
	Teacher T(num);                  //建立老师类对象 
	for(i=0;i<num;i++){
	   T.assign(i);
	}
	for(i=0;i<num;i++){
		T.show(i);
	}
	return 0;
}

初学者的记录,双向的友元函数不太会用,希望得到指点

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来为您编写 Java 的学生类和教师类的定义学生定义: ```java public class Student { // 成员变量 private String name; private int age; private String gender; private String id; // 构造方法 public Student(String name, int age, String gender, String id) { this.name = name; this.age = age; this.gender = gender; this.id = id; } // 成员方法 public void study() { System.out.println(name + "正在学习"); } public void rest() { System.out.println(name + "正在休息"); } // getter 和 setter 方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getId() { return id; } public void setId(String id) { this.id = id; } } ``` 教师定义: ```java public class Teacher { // 成员变量 private String name; private int age; private String gender; private String id; // 构造方法 public Teacher(String name, int age, String gender, String id) { this.name = name; this.age = age; this.gender = gender; this.id = id; } // 成员方法 public void teach() { System.out.println(name + "正在教课"); } public void rest() { System.out.println(name + "正在休息"); } // getter 和 setter 方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getId() { return id; } public void setId(String id) { this.id = id; } } ``` 以上是一个简单的学生类和教师类的定义,其中包含了成员变量、构造方法、成员方法和 getter 和 setter 方法。使用这些类可以创建出学生对象和教师对象,并对它们进行相应的操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值