CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

在做老师给的作业,遇到了问题,各位高人给指点一下?

楼主dadong52(一簑风雨笑红尘)2004-12-02 23:20:13 在 C/C++ / C++ 语言 提问

1.编写一个学生成绩登记程序,每个学生每学期有三门课,将学生名、学号和三门成绩存放在一个学生类中,实现以下要求:  
   
  (1)录入学生信息以及学生成绩;  
   
  (2)输出学生数据,输出所有学生;  
   
  (3)显示单个学生各成绩  
   
  (4)计算全班每门课的平均成绩,以及班级的总人数。  
   
  (5)根据姓名来查找某个学生的信息  
   
  (6)根据学号删除某个学生  
   
  (7)对所有学生依据个人总成绩排序  
  自已写的:  
  #include   <iostream.h>  
  class   student_info  
  {  
   
      int   pid   [];       //学号  
      char   name   [];   //姓名  
      float   guard   []   [4];   //成绩,第一个[]为学生的标号,与pid[],和name[]想对;第二个   []的0-2放3门成绩就是:guard[][0],guard[][1],guard[2];而guard   [][3]为汇总  
      int   count;     //总人  
      int   select;     //存放选择  
  public:  
  void   select_ui(void   )     //选择  
    {  
   
    cout<<   "\t   you   select   num   1-7"<<endl;  
    cout   <<   "1.   input   student   infortion"<<endl;  
    cout   <<   "2.   output   student   infortion"<<endl;  
    cout   <<   "3.   display   one   student   of   guard"<<endl;  
    cout   <<   "4.   aver   guard   and   countstudent"<<endl;  
    cout   <<   "5.   find   infortaion   by   name   "<<   endl;  
    cout   <<   "6.   del   student   by   pid   "<<endl;  
    cout   <<   "7.   sort   by   countguard"<<endl;  
    cout   <<   "8.exit   "<<endl;  
    cin>>select;  
  }  
  void   input(void)     //录入学生信息以及学生成绩  
    {  
        int   i,j;  
        cout   <<   "if   you   input   0   ,input   exit"<<endl;  
        for   (   i   =   0;   pid   [i]   !=0   ||   name   [i]   !=   0     ;i++)  
          {  
                cout   <<   "input     student   pid:   "<<endl;  
                cin   >>   pid[i];  
                cout   <<   "input   student   name   :"   <<endl;  
                cin   >>   name   [i];  
                for   (     j   =   0;   j   <   3   ;   j++)  
  {  
      cout   <<"   input   "<<   j+1   <<   "guard:   "   <<endl;  
      cin   >>guard   [i][j];  
      }  
              }  
            count=i;  
    }  
   
  void   output(void)       //输出学生数据,输出所有学生  
  {  
    int   i,j;  
    for   (   i   =   0;   i   <count   ;i++)  
    {  
    cout   <<   "student   pid   :"<<   pid   [i]   <<endl;  
    cout   <<   "student   name   :"<<   name   [i]   <<endl;  
      for   (   j   =0;   j<3   ;j++)  
          {  
              cout   <<   "student   guard:   "<<   j+1<<guard   [i][j]<<endl;  
            }  
    }  
                }  
   
  void   signalguard(void)       //(3)显示单个学生各成绩  
  {  
        int   i,j;  
        for   (     i   =   0   ;   i   <=   count   ;   i++)  
          {  
              cout   <<"student   name   :"<<   name   [i]<<endl;  
              for   (     j   =   0   ;   j   <   3   ;   j++)  
                {  
    count   <<"student   guard   is   "<<guard   [i][j]<<endl;  
                }  
            }  
    }  
  void   averguard(void)     //计算全班每门课的平均成绩,以及班级的总人数  
  {  
      int   i,j;  
      for   (   j=0   ;j<3;j++)  
      {  
            float   sum,aver;  
        for   (   i   =0;   i<=count;i++)  
            {  
                sum   =0;  
                sum+=guard[i][j]   ;  
            }  
        aver   =   sum/count;  
        count<<   j+1   <<"   aver   guard:"<<aver<<endl;  
        }  
        count   <<   "myclass   conut   is   :"     <<count   <<endl;  
                }  
  void   find_name(void)       //根据姓名来查找某个学生的信息  
  {  
    int   i;  
    char   name;  
    count<<"input   find   name   "<<endl;  
    cin   >>name;  
    for   (   i   =0;   name[i]   !=   name   ;i++)  
          ;  
    if   (i   >count)  
        count   <<   "myclass   no   this   name   "<<endl;  
    else  
            {  
              count<<"this   student   name:"<<name[i]<<   "     this   stdent   pid   :"<<pid[i]<<endl;  
              count<<   "this   student   guard   :"   <<   "one   "<<guard   [i][0]<<"     two"<<guard   [i][1]<<   "     three   "   <<guard   [i][2]<<endl;  
              }  
   
   
  }  
  void   del_pid(void)     //根据学号删除某个学生  
  {  
    int   pid,i   ;  
    count   <<"input   del   pid   :"<<endl;  
    cin>>   pid;  
    for   (   i   =0;   fid[i]   !=   pid;   i++)  
              ;  
   
    if   (   i   >   count)  
        count<<   "errr   :no   this   pid"<<endl;  
      else  
          {  
              pid[i]=0   ;  
              name[i]=   null;  
              guard[i][0]=   0;  
              guard   [i][1]=0;  
              guard   [i][2]=0;  
          }  
  }  
  void   sort(void)     //对所有学生依据个人总成绩排序冒泡法  
   
    {  
        int   i,j;  
        float   temp;  
        for   (   i=0   ;i<=count;i++)  
        for   (   j=0;j<3;   j++)  
        guard[i][3]   +=   guard[i][j];  
        for   (i=0;i<=count;i++)  
        for   (j   =   i+1;j<=count;j++)  
        {  
          if   (guard[i][3]   >   guard   [j][3])  
                {  
    temp   =   guard[i][3];  
    guard[i][3]   =   guard   [j][3];  
    guard[j][3]   =   temp;  
  }  
            }  
      }  
  };  
  void     main   ()  
  {  
      int   select;  
      student_info     s1;  
      s1.select_ui();  
      select   =   s1.select;  
      switch   (select)  
      {  
          case   '1':   s1.input();break;  
          case   '2':   s1.output();break;  
          case   '3':   s1.signalguard();break;  
          case   '4':   s1.averguard();break;  
          case   '5':   s1.find_name();break;  
          case   '6':   s1.del_pid();break;  
          case   '7':   s1.sort();break;  
          case   '8':   return;  
      }  
  }  
  出现的错误:'stuent_info   ::select'   is   not   accessible   .  
    我在类中设的select变量不能访问,是private私有有的,当我用public   定义时,还不可以。  
    刚开始学,那位过来人给俺指点一下。thank   you  
  同时,能否指点一下如何学C++? 问题点数:20、回复次数:11Top

