




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
洛 阳 理 工 学 院课 程 设 计 报 告 课程名称 数据结构课程设计 设计题目 成绩统计系统 专 业 计算机科学与技术 课 程 设 计 任 务 书设计题目:给出n个学生的m门考试的成绩表,每个学生的信息由学号、姓名以及各科成绩组成。对学生的考试成绩进行有关统计,并打印统计表。设计内容与要求:(1) 按总数高低次序,打印出名次表,分数相同的为同一名次;(2) 按名次打印出每个学生的学号、姓名、总分以及各科成绩。 课 程 设 计 评 语 成绩: 指导教师:_ 年 月 日洛 阳 理 工 学 院 课 程 设 计 报 告1. 问题描述给出n个学生的m门考试的成绩表,每个学生的信息由学号、姓名以及各科成绩组成。对学生的考试成绩进行有关统计,并打印统计表。2. 基本要求(1) 按总数高低次序,打印出名次表,分数相同的为同一名次;(2) 按名次打印出每个学生的学号、姓名、总分以及各科成绩。3、数据结构类型定义struct Student char m_Name20; unsigned int m_ID; float m_Scorem;4. 总体设计(1)模块划分:初始化函数: Node* Init();直接插入法排序函数: float* Sort();相同名次处理函数: int Del_Same();打印函数void Display();主函数:void main() 语文数学英语物理处理相同分数排序输入成绩输入学号输入姓名欢迎进入成绩统计系统2、组成框图:3、流程图初始化函数: Node* Init(); 直接插入法:float* Sort();相同名次处理:int Del_Same(); 打印函数void Display();5. 详细设计1.声明一个结构体:typedef struct Student Node;2录入数据将复制形式修改为指针访问形式,计算成绩总和写入到sum中。 3打印,按名次从第一名到最后一名。4.下直接插值排序法会用到哨兵,nSize表示grade中实际元素的个数。5.处理相同成绩的名次将sumn中的不重复的元素放到graden中,函数返回grade中实际元素的个数。测试数据:姓 名语 文数 学英 语物 理黄54535251赵98979695李 1009999986. 测试与调试 1、输入数据:2.打印成绩7. 源程序清单#include #include #include #include #include #define n 3/*学生数*/#define m 4/*课程数*/using namespace std;/-声明一个结构-struct Student char m_Name20; unsigned int m_ID; float m_Scorem;typedef struct Student Node;/-函数声明-Node* Init(Node* stu,const int cN,float* Asum,int nSum);float* Sort(float* Agrade,int nSize);int Del_Same(float* Asum,int nSum,float* Agrade,int nGreade);void Display(Student* stu,int nN,float* Asum,int nSum,float* Agrade,int nGreadeSize);/-函数实现-/-录入数据-Node* Init(Node* stu,const int cN,float* Asum,int nSum) char name20; unsigned int id; float scorem; int i,j; for(i=0;in;+i) printf(请输入第%d/%d名学生的信息:n ,i+1,n); printf(请输入姓名: ); scanf(%s,name); printf(n请输入学号: ); scanf(%d,&id); for(j=0;jm_Name,name);/修改成指针访问形式. (stu+i)-m_ID=id; for(j=0;jm_Scorej=scorej; /-计算成绩总和写入到sum中- *(Asum+i)=0.0; for(j=0;jm_Scorej); /for(n) printf(成功!数据录入完毕! ); return stu;void Display(Node* stu,int nN,float* Asum,int nSum,float* Agrade,int nGreadeSize)/打印。按名次从第一名到最后一名。 coutendl=endl; cout=打印名次信息=endl; cout=endl; cout名次=学号=姓名=总分=名 科 成 绩=endl;for(int i=0;inGreadeSize;+i) for(int j=0;jn;+j) if(Asumj=Agradei) coutsetw(10)lefti+1/名次。 setw(10)leftstuj.m_ID/学号。 setw(10)leftstuj.m_Name/姓名。 setw(10)leftAsumj;/总分。 for(int k=0;km;+k) coutsetw(10)leftstuj.m_Scorek;/名科成绩。 /coutendl; float* Sort(float* Agrade,int nSize)/练习一下直接插值排序法。会用到哨兵。nSize表示grade中实际元素的个数。 for(int i=1;i=0;) if(AgradenSizeAgradej)/从大到小的顺序。一定要注意,是拿哨兵来与之比较才对的。 Agradej+1=Agradej; j-; else break; /for内 Agradej+1=AgradenSize;/ 从哨兵中取出这个值来 /for 外 return Agrade;int Del_Same(float* Asum,int nSum,float* Agrade,int nGreade)/将sumn中的不重复的元素放到graden中,函数返回grade中实际元素的个数。 int Find;/有无重复的标记:1为有,0为无。 int nElem=1;/gread中的实际元素个数。 Agrade0=Asum0; for(int i=0;inSum;+i)/sum for(int j=0;jnElem;+j)/grade if(Asumi=Agradej)/判断两个浮点数相等条件。 Find=1; break; else Find=0; if(Find=0) AgradenElem=Asumi; nElem+; /for(最外) return nElem;/-void main() Node Stun; Node* pStu; pStu=Stu;/声明n个Student对象的一个数组。 float sumn,graden+1;/因为想在grade中用到直接插值排序法,要用到哨兵。所以构造n+1. pStu=Init(pStu,n,sum,n); int nGrade_size; nGrade_size=Del_Same(sum,n,grade,n+1); float* pGrade=0; pGrade=Sort(grade,nGrade_size); Display(pStu,n,sum,n,grade,nGrade_size);八、心得体会这次我抽到的题目很简单,但是这是指用基础的C语言写很简单。如果想把本学期数据结构的知识应用到程序中还是很有挑战性
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Module 9 Unit 1 He left school and began work at the age of twelve 教学设计 外研版七年级英语下册
- 2025年中国钢铁耐火材料行业市场分析及投资价值评估前景预测报告
- 2025年中国干湿两用电动剃须刀行业市场分析及投资价值评估前景预测报告
- 2025年中国橄榄叶液体和粉末提取物行业市场分析及投资价值评估前景预测报告
- 2025年中国改性异氰酸酯行业市场分析及投资价值评估前景预测报告
- 2025年地热能源区域供暖技术应用案例分析报告
- 2025年中国氟碳树脂涂料行业市场分析及投资价值评估前景预测报告
- 03 第6讲 力的合成与分解 【答案】听课手册
- 2025年中国风力涡轮齿轮油行业市场分析及投资价值评估前景预测报告
- 第2节 生物对环境的适应和影响教学设计-苏科版生物七年级上册
- 《公路软土地基处治工程技术规范》(DB45T 1972-2019)
- 工余安健环知识培训
- 云南省石林县鹿阜中学七年级地理上册 第一章 第四节 地球的公转教案 (新版)商务星球版
- 《路遥人生》读书分享课件
- 以青春之名励青春之志
- 小学数学新旧知识关联
- 第9课 共同弘扬中华传统美德 《中华民族大团结》(初中 精讲课件)
- 万夫一力天下无敌 课件-2023-2024学年高一上学期增强班级凝聚力主题班会
- GB/T 20671.4-2006非金属垫片材料分类体系及试验方法第4部分:垫片材料密封性试验方法
- 灌肠分类、操作及并发症处理
- 《电力工业企业档案分类规则0大类》(1992年修订版)
评论
0/150
提交评论