欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C++学生成绩统计管理系统总汇(最新最全).doc

    • 资源ID:33414091       资源大小:359KB        全文页数:85页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C++学生成绩统计管理系统总汇(最新最全).doc

    如有侵权,请联系网站删除,仅供学习与交流C+学生成绩统计管理系统总汇(最新最全)【精品文档】第 85 页南 昌 大 学C+ 选 修 课课程设计报告 题 目: 学 院:专 业:姓 名: 学 号: 电 话:2016年6月17日目录 1需求分析32概要设计33程序实现思路44设计总结45参考文献56源代码6一、需求分析经过研一下学期C+选修课的学习,对C+基于对象的程序设计有了一定的认识,根据所学的知识,设计学生成绩管理系统。学生成绩统计管理系统是为某班级成绩统计管理的一个系统。为方便班级的管理人员对学生的信息进行管理,该系统中包括学号、姓名、大学物理、高数、C+语言,各科平均成绩、各科成绩“优秀”、“良好”、“中等”、“及格”、“不及格”的人数及其所占比例,学生的总成绩、平均成绩及成绩排名。通过仔细研究借鉴众多相关毕业设计研究等文献资料(见参考文献一),学习书籍谭浩强面向对象的C+程序设计编写了该成绩管理系统。主要的功能有学生数据的增加、删除、修改、查询,另外实现一些统计的功能,例如:成绩的输入、成绩统计、总成绩统计、成绩的统计结果显示。二、概要设计1、本程序所用到的所有抽象数据类型的定义如下:序号成员名数据类型含义1numlong学号2namestring姓名3sumdouble总分4rangeint排名5avedouble平均分6scoredouble记录数组2、各程序模块的功能void input(); /输入void count(); /计算void sort(); /按学号升序排列void selectsort(); /按总成绩降序排列void insert(); /增加int del(); /删除void student:Exit(); /修改void search(); /查询void display(); /显示以下为统计模块:void count(); /计算成员函数void average(); /计算平均值成员函数void display(); /显示成员函数三、程序实现思路1.设计菜单实现功能成绩的输入(学号、姓名、大学物理、高数、C+语言)。成绩统计(各科平均成绩、各科成绩“优秀”、“良好”、“中等”、“及格”、“不及格”的人数及其所占比例)。总成绩统计(学生的总成绩、平均成绩及成绩排名)。成绩的统计结果显示。学生数据的增加、修改、与删除。学生数据的读取与存储。2.设计类与对象class student /建立学生student类,目的是存储学生个人信息public:long num; /学号string name; /姓名double scoren; /学生科目成绩 double sum; /总成绩double ave; /平均成绩int range; /排名 void insert(); /增加 int del(); /删除void search(); /查询void student:Exit();/修改void display(); /显示void input(); /输入void count(); /计算void sort(); /按学号升序排列void selectsort(); /按总成绩降序排列stuN;class all /建立整体all类,目的是存放学生整体信息public: double ave; /每学科的平均成绩 int people5; /每学科的各等级人数 double percent5; /每学科的各等级人数比例void count(); /计算成员函数 void average(); /计算平均值成员函数 void display(); /显示成员函数 aln;3.通过类的调用实现功能设计case 0:cout<<"*"<<endl;cout<<"高数科统计结果为"<<endl;cout<<"*"<<endl;cout<<endl;break;case 1:cout<<"*"<<endl;cout<<"大学物理科统计结果为"<<endl;cout<<"*"<<endl;cout<<endl;break;case 2:cout<<"*"<<endl;cout<<"C+统计结果为"<<endl;cout<<"*"<<endl;cout<<endl;break;case 3:if(total=0) cout<<"数组为空,请在主菜单中选择1增加数据"<<endl;else cout<<"学生信息为:"<<endl; stutotal.count(); stutotal.display();/显示 cout<<endl; break;case 4:if (total=0) cout<<"数组为空,请在主菜单中选择1增加数据"<<endl;elsecout<<"各科学生成绩为:"<<endl;aln.average();aln.count(); aln.display();cout<<endl;break;case 5:if(total=0) cout<<"数组为空,请在主菜单中选择1增加数据"<<endl;elsedo stutotal.search();cout<<"查询成功,继续查询请输入Y/y:"<<endl; cout<<"退出请按其他键"<<endl; fflush(stdin); ch=getchar();while(ch='Y'|ch='y');break;case 6:if(total=0) cout<<"数组为空,请在主菜单中选择1增加数据"<<endl;elsedostutotal.Exit(); /修改cout<<"修改成功,继续修改请输入Y/y:"<<endl;cout<<"退出请按其他键"<<endl;fflush(stdin);ch=getchar();while(ch='Y'|ch='y');break;case 7:if(total=0) cout<<"数组为空,请在主菜单中选择1增加数据"<<endl;else do system("cls"); stutotal.insert(); /增加 total+; cout<<"增加成功,继续增加请输入Y/y:"<<endl; cout<<"退出请按其他键"<<endl; fflush(stdin); ch=getchar(); cout<<endl;while(ch='Y'|ch='y');break;case 8:if(total=0)cout<<"数组为空,请在主菜单中选择1增加数据"<<endl;elsedo system("cls"); if(stutotal.del() /删除 total-; /人数-1 system("cls"); else cout<<"该学号不存在"<<endl; system("pause"); system("cls"); cout<<"删除成功,继续删除请输入Y/y:"<<endl; cout<<"退出该选择请按其他键"<<endl; fflush(stdin); ch=getchar(); cout<<endl;while(ch='Y'|ch='y'); break;case 9: cout<<"此操作将删除所有记录"<<endl; cout<<"继续该操作请输入Y/y:"<<endl; cout<<"退出请按其他键"<<endl; fflush(stdin); ch=getchar(); if(ch='Y'|ch='y') total=0;break;default:cout<<"确定要退出吗?"<<endl; cout<<"退出请输入Y/y:"<<endl; fflush(stdin); ch=getchar(); cout<<endl; if(ch='y'|ch='Y') exit(0); break; system("pause"); while(1);四、设计总结通过为期两周的努力,挑战程序设计的难度,终于将程序正确地运行。虽说只是一个简单的程序,但它却见证了我从编写、调试、修改、运行、再修改等一系列的过程,收录了我努力后的小小成果。从不断调试中遇到的错误中,我发现了自己的不足,同时也学会让自己如何面对挑战。 运用结构体、类等新学的内容让我再次感受到了学习的重要性。都说“万变不离其宗”,书本是我们课后学习的参照。因为没有重视书本,让我在编译时不断翻看,这也坚定了我努力学好这门课程的决心。 五、参考文献 1.谭浩强C+程序设计清华出版社 2007,5六、源代码学生成绩统计管理程序#include<iostream> /引用库函数#include<iomanip> /引用控制符处理#include<string> /字符串using namespace std;#define N 100 /宏定义#define n 3class student /建立学生类,用于存储学生个人信息public:long num; /学号string name; /姓名double scoren; /学生科目成绩double sum; /总成绩double ave; /平均成绩int range; /排名void input(); /输入void count(); /计算void sort(); /按学号升序排列void selectsort(); /按总成绩降序排列void search(); /查询void insert(); /增加int del(); /删除void student:Exit(); /修改数据void display(); /显示stuN;class all /建立整体类,用来存放学生整体信息public:double ave; /每学科的平均成绩int people5; /每学科的各等级人数double percent5; /每学科的各等级人数比例void count(); /计算成员函数void average(); /计算平均值成员函数void display(); /显示成员函数aln;int total=0; /定义全局变量void student:input() /输入学生个人信息cout<<"请输入学生信息:"<<endl;cout<<"学号"<<setw(8)<<"姓名"<<setw(12)<<"高数成绩"<<setw(10)<<"大学物理成绩"<<setw(10)<<"C+成绩"<<endl;cin>>setw(10)>>stutotal.num;cin>>setw(10)>>stutotal.name;for(int j=0;j<n;j+)cin>>setw(10)>>stutotal.scorej;void student:selectsort() /按总成绩降序排列student aa;int i,j;for(i=0;i<total-1;i+)for(j=i+1;j<total;j+)if(stui.sum<stuj.sum) aa=stuj;stuj=stui;stui=aa;void student:count() /计算总成绩、平均成绩stutotal.selectsort();for(int i=0;i<total;i+)stui.sum=0;for(int j=0;j<n;j+)stui.sum+=stui.scorej;stui.ave=stui.sum/n;void student:sort() /按学号升序排列student abc;int i,j;for(i=0;i<total-1;i+)for(j=i+1;j<total;j+)if(stui.num>stuj.num)abc=stuj;stuj=stui;stui=abc;void student:display() /显示学生个人信息selectsort(); /调用按总成绩降序排列函数cout<<"学号"<<setw(10)<<"姓名"<<setw(10)<<"高数成绩"<<setw(10)<<"大学物理成绩"<<setw(10)<<"C+成绩"<<setw(10)<<"平均成绩"<<setw(10)<<"总成绩"<<setw(10)<<"排名"<<endl;for(int i=0;i<total;i+)stui.range=i+1;cout<<setw(10)<<stui.num<<setw(10)<<stui.name;for(int j=0;j<n;j+)cout<<setw(10)<<stui.scorej;cout<<setw(10)<<stui.ave<<setw(10)<<stui.sum<<setw(10)<<stui.range<<endl;void all:average() /计算各科的平均成绩for(int j=0;j<n;j+)long double a=0;for(int i=0;i<total;i+) a+=stui.scorej;alj.ave=a/double(total);void all:count() /计算各科的各等级人数及其比例for(int j=0;j<n;j+)int a=0,b=0,c=0,d=0,e=0;for(int i=0;i<total;i+)if(stui.scorej<60)a+;else if(stui.scorej<70)b+;else if(stui.scorej<80)c+;else if(stui.scorej<90)d+;elsee+;alj.people0=a; /高数科不及格人数alj.people1=b; /高数科及格人数alj.people2=c; /高数科中等人数alj.people3=d; /高数科良好人数alj.people4=e; /高数科优秀人数alj.percent0=a/double(total); /高数科不及格人数所占的比例alj.percent1=b/double(total); /高数科及格人数所占的比例alj.percent2=c/double(total); /高数科中等人数所占的比例alj.percent3=d/double(total); /高数科良好人数所占的比例alj.percent4=e/double(total); /高数科优秀人数所占的比例void all:display( ) /输出整体信息for(int j=0; j<n; j+)switch(j)case 0:cout<<"*"<<endl;cout<<"高数科统计结果为"<<endl;cout<<"*"<<endl;cout<<endl;break;case 1:cout<<"*"<<endl;cout<<"大学物理科统计结果为"<<endl;cout<<"*"<<endl;cout<<endl;break;case 2:cout<<"*"<<endl;cout<<"C+统计结果为"<<endl;cout<<"*"<<endl;cout<<endl;break;cout<<"平均成绩为:"<<alj.ave<<endl;cout<<endl;cout<<"不及格人数为:"<<alj.people0<<endl;cout<<"及格人数为:"<<alj.people1<<endl;cout<<"中等人数为:"<<alj.people2<<endl;cout<<"良好人数为:"<<alj.people3<<endl;cout<<"优秀人数为:"<<alj.people4<<endl;cout<<"不及格人数为:"<<alj.percent0<<endl;cout<<"及格人数比为:"<<alj.percent1<<endl;cout<<"中等人数为:"<<alj.percent2<<endl;cout<<"良好人数比为:"<<alj.percent3<<endl;cout<<"优秀人数比为:"<<alj.percent4<<endl;cout<<endl;void student:search() /查询int find_num;bool flag=false;cout<<"请输入要查找的学生的学号"<<endl;cin>>find_num;for(int i=0;i<total;i+)if(stui.num=find_num) /如果要找的学号与其中某一个学生的学号相同cout<<setw(10)<<stui.num<<endl;cout<<"已经找到该学生信息,他的有关信息是:"<<endl;cout<<setw(10)<<stui.name;for(int j=0;j<n;j+)cout<<setw(10)<<stui.scorej;cout<<setw(10)<<stui.ave<<setw(10)<<setw(10)<<stui.sum<<setw(10)<<stui.range<<endl; /输出学生信息flag=true;break;if(flag=false)cout<<"找不到该学生的学号"<<endl; /如找不到输出"找不到"信息void student:Exit() /修改int ID;bool flag=false;string name1;cout<<"请输入要修改的学生的信息"<<endl;cout<<setw(12)<<"学号:"<<setw(12)<<endl;cout<<"姓名:"<<setw(12)<<endl;cout<<"高数成绩:"<<setw(12)<<endl;cout<<"大学物理成绩:"<<setw(12)<<endl;cout<<"C+成绩:"<<endl;cin>>ID;cin>>name1;for(int i=0;i<total;i+)if(stui.num=ID)stui.num=ID;stui.name=name1;flag=true;break;if(flag=false)cout<<"找不到该学生的学号"<<endl;void student:insert() /增加int a;string aa;double x,y,z;stutotal.sort(); /调用按学号升序排列函数cout<<"请输入要增加的学生的信息"<<endl; /输入要增加学生的信息cout<<setw(12)<<"学号"<<setw(12)<<"姓名"<<setw(12)<<"高数成绩"<<setw(12)<<"大学物理成绩"<<setw(12)<<"C+成绩"<<endl;cin>>a>>aa>>x>>y>>z;stutotal.num=a;stutotal.name=aa;stutotal.score0=x;stutotal.score1=y;stutotal.score2=z;int student:del() /删除int i,j,abc;cout<<"请输入要删除的学号:"<<endl;cin>>abc;stutotal.sort(); /调用按学号升序排列函数for(i=0;i<total;i+)if(abc=stui.num) /如果某一个学生的学号与要删除的学生的学号相同break;if(i<total)for(j=i;j<total;j+)stuj=stuj+1;return 1;elsereturn 0;void menu(); /显示主菜单class student;class all;void student:display();void all:display(); /显示学生信息void student:insert(); /增加学生(自动排序)int student:del(); /删除学生void student:search(); /按学号查询int main() /主函数class student stuN;class all aln;char ch;int select; /total为学生总数,select为选择dosystem("cls");menu();cout<<"请输入你的选择:"<<endl;fflush(stdin);cin>>select;system("cls");switch(select)case 1:dosystem("cls");stutotal.input();total+; /人数+1cout<<"输入成功,继续输入请输入Y/y:"<<endl;cout<<"退出请输入其他键"<<endl;fflush(stdin);ch=getchar();while(ch='Y'|ch='y');cout<<endl;break;case 2:if(total=0)cout<<"数组为空,请在主菜单中选择1增加数据"<<endl;elsecout<<"学生信息为:"<<endl;stutotal.count();stutotal.display(); /显示cout<<endl;break;case 3:if(total=0)cout<<"数组为空,请在主菜单中选择1增加数据"<<endl;elsecout<<"各科学生成绩为:"<<endl;aln.average();aln.count();aln.display();cout<<endl;break;case 4:if(total=0)cout<<"数组为空,请在主菜单中选择1增加数据"<<endl;elsedostutotal.search();cout<<"查询成功,继续查询请输入Y/y:"<<endl;cout<<"退出请按其他键"<<endl;fflush(stdin);ch=getchar();while(ch='Y'|ch='y');break;case 5:if(total=0)cout<<"数组为空,请在主菜单中选择1增加数据"<<endl;elsedostutotal.Exit(); /修改cout<<"修改成功,继续修改请输入Y/y:"<<endl;cout<<"退出请按其他键"<<endl;fflush(stdin);ch=getchar();while(ch='Y'|ch='y');break;case 6:if(total=0)cout<<"数组为空,请在主菜单中选择1增加数据"<<endl;elsedosystem("cls");stutotal.insert(); /增加total+;cout<<"增加成功,继续增加请输入Y/y:"<<endl;cout<<"退出请按其他键"<<endl;fflush(stdin);ch=getchar();cout<<endl;while(ch='Y'|ch='y');break;case 7:if(total=0)cout<<"数组为空,请在主菜单中选择1增加数据"<<endl;elsedosystem("cls");if(stutotal.del() /删除total-; /人数-1system("cls");elsecout<<"该学号不存在"<<endl;system("pause");system("cls");cout<<"删除成功,继续删除请输入Y/y:"<<endl;cout<<"退出该选择请按其他键"<<endl;fflush(stdin);ch=getchar();cout<<endl;while(ch='Y'|ch='y');break;case 8:cout<<"此操作将删除所有记录"<<endl;cout<<"继续该操作请输入Y/y:"<<endl;cout<<"退出请按其他键"<<endl;fflush(stdin);ch=getchar();if(ch='Y'|ch='y')total=0;break;default:cout<<"确定要退出吗?"<<endl;cout<<"退出请输入Y/y:"<<endl;fflush(stdin);ch=getchar();cout<<endl;if(ch='y'|ch='Y')exit(0);break;system("pause");while(1);void menu()cout<<"|-|"<<endl;cout<<"| 南昌大学学生成绩统计管理系统 |"<<endl;cout<<"|-|"<<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<<"|-|"<<endl;2#include <iostream.h>#include <fstream.h>#include <string.h>#include <stdlib.h>#include <iomanip.h>class student /定义一个学生类public:int number;char name20;double point3; double sum; student()number=0;student(int num,char na20,double math,double english,double cpp) number=num;for(int i=0;i<20;i+)namei=nai;point0=math;point1=english;point2=cpp;double add() /求个人总成绩 sum=0;for(int i=0;i<3;i+)sum=sum+pointi;return sum;void list();void newstu();void infile();void add();void del(); void xiugai();void see_grade();void tongji();void totaltongji();void outfile();void lei();void restart();student stu80; int z=0;char r50;char set_code10="123" /设定密码double T10; char string10;void main() for(int time=1;time<4;time+) /设定三次输入密码的机会 cout<<"*请输入密码:" cin>>string; cout<<"n" if (strcmp(string,set_code)=0)cout<<"ttt*欢迎来到学生成绩统计管理系统*"<<endl;break; else cout<<"!输入密码有错误,请重新输入!"<<endl; if(time=4) exit(1);list();void list() /选择菜单cout<<"n" cout<<"ttt*本系统由软件工程编写*"<<endl;cout<<"n" cout<<"ttt=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*="<<endl;cout<<"tttt 系统菜单"<<endl;cout<<"ttt=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*="<<endl;cout<<"tttt <1>新建学生名单"<<endl;cout<<"tttt <2>读取学生成绩"<<endl;cout<<"tttt <3>添加学生成绩"<<endl;cout<<"tttt <4>删除学生成绩"<<endl;cout<<"tttt <5>修改学生资料"<<endl; cout<<"tttt <6>单人资料查询"<<endl;

    注意事项

    本文(C++学生成绩统计管理系统总汇(最新最全).doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开