| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 507 人关注过本帖
标题:可以锻炼的东西!!谢谢高手出手帮忙!!
只看楼主 加入收藏
童国顺
Rank: 1
等 级:新手上路
帖 子:70
专家分:6
注 册:2010-4-18
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:2 
可以锻炼的东西!!谢谢高手出手帮忙!!
#include<iostream.h>
#include<string.h>
#include<conio.h>//用getch();
#include<windows.h>//用system();
const L=20;
//*****************CPerson 类*********************

class Cperson{
    private:
    char * Name ;   //学生姓名
    char * IDNo ;   //身份证号码
    char * Addr ;   //所住地址
    char * Tel;     //电话号码
    public:
void input1()    //输入学生姓名,身份证号码的功能
{
    char n[L],i[L];
    cout<<"请输入学生的姓名:";
    cin>>n;
    Name=new char[strlen(n)+1];
    strcpy(Name,n);
    cout<<"请输入学生的身份证号码:";
    cin>>i;
    IDNo=new char[strlen(i)+1];
    strcpy(IDNo,i);
}
void input2()   //输入地址与电话号码的功能
{
    char a[L],t[L];
    cout<<"请输入学生的住址:";
    cin>>a;
    Addr=new char[strlen(a)+1];
    strcpy(Addr,a);
    cout<<"请输入学生的电话号码:";
    cin>>t;
    Tel=new char[strlen(t)+1];
    strcpy(Tel,t);
}
void output1()        //输出姓名、身份证号码、地址、电话号码的功能
{
    cout<<"学生的姓名:"<<Name<<endl;
    cout<<"学生的身份证号码:"<<IDNo<<endl;
    cout<<"学生的住址:"<<Addr<<endl;
    cout<<"学生的电话号码:"<<Tel<<endl;
}
Cperson::~Cperson()   //析构函数   释放空间的作用
{
    delete Addr;
    delete IDNo;
    delete Name;
    delete Tel;
}
};

//##################  类 Cstudent定义######################
 
class Cstudent:public Cperson{     //公有继承基类 Cperson 类
private:
    char *StudNo;           //学生证号码
    float Math;             //数学成绩
    float English;          //英语成绩
    float Average;          //平均成绩
public:
    Cstudent()              //构造函数赋值作用
    {
    Average=English=Math=0.0;
    }
    void xinxishuru()        //信息输入
    {
        Cperson::input1();   //调用基类的input1函数
        char q[L];
        cout<<"请输入学生证号:";
        cin>>q;
        StudNo=new char[strlen(q)+1];
        strcpy(StudNo,q);
    }
    void cjishuru()         //输入成绩函数
    {
        Cperson::input2();  //调用基类的input2函数
        cout<<"请输入数学成绩:";
        cin>>Math;
        cout<<"请输入英语成绩:";
        cin>>English;
    }
    void output2()          //输出全部信息函数
    {
        Average=(Math+English)/2;
        Cperson::output1(); //调用基类output1函数
        cout<<"学生证号:"<<StudNo<<endl;
        cout<<"数学成绩:"<<Math<<endl;
        cout<<"英语成绩:"<<English<<endl;
        cout<<"平均成绩是:"<<Average<<endl;
        cout<<endl;
    }
    ~Cstudent()           //类Cstudent的析构函数
    {
        delete StudNo;
    }
};

//******************* 类Cclass的定义 *************

class Cclass{
private:
    char *ClassName;
    Cstudent *p[50];
    int c;
public:
    Cclass(){}   
    void men()         //菜单
    {
  cout<<"     学 生 信 息 管 理 系          "<<endl;
 
  cout<<"        1.创建班级                   "<<endl;
  cout<<"        2.添加学生信息               "<<endl;
  cout<<"        3.修改学生信息               "<<endl;
  cout<<"        4.删除学生信息               "<<endl;
  cout<<"        5.打印学生信息               "<<endl;
  cout<<"        6.退出                       "<<endl;
 
  cout<<"\n\t\t\n\t\t请选择:";
    }
    void addclass()    //创建班级
    {
        char x[L];
        for(int i=0;i<50;i++)
            p[i]=NULL;
        cout<<"请输入班级名称:";
        cin>>x;
        ClassName=new char[strlen(x)+1];
        strcpy(ClassName,x);
        cout<<"请输入班级学生数:";
        cin>>c;
    }
    void input() //输入一个学生信息
    {
        for(int i=0;i<c;i++)
        {
            p[i]=new Cstudent;
            cout<<"第"<<(i+1)<<"个学生信息"<<endl;
            p[i]->xinxishuru();
            p[i]->cjishuru();
        }
    }
    void xg() //修改
    {
        int a;
        cout<<"请输入要修改的学生号:";
        cin>>a;
        if((a==0&&a>0)||(a==c&&a<c))
        cout<<"请重新输入第"<<(a+1)<<"个学生信息"<<endl;
        p[a]->cjishuru();
    }
    void sc()     //删除
    {
        int b;
        cout<<"请输入要删除的学生号:";
        cin>>b;
        if((b==0&&b>0)||(b==c&&b<c))
        
         delete p[b];
         for(int i=b;i<c;i++)
             p[b]=p[b+1];
            p[c-1]=NULL;
    }
    void display()   //打印
    {
        cout<<endl;
        cout<<"  班级学生信息       "<<endl;
        cout<<"班级名称"<<ClassName<<endl;
        for(int i=0;i<c;i++)
            {if(p[i]!=NULL)
            p[i]->output2();}
    }
    ~Cclass()
    {
        delete ClassName;
    }
};

//******************主函数***********************

main()
{
    int i;
    bool quit=false;
    Cclass  Cc;
    system("color 2F");        //背景色
    while(!quit)
 {
    system("cls");             //清屏  
     Cc.men();
    cin>>i;
  switch(i)
  {
     case 1:Cc.addclass();break;
     case 2:Cc.input();break;
     case 3:Cc.xg();getch();break;
     case 4:Cc.sc();break;
     case 5:Cc.display();getch();break;
     case 6:quit=true;break;
     default:cout<<"选择错误!!!\n";
  }
}
     return 0;
}
帮我改下  可以录取多个班级。
搜索更多相关主题的帖子: 姓名 学生 电话号码 身份证号码 
2011-01-05 16:29
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:10 
p[i]=new Cstudent//p[i]=new Cstudent()???

[ 本帖最后由 qq1023569223 于 2011-1-5 22:30 编辑 ]

   唯实惟新 至诚致志
2011-01-05 22:21
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
收藏
得分:10 
论坛上有不少人 发个作业帖子 让人家帮忙做
结果人家做好了 其实他自己也做好了 是装作不会做
2011-01-06 13:58
快速回复:可以锻炼的东西!!谢谢高手出手帮忙!!
数据加载中...
 
   



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

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