学生成绩管理系统C++课程设计_第1页
学生成绩管理系统C++课程设计_第2页
学生成绩管理系统C++课程设计_第3页
学生成绩管理系统C++课程设计_第4页
学生成绩管理系统C++课程设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、信信阳阳师师范范学学院院 C+程程序序设设计计 课课程程设设计计报报告告 选选题题名名称称 : 学生成绩管理系统 系系(院院) : 计算机科学与信息技术 专专 业业: 计算机科学与技术 班班 级级: 08 级一班 姓姓 名名: 学学 号号: 2008 指指导导教教师师 : 李艳丽 学学年年学学期期 : 2010 2011 学年 第 一 学期 2011 年 1 月 8 日 摘摘 要:要:计算机已经成为我们学习和工作的得力助手。今天,计算机的价格已 经十分低廉,性能有了长足的进步,它已经被应用于许多领域。另外,信息技 术在管理方面也有了越来越深入而广泛的应用,信息管理系统的实施在技术上 已逐步成熟

2、。信息管理系统是一个不断发展的新型学科,任何一个单位要生存 要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适 应的信息管理系统。尤其是在学校里,要处理海量的学生数据相当麻烦,为了 解决传统学生成绩管理所面临着的这些问题,学生成绩管理系统也就应运而生 了。 本文阐述了学生成绩管理工作与信息化紧密结合的管理系统的背景和意义, 对该系统的总体结构和各功能模块进行了详细的论述。系统包括了学生成绩查 询模块、学生成绩修改和录入模块、学生成绩求总和排序模块等等。在各个功 能模块中对各种信息进行编辑,具体包括添加、修改、删除、查询等基本操作。 把学生成绩管理简单化,以节省更多的人力和不必

3、要的工作。 关键词:关键词:学生成绩管理系统;VC+6.0;指针,链表,类,文件存储与读取 Abstract:The computer has become our right-hand man to study and work. Today, the price of computers has been very low, the performance has made substantial progress, it has been used in many fields. In addition, the management of information technology

4、has also been growing in depth and a wide range of applications, information management system for the implementation of technology has gradually matured. Information management system is a new subject, any one unit to survive and develop, to the internal activities efficiently organized organically

5、, it must establish its own characteristics to adapt to the information management system. Especially in schools, to deal with cumbersome mass of student data, student performance management in order to solve the traditional face of these problems, student achievement management system also came int

6、o being. This paper describes the management of student performance and information management systems closely integrated the background and significance of the overall structure of the system and the function modules in detail. System includes a query module for student achievement, student perform

7、ance modifications and entry module, student achievement sorting module, and so the total demand. In each functional module and edit all kinds of information, specifically including add, modify, delete, search and other basic operations. Simplify the management of student achievement in order to sav

8、e more human and unnecessary work. Keywords: Student performance management system; VC 6.0; pointers, linked lists, classes, file storage and retrieval 目目 录录 1 系统概述.3 1.1 系统的设计需求.3 1.2 系统的功能模块划分 .3 2 需求分析.3 2.1 系统需求分析.3 2.2 系统数据流图.4 2.3 系统功能介绍.4 2.4 系统功能模块图.5 3 详细设计.5 3.1 程序设计原理.5 3.2 主要代码描述.5 3.3 各

9、功能模块代码.15 4 系统测试.21 4.1 调试过程.21 4.2 调试结果说明.26 结束语 .26 参考文献 .26 1 系统概述系统概述 该系统实现对若干大学生的学习成绩进行管理,能实现按学期、按班级完 成对学生成绩的录入、修改,能按班级统计学生的成绩,求学生的总分及平均 分,并能根据学生的平均成绩进行排序能查询学生成绩,不及格科目及学生名 单,能按班级输出学生的成绩单等。 1.1 系统的设计需求系统的设计需求 整个系统用 VC+进行实现,用指针、链表来实现学生成绩的数据结构设计, 系统具有录入、修改、求总、求平均分、输出等功能。系统的各个功能模块都 用类的形式来实现,可以将学生成绩

