收藏 分销(赏)

学生成绩排名管理系统-C++-课程设计报告书样本.doc

上传人:二*** 文档编号:4532383 上传时间:2024-09-26 格式:DOC 页数:37 大小:1.27MB 下载积分:5 金币
下载 相关 举报
学生成绩排名管理系统-C++-课程设计报告书样本.doc_第1页
第1页 / 共37页
本文档共37页,全文阅读请下载到手机保存,查看更方便
资源描述
淮 海 工 学 院 计算机工程学院 课程设计报告 设计名称: C++语言课程设计 姓 名: 学 号: 专业班级: 系 (院): 计算机工程学院软件工程系 设计时间: .6.8~.6.24 设计地点: 计算机工程学院机房 成绩: 指引教师评语: 签名: 年 月 日 1.课程设计目 C++课程设计是计算机科学与技术专业重要实践性教学环节之一,本次设计结合实际应用规定,使课程设计既覆盖C++知识点,又接近工程实际需要。目是通过课程设计综合训练,培养学生实际分析问题、解决问题能力,以及编程和动手能力,最后目的是通过课程设计这种形式,协助学生系统掌握C++这门课程重要内容,养成良好编程习惯,更好完毕教学任务。 2.课程设计任务与规定: 规定: 本次课程设计运用《C++程序设计》课程中所学到编程知识和编程技巧,完毕具备一定难度和工作量程序设计题目,协助学生掌握编程、调试基本技能,独立完毕所布置任务。 规定: 1、对系统进行功能需求分析 2、设计合理数据构造和系统框架 3、编程简洁,程序功能齐全,能对的运营 4、阐明书、流程图要清晰 5、课题完毕后必要按规定提交课程设计报告 任务: 设计一种学生成绩排名系统,该系统重要功能如下: 1)  具备对成绩管理功能(添加、删除、排序) 2)  具备对成绩记录功能(最高分,最低分,平均分,及格率等) 3)  具备按学号、姓名、或课程名查询成绩功能。 4)学生成绩应当保存在文献中。 3.课程设计阐明书 ⑴概要设计 模块阐明: 在我设计程序中一共涉及了九个模块,分别是:浏览模块、添加模块、删除模块、查询模块、编辑模块、排序模块、读入文献模块、记录模块、退出系统模块。这九个功能中各个都是独立分开作为子函数,也就是说为了实现这九个功能我写了九个函数,在主函数中通过switch语句,把九个函数联系了起来,同步,为了实现多次使用这九个函数,就在switch语句外加了for循环。 功能机构图: ⑵详细设计 总体流程图: 各功能模块流程图: ①浏览功能模块流程图 ②添加功能模块流程图 ③删除功能模块流程图 ④查询功能模块流程图 ⑤修改功能模块流程图 ⑥排序功能模块流程图 ⑦读入文献功能模块流程图 ⑧记录功能模块流程图 ⑨退出系统功能模块流程图 4.课程设计成果 源代码: #include<iostream> #include<string> #include<fstream> #include<iomanip> using namespace std; struct lesson { float cgrade; float egrade; float mgrade; }; struct man { char name[10]; char clas[20]; int num; float sum; float average; lesson less; }m[100]; int n=100; static int e=0; void sort(); void handle(); void search(); void error() {cout<<"---输入错误请从新输入---"<<endl;cout<<"\n";} void data_input() { int a; cout<<"添加学生信息"<<endl; cout<<"请输入信息 依次输入:学号 姓名 班级 C++ 英语 数学 输0结束"<<endl; for(a=e;a<n;a++) { cin>>m[a].num; if(m[a].num==0) break; cin>>m[a].name>>m[a].clas>>m[a].less.cgrade >>m[a].less.egrade>>m[a].less.mgrade; e++; } } void data_show() { int i; cout<<setiosflags(ios::left)<<setw(2)<<"学号" <<" "<<setw(10)<<"姓名"<<setw(10) <<"班级"<<setw(10)<<"C++"<<setw(10) <<"英语"<<setw(10)<<"数学"<<setw(10) <<"总分"<<setw(10)<<"平均分"<<endl; for(i=0;i<e;i++) { m[i].sum=m[i].less.cgrade+m[i].less.egrade+m[i].less.mgrade; m[i].average=m[i].sum/3; cout<<setiosflags(ios::left)<<setw(5)<<m[i].num<<" " <<setw(10)<<m[i].name<<setw(10)<<m[i].clas<< setw(10)<<m[i].less.cgrade<<setw(10) <<m[i].less.egrade<<setw(10)<<m[i].less.mgrade<<setw(10) <<m[i].sum<<setw(10)<<m[i].average<<endl; if(m[i].num==0) break; } } void dalete() { data_show(); cout<<"请选取您要删除人学号:"; int a,c=0; cin>>a; for(int i=0;i<e;i++) { if(a==m[i].num) { c++; int j; for(j=i;j<e-1;j++) { strcpy(m[j].name,m[j+1].name); strcpy(m[j].clas,m[j+1].clas); m[j].less.cgrade=m[j+1].less.cgrade; m[j].less.egrade=m[j+1].less.egrade; m[j].less.mgrade=m[j+1].less.mgrade; m[j].num=m[j+1].num; } for(i=0;i<e-1;i++) { cout<<setw(5)<<m[i].num<<setw(15)<<m[i].name<<setw(20) <<m[i].clas<<setw(12)<<m[i].less.cgrade<<setw(15) <<m[i].less.egrade<<setw(15)<<m[i].less.mgrade<<endl; } cout<<"--------------删除成功-------------"<<endl;break; } } if(c==0) error(); e--; } void handle() { float sumc=0,sume=0,summ=0; static float sum=0; char max_class[20],max_name[20],min_class[20],min_name[20]; int i,j,c=0; float count1=0,count2=0,count3=0; float maxc=m[0].less.cgrade,minc=m[0].less.cgrade,pc, maxe=m[0].less.egrade,mine=m[0].less.egrade,pe, maxm=m[0].less.mgrade,minm=m[0].less.mgrade,pm, max_score=maxc+maxe+maxm,min_score=maxc+maxe+maxm, max_cgrade=0,max_egrade=0,max_mgrade=0,max_num=0, min_cgrade=0,min_egrade=0,min_mgrade=0,min_num; for(i=1;i<e;i++) { if(minc>m[i].less.cgrade) minc=m[i].less.cgrade; if(maxc<m[i].less.cgrade) maxc=m[i].less.cgrade; if(mine>m[i].less.egrade) mine=m[i].less.egrade; if(maxe<m[i].less.egrade) maxe=m[i].less.egrade; if(minm>m[i].less.mgrade) minm=m[i].less.mgrade; if(maxm<m[i].less.mgrade) maxm=m[i].less.mgrade; if(max_score<(m[i].less.cgrade+m[i].less.egrade+m[i].less.mgrade)) { max_score=m[i].less.cgrade+m[i].less.egrade+m[i].less.mgrade; max_num=m[i].num; strcpy(max_name,m[i].name); strcpy(max_class,m[i].clas); max_cgrade=m[i].less.cgrade; max_egrade=m[i].less.egrade; max_mgrade=m[i].less.mgrade; } if(min_score>(m[i].less.cgrade+m[i].less.egrade+m[i].less.mgrade)) { min_score=m[i].less.cgrade+m[i].less.egrade+m[i].less.mgrade; min_num=m[i].num; strcpy(min_name,m[i].name); strcpy(min_class,m[i].clas); min_cgrade=m[i].less.cgrade; min_egrade=m[i].less.egrade; min_mgrade=m[i].less.mgrade; } } for(j=0;j<e;j++) { sumc=sumc+m[j].less.cgrade; if(m[j].less.cgrade>=60) ++count1; sume=sume+m[j].less.egrade; if(m[j].less.egrade>=60) ++count2; summ=summ+m[j].less.mgrade; if(m[j].less.mgrade>=60) ++count3; } pc=count1; pe=count2; pm=count3; cout<<"求学号为t学生总分和平均分请输入0,求全班总成绩信息请输入其他数字"<<endl; int k; cin>>k; if(k==0) { cout<<"请输入学生学号:"<<endl; int t; cin>>t; for(i=0;i<e;i++) { if(t==m[i].num) { sum=m[i].less.cgrade+m[i].less.egrade+m[i].less.mgrade; cout<<"她是:"<<m[i].name<<" 总分:"<<sum <<" 平均分 :"<<sum/3<<endl; c++; } } if(c==0) error(); } else { cout<<"1 C++成绩,2 英语成绩,3 数学成绩,4 全班成绩"<<endl; cout<<"请输入序号:"<<endl; int r; cin>>r; switch(r) { case 1:cout<<"(1)C++成绩最高分: "<<maxc <<" C++成绩最低分: "<<minc<<endl; cout<<" C++全班平均分: "<<sumc/e <<" C++及格率: "<<pc/e<<endl;break; case 2:cout<<"(2)英语成绩最高分: "<<maxe <<" 英语成绩最低分: "<<mine<<endl; cout<<" 英语全班平均分: "<<sume/e <<" 英语及格率:"<<pe/e<<endl;break; case 3:cout<<"(3)数学成绩最高分: "<<maxm <<" 数学成绩最低分: "<<minm<<endl; cout<<" 数学全班平均分: "<<summ/e <<" 数学及格率: "<<pm/e<<endl;break; case 4:cout<<" 全班最高分: "<<max_score<<endl; cout<<"她信息为:"<<endl; cout<<setiosflags(ios::left)<<setw(2)<<"学号"<<" " <<setw(15)<<"姓名"<<setw(12)<<"班级"<<setw(12) <<"C++"<<setw(15)<<"英语"<<setw(15)<<"数学"<<endl; cout<<setiosflags(ios::left)<<setw(5)<<max_num<<" " <<setw(15)<<max_name<<setw(12)<<max_class<<setw(12) <<max_cgrade<<setw(15)<<max_egrade<<setw(15)<<max_mgrade<<endl; cout<<" 全班最低分: "<<min_score<<endl; cout<<"她信息为:"<<endl; cout<<setiosflags(ios::left)<<setw(2)<<"学号"<<" " <<setw(15)<<"姓名"<<setw(12)<<"班级"<<setw(12) <<"C++"<<setw(15)<<"英语"<<setw(15)<<"数学"<<endl; cout<<setiosflags(ios::left)<<setw(5)<<min_num<<" " <<setw(15)<<min_name<<setw(12)<<min_class<<setw(12) <<min_cgrade<<setw(15)<<min_egrade<<setw(15)<<min_mgrade<<endl; break; default:error();break; } } } void search1() { data_show(); cout<<"请输入您要查找学号:"<<endl; int a; cin>>a; int bool=0; for(int i=0;i<n;i++) { if(a==m[i].num) { cout<<setiosflags(ios::left)<<setw(2)<<"学号"<<" " <<setw(15)<<"姓名"<<setw(12)<<"班级"<<setw(12) <<"C++"<<setw(15)<<"英语"<<setw(15)<<"数学"<<endl; cout<<setiosflags(ios::left)<<setw(5)<<m[i].num<<" " <<setw(15)<<m[i].name<<setw(12)<<m[i].clas<<setw(12) <<m[i].less.cgrade<<setw(15)<<m[i].less.egrade<<setw(15) <<m[i].less.mgrade<<endl; cout<<endl; bool=1; } } if(bool==0) cout<<"---抱歉没有您要查询信息---"<<endl; search(); } void search2() { data_show(); cout<<"请输入您要查找姓名:"<<endl; string a; cin>>a; int bool=0; for(int i=0;i<n;i++) { if(a==m[i].name) { cout<<setiosflags(ios::left)<<setw(2)<<"学号"<<" " <<setw(15)<<"姓名"<<setw(12)<<"班级"<<setw(12) <<"C++"<<setw(15)<<"英语"<<setw(15)<<"数学"<<endl; cout<<setiosflags(ios::left)<<setw(5)<<m[i].num<<" " <<setw(15)<<m[i].name<<setw(12)<<m[i].clas<<setw(12) <<m[i].less.cgrade<<setw(15)<<m[i].less.egrade<<setw(15) <<m[i].less.mgrade<<endl; cout<<endl; bool=1; } } if(bool==0) cout<<"---抱歉没有您要查询信息---"<<endl; search(); } void search3() { data_show(); cout<<"请输入您要查找课程:"<<endl; string a; cin>>a; int bool=0; for(int i=0;i<e;i++) { if(a=="C++") { cout<<setiosflags(ios::left)<<setw(2)<<setw(15) <<"姓名"<<setw(12)<<"C++成绩:"<<endl; cout<<setiosflags(ios::left)<<setw(5)<<setw(15) <<m[i].name<<setw(12)<<m[i].less.cgrade<<endl; cout<<endl; bool=1; } else if(a=="英语") { cout<<setiosflags(ios::left)<<setw(2)<<setw(15) <<"姓名"<<setw(12)<<"英语成绩:"<<endl; cout<<setiosflags(ios::left)<<setw(5)<<setw(15) <<m[i].name<<setw(12)<<m[i].less.egrade<<endl; cout<<endl; bool=1; } else if(a=="数学") { cout<<setiosflags(ios::left)<<setw(2)<<setw(15) <<"姓名"<<setw(12)<<"数学成绩:"<<endl; cout<<setiosflags(ios::left)<<setw(5)<<setw(15) <<m[i].name<<setw(12)<<m[i].less.mgrade<<endl; cout<<endl; bool=1; } } if(bool==0) cout<<"---抱歉没有您要查询信息---"<<endl; search(); } void search() { cout<<"按学号查找请输入1"<<endl; cout<<"按姓名查找请输入2"<<endl; cout<<"按课程查找请输入3"<<endl; cout<<"退出请输入4"<<endl; cout<<"查找信息------请输入选项:"; int r; cin>>r; switch(r) { case 1:search1();break; case 2:search2();break; case 3:search3();break; case 4:cout<<"-----GOOD LUCK-----"<<endl;break; default:error(); } } void compile() { data_show(); cout<<"编辑学生信息-----请选取您要编辑学号:"; int i,a,c=0; cin>>a; //i--; for(i=0;i<e;i++) { if(a==m[i].num) { c++; for(;;) { cout<<"(1).姓名:"; cout<<m[i].name<<endl; cout<<"(2).班级:"; cout<<m[i].clas<<endl; cout<<"(3).学号:"; cout<<m[i].num<<endl; cout<<"(4).C++成绩:"; cout<<m[i].less.cgrade<<endl; cout<<"(5).英语成绩:"; cout<<m[i].less.egrade<<endl; cout<<"(6).数学成绩:"; cout<<m[i].less.mgrade<<endl; cout<<"(7).exit"<<endl; cout<<endl; cout<<"编辑姓名请输入1"<<endl; cout<<"编辑班级请输入2"<<endl; cout<<"编辑学号请输入3"<<endl; cout<<"编辑C++成绩请输入4"<<endl; cout<<"编辑英语成绩请输入5"<<endl; cout<<"编辑数学成绩请输入6"<<endl; cout<<"退出请输入7"<<endl; cout<<endl; cout<<"请输入选项:"; int r; cin>>r; switch(r) { case 1:cout<<"姓名:"; cin>>m[i].name;break; case 2:cout<<" 班级:"; cin>>m[i].clas;break; case 3:cout<<"学号:"; cin>>m[i].num;break; case 4:cout<<"C++成绩:"; cin>>m[i].less.cgrade;break; case 5:cout<<"英语成绩:"; cin>>m[i].less.egrade;break; case 6:cout<<"数学成绩:"; cin>>m[i].less.mgrade;break; case 7:cout<<"-----修改成功-----"<<endl; return;break; default:error(); } } } } if(c==0) { error(); compile(); } } void sort1() { int j,i; char temp1[20],temp2[20] ; int temp4,temp5,temp6; float temp7; for(i=0;i<e-1;i++) { for(j=0;j<e-i-1;j++) { if((strcmp(m[j].name,m[j+1].name))>=0) { strcpy(temp1,m[j].name); strcpy(temp2,m[j].clas); temp4=m[j].less.cgrade; temp5=m[j].less.egrade; temp6=m[j].less.mgrade; temp7=m[j].num; strcpy(m[j].name,m[j+1].name); strcpy(m[j].clas,m[j+1].clas); m[j].less.cgrade=m[j+1].less.cgrade; m[j].less.egrade=m[j+1].less.egrade; m[j].less.mgrade=m[j+1].less.mgrade; m[j].num=m[j+1].num; strcpy(m[j+1].name,temp1); strcpy(m[j+1].clas,temp2); m[j+1].less.cgrade=temp4; m[j+1].less.egrade=temp5; m[j+1].less.mgrade=temp6; m[j+1].num=temp7; } } } data_show(); cout<<"sort sucess!"<<endl; cout<<endl; sort(); } void sort2() { int j,i,k; char temp1[20],temp2[20] ; int temp4,temp5,temp6; float temp7; for(i=0;i<e-1;i++) { k=i; for(j=i+1;j<e;j++) { if((strcmp(m[j].clas,m[k].clas))<0) k=j; strcpy(temp1,m[k].name); strcpy(temp2,m[k].clas); temp4=m[k].less.cgrade; temp5=m[k].less.egrade; temp6=m[k].less.mgrade; temp7=m[k].num; strcpy(m[k].name,m[i].name); strcpy(m[k].clas,m[i].clas); m[k].less.cgrade=m[i].less.cgrade; m[k].less.egrade=m[i].less.egrade; m[k].less.mgrade=m[i].less.mgrade; m[k].num=m[i].num; strcpy(m[i].name,temp1); strcpy(m[i].clas,temp2); m[i].less.cgrade=temp4; m[i].less.egrade=temp5; m[i].less.mgrade=temp6; m[i].num=temp7; } } data_show(); cout<<"sort sucess!"<<endl; cout<<endl; sort(); } void sort3() { int j,i; char temp1[20],temp2[20] ; int temp4,temp5,temp6; float temp7; for(i=0;i<e-1;i++) { for(j=0;j<e-i-1;j++) { if( m[j].less.egrade<m[j+1].less.egrade) { strcpy(temp1,m[j].name); strcpy(temp2,m[j].clas); temp4=m[j].less.cgrade; temp5=m[j].less.egrade; temp6=m[j].less.mgrade; temp7=m[j].num; strcpy(m[j].name,m[j+1].name); strcpy(m[j].clas,m[j+1].clas); m[j].less.cgrade=m[j+1].less.cgrade; m[j].less.egrade=m[j+1].less.egrade; m[j].less.mgrade=m[j+1].
展开阅读全文

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


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

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

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

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

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服