ImageVerifierCode 换一换
格式:DOCX , 页数:42 ,大小:130.70KB ,
资源ID:4439702      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-4439702.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计报告学生成绩管理系统11Word格式文档下载.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

数据结构课程设计报告学生成绩管理系统11Word格式文档下载.docx

1、具体要完成的任务是:A.编制完成上述问题的 C语言程序、进行程序调试并能得出正确的运行结果。B.写出规范的课程设计报告书;三、课程设计步骤及时间进度和场地安排时间:1周 地点:现代教育中心具体时间安排如下:第一天:布置题目,确定任务、查找相关资料第二天第四天:功能分析,编写程序,调试程序、运行系统;第五天上午:撰写设计报告; 第五天下午:程序验收、答辩。四、课程设计考核及评分标准课程设计考核将综合考虑学生的系统设计方案、 运行结果、 课程设计报告书的质量、 态度、考勤、答辩情况等各因素。具体评分标准如下:1 )设计方案正确,具有可行性、创新性;设计方案止确,具有可行性、创新性;30分2)系统开

2、发效果较好;203)设计报告规范、课程设计报告质量高;设计报告规范、课程设计报告质量高;4)课程设计答辩时,问题回答正确;课程设计答辩时,问题回答正确;5)态度认真、刻苦钻研、遵守纪律;态度认真、刻苦钻研、遵守纪律;10按上述五项分别记分后求和,总分按五级制记载最后成绩。优秀(10090分),良好(8089分),中等(7079分),及格(6069分),不及格(059分)一、问题描述 5二、基本要求 5三、数据结构设计 6四、软件模块结构图 7五、程序设计思想 9六、程序流程图 13七、源程序 18八、调试分析 32九、测试数据 33十、用户使用手册 35一、问题描述问题描述给出n个学生的m门课

3、程的考试成绩信息,每条信息由姓名、课程代号与分数组成,要求设计算法:( 1)输入每个人的各门课程的成绩,计算每人的平均成绩;( 2)按平均成绩的高低次序,打印出个人的名次,平均成绩相同的为同一名次;( 3)按名次列出每个学生的姓名和各科成绩;基本要求 学生的考试成绩必须通过键盘输入, 且需对输出进行格式控制;、基本要求学生的考试成绩必须通过键盘输入, 且需对输出进行格式控制;三、数据结构的设计为了对学生信息进行统一操作, 使用了结构体这一数据结构, 学 生的各项数据信息都能用结构体来表示,具体如下:struct stu int num; /* 学号,整型变量 */char name50; /*

4、 姓名,长度为 50的字符串数组 */char classes50 /* 班级名称,长度为 50的字符串数组 */ ;double gsps_score; /* 高等数学平时成绩,双精度实型变量 */double gsks_score; /* 高等数学考试成绩,双精度实型变量 */double gszh_score; /* 高等数学综合成绩,双精度实型变量 */double dlps_score; /* 电路理论平时成绩,双精度实型变量 */double dlks_score; /* 电路理论考试成绩,双精度实型变量 */double dlzh_score; /* 电路理论综合成绩,双精度实型

5、变量 */double yyps_score; /* 英语平时成绩,双精度实型变量 */double yyks_score; /* 英语考试成绩,双精度实型变量 */double yyzh_score; /* 英语综合成绩,双精度实型变量 */double wlps_score; /* 物理平时成绩,双精度实型变量 */double wlks_score; /* 物理考试成绩,双精度实型变量 */double wlzh_score; /* 物理综合成绩,双精度实型变量 */double pj_score; /* 平均成绩,双精度实型变量 */student1000; /* 最多存储 1000个

6、学生数据 */该结构体数据定义为全局变量。四、软件模块结构图学生信息录入模块按学号查询学生信息学生信息查询模块主菜单控制模块学生信息修改模块学生信息删除模块学生信息插入模块按姓名查询学生信息输出优秀学生相关信息学生信息输出模块输出不及格学生信息 每门课程的平均成绩课程成绩统计模块 按单科成绩排名次模块功能描述:a.主菜单控制模块:主菜单直接控制七个模块(学生信息输出模块的 两个子模块直接归主菜单控制),在各模块间起到纽带的作用。在主 菜单,可以通过选择进入其他模块,其他模块运行结束后也可回到主 菜单继续选择。b.学生信息录入模块:循环输入学生信息,建立临时的学生信息数据 库。c.学生信息查询模