10、按照分数的高低进行排序。 1.2 系统的功能模块划分系统的功能模块划分 每一条记录包含一个学生的姓名、成绩,同时包含:能按学期、按班级完成 对学生成绩的录入、修改;能按班级统计学生的成绩,求学生的总分及平均分, 并能根据学生的平均成绩进行排序;能查询学生成绩,不及格科目及学生名单; 能按班级输出学生的成绩单。 2 2 需求分析需求分析 在 21 世纪的科技时代,科学技术突飞猛进,计算机已经不仅是在科技上 应用,而且在生活中也是同样得到了广泛的应用。如今,不管是小学、初中、 高中、甚至是很多大学生的学生成绩管理基本上是靠人工进行管理,但随着时 间的变化,学校规模的扩大,有关学生成绩管理工作和所涉

11、及到的数据量越来 越大,越来越多,大多数学校不得不靠增加人力、物力、财力来进行学生成绩 管理。但是人工管理成绩档案具有效率低、查找麻烦、可靠性不高、保密性低 等因素。 因此开发出一个适用于大中专院校以及其它高校通用的学生成绩管理系统是必 要的。本系统结构包括学生信息管理、教师信息管理,课程信息管理以及学生成 绩信息管理 4 大部分。 2.1 系统需求分析系统需求分析 本系统是一个学生成绩管理系统,采用 VC+6.0 编译器作为开发环境,这 个环境是我们学习 C+的平台。将学生信息保存在文本文档中,具有数据输入 功能,输入的数据最终保存在文件中;具有数据删除功能,能最终从文件中删 除; 排序功能

12、,根据自己设计的数据结构,设计排序算法;具有按学期、按班级查 询及输出功能;各种统计功能,统计每个学生的平均分;学生信息的修改,修 改学生某门课程的成绩。 2.2 系统数据流图系统数据流图 2.3 系统功能介绍系统功能介绍 “学生成绩管理信息系统”主要分为学生浏览和后台管理两个子系统。 学 生 成 绩 管理 系 统 对 信 息 进 行 处 理 输 出 处 理 后 的 信 息 接 收 输 入 信 息 根 据 用 户 的 需 求 调 用 相 应 的 功 能 模 块 显示操 作完成 的 情 况 显示数 据库中 的相关 信 息 删除相 应的信 息 统计相 应的信 息 汇总相 应的信 息 修改相 应的信

13、 息 将 输 入 的 数 据 添 加 到 数 据 库 中 设计主要功能:能按学期、按班级完成对学生成绩的录入、修改;能按班级统 计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序; 能查询学生成绩,不及格科目及学生名单;能按班级输出学生的成绩单。 2.42.4 系统功能模块图系统功能模块图 “学生成绩管理系统”系统主模块功能图 3 详细设计详细设计 3.1 程序设计原理程序设计原理 采用 C+程序设计语言,从键盘输入学生的基本信息(学号,姓名,英语 成绩,高数成绩),计算每个学生的平均成绩,并将数据存入文件 student.txt 中。按如下格式输出大于等于平均成绩的学生信息:

14、 学号 姓名 英语 数学 C+ 平均成绩。提供按学期、按班级进行查询的功能。尽可能使用运 算符重载以简化操作。使用多文件结构和菜单操作,并考虑相应的操作权限 (每个教师输入“自己的学生”的“某门课程”的成绩,而其他学生的其他课程不能 输入,只有教务老师才能执行归档类的操作),以提高程序的实用性。 学生成绩管理系 统统 学生浏览 删 除 修 改 录 入 查 询 显 示 后台管理 统 计 排 序 3.2 主要代码描述主要代码描述 #include #include #include #include using namespace std; class Stu public: char name8

15、; int number; double English,Math,Cjj,Total,Average; Stu() English=0; Math=0; Cjj=0; Total=0; Average=0; strcpy(name,无); number=0; return; Stu() Stu(double Eng,double Mat,double C,int num,char s38); void getname(); void getnumber(); void getEnglish(); void getMath(); void getCjj(); double getTotal()

