文档库 最新最全的文档下载
当前位置:文档库 › 《数据库技术》第三次实验参考代码

《数据库技术》第三次实验参考代码

《数据库技术》第三次实验参考代码
《数据库技术》第三次实验参考代码

数据结构课程实验指导书

数据结构实验指导书 一、实验目的 《数据结构》是计算机学科一门重要的专业基础课程,也是计算机学科的一门核心课程。本课程较为系统地论述了软件设计中常用的数据结构以及相应的存储结构与实现算法,并做了相应的性能分析和比较,课程内容丰富,理论系统。本课程的学习将为后续课程的学习以及软件设计水平的提高打下良好的基础。 由于以下原因,使得掌握这门课程具有较大的难度: 1)理论艰深,方法灵活,给学习带来困难; 2)内容丰富,涉及的知识较多,学习有一定的难度; 3)侧重于知识的实际应用,要求学生有较好的思维以及较强的分析和解决问题的能力,因而加大了学习的难度; 根据《数据结构》课程本身的特性,通过实验实践内容的训练,突出构造性思维训练的特征,目的是提高学生分析问题,组织数据及设计大型软件的能力。 课程上机实验的目的,不仅仅是验证教材和讲课的内容,检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面: (1)加深对课堂讲授内容的理解 实验是对学生的一种全面综合训练。是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,实验题中的问题比平时的习题复杂得多,也更接近实际。实验着眼于原理与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变" 活" ,起到深化理解和灵活掌握教学内容的目的。 不少学生在解答习题尤其是算法设计时,觉得无从下手。实验中的内容和教科书的内容是密切相关的,解决题目要求所需的各种技术大多可从教科书中找到,只不过其出

现的形式呈多样化,因此需要仔细体会,在反复实践的过程中才能掌握。 (2) 培养学生软件设计的综合能力 平时的练习较偏重于如何编写功能单一的" 小" 算法,而实验题是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。 通过实验使学生不仅能够深化理解教学内容,进一步提高灵活运用数据结构、算法和程序设计技术的能力,而且可以在需求分析、总体结构设计、算法设计、程序设计、上机操作及程序调试等基本技能方面受到综合训练。实验着眼于原理与应用的结合点,使学生学会如何把书本上和课堂上学到的知识用于解决实际问题,从而培养计算机软件工作所需要的动手能力。 (3) 熟悉程序开发环境,学习上机调试程序一个程序从编辑,编译,连接到运行,都要在一定的外部操作环境下才能进行。所谓" 环境" 就是所用的计算机系统硬件,软件条件,只有学会使用这些环境,才能进行 程序开发工作。通过上机实验,熟练地掌握程序的开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。 完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆语法错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,尽快掌握程序调试方法是非常重要的。分析问题,选择算法,编好程序,只能说完成一半工作,另一半工作就是调试程序,运行程序并得到正确结果。 二、实验要求 常用的软件开发方法,是将软件开发过程划分为分析、设计、实现和维护四个阶段。虽然数据结构课程中的实验题目的远不如从实际问题中的复杂程度度高,但为了培养一个软件工作者所应具备的科学工作的方法和作风,也应遵循以下五个步骤来完成实验题目: 1) 问题分析和任务定义 在进行设计之前,首先应该充分地分析和理解问题,明确问题要求做什么?限制条件是什么。本步骤强调的是做什么?而不是怎么做。对问题的描述应避开算法和所涉及的数据类型,而是对所需完成的任务作出明确的回答。例如:输入数据的类型、值的范围以及输入的

实验项目二(附答案)

《税法》实验项目二 班级: 姓名: 学号:

