ai352387597 2013-06-18 14:08 采纳率: 100%
浏览 5880

c++写的一个简单学生信息管理系统,求助。

编译不报错,就是运行不出来

#include<iostream.h>
#include<stdio.h>
#include<string.h>
class student//定义学生信息类
{public:
    char name[20];
    char num[10];
    char banji[20];
    int math,english,chinese,computer;
    int sum;
    double ave;

    void input();
    void output();
    void score();


    void book(student sh[],int m);
};
void student::book(student grade[],int m)// 类外声明
{
    int l=10;
    for(int i=1;i<=l;i++)
    {
        cin>>student::name[20]>>student::num[10]>>student::banji>>student::math>>student::english>>student::chinese>>student::computer;
        strcpy(grade[i].name,student::name);
        strcpy(grade[i].num,student::num);
        grade[i].math=student::math;
        grade[i].english=student::english;
        grade[i].chinese=student::chinese;
        grade[i].computer=student::computer;
        grade[i].sum=student::math+student::english+student::chinese+student::computer;
        grade[i].ave=grade[i].sum/4;
    }
}
void student::score()//显示学生信息
{

cout<<name;
cout<<"             ";cout<<num;
if(math>=0)
    {cout<<"        ";cout<<math;}
else
cout<<"        无";
    if(english>=0)
    {cout<<"           ";cout<<english;}
    else
cout<<"            无";
    if(computer>=0)
    {cout<<"        ";cout<<computer;}
    else
cout<<"        无";
        if(chinese>=0)
    {cout<<"          ";cout<<chinese;}
        else
cout<<"          无";
        cout<<"        "<<ave<<endl;

}
void change(student sh[],int i)//修改学生信息
{
    char name1[20];
    int j,k,m;
    cout<<"              请输入要修改的学生姓名:"<<endl;
    cin>>name1;
    for(j=1;j<=i;j++)
    {
        if(strcmp(sh[j].name,name1)!=0)//判断ASCLL码大小
                k=-1;
            else
            {   k=j;break;}
    }
            if(k==-1)
            {
                cout<<"                   对不起,没有该学生的信息....."<<endl;
            cout<<"                      请按任意键进入主菜单......."<<endl;
            getchar();
            }
            else
            {
                sh[k].math=sh[k].english=sh[k].computer=sh[k].chinese=-1;
    int a,b;//a是各科成绩,b是存储选课数目
    sh[k].sum=0;//初始化sum
    char project[10];
    cout<<"                 请输入学生姓名:"<<endl;
    cin>>sh[k].name;
    cout<<"                 请输入学生学号:"<<endl;
    cin>>sh[k].name;

    cout<<"                 请输入学生选课数:"<<endl;
    while(cin>>m)
    {
        if(m>4)
            cout<<"对不起,请输入课程数1~4范围内:  请重新输入"<<endl;
        else
            break;
    }
    b=m;

    while(m--)
    {
        cout<<"             请输入课程名称:"<<endl;
        cin>>project;
        if(strcmp(project,"数学")==0)
        {
            cout<<"             请输入该课程成绩:"<<endl;
        cin>>a;
            sh[k].math=a;
            sh[k].sum+=sh[k].math;
        }

        else

         if(strcmp(project,"英语")==0)
         {
             cout<<"             请输入该课程成绩:"<<endl;
        cin>>a;
             sh[k].english=a;
             sh[k].sum+=sh[k].english;
        }

         else

             if(strcmp(project,"语文")==0)
             {
                 cout<<"             请输入该课程成绩:"<<endl;
        cin>>a;
                 sh[k].chinese=a;
                 sh[k].sum+=sh[k].chinese;
         }

             else

                 if(strcmp(project,"计算机")==0)
                 {
                     cout<<"             请输入该课程成绩:"<<endl;
        cin>>a;
                     sh[k].computer=a;
                     sh[k].sum+=sh[k].computer;
                 }

                 else
                 {
                     m++;
                     cout<<"             对不起,您输入的课程不存在,请重新输入"<<endl;
                 }


    }
    sh[k].ave=(double)sh[k].sum/b;
            }


}
void find(student sh[],int i)//查找学生信息
{
    int nn;  
    int h=1,he;

    char name2[20],num2[10];
    while(h!=0)
    {

        cout<<" 按姓名查询请输入1  "<<endl;
        cout<<" 按学号查询请输入2  "<<endl;
        cin>>nn;
        if(nn==1||nn==2)
            h=0;
        else
        {cout<<"            对不起,您输入的数字有误,请重新输入....."<<endl;h=1;}
    }

    if(nn==1)
    {
        cout<<"             请输入要查找的学生姓名:"<<endl;
        cin>>name2;
        for(nn=1;nn<i;nn++)
        {
            if(strcmp(sh[nn].name,name2)!=0)
                he=0;
            else
            {he=nn;break;}
        }
            if(he==0)
                cout<<"                   对不起,没有该学生的信息....."<<endl;
            else
            {
                cout<<"姓名    学号    数学成绩    英语成绩    计算机成绩    语文成绩   平均成绩"<<endl;
                sh[h].score();
            }



    }
    else
    {
        cout<<"             请输入要查找的学生学号:"<<endl;
        cin>>num2;
        for(nn=1;nn<i;nn++)
        {   if(strcmp(sh[nn].num,num2)!=0)
                he=0;
            else
            {   he=nn;break;}
        }
        if(he==0)
            cout<<"                   对不起,没有该学生的信息....."<<endl;
        else
                sh[h].score();
    }
        cout<<"             请按任意键继续......"<<endl;
        getchar();


}
void del(student sh[],int i)//删除学生信息
{

    char name3[20];int h,bat;
    cout<<"             请输入您想要删除的学生姓名: "<<endl;
    cin>>name3;
    for(h=1;h<=i;h++)
        if(strcmp(sh[h].name,name3)==0)
            bat=h;
        for(h=bat;h<i;h++)
            sh[h]=sh[h+1];
        cout<<"删除成功.....请按任意键继续操作..."<<endl;
        getchar();
        i--;


}
void student::input()    //输入学生信息                        
{
    int a,b,n;
    sum=0;
    char project[10];
    cout<<"                 请输入学生姓名:"<<endl;
    cin>>name;
    cout<<"                 请输入学生学号:"<<endl;
    cin>>num;
    cout<<"                 请输入学生选课数:"<<endl;
    while(true)
    {  cin>>n;
        if(n>4)
            cout<<"对不起,请输入课程数1~4范围内:  请重新输入"<<endl;
        else
        {b=n;
        break;}
    }

    while(n--)
    {
        cout<<"             请输入课程名称:"<<endl;
        cin>>project;
        if(strcmp(project,"数学")==0)
        {
            cout<<"             请输入该课程成绩:"<<endl;
        cin>>a;
            math=a;
            sum+=math;
        }
        else
         if(strcmp(project,"英语")==0)
         {
             cout<<"             请输入该课程成绩:"<<endl;
        cin>>a;
             english=a;
             sum+=english;
         }
         else
             if(strcmp(project,"语文")==0)
             {
                 cout<<"             请输入该课程成绩:"<<endl;
        cin>>a;
                 chinese=a;
                 sum+=chinese;
             }
             else
                 if(strcmp(project,"计算机")==0)
                 {
                     cout<<"             请输入该课程成绩:"<<endl;
        cin>>a;
                     computer=a;
                     sum+=computer;
                 }
                 else
                 {
                     n++;
                     cout<<"             对不起,您输入的课程不存在,请重新输入"<<endl;
                 }


    }
    ave=(double)sum/b;
    output();
}
void  student::output()//输出学生信息
{
    char con;
    cout<<"             您输入的学生信息为:"<<endl;
    cout<<"           姓名:";cout<<name<<endl;
    cout<<"           学号:";cout<<num<<endl;
    if(math>=0)
    {cout<<"           数学成绩:";cout<<math<<endl;}
    if(english>=0)
    {cout<<"           英语成绩:";cout<<english<<endl;}
    if(computer>=0)
    {cout<<"           计算机成绩:";cout<<computer<<endl;}
        if(chinese>=0)
        {   cout<<"           语文成绩:";cout<<chinese<<endl;}
        cout<<"             确定请按Y,重新输入请按N..."<<endl;
        cin>>con;
        if(con=='Y'||con=='y')
        {
            cout<<"             恭喜您输入成功!"<<endl;
            cout<<"             请按任意键继续......"<<endl;
        }
        else
        {math=english=computer=chinese=-1;
            input();}

        getchar();
}
void welcom()
{

cout<<"     请根据相应的数字选择     "<<endl;
cout<<"  【1】---------输入学生信息  "<<endl;
cout<<"  【2】---------修改学生信息   "<<endl;
cout<<"  【3】---------查看学生信息  "<<endl;
cout<<"  【4】---------删除学生信息  "<<endl;
cout<<"  【5】---------查找学生信息    "<<endl;
cout<<"  【0】---------退出系统    "<<endl;

}
int main()
{int a,i,j;
    i=10;
    int n=0;
    int m=10;
    student grade[1000];
    student bb;
    bb.book(grade,1000);

    cout<<"              你好,欢迎使用学生信息管理系统    "<<endl;

    cout<<"                 请按任意键继续......."<<endl;

    getchar();
    while(n=0)
    {
        welcom();
        cout<<"      请输入相应数字.................."<<endl;
        cin>>a;
        switch(a)
        {

        case 0:cout<<"              谢谢您的使用!再见...."<<endl;n=1;break;
        case 1:{++i;grade[i].input();break;}
        case 2:change(grade,i);break;
        case 3:
            {   cout<<"姓名    学号    数学成绩    英语成绩    计算机成绩    语文成绩   平均成绩"<<endl;
                for(j=1;j<=i;j++)
                    grade[j].score();
                   cout<<"             请按任意键继续......"<<endl;
                    getchar();
                        break;
            }
        case 4:del(grade,i);break;
        case 5:find(grade,i);break;
        default :cout<<"输入有误,请重新输入!!按任意键继续:"<<endl;getchar();break;
        }
    }
    return 0;

}
  • 写回答

2条回答

查看更多回答(1条)

报告相同问题?

问题事件

  • 专家已采纳回答 1月8日

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题