用C++编写一个学生信息管理系统,主要用来管理学生基本信息及成绩信息。系统功能模块如下图:

发布于2021-12-15 18:57:37

具体要求为:1. 建立学生信息,每个学生的信息应包括:学号、姓名、性别、班级、至少3门课程的成绩;2. 数据输入:输入学生的各项信息;3. 数据修改:根据输入学生的学号可以选择修改该学生的信息;4. 数据处理:可以选择处理方式为:排序、查询、统计。其中:  a) 排序:按学号排序  b) 查询:根据学号查询成绩  c) 统计:可选择统计各学生平均成绩或统计存在不及格科目的学生;5. 数据输出:输出学生的相应结果信息;6. 退出:退出整个学生信息管理系统。

4个回答
admin
网友回答2021-12-15
这种管理系统是最简单的了。如果写数据库那稍微烦一点,见到你们下面说的话了,应该是写内存,那就很简答了。 首先,定义一个结构体存放学生的几个信息,通过cin>>输入你所需要的信息。定义一个结构体数组,将每个结构体放进去。 然后排序,通过for循环遍历,信息,用冒泡排序按学号排序。 查询,遍历时,if你要查找的学号,输出就OK了 修改,查询时,找到再进行修改就好了。 统计,也是类似 退出,调用exit(0);函数。
admin
网友回答2021-12-15
#include <iostream> #include <iomanip> #include <string> using namespace std; struct Student { int num; char name[8]; float score[3],ave,sum; }; void input(Student s[],int n); void count(Student s[],int n); void output(Student s[],int n); void sort(Student s[],int n); void rate(Student s[],int n); void searchnum(Student s[],int n); void searchname(Student s[],int n); #include "lab5.h" #include<string> void input(Student s[],int n) { int i,j; for (i=0;i<n;i++) { cout<<"请输入第"<<i+1<<"学生成绩"<<endl; cout<<"学号 姓名 数学 语文 英语\n"; cin>>s[i].num; cin>>s[i].name; for (j=0;j<3;j++) { cin>>s[i].score[j]; } } cout<<"共输入"<<i<<"个学生记录!"<<endl; } void count(Student s[],int n) { int i,j; for (i=0;i<n;i++) { s[i].sum=0; for (j=0;j<3;j++) s[i].sum=s[i].score[j]+ s[i].sum; s[i].ave=s[i].sum/float(3.0); } cout<<"数据计算完毕"<<endl; } void output(Student s[],int n) { int i,j; cout<<n<<"个学生成绩:\n"; cout<<"\n学号 姓名 数学 语文 英语 总成绩 平均成绩\n"; for (i=0;i<n;i++) { cout<<s[i].num<<setw(6)<<s[i].name; cout.precision(4); for(j=0;j<3;j++) cout<<setw(6)<<s[i].score[j]; cout<<setw(8)<<s[i].sum<<setw(8)<<s[i].ave; cout<<endl; } } void sort(Student s[],int n) { int i,j; Student temp; for(j=0;j<n-1;j++) for(i=0;i<n-1-j;i++) { if(s[i].sum>s[i+1].sum) { temp=s[i]; s[i]=s[i+1]; s[i+1]=temp; } } cout<<"按总成绩排序完毕!"<<endl; } void searchnum(Student s[],int n) { int i,j; char flag='Y'; long x; while(flag=='Y'||flag=='y') { cout<<"请输入要查找的学号"<<endl; cin>>x; for(i=0;i<n;i++) { if (s[i].num==x) { cout<<setw(6)<<s[i].num<<setw(6)<<s[i].name; for(j=0;j<3;j++) cout<<setw(6)<<s[i].score[j]; cout<<setw(8)<<s[i].sum<<setw(8)<<s[i].ave<<endl; break; } else cout<<"没有找到学号为"<<x<<"的记录"<<endl; } cout<<"是否继续查找(Y/N)?"<<endl; cin>>flag; } } void searchname(Student s[],int n) { int i,j; char flag='Y'; char x[8]; while(flag=='y'||flag=='Y') { cout<<"请输入要查找的姓名"<<endl; cin>>x; for(i=0;i<n;i++) { if(strcmp(x,s[i].name)==0) { for(j=0;j<3;j++) cout<<setw(6)<<s[i].score[j]; cout<<setw(8)<<s[i].sum<<setw(8)<<s[i].ave<<endl; break; } else cout<<"没有找到此学生"<<endl; } cout<<"继续查找?(Y/N)"<<endl; cin>>flag; } } void rate(Student s[],int n) { int a=0,b=0,c=0,d=0,i; for(i=0;i<n;i++) { if(s[i].ave<=100&&s[i].ave>=85) a++; else if (s[i].ave<85&&s[i].ave>=70) b++; else if (s[i].ave<70&&s[i].ave>=60) c++; else if (s[i].ave<60) d++; } cout<<"优秀人数为:"<<a<<endl; cout<<"良好人数为:"<<b<<endl; cout<<"及格人数为:"<<c<<endl; cout<<"不及格人数为:"<<d<<endl; } #include"Lab5.h" const int M=50; int main() { Student stu[M]; int n; cout<<"请输入班级人数(人数不超过50):"; cin>>n; while(n<0||n>50) { cout<<"请重新输入(人数不超过50):"; cin>>n; } int i,flag=1; while(flag) { cout<<endl; cout<<"*******************************************"<<endl; cout<<"*\t1-输入学生数据\t\t\t*"<<endl; cout<<"*\t2-计算学生的总成绩和平均成绩\t*"<<endl; cout<<"*\t3-输出学生数据\t\t\t*"<<endl; cout<<"*\t4-按总成绩排序\t\t\t*"<<endl; cout<<"*\t5-按学号查找\t\t\t*"<<endl; cout<<"*\t6-按姓名查找\t\t\t*"<<endl; cout<<"*\t7-统计优、良、及格、不及格的人数\t*"<<endl; cout<<"*\t0-退出\t\t\t\t*"<<endl; cout<<"********************************************"<<endl; cout<<"输入你的选择(0-7):"<<endl; cin>>i; while(i<0||i>7) { cout<<"请重新输入你的选择(0—7):"; cin>>i; } cout<<endl; switch(i) { case 1: cout<<"输入学生数据......"<<endl; input(stu,n); break; case 2: cout<<"计算学生的总成绩和平均成绩......"<<endl; count(stu,n); break; case 3: cout<<"显示学生数据......"<<endl; output(stu,n); break; case 4: cout<<"按总成绩排序......"<<endl; cout<<"排序完成"<<endl; sort(stu,n); break; case 5: cout<<"按学号查找......"<<endl; searchnum(stu,n); break; case 6: cout<<"按姓名查找......"<<endl; searchname(stu,n); break; case 7: cout<<"优、良、合格、不及格人数统计......"<<endl; rate(stu,n); break; case 0: cout<<"本次处理结束,再见!"<<endl; flag=0; } } return 0; }
admin
网友回答2021-12-15
写出代码 就得了
admin
网友回答2021-12-15
同学 请自己写 如果不喜欢编程 建议现在就换专业

回到
顶部