标题:两个不同的类要这样才能交流??
只看楼主
lemonandtree
Rank: 2
等 级:论坛游民
帖 子:74
专家分:10
注 册:2017-10-5
结帖率:88.89%
已结贴  问题点数:20 回复次数:3 
两个不同的类要这样才能交流??
我想写一个程序:在计算学生的分数时记录下最高分的学生和他的指导老师,并且给指导老师加2000元奖金,同时计算出老师的总工资(含奖金)后输出最高工资的老师名字和工资。还要输出学生的学号和名字。
这是我的代码,我把学生和老师分成两个不同的类,但我不知道他们应该如何交流,老师的名字是个字符,我想把这个字符的地址传过去,可是没有用,麻烦那位帮我修改一下程序,谢谢了。
程序代码:
#include<iostream>
#include<iomanip>
using namespace std;
const int N=6;
int i;
struct stu
{
    char name[10];
    int wage ;
    int floatingwages;
    int bonus;
    int totalwages;//定义结构体包含老师工资的各部分。
}p[6]={{"贾宇",2300,1980,2000},{"张莹",1908,2000,1000},{"李蒙",2490,1080,980},{"王同辽",980,1200,680},{"叶库伦",1290,1800,390},{"0",0,0,0}},a,n,*w=p;
class student
{
public:
       student(int n,float s);
       void display();
private:
    int num;
    float score;
    char teacher[20];
};//定义学生的类
class teacher
{
public:
    teacher( stu n);
    void all(struct stu *p);
    void order(struct stu *p);
    void output(struct stu *p);
private:
    stu a;
};//定义老师的类
student::student(int n,float s)
{
    num=n;
    score=s;
}
void student::display()
{
    cout<<num<<" "<<score<<endl;
}
teacher::teacher(stu n)
{
    a=n;//工资初始化
}
void teacher::all( stu *p)
{
    for(i=0;i<=5;i++)
    p[i].totalwages=p[i].wage+p[i].floatingwages+p[i].bonus;//求总工资
}
void teacher::order( stu *p)
{
    *(p+5)=*p;
    for(i=1;i<5;i++)
        if((p+i)->totalwages>(p+5)->totalwages)
        {
            *(p+5)=*(p+i);//找出工资最多的老师
        }
}
void teacher::output( stu *p)
{
    cout<<p[5].name<<setw(5)<<p[5].totalwages<<endl;
}
void main()
{
    teacher tea[N]={teacher(p[0]),teacher(p[1]),teacher(p[2]),teacher(p[3]),teacher(p[4]),teacher(p[5])};
    teacher*q=tea;
    for(i=0;i<N;q++,i++,w++)
        q->all(w);
    w=p;
    q=tea;//指针返回原点
    q->order(w);
    q->output(w);
    student stud[5]={student(1,78.5),student(2,85.5),student(3,98.5),student(4,100),student(5,95.5)};
    student*p=stud;
    for(int i=0;i<5;p=p++,i++)
        p->display();
}
搜索更多相关主题的帖子: 老师 int stu student teacher 
2017-12-22 19:16
福建王小龙
Rank: 2
等 级:论坛游民
帖 子:1
专家分:20
注 册:2017-12-22
得分:20 
求大神教教我,这道题是求100到200的全部素数,下面是我写的代码,但是运行不了,求教
#include<stdio.h>
#include<math.h>
int main()
{int i,n,k;
for(i=101;i<201;i+=2)
{for(n=2;n<i;n++)
k=i%n;
if(k==0) printf("%d",i);break;
}
return 0;
}


捕获.PNG1.PNG (10.11 KB)
2017-12-23 13:16
lemonandtree
Rank: 2
等 级:论坛游民
帖 子:74
专家分:10
注 册:2017-10-5
得分:0 
我不是大神,你要问问题的话请发一个新帖。。。。
程序代码:
#include<iostream>
#include<iomanip>
using namespace std;
void main()
{
    int m,k,i,n=0;
    for(m=101;m<=200;m=m+2)
    {
        
        for(i=2;i<=m;i++)
            if(m%i==0)break;
        if(i>=m)
        {
            cout<<setw(6)<<m;
            n=n+1;
        }
        if(n%10==0)cout<<endl;
    }
    cout<<endl;
}
这是我帮你修改了一下的,

2017-12-23 16:56
lemonandtree
Rank: 2
等 级:论坛游民
帖 子:74
专家分:10
注 册:2017-10-5
得分:0 
求大家帮我看看我这个问题啊。
2017-12-23 16:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-483628-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.374379 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved