| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 416 人关注过本帖
标题:c++学生成绩管理代码,运行是乱码,求高手指正
只看楼主 加入收藏
hj2410789544
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-5-10
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:2 
c++学生成绩管理代码,运行是乱码,求高手指正
// Note:Your choice is C++ IDE
#include <iostream>
#include<iomanip>
using namespace std;

class English{
    int ptr;
    int score[20];
   
    public:
    void getdata(int val,int ptr) {score[ptr]=val;}
    int disp(int ptr) {return score[ptr];}
};

class Chinese{
    int ptr;
    int score[20];
   
    public:
    void getdata(int val,int ptr) {score[ptr]=val;}
    int disp(int ptr) {return score[ptr];}
};

class Computer{
    int ptr;
    int score[20];
   
    public:
    void getdata(int val,int ptr) {score[ptr]=val;}
    int disp(int ptr) {return score[ptr];}
};

class student:private English,private Chinese,private Computer{
    char name[20][10];
    double average[20];
    static int rank;
   
    public:
    void getdata(int index)
    {
        
        int score1,score2,score3;
        for(int i=0;i<index;i++)
        {
            average[i]=0;
            cout<<"student's name:";
            cin>>name[i];
            cout<<"The score of English Chinese Computer:";
            cin>>score1>>score2>>score3;
            
            English::getdata(score1,i);
            Chinese::getdata(score2,i);
            Computer::getdata(score3,i);
            average[i]=(score1+score2+score3)/3;
        }
    }


void sort(int index)
{
    int i,j,pick;
    for(i=0;i<index;i++)
    {
        pick=0;
        while(average[pick]=-1&&pick<index) {pick++;}
        
        for(j=1;j<index;j++)
        {
            while(average[pick]=-1&&j<index) {j++;}
            if(j<index&&average[j]>average[pick])
                pick=j;
        }
        
        cout<<setw(3)<<rank++<<" ";
        cout<<name[pick]<<endl;
         /*cout<<setw(6)<<name[pick];
        cout<<setw(5)<<English::disp(pick)<<" ";
        cout<<setw(7)<<Chinese::disp(pick)<<" ";
        cout<<setw(5)<<Computer::disp(pick)<<" ";   
                cout<<setw(10)<<setprecision(4)<<average<<endl;*/
        average[pick]=-1;
        
    }
}
};

int student::rank=1;
int main()
{
    student A;
    int num;
   
    cout<<"enter the number:";
    cin>>num;
   
    A.getdata(num);
    cout<<"the result is\n";
   
    cout<<setw(4)<<"rank"<<setw(6)<<"name"<<setw(6)<<"English"
    <<setw(6)<<"Chinese"<<setw(6)<<"Computer"<<setw(10)<<"average"<<endl;
   
    A.sort(num);
   
   
    return 0;
}
搜索更多相关主题的帖子: void 管理 English Chinese include 
2012-05-10 01:06
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:10 
while(average[pick] == -1 && pick < index) {pick++;}

while(average[pick] == -1 && j<index) {j++;}

我们都在路上。。。。。
2012-05-11 11:02
hj2410789544
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-5-10
收藏
得分:0 
回复 2楼 hellovfp
谢谢啊,我太粗心了,感激不尽
2012-05-11 12:31
快速回复:c++学生成绩管理代码,运行是乱码,求高手指正
数据加载中...
 
   



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

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