一、单项选择题 1.纳税人委托加工应税消费品,其纳税义务发生时间为()。 A.委托行为发生的当天 B.向加工企业支付加工费的当天 C.纳税人提货的当天 D.向加工企业发出主要原料的当天 2.甲外贸进出口公司本月进口200辆小轿车,每辆车关税完税价格为人民币42.9 万元,缴纳关税12万元。已知小轿车适用的消费税税率为8%。该批进口小轿车应缴纳的消费税为()万元。 A.746.09 B.878.40 C.954.78 D.686.40 3.甲公司为增值税一般纳税人,本年7月从国外进口一批高档化妆品,海关核定的关税完税价格为60万元。已知进口关税税率为26%,消费税税率为15%,增值税税率为13%。该公司进口环节应纳增值税为()万元。 A.7.8 B.9.83 C.11.56 D.8.97 4.甲公司为增值税一般纳税人,外购高档护肤类化妆品生产高档修饰类化妆品,本年7月份生产销售高档修饰类化妆品取得不含税销售收入200万元。该公司7月初无高档护肤类化妆品库存,7月购进高档护肤类化妆品200万元,7月底库存高档护肤类化妆品20万元。已知高档化妆品适用的消费税税率为15%。该公司本年7月应纳消费税为()。 A.200×15%-(200-20)×15%=3(万元) B.200×15%-20×15%=27(万元) C.200×15%=30(万元) D.200×15%-200×15%=0 5.我国消费税对不同应税消费品采用了不同的税率形式。下列应税消费品中,适用复合计税方法计征消费税的是()。 A.啤酒 B.白酒 C.烟丝 D.摩托车 6.下列各项中,应征收消费税的是()。 A.农用拖拉机 B.电动汽车 C.游艇 D.调味料酒 7.甲公司为增值税一般纳税人,外购香水精生产香水,本年7月生产销售香水取得不含税销售收入80万元。该公司7月初库存香水精7万元,7月购进香水精60万元,7月底库存香水精20万元。已知外购的香水精和自产的香水均为高档化妆

实验三 顺序图参考答案

顺序图、协作图设计实验三 【实验目的】 1.理解顺序图和协作图的概念及作用; 掌握顺序图与协作图的基本图形,了解它们各自的组2.成元素、特定作用和适用场合; 3.重点掌握顺序图的画法及其中元素所代表的意义。 【实验性质】 设计性实验。 【实验要求】 1.学习根据指定的用例描述绘制顺序图和协作图的方法;2.学习使用绘制顺序图和协作图; 掌握顺序图和协作图的相互转换方法。 3. 【实验内容】 以网上选课系统中的(选课)用例为例,设计和实现顺序图、协作图。、 【实验步骤】 1.假设学生已经成功登录系统,分析选课的事件流。 a)学生进入选课主界面 b)学生点击选课 c)系统显示所有课程信息 d)学生选择课程

e)系统验证课程是否可选 A1:课程不可选 f)系统提示课程选择成功,提示学生交费 g)用例结束。 A1:课程不可选 a)系统提示课程不可选以及原因 b)学生重新选课 c)重新验证直至成功 d)转选课事件流第f)步。 顺序图描述的是对象与对象的交互,创建顺序图的步骤如下:1)寻找对象。 2)寻找角色。 3)将消息加进图中。 首先,查找(选课)用例的对象,从事件流冲发现涉及一下对象: 1)界面。 2)课程 于业务层的操作,也应该有对象进行处理。对)3. 4)事件流中涉及的角色有:学生、数据库。 2.分析对象、角色之间交互的消息。 本用例主要有以下交互: 1)学生通过界面发送选课命令。