1 楼microhard(Befree)回复于 2004-12-03 00:35:11 得分 2

你再试一下,把select   变为public应该可以的Top

2 楼wwxsoft(婉儿)回复于 2004-12-03 08:49:08 得分 0

作业还是自己做比较好,认真检查,会找到错误得  
  Top

3 楼alanzhu(爱的逃兵)回复于 2004-12-03 09:54:43 得分 10

编译成功版  
  #include   <iostream.h>  
  class   student_info  
  {  
   
      int   pid   [50];       //&Ntilde;§&ordm;&Aring;  
      char   name   [50];   //&ETH;&Otilde;&Atilde;&ucirc;  
      float   guard   [50]   [4];   //&sup3;&Eacute;&frac14;¨&pound;&not;&micro;&Uacute;&Ograve;&raquo;&cedil;&ouml;[]&Icirc;&ordf;&Ntilde;§&Eacute;ú&micro;&Auml;±ê&ordm;&Aring;,&Oacute;&euml;pid[],&ordm;&Iacute;name[]&Iuml;&euml;&para;&Ocirc;&pound;&raquo;&micro;&Uacute;&para;&thorn;&cedil;&ouml;   []&micro;&Auml;0-2·&Aring;3&Atilde;&Aring;&sup3;&Eacute;&frac14;¨&frac34;&Iacute;&Ecirc;&Ccedil;&pound;&ordm;guard[][0],guard[][1],guard[2];&para;&oslash;guard   [][3]&Icirc;&ordf;&raquo;&atilde;×&Uuml;  
      int   count;     //×&Uuml;&Egrave;&Euml;  
  public:  
  int   select;     //&acute;&aelig;·&Aring;&Ntilde;&iexcl;&Ocirc;&ntilde;  
  void   select_ui(void   )     //&Ntilde;&iexcl;&Ocirc;&ntilde;  
    {  
   
    cout<<   "\t   you   select   num   1-7"<<endl;  
    cout   <<   "1.   input   student   infortion"<<endl;  
    cout   <<   "2.   output   student   infortion"<<endl;  
    cout   <<   "3.   display   one   student   of   guard"<<endl;  
    cout   <<   "4.   aver   guard   and   countstudent"<<endl;  
    cout   <<   "5.   find   infortaion   by   name   "<<   endl;  
    cout   <<   "6.   del   student   by   pid   "<<endl;  
    cout   <<   "7.   sort   by   countguard"<<endl;  
    cout   <<   "8.exit   "<<endl;  
    cin>>select;  
  }  
  void   input(void)     //&Acirc;&frac14;&Egrave;&euml;&Ntilde;§&Eacute;ú&ETH;&Aring;&Iuml;&cent;&Ograve;&Ocirc;&frac14;°&Ntilde;§&Eacute;ú&sup3;&Eacute;&frac14;¨  
    {  
        int   i,j;  
        cout   <<   "if   you   input   0   ,input   exit"<<endl;  
        for   (   i   =   0;   pid   [i]   !=0   ||   name   [i]   !=   0     ;i++)  
          {  
                cout   <<   "input     student   pid:   "<<endl;  
                cin   >>   pid[i];  
                cout   <<   "input   student   name   :"   <<endl;  
                cin   >>   name   [i];  
                for   (     j   =   0;   j   <   3   ;   j++)  
  {  
      cout   <<"   input   "<<   j+1   <<   "guard:   "   <<endl;  
      cin   >>guard   [i][j];  
      }  
              }  
            count=i;  
    }  
   
  void   output(void)       //&Ecirc;&auml;&sup3;&ouml;&Ntilde;§&Eacute;ú&Ecirc;&yacute;&frac34;&Yacute;&pound;&not;&Ecirc;&auml;&sup3;&ouml;&Euml;ù&Oacute;&ETH;&Ntilde;§&Eacute;ú  
  {  
    int   i,j;  
    for   (   i   =   0;   i   <count   ;i++)  
    {  
    cout   <<   "student   pid   :"<<   pid   [i]   <<endl;  
    cout   <<   "student   name   :"<<   name   [i]   <<endl;  
      for   (   j   =0;   j<3   ;j++)  
          {  
              cout   <<   "student   guard:   "<<   j+1<<guard   [i][j]<<endl;  
            }  
    }  
                }  
   
  void   signalguard(void)       //&pound;¨3&pound;&copy;&Iuml;&Ocirc;&Ecirc;&frac34;&micro;&yen;&cedil;&ouml;&Ntilde;§&Eacute;ú&cedil;÷&sup3;&Eacute;&frac14;¨  
  {  
        int   i,j;  
        for   (     i   =   0   ;   i   <=   count   ;   i++)  
          {  
              cout   <<"student   name   :"<<   name   [i]<<endl;  
              for   (     j   =   0   ;   j   <   3   ;   j++)  
                {  
    cout   <<"student   guard   is   "<<guard   [i][j]<<endl;  
                }  
            }  
    }  
  void   averguard(void)     //&frac14;&AElig;&Euml;&atilde;&Egrave;&laquo;°à&Atilde;&iquest;&Atilde;&Aring;&iquest;&Icirc;&micro;&Auml;&AElig;&frac12;&frac34;ù&sup3;&Eacute;&frac14;¨&pound;&not;&Ograve;&Ocirc;&frac14;°°à&frac14;&para;&micro;&Auml;×&Uuml;&Egrave;&Euml;&Ecirc;&yacute;  
  {  
      int   i,j;  
      for   (   j=0   ;j<3;j++)  
      {  
            float   sum,aver;  
        for   (   i   =0;   i<=count;i++)  
            {  
                sum   =0;  
                sum+=guard[i][j]   ;  
            }  
        aver   =   sum/count;  
        cout<<   j+1   <<"   aver   guard:"<<aver<<endl;  
        }  
        cout   <<   "myclass   conut   is   :"     <<count   <<endl;  
                }  
  void   find_name(void)       //&cedil;ù&frac34;&Yacute;&ETH;&Otilde;&Atilde;&ucirc;&Agrave;&acute;&sup2;é&Otilde;&Ograve;&Auml;&sup3;&cedil;&ouml;&Ntilde;§&Eacute;ú&micro;&Auml;&ETH;&Aring;&Iuml;&cent;  
  {  
    int   i;  
    char   tname;  
    cout<<"input   find   name   "<<endl;  
    cin   >>tname;  
    for   (   i   =0;   name[i]   !=   tname   ;i++)  
          ;  
    if   (i   >count)  
        cout   <<   "myclass   no   this   name   "<<endl;  
    else  
            {  
              cout<<"this   student   name:"<<name[i]<<   "     this   stdent   pid   :"<<pid[i]<<endl;  
              cout<<   "this   student   guard   :"   <<   "one   "<<guard   [i][0]<<"     two"<<guard   [i][1]<<   "     three   "   <<guard   [i][2]<<endl;  
              }  
   
   
  }  
  void   del_pid(void)     //&cedil;ù&frac34;&Yacute;&Ntilde;§&ordm;&Aring;&Eacute;&frac34;&sup3;&yacute;&Auml;&sup3;&cedil;&ouml;&Ntilde;§&Eacute;ú  
  {  
    int   fid,i   ;  
    cout   <<"input   del   pid   :"<<endl;  
    cin>>   fid;  
    for   (   i   =0;   pid[i]   !=   fid;   i++)  
              ;  
   
    if   (   i   >   count)  
        cout<<   "errr   :no   this   pid"<<endl;  
      else  
          {  
              pid[i]=0   ;  
              name[i]=   '\0';  
              guard[i][0]=   0;  
              guard   [i][1]=0;  
              guard   [i][2]=0;  
          }  
  }  
  void   sort(void)     //&para;&Ocirc;&Euml;ù&Oacute;&ETH;&Ntilde;§&Eacute;ú&Ograve;&Agrave;&frac34;&Yacute;&cedil;&ouml;&Egrave;&Euml;×&Uuml;&sup3;&Eacute;&frac14;¨&Aring;&Aring;&ETH;ò&Atilde;°&Aring;&Yacute;·¨  
   
    {  
        int   i,j;  
        float   temp;  
        for   (   i=0   ;i<=count;i++)  
        for   (   j=0;j<3;   j++)  
        guard[i][3]   +=   guard[i][j];  
        for   (i=0;i<=count;i++)  
        for   (j   =   i+1;j<=count;j++)  
        {  
          if   (guard[i][3]   >   guard   [j][3])  
                {  
    temp   =   guard[i][3];  
    guard[i][3]   =   guard   [j][3];  
    guard[j][3]   =   temp;  
  }  
            }  
      }  
  };  
  void     main   ()  
  {  
      int   select;  
      student_info     s1;  
      s1.select_ui();  
      select   =   s1.select;  
      switch   (select)  
      {  
          case   '1':   s1.input();break;  
          case   '2':   s1.output();break;  
          case   '3':   s1.signalguard();break;  
          case   '4':   s1.averguard();break;  
          case   '5':   s1.find_name();break;  
          case   '6':   s1.del_pid();break;  
          case   '7':   s1.sort();break;  
          case   '8':   return;  
      }  
  }  
  Top

