学生成绩管理程序设计教材_第1页
学生成绩管理程序设计教材_第2页
学生成绩管理程序设计教材_第3页
学生成绩管理程序设计教材_第4页
学生成绩管理程序设计教材_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、学生成绩管理程序设计学生成绩管理程序设计目录摘要1.1 绪论1.2. 系统分析1.2.1功能需求1.2.2数据需求1.2.3性能需求2.3. 总体设计2.3.1功能模块设计2.3.2系统设计方案2.4总体设计34.1学生信息录入管理模块 3.4.2学生成绩信息统计管理模块44.3学生排名管理模块4.4.4学生信息修改管理模块5.5. 调试与测试6.5.1 调试6.5.2 测试7.6. 结论7.结束语7.参考文献8.附录1用户手册9.学生信息管理程序设计摘要学生成绩信息管理程序是一个学校不可缺少的部分,学校可以利用这套程序 进行学生的成绩信息管理,也方便查询修改学生的成绩各项信息,可以提高管理

2、工作的效率。本系统使用C语言作为开发工具的,开发学生成绩信息管理系统,实现了录 入学生成绩信息,按姓名、学号等条件删除学生成绩信息。本文从分析课题的题目背景、题目意义、题目要求等出发,分别从需求分析、总体设计、详细设计、测试等各个方面详细介绍了系统的设计与实现过程,最后对系统的完成情况进行了总结。关键词:学生成绩信息管理;删除; C语言1 绪论随着科技的发展,愈来愈多的学校选择了运用 学生成绩信息管理程序来管理 学生成绩信息。学生成绩信息管理程序是一个学校不可缺少的部分,学校可以利 用这套程序进行学生的成绩信息管理,也方便查询修改学生的各项信息,可以提 高管理工作的效率和简化管理工作的程序。有

3、利的为公司节省了运作成本,优化 资源利用率,这也正是编写本程序的目的所在。根据课程设计任务书要求,本系统开发主要完成以下功能和性能。1. 录入学生数据信息(不用考虑学期),学生信息至少包括姓名、学号、语文、数学、英语成绩,学生信息应及时保存在文件中;2. 根据学号删除某生信息;3. 能够计算平均分并显示所有学生名次。2.系统分析2.1功能需求本系统主要是企业对职工信息简单管理的系统。该系统需要有录入信息,删除信息,统计信息,循环显示主菜单,保存信息 的功能,并且利用显示函数将学生的所有信息显示出来。2.2数据需求需要向系统输入学号,姓名,语文、数学、英语成绩等信息。2.3性能需求在运行本程序时

4、只要按照正确的操作方法不会出现无法运行的情况,系统稳定性好,安全,可靠。3总体设计3.1功能模块设计根据分析整个系统主要划分为5个功能模块,分别执行要求中的功能。该系 统需要有录入,利用显示函数将职工所有信息显示,删除,修改,按指定条件查 询,统计,查询,保存信息,循环显示主菜单功能。功能模块图如图1所示。学生成绩管理系统成警遲块图1功能模块图(1) 学生成绩信息录入管理模块该模块分为 学号号录入,姓名录入,姓名,语文、数学、英语成绩等信息 按0键结束录入,实现模块退出,返回主菜单。(2) 成绩信息统计管理模块该模块是显示学生名次功能。(3) 主函数模块该模块是显示主菜单功能。(4) 成绩排名

5、模块该模块是显示学生名次功能。3.2系统设计方案设计一个总菜单,由于该系统涉及多个学生的成绩存储,因此,定义一个数据结构,用于存储这些信息。现仅对学生语文成绩、数学成绩、英语成绩进行统计管理。建立以下数据结构:class Stude ntpublic:/存储学生学号/存储学生姓名/存储语文成绩/存储数学成绩/存储英语成绩总成绩平均成绩排名char nu mberMax; char n ameMax; double chin ese; double math; double en glish; double total; double average; in t ran k;4. 详细设计4.1