2)界面向控制对象请求课程信息。 3)控制对象向数据库发送查询数据消息 4)控制对象暂存数据库的查询结果 5)界面对象从控制对象中取得所有的课程信息 6)在界面上显示所有的课程信息 7)界面对象发送命令要求控制对象删除课程信息 8)学生选择课程 9)界面对象要求学生输入学号 10)界面对象向控制对象发送信息,查询该生是否可以选择选定的课程 11)控制对象从数据库查询关联信息。 12)控制对象判断是否可以选课 13)如果可以选课,则向数据库中添加关联信息。 14)向界面对象返回信息。 3.根据以上分析,绘制出用例的顺序图,并转换成对应的协作图。 参考顺序图如下:control : Form : course : db : Databasestu : StudentControlObjectFormObjectCourse 1: SelectCommand(2: GetAllCourse(3: QueryCourse(4: Create(String,int,String,String5: GetcourseInfo(6: DisplayCourseList(7: DeleteCourse(8: GetCourse(9: QueryAssociation(int,int10: QueryAssociation(int,int11: CanSelect()12: AddAssociation(int,int)13: ShowSucessInfo()14: GetStudentId() 按照上述例子的方法,试着绘制网上选课系统中其他用例.4如、、、的顺序图和协作图。 扩展练习:

数据结构实验答案1

重庆文理学院软件工程学院实验报告册 专业:_____软件工程__ _ 班级:_____软件工程2班__ _ 学号:_____201258014054 ___ 姓名:_____周贵宇___________ 课程名称:___ 数据结构 _ 指导教师:_____胡章平__________ 2013年 06 月 25 日

实验序号 1 实验名称实验一线性表基本操作实验地点S-C1303 实验日期2013年04月22日 实验内容1.编程实现在顺序存储的有序表中插入一个元素(数据类型为整型)。 2.编程实现把顺序表中从i个元素开始的k个元素删除(数据类型为整型)。 3.编程序实现将单链表的数据逆置,即将原表的数据(a1,a2….an)变成 (an,…..a2,a1)。(单链表的数据域数据类型为一结构体,包括学生的部分信息:学号,姓名,年龄) 实验过程及步骤1. #include #include #include #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define ElemType int #define MAXSIZE 100 /*此处的宏定义常量表示线性表可能达到的最大长度*/ typedef struct

{ ElemType elem[MAXSIZE]; /*线性表占用的数组空间*/ int last; /*记录线性表中最后一个元素在数组elem[ ]中的位置(下标值),空表置为-1*/ }SeqList; #include "common.h" #include "seqlist.h" void px(SeqList *A,int j); void main() { SeqList *l; int p,q,r; int i; l=(SeqList*)malloc(sizeof(SeqList)); printf("请输入线性表的长度:"); scanf("%d",&r); l->last = r-1; printf("请输入线性表的各元素值:\n"); for(i=0; i<=l->last; i++) { scanf("%d",&l->elem[i]); } px(l,i); printf("请输入要插入的值:\n");

数据结构实验报告代码

线性表 代码一 #include "stdio.h" #include "malloc.h" #define OK 1 #define ERROR 0 #define OVERFLOW -2 #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedef struct { int * elem; int length; int listsize; }SqList; int InitList_Sq(SqList *L) { L->elem = (int*)malloc(LIST_INIT_SIZE*sizeof(int)); if (!L->elem) return ERROR; L->length = 0; L->listsize = LIST_INIT_SIZE; return OK; } int ListInsert_Sq(SqList *L, int i,int e) { int *p,*newbase,*q; if (i < 1 || i > L->length+1) return ERROR; if (L->length >= L->listsize) { newbase = (int *)realloc(L->elem,(L->listsize+LISTINCREMENT)*sizeof (int)); if (!newbase) return ERROR; L->elem = newbase; L->listsize += LISTINCREMENT; } q = &(L->elem[i-1]); //插入后元素后移for(p=&(L->elem[L->length-1]);p>=q;p--) *(p+1)=*p; *q=e; L->length++; return OK; } int ListDelete_Sq(SqList *L, int i, int *e) {

计算机网络实验三参考答案

1. What is the IP address and TCP port number used by the client computer (source) that is transferring the file to https://www.wendangku.net/doc/7014474577.html,? To answer this questio n, it’s probably easiest to select an HTTP message and explore the details of the TCP packet used to carry this HTTP message, using the “details of the selected packet header window” (refer to Figure 2 in the “Getting Started with Wireshark” Lab if you’re uncertain about the Wireshark windows). Ans: IP address:192.168.1.102 TCP port:1161 2. What is the IP address of https://www.wendangku.net/doc/7014474577.html,? On what port number is it sending and receiving TCP segments for this connection? Ans: IP address:128.119.245.12 TCP port:80 If you have been able to create your own trace, answer the following question: 3. What is the IP address and TCP port number used by your client computer (source) to transfer the file to https://www.wendangku.net/doc/7014474577.html,? ANS: IP address :10.211.55.7 TCP port:49265 4. What is the sequence number of the TCP SYN segment that is used to initiate the TCP connection between the client computer and https://www.wendangku.net/doc/7014474577.html,? What is it in the segment that identifies the segment as a SYN segment? ANS: sequence number: 0 Syn Set = 1 identifies the segment as a SYN segment

《数据结构》实验报告

苏州科技学院 数据结构(C语言版) 实验报告 专业班级测绘1011 学号10201151 姓名XX 实习地点C1 机房 指导教师史守正

目录 封面 (1) 目录 (2) 实验一线性表 (3) 一、程序设计的基本思想,原理和算法描述 (3) 二、源程序及注释(打包上传) (3) 三、运行输出结果 (4) 四、调试和运行程序过程中产生的问题及采取的措施 (6) 五、对算法的程序的讨论、分析,改进设想,其它经验教训 (6) 实验二栈和队列 (7) 一、程序设计的基本思想,原理和算法描述 (8) 二、源程序及注释(打包上传) (8) 三、运行输出结果 (8) 四、调试和运行程序过程中产生的问题及采取的措施 (10) 五、对算法的程序的讨论、分析,改进设想,其它经验教训 (10) 实验三树和二叉树 (11) 一、程序设计的基本思想,原理和算法描述 (11) 二、源程序及注释(打包上传) (12) 三、运行输出结果 (12) 四、调试和运行程序过程中产生的问题及采取的措施 (12) 五、对算法的程序的讨论、分析,改进设想,其它经验教训 (12) 实验四图 (13) 一、程序设计的基本思想,原理和算法描述 (13) 二、源程序及注释(打包上传) (14) 三、运行输出结果 (14) 四、调试和运行程序过程中产生的问题及采取的措施 (15) 五、对算法的程序的讨论、分析,改进设想,其它经验教训 (16) 实验五查找 (17) 一、程序设计的基本思想,原理和算法描述 (17)

二、源程序及注释(打包上传) (18) 三、运行输出结果 (18) 四、调试和运行程序过程中产生的问题及采取的措施 (19) 五、对算法的程序的讨论、分析,改进设想,其它经验教训 (19) 实验六排序 (20) 一、程序设计的基本思想,原理和算法描述 (20) 二、源程序及注释(打包上传) (21) 三、运行输出结果 (21) 四、调试和运行程序过程中产生的问题及采取的措施 (24) 五、对算法的程序的讨论、分析,改进设想,其它经验教训 (24) 实验一线性表 一、程序设计的基本思想,原理和算法描述: 程序的主要分为自定义函数、主函数。自定义函数有 InitList_Sq、Out_List、ListInsert_Sq、ListDelete_Sq、LocateElem_Sq 、compare。主函数在运行中调用上述的自定义函数,每个自定义函数实现程序的每部分的小功能。 1.程序设计基本思想 用c语言编译程序,利用顺序存储方式实现下列功能:根据键盘输入数据建立一个线性表,并输出该线性表;然后根据屏幕菜单的选择,可以进行数据的插入、删除、查找,并在插入或删除数据后,再输出线性表;最后在屏幕菜单中选择结束按钮,即可结束程序的运行。 2.原理 线性表通过顺序表现,链式表示,一元多项式表示,其中链式表示又分为静态链表,双向链表,循环链表等,在不同的情况下各不相同,他可以是一个数字,也可以是一个符号,通过符号或数字来实现程序的运行。 3.算法描述

数据结构实验一的源代码

#include #include typedef struct Node { int key;//密码 int num;//编号 struct Node *next;//指向下一个节点 } Node, *Link; void InitList(Link &L) //创建一个空的链表{ L = (Node *)malloc(sizeof(Node)); if (!L) exit(1); L->key = 0; L->num = 0; L->next = L; } void Creatlinklist(int n, Link &L) //初始化链表{ Link p, q; q = L; for (int i = 1; i <= n; i++) { p = (Node *)malloc(sizeof(Node)); if (!p) exit(1); scanf("%d", &p->key); p->num = i; L->next = p; L = p; } L->next = q->next; free(q); } Link Locate_m(Link &p, int m)//找到第m个 { Link q; for (int j = 1; jnext; q = p->next; m = q->key;

return q; } void Delete_m(Link &L, Link p, Link q)//删除第m个{ p->next = q->next; free(q); } void main() { Link L, p, q; int n, m; L = NULL; InitList(L);//构造出一个只有头结点的空链表 printf("请输入初始密码人数每个人的密码:\n"); scanf("%d", &m);//初始密码为m scanf("%d", &n);// Creatlinklist(n, L);//构建 p = L; for (int i = 1; i <= n; i++) { q = Locate_m(p, m);//找到第m个 printf("%d", q->num); Delete_m(L, p, q);//删除第m个 } system("pause"); }

实验二答案

实验二数据描述(基本数据类型及运算符)答案 编程及调试实例2-1改正错误后的程序 #include void main( ) { int celsius, fahr; fahr = 100; celsius = 5 * (fahr - 32) / 9; printf("fahr = %d, celsius = %d\n", fahr, celsius); } 编程及调试练习2-1:源程序 (1) #include void main( ) { int celsius, fahr; fahr = 150; /*只改变fahr的值*/ celsius = 5 * (fahr - 32) / 9; /*celsius = 5 * (fahr - 32) / 9与上面的实例完全一样*/ printf("fahr =%d, celsius = %d\n", fahr, celsius); } 运行程序后,输出: fahr = 150, celsius = 65 (2) #include void main( ) { int celsius, fahr; fahr = 150; /*fahr的值仍为150*/ celsius = 5*fahr / 9 - 5*32 / 9; /* celsius的值的计算方法从数学上看与(1)的完全一样*/ printf("fahr =%d, celsius = %d\n", fahr, celsius); } 运行程序后,输出: fahr = 150, celsius = 66 (3) #include void main( ) { int celsius, fahr; fahr = 150; /* fahr的值仍为150*/

数据结构实验报告(2015级)及答案

数据结构实验报告(2015级)及答案

《数据结构》实验报告 专业__信息管理学院______ 年级__2015级___________ 学号___ _______ 学生姓名___ _ _______ 指导老师____________ 华中师范大学信息管理系编

I 实验要求 1.每次实验中有若干习题,每个学生至少应该完成其中的两道习题。 2.上机之前应作好充分的准备工作,预先编好程序,经过人工检查无误后,才能上机,以提高上机效率。 3.独立上机输入和调试自己所编的程序,切忌抄袭、拷贝他人程序。 4.上机结束后,应整理出实验报告。书写实验报告时,重点放在调试过程和小节部分,总结出本次实验中的得与失,以达到巩固课堂学习、提高动手能力的目的。 II 实验内容 实验一线性表 【实验目的】 1.熟悉VC环境,学习如何使用C语言实现线性表的两种存储结构。 2.通过编程、上机调试,进一步理解线性表的基本概念,熟练运用C语言实现线性表基本操作。 3.熟练掌握线性表的综合应用问题。 【实验内容】 1.一个线性表有n个元素(n

的顺序不变。设计程序实现。要求:采用顺序存储表示实现;采用链式存储表示方法实现;比较两种方法的优劣。 2. 从单链表中删除指定的元素x,若x在单链表中不存在,给出提示信息。 要求: ①指定的值x由键盘输入; ②程序能处理空链表的情况。 3.设有头结点的单链表,编程对表中的任意值只保留一个结点,删除其余值相同的结点。 要求: ①该算法用函数(非主函数)实现; ②在主函数中调用创建链表的函数创建一个单链表, 并调用该函数,验证算法的正确性。 LinkedList Exchange(LinkedList HEAD,p)∥HEAD是单链表头结点的指针,p是链表中的一个结点。本算法将p所指结点与其后 继结点交换。 {q=head->next;∥q是工作指针,指向链表中当前待处理结点。 pre=head;∥pre是前驱结点指针,指向q的前驱。 while(q!=null && q!=p){pre=q;q=q->next;} ∥

数据结构实验程序

顺序表的基本操作 #include using namespace std; typedef int datatype; #define maxsize 1024 #define NULL -1 typedef struct { datatype *data; int last; }sequenlist; void SETNULL(sequenlist &L) { L.data=new datatype[maxsize]; for(int i=0;i>https://www.wendangku.net/doc/7014474577.html,st; cout<<"请输入"<>L.data[i]; } int LENGTH(sequenlist &L) { int i=0; while(L.data[i]!=NULL) i++; return i; } datatype GET(sequenlist &L,int i) { if(i<1||i>https://www.wendangku.net/doc/7014474577.html,st) { cout<<"error1"<

int j=0; while(L.data[j]!=x) j++; if(j==https://www.wendangku.net/doc/7014474577.html,st) { cout<<"所查找值不存在!"<=maxsize-1) { cout<<"overflow"; return NULL; } else if(i<1||(i>https://www.wendangku.net/doc/7014474577.html,st)) { cout<<"error2"<=i-1;j--) L.data[j+1]=L.data[j]; L.data[i-1]=x; https://www.wendangku.net/doc/7014474577.html,st++; } return 1; } int DELETE(sequenlist &L,int i) { int j; if((i<1)||(i>https://www.wendangku.net/doc/7014474577.html,st+1)) { cout<<"error3"<

实验03参考答案

实验三数据类型 班级:学号:姓名:评分: 一.【实验目的】 1、熟练掌握关系表达式和逻辑表达式的使用。 2、熟练数据类型及其运算。 3、掌握使用断点调试程序的方法。 二.【实验内容和步骤】 1、程序调试题 A.改正程序中的错误,使其实现程序的功能:输入一个小于80个字符的字符串,输出其长度。 ①调试正确的源程序清单 #include #include int main(void) { int i,j; char s[80]; for(i=1;i<10;i++){ printf("输入一个小于80个字符的字符串:"); scanf("%s",s); printf("字符串s的长度是:%d", strlen(s)); } return 0; } ②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。 B.改正程序中的错误,使其实现程序的功能:输入一个小于80个字符的字符串,输出其长度(注:程序文件保存在“调试示例”文件夹中,文件名为error03_2.cpp)。 ①调试正确的源程序清单 #include #include int main(void) { int i,j; char s[80]; for(i=1;i<10;i++){ printf("输入一个小于80个字符的字符串:"); scanf("%s",s);

printf("字符串s的长度是:%d\n", strlen(s)); } return 0; } ②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。 2、完善程序,并调试运行程序 题目(1)输出字符串“NET\t012\3\\”的长度。 ①调试正确的源程序清单 #include #include int main( ) { //请在两条星线之间填入相应的代码 /*******************************************************************************/ printf("字符串的长度是:%d\n", strlen("NET\t012\3\\")); /*******************************************************************************/ return 0; } ②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。 题目(2)输出表达式(x=j>0,i++,n=(i=2,++i))的值。 ①调试正确的源程序清单 #include #include int main( ) { //请在两条星线之间填入相应的代码 /*******************************************************************************/ printf("表达式的值是:%d\n", (x=j>0,i++,n=(i=2,++i))); /*******************************************************************************/

数据结构实验报告-答案

数据结构(C语言版) 实验报告

专业班级学号姓名 实验1 实验题目:单链表的插入和删除 实验目的: 了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。 实验要求: 建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。 实验主要步骤: 1、分析、理解给出的示例程序。 2、调试程序,并设计输入数据(如:bat,cat,eat,fat,hat,jat,lat,mat,#),测 试程序的如下功能:不允许重复字符串的插入;根据输入的字符串,找到相应的结点并删除。 3、修改程序: (1)增加插入结点的功能。 (2)将建立链表的方法改为头插入法。 程序代码: #include"" #include"" #include"" #include"" typedef struct node . . 示意图:

head head head 心得体会: 本次实验使我们对链表的实质了解更加明确了,对链表的一些基本操作也更加熟练了。另外实验指导书上给出的代码是有一些问题的,这使我们认识到实验过程中不能想当然的直接编译执行,应当在阅读并完全理解代码的基础上再执行,这才是实验的意义所在。

实验2 实验题目:二叉树操作设计和实现 实验目的: 掌握二叉树的定义、性质及存储方式,各种遍历算法。 实验要求: 采用二叉树链表作为存储结构,完成二叉树的建立,先序、中序和后序以及按层次遍历 的操作,求所有叶子及结点总数的操作。 实验主要步骤: 1、分析、理解程序。 2、调试程序,设计一棵二叉树,输入完全二叉树的先序序列,用#代表虚结点(空指针), 如ABD###CE##F##,建立二叉树,求出先序、中序和后序以及按层次遍历序列,求 所有叶子及结点总数。 实验代码 #include"" #include"" #include"" #define Max 20 ertex=a; irstedge=NULL; irstedge; G->adjlist[i].firstedge=s; irstedge; R[i] 留在原位

数据结构实验报告全集

数据结构实验报告全集 实验一线性表基本操作和简单程序 1.实验目的 (1)掌握使用Visual C++ 上机调试程序的基本方法; (2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在顺序存储结构和链表存储结构上的程序设计方法。 2.实验要求 (1)认真阅读和掌握和本实验相关的教材内容。 (2)认真阅读和掌握本章相关内容的程序。 (3)上机运行程序。 (4)保存和打印出程序的运行结果,并结合程序进行分析。 (5)按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果 实验代码: 1)头文件模块 #include >验目的 掌握顺序栈的基本操作:初始化栈、判栈空否、入栈、出栈、取栈顶数据元素等运算以及程序实现方法。 2.实验要求 (1)认真阅读和掌握和本实验相关的教材内容。 (2)分析问题的要求,编写和调试完成程序。 (3)保存和打印出程序的运行结果,并分析程序的运行结果。 3.实验内容 利用栈的基本操作实现一个判断算术表达式中包含圆括号、方括号是否正确配对的程序。具体完成如下:

(1)定义栈的顺序存取结构。 (2)分别定义顺序栈的基本操作(初始化栈、判栈空否、入栈、出栈等)。 (3)定义一个函数用来判断算术表达式中包含圆括号、方括号是否正确配对。其中,括号配对共有四种情况:左右括号配对次序不正确;右括号多于左括号;左括号多于右括号;左右括号匹配正确。 (4)设计一个测试主函数进行测试。 (5)对程序的运行结果进行分析。 实验代码: #include < > #define MaxSize 100 typedef struct { ??? int data[MaxSize]; ??? int top; }SqStack; void InitStack(SqStack *st) 验目的 (1)进一步掌握指针变量的用途和程序设计方法。 (2)掌握二叉树的结构特征,以及链式存储结构的特点及程序设计方法。 (3)掌握构造二叉树的基本方法。 (4)掌握二叉树遍历算法的设计方法。 3.实验要求 (1)认真阅读和掌握和本实验相关的教材内容。 (2)掌握一个实际二叉树的创建方法。 (3)掌握二叉链存储结构下二叉树操作的设计方法和遍历操作设计方法。 4.实验内容 (1)定义二叉链存储结构。

实验07-2参考答案

实验七-2 字符串和数组程序设计 班级:学号:姓名:评分: 一.【实验目的】 1、熟练掌握字符串的存取和操作方法方法。 2、进一步掌握C程序的调试方法和技巧。 二.【实验内容和步骤】 1、程序调试题 A.目标:进一步学习掌握程序调试的方法和技巧。 B.内容:从键盘输入一个以回车键结束的字符串(少于80个字符),将它的内容逆向输出。例如:输入“ABCD”,输出“DCBA”。改正程序中的错误,使其实现程序的功能。(注:程序文件保存在“调试示例”文件夹中,文件名为error08_1.cpp) ①调试正确的源程序清单 #include int main( ) { int i, k, temp; char str[80]; printf("input a string: "); i = 0; while((str[i] = getchar( )) != '\n') i++; str[i] = '\0'; k = i - 1; for(i = 0; i < k; i++){ /* 调试时设置断点 */ temp = str[i]; str[i] = str[k]; str[k] = temp; k--; } /* 调试时设置断点 */ for(i = 0; str[i] != '\0'; i++) putchar(str[i]); putchar('\n'); return 0; } ②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。 2、完善程序,并调试运行程序 题目(1)求字符串长度。程序功能:连续输入一批以#结束的字符串(字符串的长度不超过80),遇## 则全部输入结束。统计并输出每个字符串的有效长度。例如:输入:hello 12#abc+0##,表示连续输入2个字符串"hello 12"和"abc+0"。输出:8 5。(注:程序文件保存在“第1题”文件夹中)打开proj1.cpp文件,在两条星线

数据结构实验报告-答案.doc

数据结构实验报告-答案 数据结构(C语言版)实验报告专业班级学号姓名实验1实验题目:单链表的插入和删除实验目的:了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。 实验要求:建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。 实验主要步骤:1、分析、理解给出的示例程序。 2、调试程序,并设计输入数据(如:bat,cat,eat,fat,hat,jat,lat,mat,#),测试程序的如下功能:不允许重复字符串的插入;根据输入的字符串,找到相应的结点并删除。 3、修改程序:(1)增加插入结点的功能。 (2)将建立链表的方法改为头插入法。 程序代码:#include“stdio.h“#include“string.h“#include“stdlib.h“#include“ctype. h“typedefstructnode//定义结点{chardata[10];//结点的数据域为字符串structnode*next;//结点的指针域}ListNode;typedefListNode*LinkList;//自定义LinkList单链表类型LinkListCreatListR1();//函数,用尾插入法建立带头结点的单链表LinkListCreatList(void);//函数,用头插入法建立带头结点的单链表ListNode*LocateNode();//函数,按值查找结点voidDeleteList();//函数,删除指定值的结点voidprintlist();//函数,打印链表中的所有值voidDeleteAll();//函数,删除所有结点,释放内存

数据结构上机实验线性表单链表源代码

#include template class LinearList { public: virtual bool IsEmpty()const=0; virtual int Length()const=0; virtual bool Find(int i,T& x)const=0; virtual int Search(T x)const=0; virtual bool Insert(int i,T x)=0; virtual bool Update(int i,T x)=0; virtual bool Delete(int i)=0; virtual void Output(ostream& out)const=0; protected: int n; }; #include "linearlist" template class SeqList:public LinearLisr { public: SeqList(int mSize); ~SeqList(){delete [] elements;} bool IsEmpty()const; bool Find(int i,T& x)const; int Length()const; int Search(T x)const; bool Insert(int i,T x); bool Update(int i,T x); bool Delete(int i); void Output(ostream& out)const; private: int maxLength; T *elements; }; template SeqList::SeqList(int mSize) { maxLength=mSize;

实验2 交互式SQL_参考答案

实验2 交互式SQL (参考答案,仅供参考,答案不唯一) 1.使用SQL语言创建下面的三个表 create table Student( Sno varchar(7) primary key, Sname varchar(10) not null, Ssex varchar(2), Sage int, Sdept varchar(20) ) create table Course( Cno varchar(10) primary key, Cname varchar(20) not null, Ccredit int, Semster int, Period int ) create table SC( Sno varchar(7), Cno varchar(10), Grade int , XKLB varchar(4), primary key(Sno,Cno), foreign key(Sno) references Student(Sno), foreign key(Cno) references Course(Cno) ) 2.在以上的三个表中,使用SQL语句插入下面的数据 insert into Student values('9512101','李勇','男','19','计算机系'); insert into Student values('9512102','刘晨','男','20','计算机系'); insert into Student values('9512103','王敏','女','20','计算机系'); insert into Student values('9521101','张立','男','22','信息系'); insert into Student values('9521102','吴宾','女','21','信息系'); insert into Student values('9521103','张海','男','20','信息系'); insert into Student values('9531101','钱小平','女','18','数学系'); insert into Student values('9531102','王大力','男','19','数学系'); insert into Course values('C01','计算机文化基础',3,1,null);

相关文档