C++学生信息管理.docx

上传人:b****2 文档编号:18178822 上传时间:2023-04-24 格式:DOCX 页数:21 大小:28.63KB
下载 相关 举报
C++学生信息管理.docx_第1页
第1页 / 共21页
C++学生信息管理.docx_第2页
第2页 / 共21页
C++学生信息管理.docx_第3页
第3页 / 共21页
C++学生信息管理.docx_第4页
第4页 / 共21页
C++学生信息管理.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C++学生信息管理.docx

《C++学生信息管理.docx》由会员分享,可在线阅读,更多相关《C++学生信息管理.docx(21页珍藏版)》请在冰豆网上搜索。

C++学生信息管理.docx

C++学生信息管理

 

7.学生信息管理

设计要求:

设计要求实现如下功能:

(1)建立学生信息数据,包括学号、姓名、性别、三科成绩、出生时间、年龄(必须计算得到)。

(2)使用继承的方法构造至少3个类,(即学生类——基类,一年级学生和二年级学生类——派生类)类中使用相应的对象放置10个学生信息。

(3)编写同名display()成员函数,用来输出数组的内容。

(4)按不同类别输出学生信息,比如按性别。

(5)要求对“<<”和“>>”运算符进行重载。

考虑到输人学号时,也会因不小心引人空格,而且名字中也需要有空格,所以重载“>>”运算符时,需要满足这个要求。

(6)抽取并计算学生的平均成绩。

(7)按照至少一科成绩进行排序。

(8)检索(查找)指定信息。

(如按姓名检索、按年龄检索)

(9)参考界面如下:

1-增加一位学生(1年级2年级)

2-显示全部学生(1年级2年级)

3-计算平均成绩(1年级2年级)

4-删除一个学生(1年级2年级)

5-按性别输出学生信息

6-按姓名检索学生

7-按照至少一科成绩进行排序。

8-结束程序运行

本程设计思路:

1定义基类

classstudent{

public:

intxuehao;

charxingming[20];

charxingbie;

floatyuwen,shuxue,yinyu;

intshengri;

virtualintgetnianji()=0;

virtualvoidset()=0;

virtualvoiddisplay()=0;

intgetxuehao(){returnxuehao;}

char*getxingming(){returnxingming;}

chargetxingbie(){returnxingbie;}

floatgetyuwen(){returnyuwen;}

floatgetshuxue(){returnshuxue;}

floatgetyinyu(){returnyinyu;}

floatgetsum(){

return(yuwen+shuxue+yinyu);}

intgetshengri(){returnshengri;}

};

};

2定义一二年级继承类

classostudent:

publicstudent

classostudent:

publicstudent

3重载函数

riendostream&operator<<(ostream&out,ostudent&right){

out<

    <

    <<(2009-right.shengri)<

 returnout;

}

 friendistream&operator>>(istream&in,ostudent&right){

   in>>right.xuehao>>right.xingming>>right.xingbie>>right.zhuanye>>right.yuwen

       >>right.shuxue>>right.yinyu>>right.shengri;

   returnin;

}

};

 

4功能选择函数

switch()

case1:

case2:

……

分别实现

输入函数

打印函数

查找函数

删除函数

排序函数

5主函数

实现整合

 

3详细设计与编码:

#include

#include

usingnamespacestd;

 

classstudent//基类

{

public:

   intxuehao;

   charxingming[20];

   char xingbie;

   floatyuwen,shuxue,yinyu;

   intshengri;

 

   virtualint getnianji()=0;

   virtualvoid set()=0;

   virtualvoid  display()=0;

 

   intgetxuehao(){returnxuehao;}

   char*getxingming(){returnxingming;}

   char  getxingbie(){returnxingbie;}

   float  getyuwen(){returnyuwen;}

   float  getshuxue(){return shuxue;}

   float  getyinyu(){return yinyu;}

   float  getsum(){

       return(yuwen+shuxue+yinyu);}

   intgetshengri(){returnshengri;}

   

};

 

classostudent:

publicstudent//一年级继承类

{

public:

   intnianji;

   charzhuanye[25];

   ostudent(){nianji=0;}

 

   intgetnianji(){returnnianji;}

   char*getzhuanye(){returnzhuanye;}

 

voidset()//输入函数

{cout<<"输入一年级学生信息\n"

        <<"学号     姓名    性别(m/w)   专业  语文 数学英语   出生年\n";       

    cin>>xuehao>>xingming>>xingbie>>zhuanye>>yuwen>>shuxue>>yinyu>>shengri;

}

voiddisplay()//显示函数

{

   cout<<"\n一年级学生:

\n"<

       <

}

   friendostream&operator<<(ostream&out,ostudent&right){

out<

    <

    <<(2009-right.shengri)<

 returnout;

}

 friendistream&operator>>(istream&in,ostudent&right){

   in>>right.xuehao>>right.xingming>>right.xingbie>>right.zhuanye>>right.yuwen

       >>right.shuxue>>right.yinyu>>right.shengri;

   returnin;

}

};

 

 

clasststudent:

publicstudent//二年级继承类

