南京信息工程大学C语言实验7,实验七实验报告数据的填写要求(2学时)

这篇内容涉及两部分:一是数据结构实验,包括线性表、栈、队列、二叉树和图的操作及应用,通过C语言实现;二是电视画面构图,介绍了构图的基本方式、实验设备和构图训练的重要性,以及不同构图方法的实际操作。实验旨在提升学生的编程能力和电视画面审美创作能力。
摘要由CSDN通过智能技术生成

湖南师范大学职业技术学院(工学院)实验数据报告单

实验课程:数字电子技术基础实验题目:数字电路的综合运用

实验日期:2012年月日专业:1年级:班:姓名:学号:实验目的:实验内容:本实验用集成MSI(74LS163)来实现十进制加法计数器的功能(可采用反馈清零法或反馈置数),将七段译码电路和计数电路连接,在数码管上显示0~9得循环,将原理图张贴如下:

(说明:显示用数码管来实现,时钟用已提供的1秒信号来完成)

指导老师签名:

打印时间:4/13/2013 下午 01:38

实验二电视画面的取景与构图(2学时)

一、实验目的

1、了解电视画面构图的元素。

2、掌握电视画面构图的基本方式。

二、实验设备和仪器

专业数字摄像机、电池、三角架

三、实验内容及要求

1、实验内容

(1)基本构图法。

(2)静态构图法。

(3)动态构图法。

(4)不规则构图法。

2、实验要求:本次实验分组进行;每组成员4-6人。

四、实验原理及步骤

1、实验原理

构图是摄像人员拍摄电视画面的一个主要环节,是摄像师将现实形象转变为屏幕形象时采用的画面结构形式。摄像构图就是摄像师为表现某一特定的内容和视觉美感效果,将镜头前被摄对象以及摄像的各种造型元素有机地组织安排在画面中,以形成一定画面形式的创作活动。作为实验课,应该注意组织镜头元素和镜头的使用进行画面的拍摄。

2、步骤

(1)准备好摄像机、三脚架、SD卡、电池、白纸等。

(2)在三脚架上安装摄像机,开机,调节白平衡。

(3)静态构图拍摄。

(4)动态构图拍摄。

(5)不规则构图拍摄。

(6)回放拍摄画面(在电视或监视器上看)。

(7)关机,取出SD卡。

五、使用注意事项

1、构图训练是摄像的基本功,也是学习摄影之后对画面构图的新的认识。

2、在构图拍摄时,可以结合短片或模仿的办法进行实验。

3、在实验拍摄的时候,特别要掌握好如何使用摄像机镜头,如光圈、聚焦、变焦的运用。

4、如实验机时不够,学生可与实验室联系,利用开放机时完成实验。

六、实验结果分析及实验报告要求:

1、实验结果分析要求

(1)通过实验,得出镜头构图与动态构图的区别。

(2)构图的主要有哪些形式。

(3)记录在实验过程中,根据实验结果得出的其他结论与分析。

2.实验报告要求

请根据实验的结果和实验指导书的要求,如实地撰写实验报告。其中,“实验记录”填写实验的步骤和过程,“问题与讨论”根据个人实验情况如实记录所发现的问题。

数据结构实验报告填写要求

2013/2014学年第一学期

学号:以成绩记载簿上的学号为准。

指导老师:王正山

实验名称:实验一 线性表操作及应用实验二栈的操作及应用实验三队列的操作及应用;实验四二叉树的操作及应用;实验五图的操作及应用;实验六查找和排序算法实现。 课程名称:数据结构实验

实验时间:根据教学进度表中的时间确定,以真实时间为准。

实验地点:X401或X405(以真实地点为准)

实验目的:

实验一:(1) 掌握线性表的插入和删除操作在顺序存储结构上的实现;(2) 掌握线性表的建立、插入、删除、打印和查找操作在链式存储结构上的实现。

实验二:(1) 掌握栈的入栈和出栈操作在顺序存储结构上的实现;(2) 掌握栈的入栈和出栈操作在链式存储结构上的实现。

实验三:(1) 掌握队列的入队列和出队列操作在顺序存储结构上的实现;(2) 掌握队列的入队列和出队列操作在链式存储结构上的实现。

实验四:(1) 掌握二叉树的前序遍历、中序遍历、后序遍历和建立二叉树的算法在链式存储结构上实现;掌握利用遍历二叉树的递归思想实现建立二叉树、复制二叉树、交换二叉树和求二叉树中叶子结点数目等算法。

实验五:(1) 掌握建立无向图(有向图)的邻接矩阵和邻接表算法; (2) 掌握无向图的深度优先遍历和广度优先遍历算法;最小生成树算法和拓扑排序算法。

实验六:(1) 掌握建立二叉排序树和在二叉排序树上查找指定结点的算法在链式存储结构上的实现;

(2) 掌握快速排序在顺序存储结构上的实现。

实验分析与实验心得:根据自己实际情况填写(必填)。

问题和建议:根据自己实际情况填写(必填)。

实验环境:Windows XP,VC++ 6.0

南京信息工程大学实验(实习)报告

实验(实习)名称数据结构实验(实习)日期 2011-11-9得分指导教师周素萍

系 公共管理专业信息管理与信息系统年级班次 学号2010230700

3实验二数据结构第二次实验要求(链表)

【实验目的】

1、链表的基本操作及 C 语言实现

【实验要求】

1、用 C 语言建立自己的链表结构的程序库,实现链表的基本操作。

2、对链表表示的集合,集合数据由用户从键盘输入(数据类型为整型),建立相应的顺序 表,且使得数据按从小到大的顺序存放,将两个集合的并的结果存储在一个新的线性表集合 中,并输出。