7、块:可选择按学号或者按姓名查询学生信息, 如学生信息不存在则给出提示。d.学生信息修改模块:查找到要修改的学生信息后,可对该学生的信 息进行逐项修改。e.学生信息删除模块:查找到要删除的学生信息后,可对其进行删除 操作。f.学生信息插入模块:在数据库末尾插入学生信息,逐项输入要插入 的学生信息即可。g.学生信息输出模块:输出优秀学生信息模块能够输出优秀学生(平 均成绩大于等90分)的学号和姓名;输出不及格学生信息模块能够 输出不及格学生的相关信息。h.课程成绩统计模块:可以得到每门课程的平均成绩,还可以任意抽 取一门课按单科成绩排定学生名次。五、 程序设计思想结构化的程序设计主要靠设计和调用各

8、模块的函数来实现。 本程序设计了多个函数, 每个函数自身能完成一个任务, 有的函数和别的函数结合能完成更大的任务。 每一个模块功能的实现其实就是对函数的调用,本说明首先介绍本程序所涉及的子函数,再介绍主函数,最后介绍程序整体的实现过程。1.void Inputfun() 此函数较特别,它只进行输入操作,但由于此函数所包含的语句较长且需要被其他三个函数使用, 为方便调用单写了一个函数。此函数在源程序中放在最前,所以在此先作说明。此函数可细分为 11 个小块,用来输入学生的基本数据。每小块的结构基本相同即 for(;) 基本语句 + 一个 continue 语句 +基本语句 +一个break 语句

9、 之所以用这个结构为了使输入的数据更加正规。比如在分数的输入中就限定了只能输入 0 至 100 之间的数值, 这也符合分数录入规则。 需要特别注意的是, 这个函数完成了本程序中要做的两个计算。 其一是在每门课的考试试成绩输入后完成了对这门课的综合成绩的加权计算 (考试成绩 *0.7+ 平时成绩 *0.3 ) ; 其二是在最后一门课程的综合成绩算出后,计算了该学生四门课的平均成绩。2.void Getinformation() 此函数用来录入学生信息。 它调用了 voidInputfun() 函数,其实它的主体部分就是 void Inputfun() 函数。这函数还用了一个 for 循环以达到循

10、环输入的目的。3.int Searchbynum (int no)int Searchbyname (char na50) 这是两个“兄弟函数”,是按学号查找和按姓名查询模块中的两个重要函数。主要功能是根据用户输入的学号 姓名返回改学生所在的的数组下标。利用 for 循环嵌套一个 if 语句实现,若找到学生该学生信息就返回数组下标,若找不到就返回 -1 。4.void Seekinformation()void Printinformation(int x) 这两个函数关系紧密,所以一起介绍。 void Seekinformation() 函数利用for 循环和 if 语句使查找中能够使用学号

11、和姓名两种方式。如源程序所示, 在用 if 语句确定了查找方式后先后调用了 int Searchbynum(int no)int Searchbyname (char na50) 和 void Printinformation(int x) 两个函数,根据 int Searchbynum (intno)int Searchbyname (char na50) 返回的数组下标,运用 voidPrintinformation(int x) 输出所查询的内容。所以int Searchbynum (int no)int Searchbyname (char na50)voidSeekinformati

12、on()void Printinformation(int x) 这四个函数是查询模块的四个联系紧密的重要函数, 在它们的共同作用下查询模块的功能得以实现。5.void Modifyinformation() 此函数用于修改学生信息。基本原理就是用输入的新数据覆盖原来的老数据, 达到修改的目的。 本函数还调用了查找模块的函数, 使修改前能按学号或姓名找到要修改的学生信息。修改过程中调用了 Inputfun() 函数6.void Deleteinformation() 此函数用于删除学生信息。同样调用了查找模块的函数。删除模块的关键语句是 for (i=x;i999;i+)studenti=st

13、udenti+1; 从要删除的那一个数据开始, 用后一个数据覆盖它,一直循环到最后,相当于把开始的第一个数据删除了。7.void Insertinformaton() 此函数用于插入学生数据。 由于没有用链表,所以选择插入在最后一个有效数据之后。本函数运用 if(studentj.num=0) 这个语句找到了最后一个有效数据之后的数组下标 j, 然后将数据输入到 studentj 中,便完成的了插入。插入过程中,调用了 Inputfun() 函数。8.void Showthefail() 此函数用于显示不及格学生的信息。能够按要求输出不及格学生的学号、姓名、各科成绩以及平均成绩。首先用这条 i

