




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、洛阳理工学院课程设计报告课程名称数据结构课程设计_设计题目 _ 成绩统计系统_专 业 _ 计算机科学与技术_课程设计任务书设计题目: 给出 n 个学生的 m 门考试的成绩表,每个学生的信息由学号、姓名以及各科成绩组成。对学生的考试成绩进行有关统计,并打印统计表。设计内容与要求:( 1)按总数高低次序,打印出名次表,分数相同的为同一名次;( 2)按名次打印出每个学生的学号、姓名、总分以及各科成绩。课程设计评语成绩 :指导教师:_洛阳理工学院 课程设计报告1?问题描述给出 n 个学生的 m 门考试的成绩表,每个学生的信息由学号、姓名以及各科成绩组成。对学生的考试成绩进行有关统计,并打印统计表。2.
2、 基本要求(1) 按总数高低次序,打印出名次表,分数相同的为同一名次;(2) 按名次打印出每个学生的学号、姓名、总分以及各科成绩。3、数据结构类型定义struct Stude ntchar m_Name20;un sig ned int m_ID;float m_Scorem;4?总体设计(1 )模块划分 :<1> 初始化函数: Node* In it();<2> 直接插入法排序函数: float* Sort();<3> 相同名次处理函数: int Del_Same();<4> 打印函数void Display 。;1洛阳理工学院 课程设计报告&
3、lt;5> 主函数: void main()2洛阳理工学院 课程设计报告2、组成框图:欢迎进入成绩统计系统排序处理相同分数3、流程图<1> 初始化函数: Node* Ini t();<2>直接插入法: float* Sort();A ( rad nSi Agf°.,print! 广沾输入第验L-MultipleiMultipkxIprinrtT成功 数 ?_Aradlej I+iretiirnAradt.3洛阳理工学院 课程设计报告<3>相同名次处理: int Del_Same(); <4>打印函数voidDisplay 。;5.
4、 详细设计1. 声明一个结构体:typedef struct Stude nt Node;2. 录入数据将复制形式修改为指针访问形式,计算成绩总和写入到sum 中3. 打印,按名次从第一名到最后一名。4. 下直接插值排序法4洛阳理工学院 课程设计报告会用到 "哨兵 ", nSize 表示 grade 中实际元素的个数。5洛阳理工学院 课程设计报告5. 处理相同成绩的名次将 sumn 中的不重复的元素放到graden 中, 函数返回 grade 中实际元素的个数。测试数据 :姓名语文数学英 语物理黄54535251赵98979695李1009999986. 测试与调试1、输入
5、数据 :*X:D.,请输入学号: 07录入第 1/4 门课程成绩汚4艮入第 2/4 门课程成绩汚3 录入第 3/4 门课程成绩 : 盟 A 人第 4/4 门课程咸绩 : E1请输入学选施6洛阳理工学院 课程设计报告2.打印成绩 'C : USERSADMINSTKATORDESICrOFVZZDebugzzzzxe'录入第 2 虫门课程成 绩: 鹑录入第 3/4门课程成绩 : 肝录入第 4/4门课程成 绩: 弼成功!嘖龙据录人完毕!=- 打 E 卩名次信息 -一“名绩=名0一9- 9赵=8 5nu1 9 5姓李Irt1 - n7. 源程序清单#in elude <stdi
6、o.h>#in elude <stri ng>#in elude <float.h>#in elude <iostream>#in elude <ioma nip>#define n 3/*学生数*/#define m 4/*课程数*/using n amespaee std;/- 声明一个结构 -struet Stude nt7洛阳理工学院 课程设计报告char m_Name20;un sig ned int m_ID;float m_Scorem;;typedef struct Stude nt Node;/-函数声明 -Node* I
7、nit(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* Asum,int nSum,float* Agrade,int n GreadeSize);/-函数实现 -/-录入数据 -Node* Init(Node* stu,const int cN,float* Asum,i
8、nt 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 ("请输入姓名 :”);8洛阳理工学院 课程设计报告sea nf("%s", name);printf("n请输入学号: ;”)sea nf("%d",&id);for(j=0;j<m;+j)printf("n录入第%d/%d 门课程成绩 :",j+
9、1,m);scan f("%f", &scorej);prin tf("n");/-赋值过程 -strcpy(stu+i)->m_Name, name);/修改成指针访问形式(stu+i)-> m D=id;for(j=0;j<m;j+)(stu+i)->m_Scorej=scorej;/ -计算成绩总和写入到sum 中-*(Asum+i)=O.O;for(j=0;j<m;+j)(*(Asum+i)+=(stu+i)->m_Scorej);/for( n)9洛阳理工学院 课程设计报告printf ( ”成功!数
10、据录入完毕!”);return stu;void Display(Node* stu,int nN,float* Asum,int nSum,float* Agrade,int nGreadeSize)/打印。按名次从第一名到最后一名。cout<<endl<<"= ="<<e ndl;cout<<"=打印名次信息="<<e ndl; cout<<"= "<<e ndl;cout<<" 名次 = 学号 = 姓名 = 总分 = 名科成
11、绩="<<e ndl;for(i nt i=0;i< nGreadeSize;+i)for(i nt j=O;j< n;+j)if(Asumj=Agradei)cout<<setw(10)<<left<<i+1名次。<<setw(10)<<left<<stuj.mD学号。<<setw(10)<<left<<stuj.m_Name姓名。<<setw(10)<<left<<Asumj;/总分。for(i nt k=0;k&
12、lt;m;+k)cout<<setw(10)<<left<<stuj.m_Scorek;名科成绩。10洛阳理工学院 课程设计报告cout<<e ndl;float* Sort(float* Agrade,int nSize)/练习一下直接插值排序法。会用到。”哨兵 ” nSize 表示 grade 中实际元素的个数。for(i nt i=1;i <n Size;+i)Agrade nSize=Agradei;将它放到哨兵里for(i nt j=i_1;j>=0;)if(AgradenSize>Agradej)从大到小的顺序。一定
13、要注意,是拿”哨兵 ”来与之比较才对的。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 Greade)/将 sumn 中的不重复的元素放到graden 中 ,函数返回 grade 中实际元素的个数。int Find;/有无重复的标记:1 为有, 0 为无。int nElem=1;/gread中的实际元素个数。Agrade
14、0=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)12洛阳理工学院 课程设计报告Agrade n Elem=Asumi;n Elem+;/for( 最外 )return n Elem;/ -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洛阳理工学院 课程设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 鲁迅的故乡情结与《朝花夕拾》教学
- 狼特殊句式课件
- 狗狗采耳知识培训班课件
- 牧场消防安全培训课件
- 山东省潍坊市2025年中考数学真题附真题答案
- 安全教育培训重要性课件
- 跨境公司面试题库及答案
- 农业产业园项目2025年产业政策适应性评估及可行性研究
- 2025年新能源风能发电技术创新与风力发电控制系统报告
- 农业2025年数字化转型典型案例剖析报告
- 污水处理厂人员培训方案
- 苏教版五年级上册数学分层作业设计 5.5 小数乘小数(附答案)
- 现货黄金购买合同模板
- 学术道德与学术规范
- 《机械基础》课件-V带传动
- JJG 4-2015钢卷尺行业标准
- 小米企业质量管理手册
- 隧道施工行业分析
- 《国家司法考试》课件
- 新能源汽车整车控制系统检修高职全套教学课件
- 吸入用一氧化氮-药品临床应用解读
评论
0/150
提交评论