第一篇:多关键字排序 数据结构-设计
多关键字排序
【问题描述】
多关键字的排序有一定的实用范围。例如:在进行高考分数处理时,除了需对总分进行排序外,不同的专业对单科分数的要求不同,因此尚需在总分相同的情况下,按用户提出的单科分数的次序要求排出考生录
取的次序。
【基本要求】
(1)假设待排序的记录数不超过10000,表中记录的关键字数不超过5,各个关键字的范围均为0至100.。
按用户给定的进行排序的关键字的优先关系,输出排序结果。
(2)约定按LSD法进行多关键字的排序。在对各个关键字进行排序时采用两种策略:其一是利用稳定的内部排序法,其二是利用“分配”和“收集”的方法。并综合比较这两种策略。
【测试数据】
由随机数产生器生成。
C语言源程序
#include
#include
#include
#include
#define N 200
typedef struct
{int key[5];
}score;
score sr[N];
void Merge(scoreR[],int low,int m,int high,int keynum)
{//将两个有序的R[low..m)和R[m+1..high]归并成一个有序的R[low..high]
int i,j,k;
i=low,j=m+1,k=0;
score *R1;
R1=(score*)malloc((high-low+1)*sizeof(score));
//临时申请空间
if(!R1)
return;
//申请空间失败
while(i<=m&&j<=high)
//两子文件非空时取较大者复制到R1[k]上
{if(R[i].key[keynum]>=R[j].key[keynum])
R1[k++]=R[i++];
else R1[k++]=R[j++];
}
while(i<=m)
//若第1个数组非空,则复制剩余记录到R1中
R1[k++]=R[i++];
while(j<=high)
//若第2个数组非空,则复制剩余记录到R1中
R1[k++]=R[j++];
for(k=0,i=low;i<=high;k++,i++)
R[i]=R1[k];
//归并完成后将结果复制回R[low..high]
}
void MergeSort(score R[],int low,int high,int keynumber)
{//对R[low..high]进行二路归并排序
int mid;
if(low { //区间长度大于1 mid=(low+high)/2;//分解 MergeSort(R,low,mid,keynumber);//递归地对R[low..mid]排序 MergeSort(R,mid+1,high,keynumber);//递归地对R[mid+1..high]排序 Merge(R,low,mid,high,keynumber);//组合,将两个有序区归并为一个有序区 } } intmain() {int i,j,n,pepole; printf(“请输入总记录条数,和关键字的个数,并且以空格作为间隔符n”); scanf(“%d%d”,&pepole,&n); printf(“按记录顺序:以关键字优先次序从低到高产生随机关键字,最后一个关键字是总分由系统自动计算 n”); srand((unsigned)time(NULL)); for(i=0;i { sr[i].key[n-1]=0; for(j=0;j { sr[i].key[j]=rand()%100; sr[i].key[n-1]=sr[i].key[n-1]+sr[i].key[j]; printf(“ %4d”,sr[i].key[j]); } printf(“ %4d”,sr[i].key[n-1]); printf(“n”); } for(i=0;i MergeSort(sr,0,pepole-1,i); printf(“n排序结果为:n”); for(i=0;i { for(j=0;j printf(“ %3d ”,sr[i].key[j]); printf(“n”); } system(“pause”); return 0; } 数据的排序 一、教材分析: “数据的排序”是冀教版《信息技术》1初中一年级第三单元第十三课的内容,本节课是在学生初步掌握了Excel工作表的基本操作及数据计算等基本知识的延伸,在整个Excel学习中占据重要的地位,是学生在掌握Excel基本操作的基础上解决实际问题的开始。 二、学情分析: 通过前面的学习,七年级的学生有了一定的电脑基础,已经初步掌握了Excel操作基础知识,所以本节课主要是教师引导,学生自己动手探索进而完成学习任务。 三、教学目标: 1.学会在Excel中使用数据的排序功能。2.了解排序的几种类型。 3.培养学生运用所学知识解决实际问题的能力。4.让学生养成认真、细致的学习态度。 四、教学重点、难点: 重点是排序的操作方法,难点是设置主要关键字和次要关键字排序。 五、教学策略: 任务驱动、小组合作探究。 六、教学过程: 1.认定目标: 明确今天的学习目标和学习任务。2.导入课题 教师展示几个学生设计的“运动成绩统计表”,让大家评价。学生观看、评价“运动成绩统计表”。 教师小结:由大家的评价中我们可以看到,这些表格缺少“名次”一项。由此引出课题——排序。 3.预习反馈: 通过预习发现,学生对学习Excel兴趣很高,但对排序有一定的困惑。4.合作探究: (1).使用工具按钮排序 教师打开“北京奥运会奖牌榜”文件,介绍按“总奖牌”(关键字)进行升序排序的方法。要求学生打开“北京奥运会奖牌榜”文件,然后以“总奖牌”为关键字,将“北京奥运会奖牌榜”按降序排序。 (2).使用菜单排序 教师演示利用菜单中的排序命令设定主要关键字、次要关键字完成排序的操作方法。选中“2008年北京奥运会金牌榜”数据区中任一单元格.选择“数据---排序”,在弹出的对话框中,“主要关键字”选择“金牌”,“关键字”选择“银牌”“第三关键字”选择“铜牌”,排列顺序都选择“降序”,单击“确定。 学生听教师讲解,观看教师演示,学习使用菜单排序的方法。 (3).排序种类:一般情况下,总是按照数值大小排序,Excel还提供了按字母顺序、按姓氏笔画排序等方式。 5.展示点拨: 教师布置任务:下面是1998-2002年各消费大国家电市场的家庭平均消费资料。根据资料,计算各个国家五年的家庭平均消费总额,按降序排序。并在“家 2 庭平均消费表”最后添加“名次”一栏,填入名次。 学生上机实践,完成教师布置的任务。进一步熟悉关键字、升序、降序等概念,和使用工具按钮排序的方法。 6.布置作业: 制作班级成绩表,按总分进行降序排序,主要关键字总分,次要关键字语文,第三关键字数学,排列顺序选择降序。使学生复习巩固所学知识,进一步明确排序的作用。 附:板书设计 第十三课 数据的排序 一、排序的方法 1.利用工具按钮 2.利用菜单操作 (1)主关键字(2)次要关键字 教学反思: 由于学生之间有水平差异,教学控制有点难度,基础好的同学由于认为太简单在操作的时候就粗心大意,而基础差的同学又认为太难做不出来,应该对于他们布置不同的任务。教学时还应多注重学生的主体性,多给学生留一些空间,让学生有充足的时间去体会、去思考,做到把课堂还给学生。 二、排序的种类 1.按数值排序 2.按笔画排序 3.按字母顺序排序 《管理信息系统》作业清单 一、图书出纳管理系统数据库设计 今有为学校图书馆出纳台设计一个自动化管理系统。该系统的功能为:读者可以由书名(或书名的一部分)、作者名查馆藏书号:出纳台可由馆藏书号查书的去向;读者借书时,登录有关信息;读者还书时,检查是否有逾期及其他违规行为,登录有关信息。 请根据上述信息,设计该系统的数据库。 分析:要完成这些信息的存储和使用,至少需要3个表:读者信息表、书籍信息表、借阅表同时考虑到资料的利用和备份,引入 队的总分、名次。2)学籍管理系统 根据本校具体管理办法,开发学籍管理系统。该系统功能为:根据任课教师提供的成绩单,登录学习成绩:根据奖学金评定办法,提出总成绩和单科奖学金获得者名单:根据升、留级条件,提供留级、退学、补考学生名单;打印学生成绩单(补考者注明补考时间、地点),记录学生在校期间所有学习成绩、升留降级、休复学、奖励及处分等情况。3)图书出纳管理系统 为学校图书馆出纳台设计一个自动化管理系统。该系统的功能为:读者可以由书名(或书名的一部分)、作者名查馆藏书号:出纳台可由馆藏书号查书的去向;读者借书时,登录有关信息;读者还书时,检查是否有逾期及其他违规行为,登录有关信息。4)学术会议论文管理系统 系统的功能为:收到应征论文后进行分类编号登录,审稿前打印分类目录和审稿单;审稿后登录审稿结论(录用、不录用、修改后录用),并将结论通知作者(修改后录用的,附修改建议);收到作者修改稿和版面费后进行登记:打印论文集目录(收到版面费的录用论文列入论文集)。 5)宾馆管理系统 为中型宾馆设计一个宾客消费管理系统。该系统具有下列功能:客房管理、客房预定和变更、查询、结算(住宿、餐饮、购物、通信、娱乐等各种费用一次结清)。6)住宅小区物业管理信息系统 物业公司负责住宅小区房屋、设施、设备、环境卫生、公共秩序、保安、绿化等管理工作。由住户缴纳费用和出租房屋费用来维持各项费用支出。 数据的排序和筛选 教学目标: ◆知识与能力目标: 1.理解排序与筛选的意义; 2.掌握数据的排序、筛选操作;初步了解数据分析和管理的基本方法。 3.培养乐于尝试、善于观察、独立思考的自学品质,提高学以致用的能力。 ◆过程与方法目标: 1、以任务驱动,通过具体任务让学生在阅读教材的基础上进行自学探讨,通过分组协作,培养学生的协作学习、探究学习的能力以及创新精神; 2、引导学生根据“学着做”完成任务,培养学生的自主学习能力。 ◆情感态度与价值观目标: 1.通过具体任务,培养学生勇于尝试、大胆创新、不断进取的精神。2.培养学生的互帮互助合作意识和创新精神,增加他们的成就感。3.培养学生良好的看书学习习惯,团结协作学习的能力,信息技术素养。 教学重难点: 重点: 熟练并展握数据的排序、筛选操作方法。难点: 关键字的理解,以及如何利用排序和筛选解决实际问题的能力的培养。 课前准备: 1、发送相关的文件(数据的排序和筛选.xls)到学生机上。2、检查教师机和学生机情况。 组织教学: 上课,同学们好,请坐下! 教学过程设计 一、复习前面知识。(1分钟)前几节课我们学习了: 数据输入、工作表的编辑、以及数据计算等基本知识。在这些基本知识当中,跟这节课联系比较密切的知识点有:区域的概念和选择,就是要根据要求,选择相应的区域。 二、新课 1、导入:(7分钟) 同学们,这一节课我们要学习对数据进行分析。“对数据进行排序和筛选”是用EXCEL管理数据的基本方法,也是同学们必须掌握的基本技能,这部分内容是本章节的重点内容。在日常生活当中,我们经常接触到数据的排序和筛选,那么,什么叫排序呢?所谓排序,就是对一串数据按照一定的顺序排列。比如,数据从大到小排序;字母从A到Z排序。什么叫筛选呢?就是把一组数据中符合条件的数据挑选出来,举个例子,在一组词语中把有关科目的词语筛选出来,比如:电脑,语文,课桌,英语,体育,学生,大家就一目了然,哪些是属于科目类的词语。那么接下来,请同学们互相讨论一下:我们身边有哪些例子应用到排序和筛选呢? 学生活动:学生举例说明。 教师活动:点评学生所举例子(好,同学们举的例子都非常形象生动„„)。好,现在,请大家在上节课阅读教材的基础上,完成以下任务: 2、任务驱动,层层深入 教师活动:通过极域软件,把教师机屏幕广播给全体学生。(5分钟)教师讲解:桌面上已经有一个老师发送过去的文件叫“数据的排序和筛选.xls”,稍候请同学们打开个文件。这是教师机的界面,大家可以看到,这个文件一共有七张工作表,第一张工作表叫“自学指导”,包含的内容有:学习说明和友情提醒。我们主要来看学习说明:本节课的主题是排序与筛选;学习目标有三点,其中最重要的一点是排序与筛选的操作;学习的形式分达标学习(完成第一关到第四关的内容,这是必须完成的内容)与拓展学习(是在完成前面四关的基础上,根据所学知识,对实际问题的解决,主要是看大家对A所学知识是否做到学以致用,这一关是备选关)学习过程中还设置了本关要求、目标对照、点击帮助、录像帮助、友情提醒等信息,但是老师特别强调一点:希望大家尽量参考课本80到85页内容独立完成本节课任务,实在无法独立完成的情况下,才寻求点击帮助、录像帮助、老师和同学的帮助。做出来的结果必须与目 标对照一致。 每一关的评价标准是:独立完成,得25分;点击帮助,得20分;录像帮助,得15分;师生帮助,得10分;没有完成,得0分。大家把每一关的评分,填在每一关相应的“自我评价”后的单元格中。教师活动:(根据“第一关”工作表提醒)⑴在“数据”菜单中可以找到“排序”或按钮中用升序按钮或降序按钮; ⑵数据从高到低排序用递减,从低到高排序用递增。 学生活动:接下来,用13分钟时间完成本节课的第一关到第四关的任务。(13分钟)教师讲解:(5分钟) 在上述操作过程中应注意的问题有: ⑴在第四关中筛选出“人事科”或“生产科”时,注意选择“或”的逻辑关系。 ⑵在第四关中筛选出“人事科”或“生产科”时,不是直接输入“人事科”或“生产科”,而是通过下拉按钮选择。 教师讲解:拓展关,是一道学以致用的题目,要求:根据所给一组数据,应用所学知识对表格进行处理,筛选出符合要求的一种电脑品牌。 在完成拓展关上述内容后,应用“练习用表”,可与邻桌讨论并在“上机秘笈”练习本上完成框图中的五个问题。 最后,我们一起来看一看“成绩单”工作表:只有在完成前面四关和拓展关的基础上,并填入相应的评分,才能在成绩单中看到相应的总成绩,并且根据你的总成绩,老师给出了相应的评价。并请大家思考一下,这个成绩单是如何完成的? 接下来,用7分钟时间完成拓展关的任务。 学生活动:学生完成任务。(7分钟) 教师活动:学生操作,教师巡视,并记录下有关易错点、难点。讲评:(5分钟)讲评每一关遇到的易错点,难点。并请一位学生回答下列问题: ①你在操作过程中有没出错,错在哪里?如何解决? ②还有没有别的方法可以达到目标,如果有,请说出你的方法。 三、小结(2分钟)今天,大家都很认真地学习了排序与筛选的意义;掌握了数据的排序、筛选操作;初步了解数据分析和管理的基本方法。大家都做得不错,。接下来请各位同学总结自己的经验,把这个经验写在你们的《上机秘笈》里。 学生活动:把本节课的总结写在《上机秘笈》中。教师:下课,同学们,再见。 教学设计 【课题】:对数据进行排序和筛选 【课型】:新授 【教材分析】 本节课的作用和地位 Excel电子表格是信息技术会考中的一个重要内容,同时也是以后工作中一个基本的技能。通过前面的学习,学生基本上学会一些Excel的基本操作,并且用公式和函数对数据进行处理。本节课学习对数据进行排序和筛选,是学习Excel过程中一个必不可少的课程内容,不管是对会考还是以后的学习和工作都有很大的帮助。 本节主要内容介绍 首先从课堂上获取一些数据后,让学生输入数据,然后用公式和函数计算一些数据,最后讲述排序和筛选,并且演示操作。【学生分析】 本节课的学习者是高一年级的学生,学生进校快半个学期,具备了一定的信息素养,并且在学习了文字处理的相关知识和Excel的基础知识之后还有一定的操作基础,但对一些概念性的理论知识不是很感兴趣,理论知识相对欠缺,他们对感兴趣的东西学习积极性特别高且乐于探索,但学习中易受网络、游戏等影响,注意力不够集中,另外因各种因素,学生的基础存在一定的差异。【设计思路】 首先,教师创设情景,从学生自身出发,获取要处理的数据。其次,演示怎么对数据进行排序,给学生时间自己动手实践。 然后,再演示怎么筛选(包括高级筛选),给学生时间自己动手实践。最后,教师根据学生的练习中出现的问题有针对性的讲解和示范。【教学目标】 1.知识与技能 (1)熟练对数据进行排序操作;(2)熟练对数据进行筛选操作; 2.过程与方法 (1)培养学生发现问题,解决问题的能力; (2)培养学生综合运用所学知识,解决实际问题的能力; 3.情感态度和价值观 (1)课堂讲授知识,培养学生良好的听课习惯; (2)通过完成任务,锻炼学生的动手能力和培养学生间的团结协作精神; 【重点难点】: 重点:对数据进行排序和筛选 难点:高级筛选中各个区域的选择。【教学过程】: 一、谈话激趣,揭示课题 师:同学们,初次见面给大家准备了一点见面礼(播放赵本山的小品片段)。 放完之后„„ 师:既然说到了钱的事情,那我们就现场来做一些小调查。师:你们平时都在哪些地方用钱呀? 学生:„„ 师:最近我在网上看了一个小调查(打开电子表格),看了一下目前中学生使用零用钱的情况,你们是不是也差不多啊。 活动:课堂上抽取一些学生简单的互动。 二、创设情景,复习巩固,接着进入新授课程 师:同学们都已经学过了关于电子表格很多操作,那这节课我们先来复习一下上节课的内容,现在大家利用函数计算出“总计”和“平均值”。(下发作业) 活动:课堂巡视学生的情况,指导。几分钟之后„„ 师:我看大部分同学都已经完成了,那没有完成的同学等下继续努力。现在我们要请这节课的闪亮登场——对数据来进行排序和筛选。学会了排序和筛选之后,同学们就可以来分析一下,你们在哪些方面用的钱最多或者最少,而且还可以筛选出哪些同学很节约等等。好了,现在我就用我手边的数据为大家介绍一下今天我们的主角! 教师边讲授边演示操作。 师:首先呢,我们可以简单的对数据进行升序和降序。方法就是:选中你要排序的那一列中的任意一个单元格之后,利用常用工具栏中的“升序”按钮和“降序”按钮。 师:很简单对不对,接下来,同学自己来试试看。把零食那一列升序排列。 活动:学生自己练习,教师巡视学生情况,指导。 师:我看同学们都很棒,那我们接着来学习更复杂的排序,多条件排序。方法:执行“数据”→“排序”,在弹出的对话框中设定多级排序的条件,就 可对数据进行多条件排序。同学们还是来自己动手,看看它是不是没有这么复杂。 活动,学生自己练习,教师巡视学生情况,指导。 师:大家做的都非常好,那下面我们再来点难度大一点的,来对数据进行筛选。筛选也有两个内容,自动筛选和高级筛选。首先来看自动筛选:执行“数据”→“筛选”→“自动筛选”,Excel便在数据清单中每个列标题的右边插入了一个下拉箭头,单击列标题右边的下拉箭头,打开下拉列表,选择。如果筛选的条件不是下拉式列表中的一个值,那么可以在下拉式列表中选择“自定义”方式,在“自定义自动筛选方式”对话框中输入筛选条件。下面同学们自己动手操作一下。 活动,学生自己练习,教师巡视学生情况,指导。 师:看了大家做的情况,同学们完成的都非常好,现在我们退出自动筛选(执行“数据”→“筛选”→“自动筛选”退出)来学习今天最复杂的一个内容——高级筛选。方法主要是定义三个单元格区域:一是定义查询的数据区域;二是定义查询的条件区域;三是定义存放查找出满足条件的记录的区域。注意步骤:第一,要在工作表的任意一个空白区域,输入筛选的条件,输入条件时,如果在同一行,表示条件需要同时满足,在不同行表示满足其中之一;第二,执行“数据”→“筛选”→“高级筛选”,打开高级筛选对话框。在对话框中进行设置。 师:接下来的时间大家就接着把刚刚的数据在处理一下,用高级筛选找出电话费大于30元的同学。 三、实践巩固,分层辅导 教师课堂巡视,进行辅导。挑出比较优秀的学生,对其他同学进行辅导。【课堂小结】: 通过这节课的学习,知道了Excel电子表格给人们带来的一个很大的便利就是可以帮助人们处理数据,这对于同学们以后的学生和生活是非常有帮助的。希望大家下去以后有时间多多练习,你会得到意想不到的收获。【教学反思】: 信息技术的学习重在操作实践,本节课利用任务驱动辅助教学,注重教师的主导地位和学生的主体地位。教学过程中创设情景,不断提高学生的兴趣和吸引学生的注意力。课堂上,除了传授新知识外,留大部分时间给学生自己操作,调动学生的积极性、主动性、和创造性,促进学生主动发展。此外,挑出比较突出的学生对其他学生进行指导,促进他们的感情交流,创造一个良好的学习氛围。第二篇:数据排序教学设计
第三篇:图书馆出纳台业务数据结构设计
第四篇:数据的排序和筛选教学设计
第五篇:对数据进行排序和筛选