收藏 分销(赏)

学生成绩管理系统-C++.doc

上传人:精*** 文档编号:4053927 上传时间:2024-07-26 格式:DOC 页数:9 大小:32.54KB 下载积分:6 金币
下载 相关 举报
学生成绩管理系统-C++.doc_第1页
第1页 / 共9页
学生成绩管理系统-C++.doc_第2页
第2页 / 共9页


点击查看更多>>
资源描述
设计题目:成绩管理系统 设计要求实现如下功能: 输入一个班级的学生基本信息(包括学号,姓名,性别,科目),对N门考试的成绩进行管理(例N=5) 要求 : 1.用户录入每个学生每门课程的分数; 2.能够计算每个学生的各门功课总分和平均分,并按总分将成绩排序,显示每个学生的总分和排名; 3.计算全班各门功课的平均分,显示没门课程中低于平均分的每一个学生的学号,姓名,性别,科目,成绩等信息; 4。显示每门科目中,成绩在90分以上的学生信息。另外还输出每门科目中不及格的学生信息; 5。能按姓名或者学号查找,增加,删除和保存各个学生的信息。 6 文件操作 源码: class.cpp文件: #include〈iostream〉 #include<fstream〉 #include〈string〉 using namespace std; class Student{ private: int no; string name,sex; public: string getName(){return name;} string getSex(){return sex;} int getNo(){return no;} void setSex(string s){sex=s;} void setNo(int sno){no=sno;} void setName(string nam){name=nam;} void show(){ cout〈〈”学号 :"〈〈no〈〈endl; cout〈<”姓名 :”〈<name〈〈endl; cout〈〈"性别 :"<<sex〈〈endl; cout〈<endl; } void Init(){ string n; int num,s; cout<〈”请输入学号:"〈<endl; cin〉〉num; cout<〈"请输入姓名:”〈<endl; cin〉〉n; cout〈〈”请选择性别:男 0,女 1"〈<endl; cin>>s; no=num; name=n; string s1,s2; if(s=0){s1=”boy”;Student::setSex(s1);} else{ s2=”girl”;Student::setSex(s2); } } }; class Classes{ private: string name; public: int number; Student c[100]; int getNumber(){return number;} Student getStu(){return c[100];} void setStudent(Student a[100]){c[100]=a[100];} void setNumber(int num){number=num;} void Init(){ number=0; string nam; cout<〈”请输入班级姓名:”〈〈endl; cin〉>nam; cout〈<"请输入班级人数:"〈<endl; cin〉〉number; for(int i=0;i〈number;i++){ c[i].Init(); } ofstream out; out。open(”student.txt",ios::out); if(!out){ cerr〈〈”文件打不开”〈〈endl; abort(); } for(int i=0;i〈number;i++){ out〈<c[i]。getNo()〈<” ”<〈c[i]。getName()<<” ”〈<c[i]。getSex()<〈endl; } out.close(); } void searchByName(){ string nam; cout〈<”请输入要查找的学生姓名:”〈<endl; cin〉>nam; int i; for(i=0;i〈number;i++){ if(c[i]。getName()==nam){ c[i]。show(); } } } void serchByNo(){ int n; cout<<”请输入要查找的学号;”<〈endl; cin〉〉n; int i; for(i=0;i〈100;i++){ if(c[i].getNo()==n){c[i]。show();break;} } } }; class Course{ private: string name; int score; public: string getName(){return name;} void Init(){ string nam; cout<<"请输入课程名:"<〈endl; cin〉〉nam; setName(nam); } void setName(string nam){name=nam;} }; class OpreatorCou{ public: Classes c1; Course co[20]; int Mark[100][100],StuAll[100],n; void setN(int nn){n=nn;} int getN(){return n;} int getMark(){return Mark[100][100];} Course getCo(){return co[20];} void IN(){ cout<〈"请输入课程数量:"〈〈endl; cin>>n; for(int i=0;i〈n;i++){ co[i].Init(); } ofstream outS; outS。open(”course.txt”,ios::out); if(!outS){ cerr〈〈”文件打不开"〈〈endl; abort(); } for(int i=0;i〈n;i++){ outS〈<co[i].getName()〈〈endl; } outS。close(); } void input(Course co[20],int n,Student c[], int number ){ int s; for(int i=0;i〈n;i++){ for(int j=0;j〈number;j++){ cout<〈”请输入”<〈c[j].getName()〈<"的”<〈co[i].getName()〈〈"成绩"〈〈endl; cin>>s; if(s〈0||s〉100){ cout〈<"你输入的成绩有误请重新输入!(成绩范围为0-100!)”〈<endl; j=j—1; } else{ Mark[i][j]=s; } } } ofstream out; out。open(”score。txt",ios::out); if(!out){ cerr〈<"文件打不开"<〈endl; abort(); } for(int i=0;i<n;i++){ out〈<co[i]。getName(); for(int j=0;j<number;j++){ out<<” ”<<Mark[i][j]〈〈" "; } out〈<endl; } out。close(); } void CountStu(int Mark[100][100],int number,int n){ for(int i=0;i<number;i++){ int s=0; for(int j=0;j〈n;j++){ s=s+Mark[j][i]; } StuAll[i]=s; } } void CountCouAvg(int Mark[100][100],Student c[],int number,Course co[],int n){ float CouAll[10]; for(int i=0;i〈n;i++){ float s=0.0; for(int j=0;j〈number;j++){ s=s+Mark[i][j]; } CouAll[i]=s/n; } for(int i=0;i〈n;i++){ cout<〈co[i].getName()〈〈”的平均分是:”<〈(CouAll[i])〈〈endl; } for(int i=0;i〈n;i++){ for(int j=0;j<number;j++){ if(Mark[i][j]<CouAll[i]){ cout〈<c[j].getName()〈<"的”<〈co[i].getName()<〈"成绩小于平均分."〈〈endl;} } } } void showUnpass(int Mark[100][100],Student c[],int number,Course co[],int n){ for(int i=0;i〈n;i++){ for(int j=0;j〈number;j++){ if(Mark[i][j]〈60){ cout〈<c[j]。getName()〈<"的"〈〈co[i]。getName()<〈”成绩不及格!"〈<endl; } } } } void showGood(int Mark[100][100],Student c[],int number,Course co[],int n){ for(int i=0;i〈n;i++){ for(int j=0;j〈number;j++){ if(Mark[i][j]〉90){ cout〈<c[j]。getName()<〈”的”〈〈co[i]。getName()<〈”成绩优秀!成绩为:"〈<Mark[i][j]〈〈endl; } } } } void order(Student c[],int number,int StuAll[],int n){ for(int i=0;i<number;i++){ int sum=0;Student stu; if(StuAll[i]〈StuAll[i+1]){ sum=StuAll[i]; StuAll[i]=StuAll[i+1]; StuAll[i+1]=sum; stu=c[i]; c[i]=c[i+1]; c[i+1]=stu; } } for(int i=0;i〈number;i++){ cout<<c[i]。getName()〈〈”的排名是:”〈〈(i+1)〈<" 总分:"〈〈StuAll[i]<<endl; } ofstream out; out。open(”studentscore.txt”,ios::out); if(!out){ cerr〈<"文件打不开"<〈endl; abort(); } for(int i=0;i<number;i++){ out〈〈c[i].getName()〈<” ”<<StuAll[i]<〈” "〈〈(i+1)〈<endl; } out.close(); } void Delete(int Mark[100][100],Student c[],int number,int n){ string na; cout<〈"请输入要删除的学生姓名:"<〈endl; cin〉〉na; for(int i=0;i〈number;i++){ if(c[i].getName()==na){ for(i;i〈number;i++){ c[i]=c[i+1]; } for(int j=0;j〈n;j++){ for(int k=i;k<number;k++){ Mark[j][k]=Mark[j][k+1]; } } } else{cout〈〈”您要删除的学生不存在!”<〈endl;} } cout〈〈"删除成功!"〈<endl; } void ReadText(Student c[],int number,Course co[],int n){ char sname[30],sex[30]; int sno; ifstream in(”student.txt”,ios::in); if(!in){ cerr〈<”文件打不开”〈〈endl; abort(); } int i=—1; in〉>sno〉>sname〉〉sex; while(!in。eof()){ i=i+1; c[i]。setNo(sno); c[i].setName(sname); c[i].setSex(sex); in>〉sno>>sname〉>sex; } c1。setStudent(c); c1。setNumber(i+1); in。close(); char nam[20]; ifstream ins(”course。txt”,ios::in); if(!ins){ cerr〈〈"文件打不开”〈〈endl; abort(); } int j=—1; ins>>nam; while(!ins.eof()){ j++; co[j]。setName(nam); ins〉>nam; } setN(j+1); ins。close(); cout〈<”读取文件完毕,请继续操作!"〈〈endl; } }; 主函数: #include”class。cpp” #include〈iostream〉 void showMenue(){ cout<<”********学生成绩管理系统********”〈<endl; cout〈〈"请选择功能:"〈<endl; cout〈<”1 输入学生成绩”<<endl; cout〈<”2 根据成绩排序输出。"〈〈endl; cout〈〈”3 显示成绩大于90分的学生”〈〈endl; cout<〈”4 显示不及格学生”<<endl; cout<<”5 按姓名查找”〈〈endl; cout〈〈”6 按学号查找"<〈endl; cout〈〈”7 显示成绩小于课程平均分的学生”〈〈endl; cout〈〈”8 删除学生信息”<〈endl; cout<<”0 退出”<〈endl; cout<〈endl; } void main(){ int choice,input ; cout〈<"请选择初始化方式:1.手动输入 2。从文件读取”〈〈endl; cin〉〉input; OpreatorCou op; if(input==1){ op.c1。Init();op。IN();} if(input==2){op.ReadText(op.c1。c,op。c1.getNumber(),op。co,op。getN()); } do{ showMenue(); cin〉〉choice; switch(choice){ case 1: op。input(op。co,op.getN(),op。c1。c,op。c1。getNumber());break; case 2: { op。CountStu(op。Mark,op.c1。getNumber(),op。getN()); op.order(op。c1。c,op。c1.getNumber(),(op.StuAll),op。getN()); break; } case 3: op。showGood(op。Mark,op。c1。c,op。c1。getNumber(),op.co,op.getN()); break; case 4: op.showUnpass(op。Mark,op。c1。c,op.c1。getNumber(),op。co,op。getN());break; case 5: op。c1.searchByName();break; case 6: op。c1。serchByNo(); break; case 7: op.CountCouAvg(op.Mark,op.c1.c,op。c1.getNumber(),op。co,op。getN());break; case 8: op。Delete(op。Mark,op。c1.c,op。c1.getNumber(),op.getN());break; case 0: break; default: cout〈〈”您输入的有误,请重新输入!"<<endl; } }while(choice!=0); } 运行界面:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服