收藏 分销(赏)

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

上传人:丰**** 文档编号:3991074 上传时间:2024-07-24 格式:DOC 页数:25 大小:87.04KB 下载积分:10 金币
下载 相关 举报
学生成绩排名管理系统-C++-课程设计报告书.doc_第1页
第1页 / 共25页
学生成绩排名管理系统-C++-课程设计报告书.doc_第2页
第2页 / 共25页


点击查看更多>>
资源描述
淮 海 工 学 院 计算机工程学院 课程设计报告 设计名称: C++语言课程设计 姓 名:学 号: 专业班级: 系 (院): 计算机工程学院软件工程系 设计时间:2011.6。8~2011.6。24 设计地点:计算机工程学院机房 成绩: 指导教师评语: 签名: 年 月 日 C++课程设计报告 第 25 页,共 25 页 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]。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<<
展开阅读全文

开通  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 

客服