{

public:

   int    nianji;

   char  teacher[25];

   tstudent(){nianji=1;}

    char*getteacher()

    {returnteacher;}

 

   intgetnianji(){returnnianji;}

 

   voidset()

   {

    cout<<"输入二年级学生信息\n"

        <<"学号     姓名    性别(m/w)  老师    语文 数学 英语     出生年\n";  

    cin>>xuehao>>xingming>>xingbie>>teacher>>yuwen>>shuxue>>yinyu>>shengri;

}

   voiddisplay(){

   cout<<"\n二年级学生:

\n"<

       <

}

   friendostream&operator<<(ostream&out,tstudent&right){

out<

    <

    <<(2009-right.shengri)<

 returnout;

}

 friendistream&operator>>(istream&in,tstudent&right)//重载运算符

{

   in>>right.xuehao>>right.xingming>>right.xingbie>>right.teacher>>right.yuwen

       >>right.shuxue>>right.yinyu>>right.shengri;

   returnin;

}

 

};

 

 

intmain()

{

   intgetin,j;

   intc1,c2,c3,c4,c5,c6,c7;

   student*p[100];

   inthao[100],htp;

   intm,n;

   doublezong[100],ztp;

   staticinti=0;

 

lab2:

   cout<<"                   1.录入信息\n";

   cout<<"                   2.显示全部学生\n";

   cout<<"                   3.计算平均成绩\n";

   cout<<"                   4.删除一个学生\n";

   cout<<"                   5.按年级输出学生信息\n";

   cout<<"                   6.按姓名检索学生\n";

   cout<<"                   7.按总分排序\n";

 

   cout<<"\n\n输入您的选择(1to7):

";

   cin>>getin;

 

   switch(getin)//功能选择函数

   {

   case1:

lab1:

//录入

      cout<<"1.录入一年级学生信息"<

      cout<<"2.录入二年级学生信息"<

       cout<<"3.保存所有信息"<

       cout<<"4.返回上一级菜单"<

       cout<<"选择:

";

       cin>>c1;

       cout<

       switch(c1)

       {

       case1:

{

               p[i]=newostudent;

               p[i]->set();

               i++;

              gotolab1;

             }

 

       case2:

{

               p[i]=newtstudent;

               p[i]->set();

               i++;

               gotolab1;

             }

       case3:

                for(j=0;j

                {

                    if(p[j]->getnianji()==1)

                      cout<getxuehao()<<""<getxingming()<<""

                       <getxingbie()<<""<getyuwen()<<""<getshuxue()

                       <<""<getyinyu()<<""<<2009-p[j]->getshengri()<

                    if(p[j]->getnianji()==0)

                      cout<getxuehao()<<""<getxingming()<<""

                       <getxingbie()<<""<getyuwen()<<""<getshuxue()

                       <<""<getyinyu()<<""<<2009-p[j]->getshengri()<

                }

                cout<<"         保存成功!

\n";

                gotolab1;

         default:

             gotolab2;

       }

       break;

   case2:

//输出数据

       cout<<"学生信息\n"

           <<"学号     姓名    性别(m/w)    专业/老师    平均成绩    年龄\n";

       for(j=0;j

           {

               p[j]->display();

              

           }

       cout<<"\n\n输入任意数字返回主菜单:

";

       cin>>c2;

       switch(c2)

       {

       case1:

case2:

case3:

default:

gotolab2;

       }

   case3:

//平均成绩输出

       cout<

       cout<<"                   ------计算平均成绩-----\n";

       cout<<"                      1.语文平均成绩\n";

       cout<<"                      2.数学平均成绩\n";

       cout<<"                      3.英语平均成绩\n";

       cout<<"                   -----------------------\n";

       cout<<"        你的选择:

";

       cin>>c3;

       switch(c3)

       {

       case1:

{

           doublesumy=0;

               for(j=0;j

                {

                  sumy=sumy+p[j]->getyuwen();

                }

               cout<<"\n语文平均成绩:

"<<(sumy/i)<

               break;

             }

       case2:

{

               doublesume=0;

               for(j=0;j

                {

                  sume=sume+p[j]->getshuxue();

                }

               cout<<"\n数学平均成绩:

"<<(sume/i)<

               break;

             }

       case3:

{

                doublesumm=0;

                for(j=0;j

                {

                  summ=summ+p[j]->getyinyu();

               }

                cout<<"\n英语平均成绩:

"<<(summ/i)<

                break;

             }

       default:

           gotolab2;

       }

       cout<<"\n\n输入任意数字返回主菜单:

";

       cin>>c3;

       switch(c3)

       {

       case1:

case2:

case3:

default:

gotolab2;

 

       }

 

   case4:

//删除操作

              

              cout<

              cout<<"                   ------删除一个学生-----\n";

             cout<<"                       1.按学号删除\n";

              cout<<"                       2.按姓名删除\n";

             cout<<"                       3.返回上级\n";

             cout<<"                   -----------------------\n";

             cout<<"        你的选择:

";

             cin>>c4;

             switch(c4)

             {

             case1:

                       intxuehao;

                        cout<<"输入学生的学号:

";

                        cin>>xuehao;

                        for(j=0;j

                        {

                            if(p[j]->getxuehao()==xuehao)

                            {

                                for(intdel=j;del

                                    p[del]=p[del+1];

                                i--;

                            }

                        }

               cout<<"\n成功删除.......!

\n";

               cout<<"\n\n输入任意数字返回主菜单:

";

              cin>>c3;

              switch(c3)

               {

                case1:

case2:

case3:

default:

gotolab2;

 

               }

 

             case2:

                       charming[20];

                        cout<<"输入学生的姓名:

";

                        cin>>ming;

                        for(j=0;j

                        {

                            if(strcmp(p[j]->getxingming(),ming)==0)

    

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 设计艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1