6、学生信息录入管理模块成绩录入就是对前面定义的类Student中的成员进行赋值。其中,用户需要 输入的是学生的学号、姓名两个基本信息和语文、数学和英语三门成绩,其余总 成绩、平均成绩和排名由后续的计算函数来实现。实现成绩录入模块的函数代码 如下:void setData(Stude nt &s)/成绩录入模块coutvv输入学号,姓名,语文,数学,英语成绩:;/录入数据 cins.nu mbers .n ames.ch in eses.maths.e nglish;s.total=0;II初始化s.average=0;s.ra nk=0;该函数运行时其结果如下图所示:输入学生信息的个数可在主函数

7、用修改相应数值。图2学生信息录入管理图4.2学生成绩信息统计管理模块成绩统计模块需要建立在成绩录入模块的基础之上,当系统中已经包含一些数据记录后才能对这些成绩求总分、平均分等操作。否Average/=(N*3)返回Average的值结束图3学生成绩信息统计流程图4.3学生排名管理模块在获得整个班级的总分和平均分之后,就可以对该班级中的同学按照某个参数进行排名了。在该系统中,使用每位同学的平均成绩对其进行排名,此处使用插入排序来实现。插入排序的基本思想是:每次将一个待排序的记录,按其关键字大小插入到 前面已经排好序的子序列中的适当位置, 直到全部记录插入完成为止,其算法流 程图如下:否图4学生排

8、名管理模块流程图4.4学生信息修改管理模块该系统中的成绩查询工嫩嫩个是根据用户输入的学生的学号作为关键字,在数据结构中进行查询,并将查询结果即该记录的位置返回,第一行代码函数的生命中,参数字符串n即为用户输入的需要查询的学生学号,将该学号与所有数据元素进行比较,找到则返回该元素的位置,否则返回-1。该函数执行的流程图如下图:图5学生信息修改管理流程图5. 调试与测试5.1调试调试是软件开发过程中的一个重要环节, 也是最复杂,对软件开发者者来说也是最艰巨的任务。调试的任务是及时改正测试过程中发现的软件错误。 具体地 说,调试过程由两个步骤组成,它从表示程序中存在错误的某迹象开始, 首先确 定错误

9、的准确位置,也就是找出哪个模块或哪个语句引起的错误。 然后仔细研究 推断代码以确定问题的原因,并设法改正。调试过程主要是运行编制好的程序, 然后遇到错误后根据系统的提示,找到 相关的问题所在。本系统调试过程中遇到问题、原因和解决方法如下面介绍(1) 程序不能运行定义的指针,很多次引用,过个函数里面,定义的不明确,造成错误连连发 生。(2) 不能正确输出信息,有乱码现象原因是键入信息的时候,没有 对应,逗号的位置不正确,后来,用的是 信息逐一输入,保证了信息的一一对应和高度的准确性,使程序可以正常运行。(3) 程序运行途中,出现错误,被迫中止其中定义字符数组,却没有定义长度,导致定义类型变成了字

10、符型,而不能 接受字符串,因此出现了错误。5.2测试软件测试是软件生存期中的一个重要阶段, 是软件质量保证的关键步骤从用 户的角度来看,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,所以软件测试应该是“为了发现错误而执行程序的过程”。或者说,软件测试应该根据软 件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误或 缺陷。过度测试则会浪费许多宝贵的资源。到测试后期,即使找到了错误,然而 付出了过高的代价。6.结论系统实现功能:该系统实现对学生成绩管理功能,主要包括成绩录入、计算总分和平均分、 成绩排名和成绩

11、查询。系统设计中的难点:在程序开发阶段,main函数定义、输出模块及数据结构方面存在一定难点, 而后参考部分文献决绝该问题。系统不足之处:为系统实现简单,并没有对班级进行分类,而且仅仅以三门学科进行数据统 计。结束语通过本次的课程设计,让我学会了把书本上的知识应用到了实际中来。虽然在这几周中有过挫折和坎坷,有的问题一直到了最后才被解决,但是我认为这未 必就不是好事,这样能锻炼我的意志,磨练我的耐心,失败是成功之母,这话一 点都没错,没有失败就没有成功。让我没有失去信心的是关怀我们的老师,当我们有了问题和疑问,老师就很 耐心的给予讲解,让我们有了一个良好的学习氛围。参考文献1谭浩强 C语言程序设

