快捷搜索:

您的位置:澳门新葡4473网站 > 新闻社区 > c++-各位大神帮帮忙,这段代码中为什么求总分、

c++-各位大神帮帮忙,这段代码中为什么求总分、

发布时间:2020-01-24 18:28编辑:新闻社区浏览(199)

    #include<iostream>

    各位大神帮帮忙,这段代码中为什么求总分、平均分和排序会出现错误的
    #include
    #include
    #include
    #include
    using namespace std;
    const int MAX_STUDENT_NUM=100;
    class Student
    {
    public:
    void inputId(); //输入学号
    void inputName(); // 输入姓名
    void inputmath(); //输入数学成绩
    void inputEnglish(); //输入英语成绩
    void inputData(); //输入数据结构成绩
    int getId(); // 获得学号
    static void heading() //输出成绩标题
    {
    cout< }
    void output(); //输出成绩信息
    float CalTatalMark(); //计算总评成绩=数学+英语+数据结构
    private:
    int id; //学号
    char name[20]; //姓名
    float math; //数学成绩
    float English; //英语成绩
    float Data; //数据结构成绩
    float sum; //统计总分
    float averScore; //计算平均分
    };
    void Student::inputId()
    {
    cout cin>>id;
    while
    {
    cout<<"输入学号有误,请重新输入学号: "< cin>>id;

    using namespace std;

    }

     

    }
    void Student::inputName()
    {
    cin.ignore;
    cout<<"请输入姓名:";
    cin.getline;
    }
    void Student::inputmath()
    {
    cout<<"请输入数学:";
    cin>>math;
    while
    {
    cout<<"输入错误,成绩应该在0到100之间!"< cout cin>>math;

    void kemu(int n)

    }
    }
    void Student::inputEnglish()
    {
    cout<<"请输入英语成绩:";
    cin>>English;
    while(English100)
    {
    cout<<"输入错误,成绩应该在0到100之间!"< cout cin>>English;

    {

    }
    }
    void Student::inputData()
    {
    cout<<"请输入数据结构:";
    cin>>Data;
    while
    {
    cout<<"输入错误,成绩应该在0到100之间!"< cout cin>>Data;

    if(n == 1) cout<<"C++语言: ";

    }
    }
    int Student::getId()
    {
    return id;
    }

    else if(n == 2) cout<<"数据结构: ";

    void Student::output()
    {
    cout<<setw<<id<<setw<<name<<setiosflags(ios::fixed)<< setprecision<<setw<<math<<setw<<English<<setw<<Data<<endl;
    }

    else if(n == 3) cout<<"英语: ";

    float Student::CalTatalMark()
    {
    return math+English+Data;
    }

    else cout<<"数字电子技术: ";

    //录入或插入学生信息
    void Input(Student stu[], int &num)
    {
    // float score;//学生成绩
    int i=0; //人数
    string str;//用来判断是否继续输入的字符串
    if
    {
    while
    {
    stu[i].inputId();
    for(int j=0;j {
    if(stu[i].getId()==stu[j].getId
    {
    cout stu[i].inputId();
    }
    }
    stu[i].inputName();
    stu[i].inputmath();
    stu[i].inputEnglish();
    stu[i].inputData();
    i++;
    num=i;
    cout cin>>str;
    if(i==MAX_STUDENT_NUM)
    {
    cout<<"人数已达到"< break;
    }
    if(str=="y" || str=="Y")
    {
    continue;
    }
    else
    {
    break;
    }
    }
    }
    else //插入学生信息
    {
    if(num==MAX_STUDENT_NUM)
    {
    cout }
    else
    {
    i=num;//当前数组元素个数
    while
    {
    stu[i].inputId();
    for(int j=0;j {
    if(stu[i].getId()==stu[j].getId
    {
    cout stu[i].inputId();
    }
    }
    stu[i].inputName();
    stu[i].inputmath();
    stu[i].inputEnglish();
    stu[i].inputData();
    i++;
    num=i;
    cout cin>>str;
    if(i==MAX_STUDENT_NUM)
    {
    cout<<"人数已达到"<<MAX_STUDENT_NUM<<"人上限,无法再输入!n";
    break;
    }
    if(str=="y" || str=="Y")
    {
    continue;
    }
    else
    {
    break;
    }
    }
    }
    }
    }
    //输出显示成绩信息
    void Output(Student stu[], int num)
    {
    if
    {
    stu[0].heading();//学生信息标题
    for(int i=0;i<num;i++)
    {
    stu[i].output();
    }
    }
    else
    {
    cout<<"暂无成绩信息,请选择1=录入学生信息"<<endl;
    }

    }

    }
    //根据总评排序
    void Order(Student stu[], int num)
    {
    if
    {
    int i,j,k;
    Student temp;

    //成绩最高的学生----------------------

    for(i=0;i<num;i++)
    {
    for(j=0;j<num-i-1;j++)
    {
    if(stu[j].CalTatalMark()<stu[j+1].CalTatalMark
    {
    temp = stu[j];
    stu[j] = stu[j+1];
    stu[j+1] = temp;
    }
    }
    }
    stu[0].heading();//学生信息标题
    for(k=0;k<num;k++)
    {
    stu[k].output();
    }
    cout<<endl;
    }
    else
    {
    cout<<"暂无成绩信息,请选择1=录入学生信息"<<endl;
    }
    }

     

    //查找学生信息
    void Search(Student stu[], int num)
    {
    int id;
    string str;//用来判断是否继续输入的字符串
    while
    {
    cout<<"请输入您要查找的学号:";
    cin>>id;
    int flag=0;
    if(id>=1 && id<=40)
    {
    for(int i=0;i {
    if(stu[i].getId
    {
    flag++;
    }
    }
    if
    {
    cout }
    else
    {
    stu[0].heading();//学生信息标题
    for(int i=0;i {
    if(stu[i].getId
    {
    stu[i].output();
    }
    }
    }
    cout cin>>str;
    if(str=="y" || str=="Y")
    {
    continue;
    }
    else
    {
    break;
    }
    }
    else
    {
    cout<<"输入学号有误,请重新输入学号n "< cout cin>>str;
    if(str=="y" || str=="Y")
    {
    continue;
    }
    else
    {
    break;
    }
    }
    }
    }

    void hscore(float b[][4])

    int SearchSum(Student stu[], int num){ //查看总分
    int id;
    string str;
    float Math;
    float English;

    {

    float Data;

    float c = b[0][0];

    float sum=0;

    for(int i = 0; i < 5; i++)

    while
    {
    cout<<"请输入您要查找的学号:";
    cin>>id;
    int flag=0;
    if(id>=1 && id<=40)
    {
    for(int i=0;i<num;i++)
    {
    if(stu[i].getId
    {
    flag++;
    }
    }
    if
    {
    cout<<"没有该学号学生信息!"<<endl;
    }
    else
    {

    { //找出最高的分数

     for(int i=0;i<num;i++) { if(stu[i].getId { cout<<"总分为:"<<sum<<endl; sum=Math+English+Data; sum+=sum; return sum; } } } cout<<"继续查找请按y或Y:"; cin>>str; if(str=="y" || str=="Y") { continue; } else { break; } } else { cout<<"输入学号有误,请重新输入学号n "<<endl; cout<<"继续查找请按y或Y:"; cin>>str; if(str=="y" || str=="Y") { continue; } else { break; } }}
    

    for(int j = 0; j < 4; j++)

    }

    {

    float AverScore(Student stu[], int num){ //查看平均分
    int id;
    string str;

     

    float sum=0;
    float averScore=0;
    while
    {
    cout<<"请输入您要查找的学号:";
    cin>>id;
    int flag=0;
    if(id>=1 && id<=40)
    {
    for(int i=0;i<num;i++)
    {
    if(stu[i].getId
    {
    flag++;
    }
    }
    if
    {
    cout<<"没有该学号学生信息!"<<endl;
    }
    else
    {

    if(b[i][j] > c)

     for(int i=0;i<num;i++) { if(stu[i].getId { cout<<"平均分为:"<<AverScore<<endl; averScore+=sum/3; averScore+=averScore; return averScore; } } } cout<<"继续查找请按y或Y:"; cin>>str; if(str=="y" || str=="Y") { continue; } else { break; } } else { cout<<"输入学号有误,请重新输入学号n "<<endl; cout<<"继续查找请按y或Y:"; cin>>str; if(str=="y" || str=="Y") { continue; } else { break; } }}
    

    {

    }

    c = b[i][j];

    void Delete(Student stu[], int &num)
    {
    int id;
    string str;//用来判断是否继续输入的字符串
    while
    {
    cout<<"请输入要删除学生的学号:";
    cin>>id;
    int flag=0;//用来统计删除后剩余的数组元素个数
    Student a[100];
    if(id>=1 && id<=40)
    {
    for(int i=0;i {
    if(stu[i].getId
    {
    a[flag]=stu[i];
    flag++;
    }
    }
    if(flag==num)
    {
    cout }
    else
    {
    num=flag;
    for(int k=0;k {
    stu[k]=a[k];
    }
    cout }
    cout cin>>str;
    if(str=="y" || str=="Y")
    {
    continue;
    }
    else
    {
    break;
    }
    }
    else
    {
    cout<<"输入学号有误,请重新输入学号!n";
    cout<<"继续删除其他学生请按y或Y:";
    cin>>str;
    if(str=="y" || str=="Y")
    {
    continue;
    }
    else
    {
    break;
    }
    }
    }
    }

    }

    //统计人数
    void Statis(Student stu[], int num)
    {
    int i,a[5]={0};
    for(i=0;i {
    if(stu[i].CalTatalMark()>=90 && stu[i].CalTatalMark()<=100)
    {
    a[0] +=1;

    }

     } else if(stu[i].CalTatalMark()>=80 && stu[i].CalTatalMark { a[1] +=1; } else if(stu[i].CalTatalMark()>=70 && stu[i].CalTatalMark { a[2] +=1; } else if(stu[i].CalTatalMark()>=60 && stu[i].CalTatalMark { a[3] +=1; } else { a[4] +=1; }}cout<<" 100~90 89~80 79~70 69~60 <60"<<endl;for(i=0;i<5;i++){ cout<<setw<<a[i];}cout<<endl;
    

    }

    }

    cout<<"成绩最高的学生的序号和课程如下: n";

    //主菜单
    void Menu1()
    {
    cout<<" =================================================n";
    cout<<" = 欢迎使用成绩管理系统 =n";
    cout<<" = 1=录入学生 2=显示信息 =n";
    cout<<" = 3=排序总评 4=查找学生 =n";
    cout<<" = 5=插入学生 6=删除学生 =n";
    cout<<" = 7=统计人数 0=退出 =n";
    cout<<" =================================================n";
    cout<<"请选择:";
    }
    void Menu()
    {
    cout<<" =================================================n";
    cout<<" = 欢迎使用成绩管理系统 =n";
    cout<<" = 1=教师 2=学生 =n";
    cout<<" =================================================n";
    cout<<"请选择:";
    }
    void Menu2()
    {
    cout<<" =================================================n";
    cout<<" = 欢迎使用成绩管理系统 =n";
    cout<<" = 1显示信息 2=查看总分 =n";
    cout<<" = 3=查看平均分 0=退出 =n";
    cout<<" =================================================n";
    cout<<"请选择:";
    }

    for(int k = 0; k < 5; k++)

    int main()
    {
    int currentN=0;
    int sum=0;
    int averScore=0;
    float Math;
    float English;
    float Data;
    Student stu[MAX_STUDENT_NUM];
    /*从文件读数据 /
    ifstream filein("students.dat",ios::binary);
    if
    {
    filein.read((char
    )¤tN,sizeof);
    for(int i=0;i {
    filein.read&stu[i],sizeof;
    }
    }
    filein.close();
    string a;//用来判断菜单选择,用string
    Menu();
    while(cin>>a)
    {
    if{
    Menu1();
    while(cin>>a){
    if
    {
    cout<<"您选择了1=录入学生"<<endl;
    Input(stu, currentN);//输入
    Menu1();
    }
    else if
    {
    cout<<"您选择了2=显示信息"<<endl;
    Output(stu, currentN);//输出成绩信息
    Menu1();
    }
    else if
    {
    cout<<"您选择了3=排序总评"<<endl;
    Order(stu, currentN);
    Menu1();
    }
    else if
    {
    cout<<"您选择了4=查找学生"<<endl;
    Search(stu, currentN);
    Menu1();
    }
    else if
    {

    { //找出最高分数的学生

    cout<<"您选择了5=插入学生"<<endl;
    Input(stu, currentN);
    Menu1();
    }
    else if
    {
    cout<<"您选择了6=删除学生"<<endl;
    Delete(stu, currentN);
    Menu1();
    }
    else if
    {
    cout<<"您选择了7=统计人数"<<endl;
    Statis(stu, currentN);
    Menu1();
    }
    else if
    {
    /*往文件写入数据*/
    ofstream fileout("students.dat",ios::binary);
    if
    {
    cout<<"文件不能被打开!"<<endl;
    return 0;
    }
    fileout.write¤tN,sizeof);
    for(int i=0;i<currentN;i++)
    {
    fileout.write&stu[i],sizeof;
    }
    fileout.close();
    cout<<"退出成功!"<<endl;
    return 0;
    }
    else
    {
    cout<<"输入非法,请重新输入!"<<endl;
    Menu1();

    for(int t = 0; t < 4; t++)

     } } } else if { Menu2(); while(cin>>a){; if { cout<<"您选择了1=显示信息"<<endl; Output(stu, currentN);//输出成绩信息 Menu2(); } else if { cout<<"您选择了2=查看总分"<<endl; SearchSum(stu, currentN);//输出总分信息 Menu2(); } else if { cout<<"您选择了3=查看平均分"<<endl; AverScore(stu, currentN); Menu2(); } else if{ /*往文件写入数据*/ ofstream fileout("students.dat",ios::binary); if { cout<<"文件不能被打开!"<<endl; return 0; } fileout.write&currentN,sizeof); for(int i=0;i<currentN;i++) { fileout.write&stu[i],sizeof; } fileout.close(); cout<<"退出成功!"<<endl; return 0; } else{ cout<<"输入非法,请重新输入!"<<endl; Menu2(); } } } else{ cout<<"输入非法,请重新输入!"<<endl; Menu(); } } return 0;}
    

    {

    if(b[k][t] == c)

    {

    cout<<k<<" 号学生 >>> ";

    kemu(t);

    cout<<b[k][t]<<endl;

    }

    }

    }

    }

    //找出有不及格科目的学生----------------------------------

     

    void failure(float c[][4])

    {

    cout<<"有不及格科目的学生的情况:n";

     

    for(int i = 0; i < 5; i++)

    {

     

     

    for(int j = 0; j < 4; j++)

    {

    if(c[i][j] < 60)

    {

    cout<<i+1<<" 号学生 "<<endl; cout<<"C++语言: "<<c[i][0]<<"t"<<"数据结构: "<<c[i][1]<<"t";

    cout<<"英语: "<<c[i][2]<<"t"<<"数字电子技术: "<<c[i][3]<<endl;

    }

    }

    }

    }

     

    //求各科总平均分---------------------------------

     

    void average(float d[][4])

    {

    float m, av;

    for(int i = 0; i < 4; i++)

    {

    m = 0;

    av = 0;

    for(int j = 0; j < 5; j++)

    {

     

    m += d[j][i];

    }

    av = m/5;

    kemu(i+1);

    cout<<"的总平均分>>> "<<av<<endl;

    }

    }

     

    //主函数

     

    void main()

    {

    float a[5][4];

    cout<<

    "请分别输入 C++语言(第1门课) 数据结构(第2门课) 英语(第3门课) 数字电子技术(第4门课) 的成绩"

    <<endl;

    //录入学生成绩和序号

    for(int i = 0; i < 5; i++)

    {

    cout<<"n请输入第 "<< i+1<< "个学生的成绩:"<<endl;

    for(int j = 0; j < 4; j++)

    {

    cout<<"请输入第 "<<j+1<<" 门课成绩>>> ";

    cin>>a[i][j];

    }

    }

    //查询结果输出

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

    hscore(a);//最高成绩

    cout<<"-----------------------------------------nn";

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

    failure(a);//有不及格者

    cout<<"-----------------------------------------nn";

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

    average(a);//各科总平均分

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

    }

    本文由澳门新葡4473网站发布于新闻社区,转载请注明出处:c++-各位大神帮帮忙,这段代码中为什么求总分、

    关键词:

上一篇:www.4473.vipVC6.0的一些插件

下一篇:没有了