4 楼kv4000(ABCD(A Brave Csharp Developer))回复于 2004-12-03 19:36:33 得分 1

关注Top

5 楼79720699(大地勇士)回复于 2004-12-03 19:53:16 得分 1

C++没有办法了,VB和Delphi还行^^^^^Top

6 楼titainium(一千瓦的刀狼)回复于 2004-12-03 20:17:06 得分 1

accelerated   C++上面给了一个类似的例子,可以参考一下。Top

7 楼horisly(SUN YAT-SEN UNIVERSITY (逸仙先生))回复于 2004-12-03 20:40:10 得分 5

可以把select做成一个成员函数啊  
  把下面的选择过程做成一个成员函数,然后在main调用不就可以了吗.  
      switch   (select)  
      {  
          case   '1':   s1.input();break;  
          case   '2':   s1.output();break;  
          case   '3':   s1.signalguard();break;  
          case   '4':   s1.averguard();break;  
          case   '5':   s1.find_name();break;  
          case   '6':   s1.del_pid();break;  
          case   '7':   s1.sort();break;  
          case   '8':   return;  
      }  
  }  
  Top

8 楼dadong52(一簑风雨笑红尘)回复于 2004-12-03 21:05:48 得分 0

自已出现的错误:1.用public   定义select  
                                  2.cout<<       拼写成count<<    
                                  3.在成员函数中定义了与成员变量同名的变量   name   与name[]   ;pid   与pid[]    
                                   
  汗颜呀,还有点别的错误,正在调试。  
  Top

