(完整word版)成绩统计系统数据结构课程设计(word文档良心出品)_第1页
(完整word版)成绩统计系统数据结构课程设计(word文档良心出品)_第2页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、洛阳理工学院课程设计报告课程名称数据结构课程设计_设计题目_ 成绩统计系统_专 业_ 计算机科学与技术_课程设计任务书设计题目:给出 n 个学生的 m 门考试的成绩表,每个学生的信息由学号、姓 名以及各科成绩组成。对学生的考试成绩进行有关统计,并打印统计表。设计内容与要求:(1)按总数高低次序,打印出名次表,分数相同的为同一名次;(2)按名次打印出每个学生的学号、姓名、总分以及各科成绩。课程设计评语成绩:指导教师:_洛阳理工学院课程设计报告11问题描述给出 n 个学生的 m 门考试的成绩表,每个学生的信息由学号、姓名以及各科成绩 组成。对学生的考试成绩进行有关统计,并打印统计表。2.基本要求(

2、1)按总数高低次序,打印出名次表,分数相同的为同一名次;(2)按名次打印出每个学生的学号、姓名、总分以及各科成绩。3、数据结构类型定义struct Stude ntchar m_Name20;un sig ned int m_ID;float m_Scorem;4总体设计(1)模块划分:初始化函数:Node* In it();直接插入法排序函数:float* Sort();相同名次处理函数:int Del_Same();打印函数 void Display。;洛阳理工学院课程设计报告2主函数:void main()洛阳理工学院课程设计报告32、组成框图:3、流程图欢迎进入成绩统计系统排序处理相同

3、分数初始化函数:Node* Ini t();直接插入法:float* Sort();print!广沾输入第验L-MultipleiMultipkxIprinrtT 成功数?_retiirnAradt.+iAradlej IA( (rad nSi Agf ., 洛阳理工学院课程设计报告4相同名次处理:int Del_Same(); 打印函数 void Display。 ;5.详细设计1.声明一个结构体:typedef struct Stude nt Node;2.录入数据将复制形式修改为指针访问形式,计算成绩总和写入到sum中3.打印,按名次从第一名到最后一名。4.下直接插值排序法洛阳理工学院课

4、程设计报告5会用到哨兵,nSize 表示 grade中实际元素的个数。5.处理相同成绩的名次将 sumn中的不重复的元素放到 graden中,函数返回 grade中实际元素的个 数。测试数据:姓名语 文数学英 语物理黄54535251赵98979695李1009999986.测试与调试1、输入数据:USERSADM1NISTRATORD.,J =回请駄第儿兀名宝生的信息; 请籥入姓名:请输入学号:0?录入第1/4门课程成绩汚4录入第2/4门课程成绩汚3录入第3/4门课程成绩:盟 录人第4/4门课程咸绩:1请敷递會冬名学生的信息:请騎姓名:赵请输入学号二胴洛阳理工学院课程设计报告62.打印成绩

5、C:USERSADMINSTKATORDESICrOFVZZDebugzzzzxe录入第4门课程成绩:鹑 录入第3/4门课程成绩:肝 录入第4/4门课程成绩:弼 成功!嘖龙据录人完毕!=-打E卩名次信息-一“7.源程序清单#in elude #in elude #in elude #in elude #in elude #define n 3/*学生数 */#define m 4/*课程数 */using n amespaee std;/- 声明一个结构-struet Stude ntchar m_Name20;un sig ned int m_ID;名nunu姓李赵IrtIrt1 1 - -

6、 n n=8=8 5 5= =9 9 9 9一-绩0名1 1 9 9 5 5洛阳理工学院课程设计报告7float m_Scorem;;typedef struct Stude nt Node;/-函数声明-Node* Init(Node* stu,const int cN,float* Asum,int nSum);float* Sort(float* Agrade,int nSize);int Del_Same(float* Asum,i nt n Sum,float* Agrade,i nt n Greade);void Display(Student* stu,int nN,float*

7、 Asum,int nSum,float* Agrade,int n GreadeSize);/-函数实现-/-录入数据-Node* Init(Node* stu,const int cN,float* Asum,int nSum)char n ame20;un sig ned int id;float scorem;int i,j;for(i=0;i n;+i)printf(请输入第d/%d 名学生的信息:n ”,i+1,n);printf(请输入姓名:”);洛阳理工学院课程设计报告8sea nf(%s, name);printf(n请输入学号:”);sea nf(%d,&id);f

8、or(j=0;jm_Name, name);/修改成指针访问形式(stu+i)- mD=id;for(j=0;jm_Scorej=scorej;/- 计算成绩总和写入到sum中-*(Asum+i)=O.O;for(j=0;jm_Scorej);/for( n)洛阳理工学院课程设计报告9printf(”成功! 数据录入完毕!”);return stu;void Display(Node* stu,int nN,float* Asum,int nSum,float* Agrade,int nGreadeSize)/打印。按名次从第一名到最后一名。coutendl=e ndl;cout=打印名次信息

9、=e ndl;cout=e ndl;cout名次=学号=姓名=总分=名科成绩=e ndl;for(i nt i=0;i nGreadeSize;+i)for(i nt j=O;j n;+j)if(Asumj=Agradei)coutsetw(10)lefti+1名次。setw(10)leftstuj.mD学号。setw(10)leftstuj.m_Name姓名。setw(10)leftAsumj;/总分。for(i nt k=0;km;+k)coutsetw(10)leftstuj.m_Scorek;名科成绩。洛阳理工学院课程设计报告10coute ndl;float* Sort(float*

10、 Agrade,int nSize)/练习一下直接插值排序法。会用到 ”哨兵”。nSize 表示 grade中实际元素的个数。for(i nt i=1;i =0;)if(AgradenSizeAgradej)从大到小的顺序。一定要注意,是拿”哨兵”来与之比较才对的。Agradej+1=Agradej;j-;elsebreak;/for内Agradej+1=Agrade nSize;/从哨兵中取出这个值来洛阳理工学院课程设计报告11/for 外retur n Agrade;int Del_Same(float* Asum,i nt n Sum,float* Agrade,i nt n Gread

11、e)/将 sumn中的不重复的元素放到graden中,函数返回 grade中实际元素的个数。int Find;/有无重复的标记:1 为有,0 为无。int nElem=1;/gread中的实际元素个数。Agrade0=Asum0;for(i nt i=0;i n Sum;+i)/sumfor(i nt j=0;j nElem;+j)/gradeif(Asumi=Agradej)/判断两个浮点数相等条件。Fin d=1;break;elseFin d=0;if(Fi nd=0)洛阳理工学院课程设计报告12Agrade n Elem=Asumi;n Elem+;/for(最外)return n E

12、lem;/-void mai n()Node Stu n;Node* pStu;pStu=Stu; 声明 n 个 Student 对象的一个数组。float sumn,graden+1;因为想在 grade中用到直接插值排序法,要用到 ”哨兵”。所以构造 n+1.pStu=I nit(pStu, n,sum, n);int n Grade_size;n Grade_size=Del_Same(su m,n, grade ,n+1);float* pGrade=0;pGrade=Sort(grade ,n Grade_size);Display(pStu ,n,sum,n, grade ,n Grade_size);洛阳理工学院课程设计报告13八、心得体会这次我抽到的题目很简单,但是这是指用基础的 C 语言写很简单。如果想把 本

温馨提示

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

评论

0/150

提交评论