| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 507 人关注过本帖
标题:请大家指点一下链表这个问题
只看楼主 加入收藏
红糖水
Rank: 2
等 级:论坛游民
帖 子:42
专家分:11
注 册:2013-2-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
请大家指点一下链表这个问题
定义一个学生类,有姓名、学号、性别、四门功课(Math English C Computer)和平均分等私有数据成员;学生人数及学生信息由键盘输入,求出每个学生的平均分;打印每个学生的姓名、学号、四门课成绩和平均分。

要求:
1.用对象指针实现(即链表);
2.用构造函数实现学生信息的输入;
3.平均分的计算要用一个单独的函数实现;
4.请严格按照下面的格式进行输入输出。


输入/输出样式:
Please Input the Number of Students:
3
Please input 3 student info: Name  ID  Sex  Math  English  C  Computer
wang 1 f 80 80 80 80
zhang 2 m 85 85 85 85
liang 3 m 75 75 75 75

Student Information:
Name  ID  Sex  Math  English  C  Computer  Average
wang  1  f  80  80  80  80  80
zhang  2  m  85  85  85  85  85
liang  3  m  75  75  75  75  75



我的代码如下,系统说我还有特殊情况没考虑到,请大家帮帮我。。。

#include <iostream>
#include <string>
using namespace std;
class student
{
    public:
    student();
    void aver(int math,int english,int c,int computer);
    void showdate();
    student *next;
    private:
    string name;
    int ID;
    string sex;
    int math;
    int english;
    int c;
    int computer;
    int average;
};
student::student()
{
    cin>>name>>ID>>sex>>math>>english>>c>>computer;
    aver(math,english,c,computer);
}
void student::aver(int math,int english,int c,int computer)
{
    average=(math+english+c+computer)/4;
}
void student::showdate()
{
    cout<<name<<"  "<<ID<<"  "<<sex<<"  "<<math<<"  "<<english<<"  "<<c<<"  "<<computer<<"  "<<average<<endl;
}
int main()
{
    student *p1,*p2;
    int n;
    cout<<"Please Input the Number of Students:\n";
    cin>>n;
    cout<<"Please input "<<n<<" student info: Name  ID  Sex  Math  English  C  Computer"<<endl;
    if(n!=0)
  {
    p1=new student;
    p1->next=NULL;
  }
    for(int i=1;i<n;i++)
    {
        p2=new student;
        p2->next=p1->next;
        p1->next=p2;
    }
    cout<<endl<<"Student Information:"<<endl;
    cout<<"Name  ID  Sex  Math  English  C  Computer  Average"<<endl;
    for(int i=1;i<=n;i++)
    {
        p1->showdate();
        p1=p1->next;
    }
}
搜索更多相关主题的帖子: English 学生 
2013-04-27 17:34
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:5 
问题在哪?

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-04-27 17:37
baliguo1
Rank: 1
等 级:新手上路
帖 子:4
专家分:5
注 册:2013-4-27
收藏
得分:5 
回复 楼主 红糖水
不知道啊
2013-04-27 18:57
流年226
Rank: 1
等 级:新手上路
帖 子:37
专家分:7
注 册:2013-4-27
收藏
得分:5 
哪位帮忙看看这个程序哪错了?
算不出结果
#include<stdio.h>
void main()
{
    int a[3][3],b[3][3],c[3][3],i,j;
    printf("请输入a矩阵:\n");
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
            scanf("%d",&a[i][j]);
    }
    printf("请输入b矩阵:\n");
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
            scanf("%d",&b[i][j]);
    }
    printf("输出两矩阵和c矩阵:\n");
        for(i=0;i<3;i++)
        {        
            for(j=0;j<3;j++)
                c[i][j]=a[i][j]+b[i][j];
            printf("%d",c[i][j]);
            printf("\n");   
        }  
}
2013-04-27 22:18
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:5 
cout<<"Please input"<< n <<"student info: Name  ID  Sex  Math  English  C  Computer"<
#include
using namespace std;
class student
{
    public:
    student();
    void aver(int math,int english,int c,int computer);
    void showdate();
    student *next;
    private:
    string name;
    string sex;
    int ID;
    int math;
    int english;
    int c;
    int computer;
    int average;
};
student::student()
{
    cin>>name>>sex>>ID>>math>>english>>c>>computer;
    aver(math,english,c,computer);
}
void student::aver(int math,int english,int c,int computer)
{
    average=(math+english+c+computer)/4;
}
void student::showdate()
{
    cout<<NAME<<SEX<<ID<<MATH<<ENGLISH<<C<<COMPUTER<<AVERAGE;
}
int main()
{
    student *head,*p1,*p2;
    int n;
    cout<<"Please Input the Number of Students:\n";
    cin>>n;
    cout<<"Please input"<< n <<"student info: Name  ID  Sex  Math  English  C  Computer"<<ENDL;
    p1=new student;
    head=NULL;
    p2=p1;
    for(int i=1;i<=n;i++)
    {
        if(head==NULL)
            head=p1;
        else
            p2->next=p1;
        p2=p1;
        p1=new student;
    }
    p2->next=NULL;
    for(i=1;i<=n;i++)
    {
        head->showdate();
        head=head->next;
    }
    delete []p1;
    return 0;
}

Maybe
2013-04-27 22:49
红糖水
Rank: 2
等 级:论坛游民
帖 子:42
专家分:11
注 册:2013-2-3
收藏
得分:0 
以下是引用流年226在2013-4-27 22:18:35的发言:

哪位帮忙看看这个程序哪错了?
算不出结果
#include<stdio.h>
void main()
{
    int a[3][3],b[3][3],c[3][3],i,j;
    printf("请输入a矩阵:\n");
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
            scanf("%d",&a[j]);
    }
    printf("请输入b矩阵:\n");
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
            scanf("%d",&b[j]);
    }
    printf("输出两矩阵和c矩阵:\n");
        for(i=0;i<3;i++)
        {        
            for(j=0;j<3;j++)
                c[j]=a[j]+b[j];
            printf("%d",c[j]);
            printf("\n");   
        }  
}
节操何在?竟然在别人帖子里打广告!!!
2013-04-29 19:11
快速回复:请大家指点一下链表这个问题
数据加载中...
 
   



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

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