3、撰写实验报告并附上集合操作的程序和结果。

【实验内容】

1、根据教材定义的链表结构,用 C 语言实现链表结构的创建、插入、删除、查找等操作;

2、利用上述链表操作实现如下程序:建立两个链表表示的集合(集合中无重复的元素),并求这样的两个集合的并。

【实验结果】

[实验数据、结果、遇到的问题及解决]

一、Status DeleteAndInsertSub(LinkList &la,LinkList &lb,int i,int j,int len) {

LinkList p,q,s,prev=NULL; int k=1; if(i<0||j<0||len<0) return INFEASIBLE; // 在la表中查找第i个结点 p=la; while(p&&knext; k++;

}

// 在la表中查找第i+len-1个结点 q=p; k=1; while(q&&knext; else prev->next=q->next; // 将从la中删除的结点插入到lb中 if(j=1){} else{} return OK; s=lb;} if(!s)return INFEASIBLE; q->next=s->next; s->next=p; //完成插入 k=1; q->next=lb; lb=p; q=p->next; k++; while(s&&knext; k++;

二、// 将合并逆置后的结果放在C表中,并删除B表

Status ListMergeOppose_L(LinkList &A,LinkList &B,LinkList &C) {

LinkList pa,pb,qa,qb,pt; pa=A; pb=B; qa=pa; qb=pb; // 保存pa的前驱指针 // 保存pb的前驱指针 pa=pa->next; pb=pb->next; A->next=NULL; C=A; while(pa&&pb){ if(pa->datadata){pt=pa; pa=pa->next;

qa->next=pa;

free(pt);

}

else

if(pa->data>pb->data){pt=pb;

pb=pb->next;qb->next=pb;free(pt);}

else{

qa=pa;

pa=pa->next;}

}

while(pa){

pt=pa;

pa=pa->next;

qa->next=pa;

free(pt);

}

while(pb){

pt=pb;

pb=pb->next;

qb->next=pb;

free(pt);

}

pb=B;

free(pb);

return OK;

}

1.实验题目:

编写一个程序alog-1.cpp,实现顺序栈(假设栈中的元素类型为char)的各种基本运算,并在此基础上设计一个程序exp3-1.cpp,完成如下功能:

(1) 初始化栈s; (2) 判断栈s是否非空;

(3) 依次进栈元素a,b,c,d,e; (4) 判断栈s是否非空; (5) 输出栈长度;

(6) 输出从栈顶到栈底元素; (7) 输出出栈序列; (8) 判断栈s是否非空; (9) 释放栈;

2.源代码:

#include #include #define MaxSize 100 typedef char ElemType; typedef struct { ElemType data[MaxSize]; int top;

//栈顶指针

} SqStack;

//定义顺序栈类型 void InitStack(SqStack *&s)//初始化栈 { s=(SqStack*)malloc(sizeof(SqStack));

s->top=-1; } void DestoryStack(SqStack *&s)//销毁栈 { free(s); } int StackLength(SqStack *&s)//求栈长度 {

int i=0;

SqStack *s1;

s1=(SqStack*)malloc(sizeof(SqStack));

s1->top=s->top;

while(s->top!=-1){

s->top--;

i++;

}

s->top=s1->top;

return i; } int StackEmpty(SqStack *s)//判断栈是否为空 {return(s->top==-1); } bool Push(SqStack *&s,ElemType e)//进栈

{if(s->top==MaxSize-1)

//栈满的情况,即栈上溢出 return false; s->top++;

//栈顶指针增1 s->data[s->top]=e;

//元素e放在栈顶指针处 return true; } int Pop(SqStack *&s,ElemType &e)//出栈 {if(s->top==-1) return false;

//栈为空的情况,即栈下溢出 e=s->data[s->top];

//取栈顶元素 s->top--; return true; } void DispStack(SqStack * &s)//打印栈

{ int i;

for(i=s->top;i>=0;i--)

printf("%c ",s->data[i]); printf("\n"); } void main() { ElemType e;

} SqStack *s; printf("(1)初始化栈s\n"); InitStack(s); printf("(2)栈为%s\n",(StackEmpty(s)?"空":"非空")); printf("(3)依次进栈元素a,b,c,d,e\n"); Push(s,'a'); Push(s,'b'); Push(s,'c'); Push(s,'d'); Push(s,'e'); printf("(4)栈为%s\n",(StackEmpty(s)?"空":"非空")); printf("(5)栈长度:%d\n",StackLength(s)); printf("(6)从栈顶到栈底元素:"); DispStack(s); printf("(7)出栈序列:"); while (!StackEmpty(s)) { Pop(s,e); printf("%c ",e); } printf("\n"); printf("(8)栈为%s\n",(StackEmpty(s)?"空":"非空")); printf("(9)释放栈\n"); DestoryStack(s); 3.程序运行结果:

4.心得体会及建议

这次实验虽然程序很长,但有了第一次的经验,而且初始化栈,销毁栈等算法课本上都有,所以借鉴了一下,在求栈长度,打印栈上花费的时间比较多,这两个算法课本上没有,编写了好多次才成功,期间跟同学也进行了很多讨论,很感谢同学帮我找出我编写的代码中的很多错误,同时也学会了几个调试程序找出错误的方法,比如设置断点,还有将不行运行的部分加注释符使其不被运行,感觉我的编程能力有了很大提高。一开始编一个程序感觉很难,但当自己把每一步都分析出来,再将它用代码表示出来后也不再感觉有多么多么难了,自己首先要进行分析,然后逐步化解。不过感觉自己指针这块儿还是很吃力,很多地方都是因为指针用错卡到那里,因此我还是要继续学习,多多实践,在看一些例子的时候多分析一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值