首页 > 其他分享 >成绩管理系统(杠就你对小组)

成绩管理系统(杠就你对小组)

时间:2023-12-16 23:35:35浏览次数:25  
标签:cout 管理系统 int 小组 student hh score stud 成绩

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <windows.h>
#include <conio.h>
#include <stdlib.h>
#include <cstring>
#include <bits/stdc++.h>
using namespace std;
struct student
{
    int lead;
    char num[13];
    string name;
    float score[3];
};
void menu();
void output(student stud);
void best(student stud[], float a[], int n);
void numberfind(student stud[], int n);
void namenotclear(student stud[], int n);
void all(student stud[], int n);
void add(student stud[], int &n, float *pa);
void subject(student stud[], int n);
void average(student stud[], int n, float a[]);
void eight(student stud[],int n);
void nine(student stud[], int n);
void nine1(student stud[], int n);
void ten(student stud[], int n);
void eleven(student stud[], int n);
int main()
{
    int choose, n=0;
    float a[1000];
    student stud[1000];
    menu();
    fstream infile;
    infile.open("score.txt");
    for(int i=0; ; i++)
    {
        stud[i].num[12]='\0';
        infile>>stud[i].lead>>stud[i].num>>stud[i].name>>stud[i].score[0]>>stud[i].score[1]>>stud[i].score[2];
        a[i]=stud[i].score[0]+stud[i].score[1]+stud[i].score[2];
        if(stud[i].lead==0) break;
        n++;
    }
    cin>>choose;
    while (choose!=0) 
    {
     switch (choose) 
        {
            case 1: add(stud, n, a); break;
            case 2: all(stud, n); break;
            case 3: subject(stud, n); break;
            case 4: namenotclear(stud, n); break;
            case 5: numberfind(stud, n); break;
            case 6: best(stud, a, n); break;
            case 7: average(stud, n, a); break;
            case 8: eight(stud, n); break;
            case 9: nine(stud, n); break;
            case 10: ten(stud, n); break;
            case 11: eleven(stud, n); break;
            //default:cout << "暂不存在该选项功能,请重新选择!!!"; break;
        }
    system("pause");
    system("CLS");
    menu(); 
    cin>>choose;
    }
    cout<<"你已退出该系统"<<endl;
  return 0;
}
void menu()
{
    cout<<"2301班C++大作业--程序设计"<<endl;
    cout<<"小组成员:侯勇鹏(20231003253) 吴欣泽(20231003258) 魏镇(20231003268)"<<endl;
    cout<<"完成时间:2023年12月16日" <<endl;
    cout<<"********************************"<<endl; 
    cout<<"*欢迎使用学生成绩管理系统      *"<<endl;
    cout<<"*0.退出该系统                  *"<<endl; 
    cout<<"*1.录入学生成绩                *"<<endl;
    cout<<"*2.显示所有学生的信息          *"<<endl;
    cout<<"*3.显示某门课程的所有学生成绩  *"<<endl;
    cout<<"*4.按姓名查找某学生成绩        *"<<endl;
    cout<<"*5.按学号查找学生成绩          *"<<endl;
    cout<<"*6.查找最高平均分              *"<<endl;
    cout<<"*7.计算学生的平均成绩          *"<<endl;
    cout<<"*8.按平均分分数排序            *"<<endl;
    cout<<"*9.修改学生信息                *"<<endl;
    cout<<"*10.学生成绩水平分析           *"<<endl;
    cout<<"*11.将学生成绩信息导出到文件中 *"<<endl; 
    cout<<"********************************"<<endl;
    cout<<"请输入你要选择的功能:"; 
}
void output(student stud)
{
    cout<<stud.lead<<"\t"<<stud.num<<" "<<setiosflags(ios_base::left)<<setw(18)<<stud.name<<stud.score[0]<<"\t"<<stud.score[1]<<"\t"<<stud.score[2]<<endl;
}
void best(student stud[], float a[], int n)//功能六:查找最高平均分
{
    int p=a[0], k=0;
    for(int i=1; i<n; i++)
    if(p<a[i])
    {
        p=a[i];
        k=i;
    }
    cout<<"序号    "<<"学号         "<<setiosflags(ios_base::left)<<setw(18)<<"姓名"<<"语文    "<<"数学    "<<"英语"<<endl; 
    output(stud[k]);
    cout<<"最高平均分为:"<< fixed << setprecision(3) << a[k]/3 <<endl; 
}
void numberfind(student stud[], int n)//功能五:按学号查找学生成绩
{
    int k, p;
    char numfind[13];
    numfind[12]='\0';
    cout<<"请输入需要查询的学号:";
    cin>>numfind;
    for(int i=0; i<n; i++)
    {
        k=strcmp(numfind, stud[i].num);
        if(k==0) {p=i; break;}
    }
    if(k==0)
    {
        cout<<"序号    "<<"学号         "<<setiosflags(ios_base::left)<<setw(18)<<"姓名"<<"语文    "<<"数学    "<<"英语"<<endl; 
        output(stud[p]);
    }
    else cout<<"Not Found"<<endl;
}
void namenotclear(student stud[], int n)//功能四:按姓名查找某学生成绩
{
    int k=0;
    string namefind;
    cout<<"请输入需要查询的名字:";
    cin>>namefind;
    cout<<"序号    "<<"学号         "<<setiosflags(ios_base::left)<<setw(18)<<"姓名"<<"语文    "<<"数学    "<<"英语"<<endl;
    for(int i=0; i<n; i++)
        {
            if (stud[i].name.find(namefind) != string::npos)
            { 
                output(stud[i]);
                k=1;
            }
        }
        if(k==0) cout<<"Not Found"<<endl;
}
void all(student stud[], int n)//功能二:显示所有学生的信息
{
    cout<<"序号    "<<"学号         "<<setiosflags(ios_base::left)<<setw(18)<<"姓名"<<"语文    "<<"数学    "<<"英语"<<endl; 
    for(int i=0; i<n; i++)
    output(stud[i]);
}
void add(student stud[], int& n, float a[])//功能一:录入学生成绩
{
    int m, k, l;
    student hhh;
    cout << "需要录入的学生人数:";
    cin >> m;
    cout << "请输入需要录入的学生的信息(请依次输入学号、姓名和三门课的成绩)" << endl;
    for (int i = n; i < n + m; i++)
    {
        cout << "学生" << i - n + 1 << ":";
        cin >> hhh.num >> hhh.name >> hhh.score[0] >> hhh.score[1] >> hhh.score[2];
        if (strlen(hhh.num) != 12)
        {
            cout << "输入的学号位数应是12位(~._.~)!请重新输入" << endl;
            i = i - 1;
            continue;
        }
        for (int j = 0; j < i; j++)
        {
            k = strcmp(stud[j].num, hhh.num);
            if (k == 0) break;
        }
        if (k == 0)
        {
            cout << "学号重复!请重新输入" << endl;
            i = i - 1;
            continue;
        }
        stud[i] = hhh;
        stud[i].lead = i + 1;
        a[i] = stud[i].score[0] + stud[i].score[1] + stud[i].score[2];
    }
    n = n + m;
}
void subject(student stud[], int n)//功能三:显示某门课程的所有学生成绩
{
    int choose;
    cout << "请输入所需查询成绩的课程(0.语文;1.数学;2.英语):";
    cin >> choose;
    switch (choose)
    {
    case 0:cout<<"序号    "<<"学号         "<<setiosflags(ios_base::left)<<setw(18)<<"姓名"<< "语文" << endl; break;
    case 1:cout<<"序号    "<<"学号         "<<setiosflags(ios_base::left)<<setw(18)<<"姓名"<< "数学" << endl; break;
    case 2:cout<<"序号    "<<"学号         "<<setiosflags(ios_base::left)<<setw(18)<<"姓名"<< "英语" << endl; break;
    default:cout << "不存在该课程!!!" << endl; 
    }
    if(choose>=0&&choose<=2)
    for(int i=0; i<n; i++)
    cout<<stud[i].lead<<"\t"<<stud[i].num<<" "<<setiosflags(ios_base::left)<<setw(18)<<stud[i].name<<stud[i].score[choose]<<endl;
}
void average(student stud[], int n, float a[])//功能七:计算学生的平均成绩
{
    float m[1000], d, b, c, e;
    b=c=d=0;
    for(int i=0; i<n; i++)
    {
        b+=stud[i].score[0];
        c+=stud[i].score[1];
        d+=stud[i].score[2];
    }
    e=b+c+d;
    b=b/n;  c=c/n;  d=d/n; e=e/n;
    cout<<"所有学生的平均成绩:"<<endl;
    cout<<"序号    "<<"学号         "<<setiosflags(ios_base::left)<<setw(18)<<"姓名"<< "平均成绩"<<endl;
    for(int i=0; i<n; i++)
    {
        cout<<stud[i].lead<<"\t"<<stud[i].num<<" "<<setiosflags(ios_base::left)<<setw(18)<<stud[i].name<< fixed << setprecision(1) << a[i]/3 <<endl;
    }
    cout<<endl;
    cout<<"所有学生语文的平均成绩:"<< fixed << setprecision(3) << b<<endl;
    cout<<"所有学生数学的平均成绩:"<< fixed << setprecision(3) << c<<endl;
    cout<<"所有学生英语的平均成绩:"<< fixed << setprecision(3) << d<<endl;
    cout<<"所有学生的总平均成绩:  "<< fixed << setprecision(3) << e<<endl;
}
void eight(student stud[],int n)//功能八:按平均分分数排序
{
    student stud1[1000], stud2;
    for(int i=0; i<n; i++)
    {
        stud1[i]=stud[i];
    }
     int i,j,match;
    for(int i=0; i<n-1; i++)
    {
        int item=0;
        for(j=0; j<n-i-1; j++)
        {
            if(a[j]<a[j+1])
            {
                match=a[j];
                a[j]=a[j+1];
                a[j+1]=match;
                stud2=stud1[j];
                stud1[j]=stud1[j+1];
                stud1[j+1]=stud2;
                item=1;
            }
        }
        if(item==0) break;
    }
    cout<<"按平均分从大到小排名结果为:"<<endl; 
    cout<<"序号    "<<"学号         "<<setiosflags(ios_base::left)<<setw(18)<<"姓名"<< "平均成绩"<<endl;
    for(i=0; i<n; i++)
    cout<<stud1[i].lead<<"\t"<<stud1[i].num<<" "<<setiosflags(ios_base::left)<<setw(18)<<stud1[i].name<< fixed << setprecision(1) << a[i]/3 <<endl;
}
void nine1(student stud[], int n, int l)
{
    int o, t, k = 1;
    cout << "请选择需要修改的信息(1.学号/2.姓名/3.成绩):";
    cin >> o;
    char hh;
    student haha;
    if (o == 1)
    {
        while (1)
        {
            cout << "请输入新的学号(12位):";
            cin >> haha.num;
            for (int i = 0; i < n; i++)
            {
                k = 1;
                k = strcmp(haha.num, stud[i].num);
                if (k == 0)
                {
                    cout << "学号重复,请重新输入:";
                    cin >> haha.num;
                    i = 0;
                    continue;
                }
            }
            if (strlen(haha.num) != 12) { cout << "输入的学号位数应是12位!(~._.~) " << endl; continue; }
            if (k != 0) break;
        }
        cout << "确定要修改吗?(Y/N):";
        cin >> hh;
        if (hh == 'Y')
        {
            strcpy(stud[l].num, haha.num);
            cout << "修改成功!" << endl;
        }
        else if (hh == 'N') cout << "已取消修改" << endl;
        else cout << "输入错误,已取消修改" << endl;
    }
    else if (o == 2)
    {
        cout << "请输入新的姓名:";
        cin >> haha.name;
        cout << "确定要修改吗?(Y/N):";
        cin >> hh;
        if (hh == 'Y')
        {
            stud[l].name = haha.name;
            cout << "修改成功!" << endl;
        }
        else if (hh == 'N') cout << "已取消修改" << endl;
        else cout << "输入错误,已取消修改" << endl;
    }
    else if (o == 3)
    {
        student s1;
        while (1)
        {
            cout << "请选择需要修改成绩的课程(1.语文/2.数学/3.英语):";
            cin >> t;
            if (t == 1)
            {
                cout << "请输入新的语文成绩:";
                cin >> s1.score[0];
                cout << "确定要修改吗?(Y/N):";
                cin >> hh;
                if (hh == 'Y')
                {
                    stud[l].score[0] = s1.score[0];
                    cout << "修改成功!" << endl;
                }
                else if (hh == 'N') cout << "已取消修改" << endl;
                else cout << "输入错误,已取消修改" << endl;
            }
            else if (t == 2)
            {
                cout << "请输入新的数学成绩:";
                cin >> s1.score[1];
                cout << "确定要修改吗?(Y/N):";
                cin >> hh;
                if (hh == 'Y')
                {
                    stud[l].score[1] = s1.score[1];
                    cout << "修改成功!" << endl;
                }
                else if (hh == 'N') cout << "已取消修改" << endl;
                else cout << "输入错误,已取消修改" << endl;
            }
            else if (t == 3)
            {
                cout << "请输入新的英语成绩:";
                cin >> s1.score[2];
                cout << "确定要修改吗?(Y/N):";
                cin >> hh;
                if (hh == 'Y')
                {
                    stud[l].score[2] = s1.score[2];
                    cout << "修改成功!" << endl;
                }
                else if (hh == 'N') cout << "已取消修改" << endl;
                else cout << "输入错误,已取消修改" << endl;
            }
            else { cout << "输入错误,请重新输入" << endl; continue; }
            cout << "是否需要修改其他课程的成绩(Y/N):";
            cin >> hh;
            if (hh == 'Y') hh = 'Y';
            else if (hh == 'N') { cout << "已退出成绩修改功能" << endl; break; }
            else { cout << "输入错误,已退出成绩修改功能" << endl; break; }
        }
    }
    else cout << "输入错误!" << endl;
}
void nine(student stud[], int n)
{
    char hh;
    int o, k, l;
    all(stud, n);
    cout << "请写出需要修改的学生的学号或序号(1.学号/2.序号):";
    cin >> o;
    if (o == 1)
    {
        char numfind[13];
        numfind[12] = '\0';
        cout << "请输入学生的学号:";
        cin >> numfind;
        for (int i = 0; i < n; i++)
        {
            k = strcmp(numfind, stud[i].num);
            if (k == 0) { l = i + 1; break; }
        }
        if (k == 0)
        {
            cout << "序号    " << "学号         " << setiosflags(ios_base::left) << setw(18) << "姓名" << "语文    " << "数学    " << "英语" << endl;
            output(stud[l - 1]);
        }
    }
    if (o == 2)
    {
        cout << "请输入学生的序号:";
        cin >> l;
        if (l <= n && l > 0)
        {
            cout << "序号    " << "学号         " << setiosflags(ios_base::left) << setw(18) << "姓名" << "语文    " << "数学    " << "英语" << endl;
            output(stud[l - 1]);
        }
    }
    if ((o == 1 && k == 0) || (o == 2 && (l <= n && l > 0)))
    {
        while (1)
        {
            nine1(stud, n, l - 1);
            cout << "是否要继续修改该学生的其他信息?(Y/N):";
            cin >> hh;
            if (hh == 'Y') continue;
            else if (hh == 'N') { cout << "已退出修改信息功能" << endl; break; }
            else { cout << "输入错误,已退出修改信息功能" << endl; break; }
        }
    }
    else cout << "输入错误/没有该序号/没有该学号,已退出修改信息功能" << endl;
}
void ten(student stud[], int n) //功能十:学生成绩水平分析
{
    int a=0, b=0, c=0, d=0;
    cout<<"学生成绩水平分析如下所示(总人数:"<<n<<"):"<<endl; 
    cout<<"\t"<<"<60"<<"\t"<<"60~70"<<"\t"<<"70~90"<<"\t"<<"90~100\t"<<endl;
    cout<<"\t"<<"不及格"<<"\t"<<"及格"<<"\t"<<"良好"<<"\t"<<"优秀\t"<<endl; 
    for(int i=0; i<n; i++)
    {
        if(stud[i].score[0]<60) a++;
        if(stud[i].score[0]>=60&&stud[i].score[0]<70) b++;
        if(stud[i].score[0]>=70&&stud[i].score[0]<90) c++;
        if(stud[i].score[0]>=90&&stud[i].score[0]<=100) d++;
    }
    cout<<"语文\t"<<a<<"\t"<<b<<"\t"<<c<<"\t"<<d<<endl;
    a=b=c=d=0;
    for(int i=0; i<n; i++)
    {
        if(stud[i].score[1]<60) a++;
        if(stud[i].score[1]>=60&&stud[i].score[1]<70) b++;
        if(stud[i].score[1]>=70&&stud[i].score[1]<90) c++;
        if(stud[i].score[1]>=90&&stud[i].score[1]<=100) d++;
    }
    cout<<"数学\t"<<a<<"\t"<<b<<"\t"<<c<<"\t"<<d<<endl;
    a=b=c=d=0;
    for(int i=0; i<n; i++)
    {
        if(stud[i].score[2]<60) a++;
        if(stud[i].score[2]>=60&&stud[i].score[2]<70) b++;
        if(stud[i].score[2]>=70&&stud[i].score[2]<90) c++;
        if(stud[i].score[2]>=90&&stud[i].score[2]<=100) d++;
    }
    cout<<"英语\t"<<a<<"\t"<<b<<"\t"<<c<<"\t"<<d<<endl;  
}
void eleven(student stud[], int n)//功能十一:将学生成绩信息导出到文件中
{
    char hh;
    cout<<"确定要导出到文件“score_out.txt”中吗?(Y/N):" ;
    cin>>hh;
    if(hh=='Y') 
    {
        ofstream  outfile;
        outfile.open("score_out.txt");
        outfile<<"序号    "<<"学号         "<<setiosflags(ios_base::left)<<setw(18)<<"姓名"<<"语文    "<<"数学    "<<"英语"<<endl;
        for(int i=0; i<n; i++)
        {
            outfile<<stud[i].lead<<"\t"<<stud[i].num<<" "<<setiosflags(ios_base::left)<<setw(18)<<stud[i].name<<stud[i].score[0]<<"\t"<<stud[i].score[1]<<"\t"<<stud[i].score[2]<<endl;
        }
        cout<<"已成功导出"<<endl; 
    }
    else if(hh=='N') cout<<"已取消导出"<<endl;
        else cout<<"输入错误,已取消导出" <<endl;
}

 