9 楼dadong52(一簑风雨笑红尘)回复于 2004-12-03 22:48:14 得分 0

(1)录入学生信息以及学生成绩  
  自已感到很菜:  
      这个成员函数不难实现,可是在实际运行中就出现不是我想要的,郁闷。  
  我的思路:     把录入的信息放入到数组之中,出现的问题:当我输入第一个pid[0],name[0]时,在输入成绩时不停的动,不能我时间让我输入,而我也用  
                                          for   (     j   =   0;   j   <   3   ;   j++)  
        {  
      cout   <<"   input   "<<   j+1   <<   "guard:   "   <<endl;  
      cin   >>guard   [i][j];  
      }  
  输入不进去,我想是不是结束条件没设好,该了也不行。  
    titainium(一千瓦的刀狼)   accelerated   C++上面给了一个类似的例子,我没有这本书能否把人家好的例子给贴出来一下?让我学习一下,thank   you你的关注和帮忙。  
      horisly(爱你!我会默默的努力……)     是,自已又有到了新东东,thank   you我会默默的努力的。  
    alanzhu(啊鸿)   我很感谢你又给我调试,从上又给我改出来,让我明白自已错误,  
   
      这是我写的  
                        void   input(void)     //录入学生信息以及学生成绩  
    {  
        int   i,j;  
        cout   <<   "if   you   input   0   ,input   exit"<<endl;  
        for   (   i   =   0;   pid   [i]   !=0   ||   name   [i]   !=   0     ;i++)  
          {  
                cout   <<   "input     student   pid:   "<<endl;  
                cin   >>   pid[i];  
                cout   <<   "input   student   name   :"   <<endl;  
                cin   >>   name   [i];  
                for   (     j   =   0;   j   <   3   ;   j++)  
  {  
      cout   <<"   input   "<<   j+1   <<   "guard:   "   <<endl;  
      cin   >>guard   [i][j];  
      }  
              }  
            count=i;  
    }  
              过路的高人,我是初学,每一点都是刚开始,对我很难的东东,对你们来说我问的还是比较菜   ,能否给写出一个让我学习一下?Top