16、; double getAverage(); ; Stu:Stu(double Eng,double Mat,double C,int num,char s38) English=Eng;Math=Mat;Cjj=C;number=num;strcpy(name,s3); void Stu:getname() char s8; couts; strcpy(name,s); void Stu:getnumber() int n; coutn; number=n; void Stu:getEnglish() double E; coutE; English=E; void Stu:getMath(

17、) double m; coutm; Math=m; void Stu:getCjj() double c; coutc; Cjj=c; double Stu:getTotal() return Total=English+Math+Cjj; double Stu:getAverage() return Average=Total/3.0; void output1(Stu void output2(Stu void input(Stu p.getnumber(); p.getEnglish(); p.getMath(); p.getCjj(); p.getTotal(); p.getAver

18、age(); void order(Stu int number6=p1.number,p2.number,p3.number,p4.number,p5.number,p6.numb er; double English6=p1.English,p2.English,p3.English,p4.English,p5.English,p6.Englis h; double Math6=p1.Math,p2.Math,p3.Math,p4.Math,p5.Math,p6.Math; double Cjj6=p1.Cjj,p2.Cjj,p3.Cjj,p4.Cjj,p5.Cjj,p6.Cjj; dou

19、ble Total6=p1.Total,p2.Total,p3.Total,p4.Total,p5.Total,p6.Total; double Average6=p1.Average,p2.Average,p3.Average,p4.Average,p5.Average,p6. Average; Stu soure6=p1,p2,p3,p4,p5,p6; char *s1,s28; double *p; int n; double mat; couttt 主菜单endl; coutt1.查询平均分排名;endl; coutt2.查询个人情况;endl; coutt3.查询各科平均成绩;end

20、l; coutt4.输出班级成绩;endl; coutt5.修改各人成绩;endl; coutt6.查询不及格成绩;endl; coutt0.退出;endl; int q; coutq; if(q=1) p=Average; coutt*以平均成绩进行排名*endl; strcpy(s2,均分); for(int i1=1;i16;i1+) for(int j1=0;j16-i1;j1+) if(pj1=pj1+1) mat=pj1,pj1=pj1+1,pj1+1=mat; s1=namej1,namej1=namej1+1,namej1+1=s1; n=numberj1,numberj1=n

21、umberj1+1,numberj1+1=n; couttt 名次t 姓名t 学号ts2n; for(i1=0;i16;i1+) couttti1+1tnamei1tnumberi1tpi1endl; coutendl; goto sheji; if(q=2) int w; coutw; coutt 姓名t 学号t 英语t 数学tC+t 均分t 总分n; for(int i=0;i6;i+) if(w=numberi) output2(sourei); goto sheji; else if(q=3) coutt*各科平均成绩*endl; double a1=0,b=0,d=0,e=0,h=0

22、; for(int j=0;j6;j+) a1+=Englishj; coutt 英语的平均分为t(double(a1/5.0)endl; for(int i=0;i6;i+) b+=Mathi; coutt 数学的平均分为t(double(b/5.0)endl; for(int k=0;k6;k+) e+=Cjjk; couttC+的平均分为t(double(e/5.0)endl; goto sheji; else if(q=4) ofstream file(d:student.txt); if(!file) coutstudent.txt cant open.n; abort(); fil

23、et 姓名t 学号t 英语t 数学tC+t 均分t 总分n; for(int i=0;i6;i+) filetnameitnumberitEnglishitMathit CjjitAverageitTotalin; file.close(); cout计算机-1 的成绩单已输入到了 D:student.txt 中。希望你查看! endl; goto sheji; else if(q=5) coutt*在这里对学生成绩进行修改*endl; int b1; cout请输入你要修改学生的学号:b1; if(b1=p1.number) p1=Stu(); input(p1); coutt 修改成功!e

24、ndl; else if(b1=p2.number) p2=Stu(); input(p2); coutt 修改成功!endl; else if(b1=p3.number) p3=Stu(); input(p3); coutt 修改成功!endl; else if(b1=p4.number) p4=Stu(); input(p4); coutt 修改成功!endl; else if(b1=p5.number) p5=Stu(); input(p5); coutt 修改成功!endl; else if(b1=p1.number) p1=Stu(); input(p1); coutt 修改成功!e

25、ndl; else if(b1!=p1.number|b1!=p2.number|b1!=p3.number|b1!=p4.number|b1!=p5.nu mber|b1!=p6.number) cout对不起!该学号不存在!请确认后在输入!endl; goto sheji; else if(q=6) cout*统计有不及格科目的同学*endl; for(int i=0;i6;i+) if(Englishi60|Mathi60|Cjji60) coutt 姓名t 学号t 英语t 数学tC+t 均分t 总分n; output2(sourei); goto sheji; else if(q=0)

26、 cout谢谢你的支持!endl; exit(1); void main() Stu m1,m2,m3,m4,m5,m6; void Stu:getname(); cout *欢迎来到计算机-1 成绩管理系统 *endl; cout请对各学生的成绩进行输入:endl; input(m1); input(m2); input(m3); input(m4); input(m5); input(m6); cout你输入的是:endl; couttt 姓名t 学号t 英语t 数学tC+n; output1(m1); output1(m2); output1(m3); output1(m4); outp

27、ut1(m5); output1(m6); order(m1,m2,m3,m4,m5,m6); 3.33.3 部分功能模块代码部分功能模块代码 3.3.13.3.1 实现录入学生信息实现录入学生信息 cout *欢迎来到计算机-1 成绩管理系统 *endl; cout请对各学生的成绩进行输入:endl; input(m1); input(m2); input(m3); input(m4); input(m5); input(m6); cout你输入的是:endl; couttt 姓名t 学号t 英语t 数学tC+n; output1(m1); output1(m2); output1(m3);

28、 output1(m4); output1(m5); output1(m6); order(m1,m2,m3,m4,m5,m6); 3.3.23.3.2 实现修改学生成绩实现修改学生成绩 coutt*在这里对学生成绩进行修改*endl; int b1; cout请输入你要修改学生的学号:b1; if(b1=p1.number) p1=Stu(); input(p1); coutt 修改成功!endl; else if(b1=p2.number) p2=Stu(); input(p2); coutt 修改成功!endl; else if(b1=p3.number) p3=Stu(); input

29、(p3); coutt 修改成功!endl; else if(b1=p4.number) p4=Stu(); input(p4); coutt 修改成功!endl; else if(b1=p5.number) p5=Stu(); input(p5); coutt 修改成功!endl; else if(b1=p1.number) p1=Stu(); input(p1); coutt 修改成功!endl; else if(b1!=p1.number|b1!=p2.number|b1!=p3.number|b1!=p4.number|b1!=p5.nu mber|b1!=p6.number) cou

30、t对不起!该学号不存在!请确认后在输入!endl; goto sheji; else if(q=6) 3.3.33.3.3 实现学生成绩的排序实现学生成绩的排序 coutt*以平均成绩进行排名*endl; strcpy(s2,均分); for(int i1=1;i16;i1+) for(int j1=0;j16-i1;j1+) if(pj1=pj1+1) mat=pj1,pj1=pj1+1,pj1+1=mat; s1=namej1,namej1=namej1+1,namej1+1=s1; n=numberj1,numberj1=numberj1+1,numberj1+1=n; couttt 名

31、次t 姓名t 学号ts2n; for(i1=0;i16;i1+) couttti1+1tnamei1tnumberi1tpi1endl; coutendl; goto sheji; if(q=2) 3.3.43.3.4 实现对学生成绩的查询实现对学生成绩的查询 /void Studentmassage:Find() char name20 ,Id10; int x; Student * p=NULL; coutntt*n; couttt 1.按学生的姓名查找ntt 2.按学生学号查找; coutx; switch(x) case 1:coutname; if(p=FindItem(name)

32、p-Next-Show(); cout输入任意字符!继续; getch(); else couttt 没有找到该姓名的学生!nendl; cout输入任意字符!继续; getch(); break; case 2: coutId; if(p=FindID(Id) p-Next-Show(); cout输入任意字符!继续; getch(); else couttt 没有找到该学好的学生!nendl; cout输入任意字符!继续; getch(); break; 3.3.5 统计不及格的学生统计不及格的学生 cout*统计有不及格科目的同学*endl; for(int i=0;i6;i+) if(

33、Englishi60|Mathi60|Cjji60) coutt 姓名t 学号t 英语t 数学tC+t 均分t 总分n; output2(sourei); goto sheji; else if(q=0) cout谢谢你的支持!endl; exit(1); void main() Stu m1,m2,m3,m4,m5,m6; void Stu:getname(); 3.3.63.3.6 输出学生成绩单输出学生成绩单 coutt*各科平均成绩*endl; double a1=0,b=0,d=0,e=0,h=0; for(int j=0;j6;j+) a1+=Englishj; coutt 英语的平均分为t(double(a1/5.0)endl; for(int i=0;i6;i+) b+=Mathi; coutt 数学的平均分为t(double(b/5.0)endl; for(int k=0;k6;k+) e+=Cjjk; couttC+的平均分为t(double(e/5.0)endl; goto sheji; else if(q=4) ofstream file(d:student.txt); if(!file) coutstudent.txt cant open.n; abort(); filet 姓名t 学号t 英语t 数学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论