数据结构与算法实验任务书2014-S2
- 格式:doc
- 大小:243.00 KB
- 文档页数:6
《数据结构与算法实验》任务书《数据结构与算法实验》任务书实验一动态链表的设计与应用一、实验目的、要求1、掌握使用VC 6.0上机调试线性表的基本方法;2、掌握线性表的基本操作:插入、删除、查找以及线性表合并等运算在顺序存储结构和链式存储结构上的运算。
二、实验内容1.输入一组学生信息,建立一个单链表。
2.遍历该链表,输出学生信息。
3.查找某特定的学生,查找成功返回1,否则返回0。
4.编写在非递减有序链表中插入一个元素使链表元素仍有序的函数,并利用该函数建立一个非递减有序单向链表。
5.利用算法4建立两个非递减有序单向链表,然后合并成一个非递增链表。
*6.采用单向链表实现一元多项式的存储并实现两个多项式相加并输出结果。
7.编写一个主函数,调试上述算法。
*8.综合训练:利用链表实现一个班级学生信息管理(数据录入、插入、删除、排序、查找等,并能够实现将数据存储到文件中)三、实验说明1.存储定义#define MAXSIZE 100 //表中元素的最大个数typedef int ElemType;//元素类型typedef struct list{ElemType elem[MAXSIZE];//静态线性表int length; //表的实际长度}SqList;//顺序表的类型名2.建立顺序表时可利用随机函数自动产生数据。
四、注意问题1.插入、删除时元素的移动原因、方向及先后顺序。
2.了解不同的函数形参与实参的传递关系。
一、实验目的、要求1.掌握栈、队列的思想及其存储实现。
2.掌握栈、队列的常见算法的程序实现。
二、实验内容1.采用链式存储实现栈的初始化、入栈、出栈操作。
2.采用顺序存储实现栈的初始化、入栈、出栈操作。
3.采用链式存储实现队列的初始化、入队、出队操作。
4.采用顺序存储实现循环队列的初始化、入队、出队操作。
5.在主函数中设计一个简单的菜单,分别测试上述算法。
*6.综合训练:1)利用栈实现表达式求值算法。
算法与数据结构实验报告实验二实验名称:线性表实现集合运算姓名:卢丽娟学号:211006289专业:软件工程班级:二班指导教师:陈亦萍日期: 2012年3月24日一、实验目的本实验是要实现线性表的集合运算,通过该实验更深刻地理解线性结构的特点,学会并掌握线性表的顺序或链式表示和实现。
二、实验内容与实验步骤采用线性表表示集合,用线性表实现集合以及基本操作,实现两个集合的并、交、差运算。
用到的各种函数如下程序步骤所示。
步骤:1. 链表销毁void DestoryList_L(list& L){ list p=L->next,s;while(p){ s=p; p=p->next;free(s);}L->next=NULL;}2. 链表初始化void InitList(list &L){ L=NULL;}3. 往链表L中插入元素e,并按升序排列,如果L中已有元素e,则不插入ListInsert_L(list &L, char e){ list p=L->next,t,s; t = L;while(p!=NULL &&p->data<= e){ if(p->data==e) return OK;t=p; p=p->next;}s =(list)malloc(sizeof(LNode));s->data=e;s->next=p;t->next=s;return OK;}4. 创建链表,按字符串输入元素void CreateList_L(list &L, int n){ L =(list)malloc(sizeof(LNode));L->next=NULL;int i=0;for(i=n;i>0;i--){ char e; scanf("%c",&e);ListInsert_L(L,e);}getchar();}5.定义输入函数,分配存储空间void inputdata(list head)//定义输入函数{ list p;char tmp;scanf("%c",&tmp);while(tmp!='\n'){ p=(list)malloc(sizeof(struct LNode));//分配存储空间p->data=tmp;p->next=head->next;head->next=p;scanf("%c",&tmp); }}6.定义输出函数,初始化,并判断其是否为空void outputdata(list head)//定义输出集合函数{ list p;p=head->next;//初始化,p指向第一个结点while(p!=NULL)//判断是否为空{ printf("%c",p->data);p=p->next;} printf("\n");//输出集合函数}7.定义集合的并集函数,其中函数的数据元素均已按值非递减排列void MergeList(list head1,list head2,list head3)//定义集合的并集函数{//已知p1、p2中的数据元素按值非递减排列。
《数据结构与算法》课程设计教学任务书一、课程设计的目的数据结构与算法课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。
数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。
学习数据结构与算法是为了将实际问题中涉及的对象在计算机中表示出来并对它们进行处理。
通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。
通过此次课程设计主要达到以下目的:了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
二、课程设计的基本要求1. 独立思考,独立完成:课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。
2. 做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
3. 按照课程设计的具体要求建立功能模块,要求按照如下几个内容认真完成:1)需求分析:在该部分中叙述,所选课题的功能要求。
2)概要设计:在此说明所选课题的功能模块,以及每个功能模块的算法设计(可以是描述算法的功能模块图),所选课题的的数据结构以及其存储结构设计说明等。
(如果指定存储结构请写出该存储结构的定义)3)详细设计:针对2)中的主要功能模块,画出流程图,给出主要功能模块的流程图、算法及必要的文字说明)4)编码实现:给出3)中主要功能模块的函数实现,重点是函数的声明,变量或参数的说明,以及程序的功能说明与注释,不必把所有代码都写上,主要写出其声明与注释等。
《数据结构与算法》课程设计指导书一.目的通过本课程设计,使同学更加系统地理解和掌握数据结构的基本概念;能自如地根据实际要求,设计相应的数据结构,并运用C或C++语言实现所设计的算法,能够利用所学的基本知识和技能,分析和解决简单的程序设计问题,为后续其它专业课程的学习和应用打下良好基础。
二.题目根据指导教师的具体要求,从下面题目中选择1个来完成1.学生成绩管理系统2.简易客房管理系统3.人事档案管理系统4.进销存货物管理系统5.图书管理系统6.运动会分数统计7.民航订票系统8.校园导游咨询9.大数相乘问题10.长整数的加减法11.表达式的求值12.日历系统13.钱币的转换14.二叉树的应用——哈夫曼树15.银行排队系统模拟16.其他题目(需老师同意)注意,在实现相关管理系统题目时,需要设计良好的数据结构,代码编写时不允许运用现有的数据库管理系统,具体功能应通过对文件的读写操作实现。
三.任务完成形式1.完整的软件系统最终必须向指导老师提交完整的程序源代码(.c和.cpp以及.h为后缀的文件)、数据文件以及使用说明文件等。
源代码文件要特别注意编程规范、代码风格,关键代码需有合理的注释,不含任何无用代码;数据文件内要求有一定数量的“真实”数据(如对于记录文件,需要有5条以上记录);使用说明文件的第一行,需要给出设计者的学号、姓名,后面为其它说明。
2.课程设计报告(详细要求请参考附录二)课程设计报告总体上主要包括以下几个部分:1)封面2)目录3)课程设计报告正文4)使用说明5)参考文献四.总体要求1.每道题目的程序代码总量不少于600行(其中不包括自动生成代码),有合理注释。
2.课程设计报告正文字数不少于8000字,概念清楚、叙述正确、内容完整、书写规范。
3.独立完成课程设计,不得抄袭他人。
4.功能正确、有一定实用性。
5.尽可能大量使用各种C或者C++语言程序设计技术,尤其在以下几个方面:指针及其运算、结构、指针数组、数组指针、字符数组与字符串、内存空间动态申请与释放、文件访问与操作、合理的常量与全局变量及函数接口变量定义、数据输入与数据格式检查、数据类型转换、错误处理、工程设计技术(整个系统由一个工程文件、若干个程序文件、若干头文件、甚至库文件等组成)。
数据结构⼤型实验任务书-2014年(第三稿)[⼤型实验基本要求]1.原则上可以1-3位同学组成实验⼩组,进⾏分⼯合作,但必需保证每位组员都充分参与实验过程,每位组员应对实验程序的结构、算法、主要技术完全掌握,⽅可参加实验验收。
但⼀个⼩组内最终只能⼀个⼈得到优秀成绩。
2.每组可参考下⾯⼤型实验题⽬和要求,选择⼀道实验题⽬,共同设计开发。
3.⼤型实验时间从第8周开始⾄16周,要求在考试之前全部验收结束。
原则上,申请⼤型实验验收后,若实验没有达到规定的要求,不可再次申请验收,故请⼤家务必确认程序正确(程序代码和运⾏结果)后,再申请验收。
[报告规范]实习报告的开头应该给出题⽬、班级、姓名、学号、和完成⽇期,如果是多⼈完成的,必须写明所有同组⼈员的班级、姓名和学号,并标明谁是主要负责⼈,其它为参与者。
实验报告要求有以下五个内容:1.实验内容分析:明确实验题⽬⽬的,设计实验的基本数据结构、类、以及程序的基本流程,程序流程要求以程序流程图明确表⽰,类及类间关系需明确图⽰,并给出各函数之间的调⽤关系。
可以适当粘贴关键代码进⾏说明;2.实验验证分析:(1)输⼊的形式和输⼊值的范围;(2)输出的形式;(3)程序所能达到的功能;(4)测试数据:包括正确的输⼊及其输出结果和含有错误的输⼊及其输出结果。
3.调试分析(1)讨论分析调试过程中的主要技术问题以及具体的解决⽅法(⾄少3个);(2)技术难点分析(⾄少3个);(3)印象最深刻的3个调试错误,及修正⽅法;4.测试结果:(1)展⽰程序的运⾏结果,包括输⼊和输出,分析数据的正确性;(2)应⽤边界数据、或极端数据测试系统,分析结果的正确性。
5.附录:附上源代码,并标明源代码的所属⽂件,并且源代码必须有注释。
[提交内容]1.电⼦压缩包:包括实验报告电⼦稿和所有源代码⽂件(包括.h⽂件和.cpp⽂件)。
2.压缩⽂件名为:“学号+姓名”;如果是多⼈合作的,则压缩⽂件名为:“负责⼈学号+负责⼈姓名+参与者1学号+参与者1姓名+参与者2学号+参与者2姓名”。
《数据结构》课程实训任务书学期:2014~2015学年第三学期班级:131时间:1--4周机房:博学楼,70X实验室一、目的和要求1、进一步掌握常用算法的思想及实现;2、进一步理解和运用结构化程序设计的思想和方法;3、初步掌握开发一个小型实用系统的基本方法;4、掌握调试中小程序的基本方法;5、掌握流程图的表示方法;6、掌握书写程序设计开发文档的能力;7、锻炼和提高查找资料和自学能力;8、从“二、设计任务”中选择一个项目来完成,用C语言实现,系统的各个功能模块要求用函数的形式实现。
以小组为单位进行。
小组人数以3~4人为宜。
9、强调独立完成,强调实际成果;重视软件测试,重视文档写作。
10、课程实训结束后,每人要求提供以下电子文档:1)每组提交一份源程序文件2)每人提交一份实训报告。
实训报告的具体格式参考“三、课程设计报告格式”。
每组同学根据自己在小组中的任务不同,完成自己的模块的相关任务书。
3)每组一个演示文稿,答辩使用。
11、答辩以小组为单位,按照提交次序按组答辩。
二、设计任务课题一:宿舍管理查询系统1)任务:为宿舍管理员编写一个宿舍管理查询系统2) 程序要求A、采用交互工作方式(键盘、鼠标均可,控制台或者图形界面均可)B、建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入、快速排序任选一种)C、用二分查找实现以下操作:按姓名查询、按房号查询、按学号查询D、打印任一查询结果课题二:各种排序算法时间性能的比较1) 问题描述对各种排序方法(直接插入排序、希尔排序、起泡排序、快速排序、直接选择排序、堆排序和归并排序)的时间性能进行比较。
2) 基本要求(1) 设计并实现上述各种排序算法;(2) 产生正序和逆序的初始排列分别调用上述排序算法,并比较时间性能;(3) 产生随机的初始排列分别调用上述排序算法,并比较时间性能。
3) 设计思想上述各种排序方法都是基于比较的内排序,其时间主要消耗在排序过程中进行的记录的比较次数和移动次数,因此,统计在相同数据状态下不同排序算法的比较次数和移动次数,即可实现比较各种排序算法的目的。
数据结构与算法实践任务本文档旨在介绍数据结构与算法的实践任务。
数据结构与算法是计算机科学中的重要领域,它们为解决实际问题提供了有力的工具和方法。
在实践任务中,我们将探索不同类型的数据结构和相关的算法。
这些任务将帮助我们理解数据的组织方式,并学会如何有效地处理和操作数据。
任务一:数组操作在这个任务中,我们将实现一些基本的数组操作。
我们将研究如何创建数组、插入元素、删除元素和查找元素。
此外,我们还将研究数组的特性和性能。
任务二:链表操作链表是一种基本的数据结构,它以节点的形式存储数据。
在这个任务中,我们将实现链表的基本操作,包括插入节点、删除节点和查找节点。
我们还将研究链表的特性和性能。
任务三:栈和队列栈和队列是一种特殊的数据结构,它们在许多实际应用中起着重要的作用。
在这个任务中,我们将实现栈和队列的操作,并探讨它们的特性和应用场景。
任务四:树和图树和图是一种更复杂的数据结构,它们在许多领域中都有广泛的应用。
在这个任务中,我们将研究树和图的基本概念,并实现它们的操作,如插入节点、删除节点和遍历等。
任务五:排序和搜索算法排序和搜索算法是数据结构与算法中的重要内容。
在这个任务中,我们将实现一些常用的排序和搜索算法,如冒泡排序、快速排序、二分查找等。
我们还将比较它们的性能和应用场景。
总结通过完成上述实践任务,我们将更加深入地理解数据结构与算法的重要性和应用价值。
这将为我们在日后的编程和算法设计中奠定坚实的基础。
*以上内容为简要介绍,具体实践任务的细节和实现方法可以详细查阅相关资料和书籍进行学习和实践。
*。
《数据结构与算法》课程设计教学任务书一、课程设计的目的数据结构与算法课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。
数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。
学习数据结构与算法是为了将实际问题中涉及的对象在计算机中表示出来并对它们进行处理。
通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。
通过此次课程设计主要达到以下目的:了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
二、课程设计的基本要求1. 独立思考,独立完成:课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。
2. 做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
3. 按照课程设计的具体要求建立功能模块,要求按照如下几个内容认真完成:1)需求分析:在该部分中叙述,所选课题的功能要求。
2)概要设计:在此说明所选课题的功能模块,以及每个功能模块的算法设计(可以是描述算法的功能模块图),所选课题的的数据结构以及其存储结构设计说明等。
(如果指定存储结构请写出该存储结构的定义)3)详细设计:针对2)中的主要功能模块,画出流程图,给出主要功能模块的流程图、算法及必要的文字说明)4)编码实现:给出3)中主要功能模块的函数实现,重点是函数的声明,变量或参数的说明,以及程序的功能说明与注释,不必把所有代码都写上,主要写出其声明与注释等。
湖北汽车工业学院实验报告班号序号姓名课程名称数据结构与算法实验第 1 号实验完成日期年月日午实验一线性表操作一、实验目的1.掌握用 C语言调试程序的基本方法。
2. 掌握结构体类型的基本用法。
3.掌握线性表的基本运算,包括顺序表和链表的基本操作,如插入、删除等。
二、实验内容1.利用顺序表完成一个班级的一个学期的所有课程的管理:能够增加、删除、修改学生的成绩记录。
2.建立一个单链表,同时对该链表实现指定位置的插入、删除操作。
三、实验操作(在空白处填上合适的代码)(一)利用顺序表完成一个班级学生课程成绩的简单管理1、预定义以及顺序表结构类型的定义(1)#define ListSize //根据需要自己设定一个班级能够容纳的最大学生数(2)typedef struct Stu{int num; //学生的学号char name[10]; //学生的姓名float wuli; //物理成绩float shuxue; //数学成绩float yingyu; //英语成绩}STUDENT; //存放单个学生信息的结构体类型typedef struct List{stu[ListSize]; //存放学生的数组定义,静态分配空间int length; //记录班级实际学生个数}LIST; //存放班级学生信息的顺序表类型2、建立班级的学生信息void listcreate(LIST *Li,int m) //m为该班级的实际人数{int i;Li->length=0;for(i=0;i<m;i++) //输入m个学生的所有信息{printf("please input the %dth student's information:\n",i+1);printf("num=");scanf("%d", ); //输入第i个学生的学号printf("name=");scanf("%s", ); //输入第i个学生的姓名printf("wuli=");scanf("%f", ); //输入第i个学生的物理成绩printf("shuxue=");scanf("%f", ); //输入第i个学生的数学成绩printf("yingyu=");scanf("%f", ); //输入第i个学生的英语成绩Li->length++; //学生人数加1}}3、插入一个学生信息int listinsert(LIST *Li,int i) //将学生插入到班级Li的第i个位置。
《数据结构和算法》实验指导书郁松软件学院第一部分:《数据结构》实验步骤和实验报告规范一、《数据结构》实验步骤随着计算机性能的提高,它所面临的软件开发的复杂度也日趋增加,因此软件开发需要系统的方法。
一种常用的软件开发方法,是将软件开发过程分为分析、设计、实现和维护四个阶段。
虽然数据结构课程中的实习题的复杂度远不如实际中真正的软件系统,但为了培养一个软件工作者所应具备的科学工作的方法和作风,我们制订了如下所述完成实习的5个步骤:1、问题分析和任务定义通常,实验题目的陈述比较简洁,或者说有模棱两可的含义。
因此,在进行设计之前,首先应该充分地分析和理解问题,明确问题要求做什么,限制条件是什么。
注意:本步骤强调的是做什么,而不是怎么做。
对问题的描述应避开算法和所涉及的数据类型,而是对所需完成的任务作出明确的回答。
例如:输入数据的类型、值的范围以及输入的形式;输出数据的类型、值的范围及输出的形式;若是会话式的输入,则结束标志是什么,是否接受非法的输入,对非法输入的回答方式是什么等等。
这一步还应该为调试程序准备好测试数据,包括合法的输入数据和非法形式输入的数据。
2、数据类型和系统设计在设计这一步骤中需分逻辑设计和详细设计两步实现。
逻辑设计指的是,对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。
详细设计则为定义相应的存储结构并写出各过程和函数的伪码算法。
在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。
作为逻辑设计的结果,应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的规格说明),各个主要模块的算法,并画出模块之间的调用关系图。
详细设汁的结果是对数据结构和基本操作的规格说明作出进一步的求精,写出数据存储结构的类型定义,按照算法书写规范用类C语言写出过程或函数形式的算法框架。
附言:
1.本次实验所有文件(实验报告、源程序)放在以“学号姓名班级-数据结构实验-S2”
为名称的文件夹中,再打包成rar的压缩格式。
注意,学号放在名称前面,如“2011001
张三11计科2班-数据结构实验-S2线性表.rar”。
2.电子稿在二周内提交,没有及时完成的最多延迟一周,以附件形式发到我的邮箱:
bbwhs@。
3.实验无论是否成功请不要互相直接抄袭报告,实验时请亲自完成代码和调试,如实
验不成功,可以找出解决方案后下次再修改,务必理清和弄懂解决问题的方法以及如何用程序实现,报告允许同学们多次修定直到满意,可以附以各种说明和分析甚至运行不成功的图片。
每个实验以最好结果计分。