10 楼horisly(SUN YAT-SEN UNIVERSITY (逸仙先生))回复于 2004-12-04 00:29:19 得分 0

    int   pid   [];       //学号  
      char   name   [];   //姓名  
      float   guard   []   [4];  
  ------------------------------------------  
  你这里都没有给数组分配空间。应该要指定大小得  
  如int   pid[10];  
      char   name[20]  
    ........  
  是不可为空得  
  但是   可以这样:int   pid[]={1,2,3};这表示该数组有3个元素Top

11 楼dadong52(一簑风雨笑红尘)回复于 2004-12-12 18:40:53 得分 0

okTop

相关问题

  • 老师昨天刚出的一道回家作业:一个旋转二维数组,望各位大哥指点迷泾?
  • 老师布置的作业!
  • 帮忙看看老师的作业
  • 初学servlet遇到的困难,请各位指点指点
  • 做资源管理器又遇到问题了:希望各位指点指点:
  • 关于oracle9i中作业执行的2个疑问,请高手指点。
  • 关于Pascal的问题,请各位老师指点!
  • 新手学做JSP新闻系统,请老师指点!
  • OPENGL的菜鸟问题,希望老师指点下,谢谢
  • 老师布置的作业,各位哥哥姐姐,帮帮我。

关键词

  • c++
  • 学生
  • 学号
  • 录入
  • 信息
  • eú
  • guard
  • frac14
  • pid
  • 成绩

得分解答快速导航

  • 帖主:dadong52
  • microhard
  • alanzhu
  • kv4000
  • 79720699
  • titainium
  • horisly

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo