成绩统计系统数据结构课程设计.docx

上传人:苏美尔 文档编号:6126605 上传时间:2020-09-11 格式:DOCX 页数:13 大小:140.12KB
返回 下载 相关 举报
成绩统计系统数据结构课程设计.docx_第1页
第1页 / 共13页
成绩统计系统数据结构课程设计.docx_第2页
第2页 / 共13页
成绩统计系统数据结构课程设计.docx_第3页
第3页 / 共13页
成绩统计系统数据结构课程设计.docx_第4页
第4页 / 共13页
成绩统计系统数据结构课程设计.docx_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《成绩统计系统数据结构课程设计.docx》由会员分享,可在线阅读,更多相关《成绩统计系统数据结构课程设计.docx(13页珍藏版)》请在三一文库上搜索。

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

2、表 .2、基本要求( 1) 按总数高低次序 , 打印出名次表 , 分数相同得为同一名次 ; (2 ) 按名次打印出每个学生得学号、姓名、总分以及各科成绩3、数据结构类型定义s ructStud thrm_Name0;u si ned in m_ID;fl atm_Sco em ;;、 总体设计(1) 模块划分 : 初始化函数 : No e* nit( ) ;打印函数 voi Di pl ( );主函数 :vo d main ()2、组成框图:欢迎进入成绩统计系统、流程图初始化函数: Node* Init();相同名次处理: int l Sae( ); 4打印函数 v d Displ ();5、

3、 详细设计、声明一个结构体 :t pe e structStu nt N de;2. 录入数据将复制形式修改为指针访问形式, 计算成绩总与写入到sum 中。3。打印 , 按名次从第一名到最后一名4、下直接插值排序法会用到 哨兵”, nS表示 g ade 中实际元素得个数。5、处理相同成绩得名次将 umn 中得不重复得元素放到 gade中 , 函数返回 rad 中实际元素得个数测试数据:姓名语文数学英语物理黄5521赵989799李10 9 9986、测试与调试、输入数据:2、打印成绩、 源程序清单#in ude tdio 、 h#incl de str n inc ud float 、 h#

4、n lude #def ne n 3/ 学生数 * # efine m /* 课程数 */u ng a space s ;/ 声明一个结构 - - uct Studentchar m am 20;unsign d ntm_I; lo t m_Score; ;t pede str t StudntNo ; - - 函数声明 - - - - - - - - N de I it( ode s , ost n cN , f oa * um, i t nSum);flo t ort ( flo t* grad , nt nS z) ;int Del_a( flo t* A m,int n um,flo

5、t* g ade,intn reade) ;v id Dis la (St ent s u,in nN ,fl at* A um,int nSum, lo t* A rade, t nGr adeS e) ;/ - 函数实现 - - - - -/- - 录入数据 - deInit(Node*su,c i t ,float* Asu,int nSu)c ar na e 0 ;u signed i t id; l at sc rem;i ti,j;for( = ;i ; +i )pri f( ”请输入第d/%d 名学生得信息:n ”, i+1,n);p intf ( 请输入姓名 : ); sc f

6、( ”%s,n me) ;print(” n 请输入学号:” );scan ( ” d, d) ;for( =0;jm ; + )p ntf(” n 录入第 %d/%d门课程成绩 : , +1,m); can (%f, c re ) ; rin f( ” n”) ;/ - 赋值过程 - - - - strcpy( stu )- m_Name,name) ;/修改成指针访问形式、( tu ) m ID=id ; o (j=0 ; jm;j +)( stu+i ) m_S j= corej;/- - 计算成绩总与写入到sum中 - -* ( m i ) =、 0;f r( =0; j ;+j)(

7、( s m+i)+=(stu+i) m_Sc ej);/ for(n )p tf ( 成功! 数据录入完毕! ); et rn st ;oi Displa (Nstu,int N, f oat A m,in n um, o t* Agr d, i t nGreadeSi e) / 打印。按名次从第一名到最后一名。c u endl = = = = = = = = = = = = = end;cou ” = = = = = =打印名次信息 = = = = = = ; o = = = = = = = = = = = = ndl; o t ”名次 =学号 = =姓名 = = =总分 =名科成绩 = =

8、 nd ; or(int i=0 ; nGr adSiz ;+i)for( t j=0;j n;+j)if(Asu = radei)c ut s tw( 0) et +1/ 名次。 setw (10) lef stuj、 m_ D/ 学号。 setw(10) l ft stu j 、 _Nam / 姓名 . setw ( 10)left As j ; / 总分。for(int k= ;k m;+k)co t setw(10 ) left stuj、 _ co ek;/名科成绩。 /cou e l;float* Sor( float* a e,in nSize)/ 练习一下直接插值排序法。会用到

9、 哨兵 .nSize表示 grade 中实际元素得个数。for( nt i=1;in ize ;+i)Agrade Size=Ag dei ; / 将它放到哨兵里 or ( ntj=i 1;j =0;)if( grad Size Ag a e )/ 从大到小得顺序。一定要注意 , 就是拿 哨兵”来与之比较才对得A ra e j+ =Agr e j ; -; se r k;/ 内 gra +1=Ag ade nS ze; /从哨兵中取出这个值来 / fo 外retur Agrade;i t Del_Same ( loat*Asum, nnSum, flo t* Ag ade,i Gr ade)/

10、 将 sumn 中得不重复得元素放到raden 中 , 函数返回gr d 中实际元素得个数。in Find;/有无重复得标记:1 为有 , 为无。i n le ; / read 中得实际元素个数. grade0 =As 0 ;for(i i 0;i um;+i ) /s mfor ( intj 0;j nElem; +j ) /gr d if( umi = rad j) / 判断两个浮点数相等条件。Find=1;beak ;elseFind 0;if( Find=0 ) grad nElem=A um i ;n l m+;/f r (最外 )r turn nEle ;/- - - id mai

11、 () de t ;Node*Stu; Stu=St ;/声明n 个S d n对象得一个数组。floa su n,gra e + ; /因为想在gra 中用到直接插值排序法, 要用到 哨兵 。所以构造+1、 Stu= it(p u, ,su ,n);i nGr de_size ;nGrade si e= el_Sa e(su , n, gr e, +1) ;f o t* Grae 0; G e=So t ( gr d, nGrade_si e);Dis a ( tu,n , su, ra e, nGrade_size );八、心得体会这次我抽到得题目很简单,但就是这就是指用基础得C 语言写很简单 .如果想把本学期数据结构得知识应用到程序中还就是很有挑战性得.我采用得就是直接插入排序法 ,刚开始把书上得程序照搬过来,结果发现有许多得错误。改了很久才改对最难得就是相同成绩处理得函数,我刚开始以为很简单 ,但就是前面各个成绩采用得就是指针结构体 ,很难处理,最后在网上查找了一下才对照着改正过来.最后我学会得就是可以先把数据输入数组内,在用指针直接指向数据就可以了,这样比输入数据时就用指针要简单得多。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1