12、计(第三版)北京:清华大学出版社,2005.719附录1用户手册首先输入3组同学数据信息勰翼螫叢W英语成绩吨号鷲雪霰数鑒英语成绩呦uqh G9 6? 59英悟成绩丽皿80 8B 72一一希任退 二-* -* 1,迄,3:14信自$名岌其考试成绩输入命令选择:1)打印所有排名排名姓名 why 姓名 sryp姓名3Q02uqh语文:99语文; 盹语文:69数学:数爭数学:英语:英语;英语总分29?总分232总分197平均分99 平均分 77.3333 平均分 B5.&6674.退出其考试成绩俞人命令选择:2)打印出成绩在全班平均分以上的学生名单和数据信息12-数学:99M;:疋 JB艮 呉事:H.

13、强 MT帀-冷申 呉 KK口 K M X 寰 XX* 关 弭*去 寰 BE X KKK* 3 :M X001姓名 why语文:99英语:99总分297平均分99入一统平船瞬辭胳其考试超3)任意输入一个学号,查找出该学生在班级中的排名及其考试成绩4退鼻譬娶賦凰試凰崔植凰植凰具拥鼻耳屛廿可-寸8 米甲 直議輦員loot x W1*nmi*i*i*兰*!W K議H: X K員員員貝 鞠平翩其T分 均 平跖分7总29英99学数?9文语斛0:0名 y 3 学3即5&W1 选查学盹 令要 命您 入入名附录2-源程序#i nclude stdafx.h #in clude#in cludeusing n a

14、mespace std;const int Max=5;/字符串最大长度class Stude nt;/类声明void setData(Student &s);/设置对象 s 的数据void count(Student &s);/计算对象s的总分,平均分void sort(Student S,int N);/把长度为N的对象数组S,按平均分排序double getAverage(Student S,int N);/计算全班的平均分void prin t(Stude nt &s);打印信息int search(Student S,int N,char *n);从长度为M的对象数组中,查找学号n的

15、位置class Stude nt public:char nu mberMax; char n ameMax; double chin ese; double math; double en glish; double total; double average; int rank;/学号/姓名语文成绩/数学成绩/英语成绩/总分/平均分/只有比较才不为了0void setData(Stude nt & s) /成 绩录入模块coutvv输入学号,姓名,语文,数学,英语成绩:;/录入数据cin s. nu mbers .n ames.chi neses.maths.e nglish;s.tota

16、l=0;初始化s.average=0;s.ra nk=0;/成绩统计/求三门课程的总分/求三门课程的平均分void coun t(Stude nt &s)s.total=s.chi nese+s.math+s.e nglish; s.average=s.total/3;void sort(Student S,int N)/插入法排序(成绩排名)/定义变量/创建对象/循环/对象初始化II变量初始化int in dex;Stude nt in serter; for(int i=1;i=0&in serter.averageSi ndex.average)II比较II插入该元素设置排名Si nde

17、x+1=Si ndex; in dex-;Si ndex+1=in serter;for(i nt j=0;jN;j+)Sj.ra nk=j+1;double getAverage(Stude nt S,i nt N) double Average=0;for(int i=0;iN;i+)求平均分函数II变量定义并初始化II循环Average+=(Si.chi nese+Si.math+Si.e nglish);AverageI=(N*3); return Average;II求所有学生的所有成绩和II求所有学生的成绩平均值II返回该平均值void prin t(Stude nt &s)输出结

18、果coutvv排名vvtvv学号vvtvv姓名vvtvv语文:VVt II定义输出格式数学:t英语:t总分t平均分endl;coutvvs.ra nkvtvs .nu mbervtvs .n amets.chi nesevt输出成员的值s.mathts.e nglishts.totalts.averagee ndl;II成绩查询模块II在所有记录中查询找到int search(Student S,int N,char *n) for(int i=0;iN;i+)if(strcmp(Si. nu mber, n)=0)return i;return -1;/返回结果所在的位置/没有找到int ma in() /系统集成const int M=3;Student SM;for(

温馨提示

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

评论

0/150

提交评论