14、f 语句搜索该学生是否有成绩不及格,当四门课中至少有一门不及格时会输出该学生的相关信息。9.void Stu_p() 此函数用于输出优秀学生(平均成绩大于 90分)的信息,利用 for 循环和条件判断句输出找出相应的学生输出相关信息。10.void Chengjitongji()每门课的平均成绩的功能;还能够按每门课程的成绩对学生进行排序, 使学生在该门课的表现一目了然。 排序中用到了冒泡排序的方法。9. void main() 下面对主函数作简要说明。 Switch 语句是函数的主体:此函数用于按要求统计成绩。有分别统计switch(c)/* 利用 switch 语句集成各个功能函数 */c

15、ase 1: Getinformation();break;/* 获得学生信息 */case 2: Seekinformation();/* 查找学生信息 */case 3: Modifyinformation();/* 修改学生信息 */case 4 : Deleteinformation();/*删除学生信息 */case 5 : Insertinformaton();插入学生信息 */case 6: Stu_p();/* 显示优秀学生信息 */case 7: Showthefail();/* 显示不及格学生信息 */case 8: Chengjitongji();/* 课程成绩的统计 *

16、/case 0 : exit(0);/* 退出 */default: break;通过一个数值输入函数, 使用户在简单的数值输入后就可轻松调用各模块。还使用了 for (;) 使各模块能够循环调用。11.最后对程序的整体实现过程作个简要说明。源程序中多处运用continue和break语句,同时配合scanf函数和if条件判断语句,使用户能够根据提示通过简单的数值输入来选择下一步该做什么。 中文界面,用户很容易根据提示上手,简单易用。六、程序流程图c=4?以上为主函数流程图,主函数下八个供选择的模块只是简单的用一个执行框表示。现分别画出八个模块的流程图:1、录入学生成绩:七、源程序#inclu

17、destring.hstdlib.hconio.hstruct stu/* 定义结构体*/int num;char classes50;int a,b,c,d,x,i,j,k,s,y,flag;char s150,c1;double f,t,gp,dp,yp,wp;/* 录入、 修改、 插入学生信息三个模块调用了输入模块*/void Inputfun()/* 输入学生信息模块 */for(; ;)/* 设计死循环以至于在输入格式错误时可以再次输入 */printf( 请输入班级名称 :t); /* 输入班级名称 */scanf(%s,&s1);if(strlen(s1)20) 您输入的班级名称

18、过长 !ncontinue;strcpy(studenti.classes,s1); /* 格式正确后跳出死循环 */) 请输入学号 :/* 输入学号 */%db);if(studenti.num100|f 成绩不合理!请您输入合理的成绩 .nstudenti.gsps_score=f; 请输入该生高等数学考试成绩 :studenti.gsks_score=f;studenti.gszh_score=studenti.gsks_score*0.7+studenti.gsps_score*0.3;/* 按考试成绩 70%平时成绩 30%算该门课程的最终成绩 */ 请输入该生电路理论平时成绩 :s

19、tudenti.dlps_score=f; 请输入该生电路理论考试成绩 :studenti.dlks_score=f;studenti.dlzh_score=studenti.dlks_score*0.7+studenti.dlps_score 请输入该生英语平时成绩 :studenti.yyps_score=f; 请输入该生英语考试成绩 :studenti.yyks_score=f;studenti.yyzh_score=studenti.yyks_score*0.7+studenti.yyps_score 请输入该生物理平时成绩 :studenti.wlps_score=f; 请输入该生物

20、理考试成绩 :studenti.wlks_score=f;studenti.wlzh_score=studenti.wlks_score*0.7+studenti.wlps_score *0.3;studenti.pj_score=(studenti.yyzh_score+studenti.dlzh_score+studenti.gszh_score+studenti.wlzh_score)/4;/* 计算每个学生的平均成绩 */录入学生信息模块/*void Getinformation() /* 获得学生信息 */for (i=0;1000;i+)/* 利用循环连续输入学生信息 */if(i

21、=0)system(cls 请根据提示输入学生的信息 nnelse 请输入下一个学生的信息 nnInputfun(); 继续请按 1,返回主菜单请按 0.na);if(a=0) break;/* 查 询 模 块 : 包 含 四 个 函 数 , 函 数 间 有 联 系 */int Searchbynum (int no) /* 按学号查找 */for (j=0;jj+)if (studentj.num=no)return j;return -1;int Searchbyname (char na50)/* 按姓名查找 */for (k=0;kk+)if (strcmp(studentk.name,na)=0)return k;void Printinformation(int x)/* 输出学生信息 */if (x=-1) 该学生信息不存在 ! 班级 :%sn,studentx.classes); 学号 :%dn

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2