标签:cout,管理系统,int,小组,student,hh,score,stud,成绩
From: https://www.cnblogs.com/gjnd/p/17908578.html

相关文章

  • 学生管理系统
    #include<iostream>#include<vector>usingnamespacestd;structa{stringname;intid;intage;stringClass;intnumber;}index;voidMAIN(){cout<<"欢迎使用学生管理系统"<<endl<<"***1......
  • 学生管理系统
    #include<bits/stdc++.h>#include<windows.h>usingnamespacestd;structStudent{ intid;//学号 stringname;//姓名 intage;//年龄 intgrade;//班级}s;voidzhujm(){ cout<<"欢迎来到学生管理系统!!"<<endl; cout<<"请你做出以下......
  • 师生健康信息管理系统-计算机毕业设计源码+LW文档
    摘要随着移动应用技术的发展,越来越多的用户借助于移动手机、电脑完成生活中的事务,许多的传统行业也更加重视与互联网的结合。本论文主要介绍基于java的师生健康信息管理系统,运用软件工程原理和开发方法,采用springboot框架构建的一个管理系统。整个开发过程首先对软件系统进行需求......
  • 2024年值得关注的11款工单管理系统——完整比较分析
    享11款主流的工单管理系统,比如:1.PingCode:IT服务管理(ITSM)系统;2.纷享销客:一站式客服工单管理方案;3.Udesk:客户支持或服务台系统;4.OTRS:海外ITSM工单系统;5.Worktile:项目管理系统;6.osTicket:开源客户支持或服务台系统等。一、工单管理系统的类型工单管理系统可以根据不同的应用场景和......
  • 浪潮信息HANA一体机创SAP BWH最佳成绩,算力助商业智能更快更准
    近日,SAP官方发布最新BWHBenchmark基准测试结果,浪潮信息NF8480G7四路HANA一体机以每小时执行17044次查询的成绩,刷新该测试最高纪录,为全球金融、高端制造、零售、能源等行业用户的商业智能分析,提供高效、领先的算力平台,从容应对快速多变的商业环境。SAPBWHBechmark基准测试最新结......
  • 浅析AI视频分析与视频管理系统EasyCVR平台及场景应用
    人工智能的战略重要性导致对视频智能分析的需求不断增加。鉴于人工智能视觉技术的巨大潜力,人们的注意力正在从传统的视频监控转移到计算机视觉的监控过程自动化。1、什么是视频分析?视频分析或视频识别技术,是指从视频片段中提取有用信息的过程,比如视频中的人数、识别特定的物体或......
  • 浅析AI视频分析与视频管理系统EasyCVR平台及场景应用
    人工智能的战略重要性导致对视频智能分析的需求不断增加。鉴于人工智能视觉技术的巨大潜力,人们的注意力正在从传统的视频监控转移到计算机视觉的监控过程自动化。1、什么是视频分析?视频分析或视频识别技术,是指从视频片段中提取有用信息的过程,比如视频中的人数、识别特定的物体或个......
  • 半导体CRM选型:什么样的客户管理系统适合芯片制造业
    随着半导体材料行业的快速发展,企业面临着越来越多的挑战。在这个高度竞争的市场中,如何提高销售管理效率、降低成本、优化资源配置成为各企业亟待解决的问题。而引入CRM系统则可以为企业提供一整套信息化解决方案,推动半导体材料行业的持续发展。半导体材料行业概述半导体材料行......
  • Java云架构、云服务、云运维的医院信息管理系统源码(云HIS)
    医院信息系统(HIS)经历了从手工到单机再到局域网的两个阶段,随着云计算、大数据新技术迅猛发展,基于云计算的医院信息系统将逐步取代传统局域网HIS,以适应人们对医疗卫生服务越来越高的要求。利用云计算、大数据等现代信息技术研发的医疗卫生信息平台(HIP)实现了医院信息化从局域网向互......
  • 什么是LIS系统?实验室信息管理系统是什么?
    在医疗信息化改革的这个大背景下,很多医院都在不断完善信息化建设,有些人还不知道医院实验室信息管理系统。本文章仅以个人的理解整理出来,本文从LIS系统定义、LIS系统实现了哪些功能、LIS系统解决了实验室实际工作中的哪些问题,进行分享;希望能帮助更多基础医疗单位了解【实验室信息管......