《软件技术基础》实验指导

《软件技术基础》实验指导
《软件技术基础》实验指导

说明

每个实验题目含有一个main函数和一些函数,与实验题目相关的基本运算的函数定义和main函数定义的代码在附录以及对应的文件夹中给出,供上机实验参考使用。对于每个题目,只需要根据题目要求设计算法,补充函数定义,然后对程序进行编译、调试。

实验一线性表

一、实验目的

1.熟悉线性表的顺序和链式存储结构

2.掌握线性表的基本运算

3.能够利用线性表的基本运算完成线性表应用的运算

二、实验内容

1.设有一个线性表E={e1, e2, … , e n-1, e n},设计一个算法,将线性表逆置,即使元素排列次序颠倒过来,成为逆线性表E’={ e n , e n-1 , … , e2 , e1 },要求逆线性表占用原线性表空间,并且用顺序表和单链表两种方法表示,分别用两个程序来完成。(文件夹:顺序表逆置、单链表逆置)

2.已知由不具有头结点的单链表表示的线性表中,含有三类字符的数据元素(字母、数字和其他字符),试编写算法构造三个以循环链表表示的线性表,使每个表中只含有同一类的字符,且利用原表中的结点空间,头结点可另辟空间。(文件夹:分解单链表)

实验二栈和队列

一、实验目的

1.熟悉栈和队列的顺序和链式存储结构

2.掌握栈和队列的基本运算

3.能够利用栈和队列的基本运算完成栈和队列应用的运算

二、实验内容

1.设单链表中存放有n个字符,试编写算法,判断该字符串是否有中心对称的关系,例如xyzzyx是中心对称的字符串。(提示:将单链表中的一半字符先依次进栈,然后依次出栈与单链表中的另一半字符进行比较。)(文件夹:判字符串中心对称)

2.假设以数组sequ[m]存放循环队列的元素,同时设变量rear和quelen 分别指示循环队列中队尾元素的位置和内含元素的个数。编写实现该循环队列的入队和出队操作的算法。提示:队空的条件:sq->quelen==0;队满的条件:sq->quelen==m。(文件夹:循环队列)

实验三串

一、实验目的

1.熟悉串的顺序存储结构

2.掌握串的基本运算及应用

二、实验内容

1.串采用顺序存储结构,编写朴素模式匹配算法,查找在串中是否存在给定的子串。(文件夹:模式匹配)2.若S是一个采用顺序结构存储的串,利用C的库函数strlen和strcpy(或strncpy)编写一算法void SteDelete(char*S,int I,int m),要求从S中删除从第i个字符开始的连续m个字符。若i≥strlen(S),则没有字符被删除;若i+m≥strlen(S),则将S中从位置i开始直至末尾的字符均删除。(文件夹:删除子串)

实验四数组

一、实验目的

1.熟悉数组的结构

2.掌握矩阵的压缩存储

3.能够对数组和矩阵的压缩存储进行运算

二、实验内容

中存在一个元素A[i][j],其满足A[i][j]是第i行元素中最小值,且又是第j列元素1.若在矩阵A m

×n

,设计算法求出矩阵中所中最大值,则称此元素为该矩阵的一个马鞍点。用二维数组存储矩阵A m

×n

有马鞍点。(文件夹:找马鞍点)

2.A和B是两个n×n阶的对称矩阵,以行为主序输入对称矩阵的下三角元素,压缩存储存入一维数组

A和B,编写一个算法计算对称矩阵A和B的乘积,结果存入二维数组C。(文件夹:对称矩阵相乘)实验五树

一、实验目的

1.熟悉二叉树的链式存储结构

2.掌握二叉树的建立、深度优先递归遍历等算法

3.能够利用遍历算法实现一些应用

二、实验内容

1.已知二叉树采用二叉链表存储结构,编写一个算法交换二叉树所有左、右子树的位置,即结点的左子树变为结点的右子树,右子树变为左子树。(文件夹:交换左右子树)

2.采用二叉链表结构存储一棵二叉树,编写一个算法统计该二叉树中结点总数及叶子结点总数。(文件夹:统计二叉树结点)

实验六图

一、实验目的

1.熟悉图的邻接矩阵和邻接表的存储结构

2.熟悉图的邻接矩阵和邻接表的建立算法

3.掌握图的遍历算法

二、实验内容

1.无向图采用邻接矩阵存储,编写深度优先搜索遍历算法,从不同的顶点出发对无向图进行遍历。(文件夹:无向图邻接矩阵)

实验七排序

一、实验目的

1.熟悉各种内部排序算法

2.能够编写程序显示排序过程中各趟排序的结果

3.能够编写一些排序的算法

二、实验内容

1.采用希尔排序方法对顺序表中的证型数据进行排序,设计希尔排序算法并显示每趟排序的结果。(文件夹:希尔排序)

2.编写一个双向起泡的排序算法,即在排序过程中交替改变扫描方向,同时显示各趟排序的结果。(文件夹:双向起泡排序)

实验八查找

一、实验目的

1.熟悉线性表、二叉排序树和散列表的查找

2.能够编写一些查找的算法

二、实验内容

1.18个记录的关键字为22、12、13、8、9、20、33、42、44、38、24、48、60、58、74、49、86、53,编写分块查找的算法进行查找。(文件夹:分块查找)

2.编写一个判别给定的二叉树是否为二叉排序树的算法,设二叉树以二叉链表存储表示,结点的数据域只存放正整数。(文件夹:判断二叉排序树)

附录:原代码

实验一:第1题(1)

//顺序表逆置的程序代码

#include

#include

//顺序表结构类型定义

typedef char datatype;

const int maxsize=1024;

typedef struct

{ datatype data[maxsize];

int last;

}sequenlist;

void create(sequenlist*&);

void print(sequenlist*);

void invert(sequenlist*);

void main()

{

sequenlist*L;

create(L);//建立顺序表

print(L);//输出顺序表

invert(L);//调用顺序表逆值的函数

print(L);//输出顺序表

}

//建立顺序表

void create(sequenlist*&L)

{

L=(sequenlist*)malloc(sizeof(sequenlist));

L->last=0;

char ch;

while((ch=getchar())!='*')

{

L->last++;

L->data[L->last]=ch;

}

} //输出顺序表

void print(sequenlist*L)

{

for(int i=1;i<=L->last;i++)

printf("%2c",L->data[i]);

printf("\n");

}

//顺序表逆置

实验一:第1题(2)

//单链表逆置的程序代码

#include

#include

//单链表结构类型定义

typedef char datatype;

typedef struct node

{

datatype data;

struct node *next;

}linklist;

void create(linklist*&);

void print(linklist *);

void invert(linklist*);

void main()

{

linklist*head;

create(head);

print(head);

invert(head);//调用单链表逆置的函数

print(head);

}

//采用尾插法建立具有头结点的单链表void create(linklist*&head)

{

char ch;

linklist *s,*r;

head=(linklist*)malloc(sizeof(linklist));

r=head;

while((ch=getchar())!='*')

{

s=(linklist*)malloc(sizeof(linklist));

s->data=ch;

r->next=s;

r=s;

}

r->next=NULL;

}

//输出单链表

void print(linklist *head)

{

linklist*p=head->next;

while(p!=NULL)

{

printf("%2c",p->data);

p=p->next;

}

printf("\n");

}

//单链表逆置

实验一:第2题

//分解单链表的程序代码

#include

#include

//链表结构类型定义

typedef char datatype;

typedef struct node

{ datatype data;

struct node *next;

}linklist;

void create(linklist*&);

void resolve(linklist*,linklist*,linklist*,linklist*); void insert(linklist*,linklist*);

void print1(linklist*);

void print2(linklist*);

void main()

{ linklist *head,*letter,*digit,*other;

create(head);

print1(head);

letter=(linklist*)malloc(sizeof(linklist));//建立3个空循环链表

letter->next=letter;

digit=(linklist*)malloc(sizeof(linklist));

digit->next=digit;

other=(linklist*)malloc(sizeof(linklist));

other->next=other;

resolve(head,letter,digit,other);//调用分解单链表的函数

print2(letter);//输出循环链表

print2(digit);

print2(other);

}

//建立单链表

void create(linklist*&head)

{ datatype x;

linklist *s,*r;

head=new linklist;

r=head;

while((x=getchar())!='$')

{

s=(linklist*)malloc(sizeof(linklist));

s->data=x;

r->next=s;

r=s;

}

r->next=NULL;

}

//在循环链表中插入

void insert(linklist*h,linklist*p)

{ linklist *q=h;

while(q->next!=h) q=q->next;

q->next=p;

p->next=h;

}

//输出单链表

void print1(linklist*head)

{ linklist *p=head->next;

while(p!=NULL)

{ printf("%c",p->data);

p=p->next;

}

printf("\n");

}

//输出循环链表

void print2(linklist*head)

{ linklist *p=head->next;

while(p!=head)

{

printf("%c",p->data);

p=p->next;

}

printf("\n");

}

//按字母、数字、其它字符分解单链表

实验二:第1题

//判字符串中心对称的程序代码

#include

#include

#include

//定义单链表结构类型

typedef char datatype;

typedef struct node

{ datatype data;

struct node *next;

}linklist;

//定义顺序栈结构类型

const int maxsize=40;

typedef struct

{ datatype elements[maxsize];

int top;

}stack;

void setnull(stack *&);

int length(linklist*);

void printlink(linklist*);

void create(linklist *&,datatype*);

void push(stack*,datatype);

datatype pop(stack*);

int symmetry(linklist*,stack*);//判字符串是否中心对称的函数声明

void main()

{

linklist *head;stack *s;

datatype str[80];

gets(str);

create(head,str);

printlink(head);

setnull(s);

if(symmetry(head,s)) printf("字符串\"%s\"中心对称\n",str);

else printf("字符串\"%s\"不是中心对称\n",str); }

//栈初始化

void setnull(stack *&s)

{

s=(stack*)malloc(sizeof(stack));

s->top=-1;

}

//求单链表长度

int length(linklist*head)

{ linklist *p=head->next;

int n=0;

while(p!=NULL){ n++; p=p->next; }

return n;

}

//输出单链表

void printlink(linklist*head)

{ linklist *p=head->next;

while(p!=NULL)

{ printf("%c",p->data);

p=p->next;

}

printf("\n");

}

//建立具有头结点的单链表

void create(linklist *&head,datatype*str) { datatype *p=str;

linklist *s,*r;

head=(linklist*)malloc(sizeof(linklist));

r=head;

while(*p!='\0')

{

s=(linklist*)malloc(sizeof(linklist));

s->data=*p;

r->next=s;

r=s;

p++;

}

r->next=NULL;

}

//顺序栈入栈

void push(stack*s,datatype e)

{

s->top++;

s->elements[s->top]=e;

}

//顺序栈出栈

datatype pop(stack*s)

{

datatype temp;

s->top--;

temp=s->elements[s->top+1];

return temp;

}

//判字符串是否中心对称

实验二:第2题

//循环队列入队出队的程序代码

#include

#include

#include

//循环队列的结构类型定义

const int m=5;

typedef int datatype;

typedef struct

{ datatype sequ[m];

int rear, quelen;

}qu;

void setnull(qu*);

void enqueue(qu*, datatype);

datatype *dequeue(qu*);

void main()

{ qu *sq;

datatype x, *p;

int key;

sq=(qu*)malloc(sizeof(qu));

setnull(sq);

do

{ printf("1.Enter Queue 2.Delete Queue -1.Quit:");

scanf("%d",&key);

switch(key)

{ case 1: printf("Enter the Data:"); scanf("%d",&x);

enqueue(sq,x); break;

case 2: p=dequeue(sq);

if(p!=NULL)

printf("%d\n",*p);

break;

case -1: exit(0);

}

}while(1);

}

//置空队

void setnull(qu *sq)

{ sq->rear=m-1;

sq->quelen=0;

}

//入队

//出队

实验三:第1题

//模式匹配的程序代码

#include

#include

#include

//顺序串的结构类型定义

#define maxsize 100

typedef struct

{

char str[maxsize];

int len;

}seqstring;

int Index(seqstring*, seqstring*);

void main()

{

seqstring*S,*subS;

S=(seqstring*)malloc(sizeof(seqstring));

subS=(seqstring*)malloc(sizeof(seqstring));

printf("输入串:"); gets(S->str);

S->len=strlen(S->str);

printf("输入子串:"); gets(subS->str);

subS->len=strlen(subS->str);

if(Index(S,subS)>0) printf("匹配成功!\n");

else printf("匹配失败!\n");

}

//顺序串的朴素模式匹配

实验三:第2题

//删除子串的程序代码

#include

#include

#include

//顺序串的结构类型定义

#define maxsize 100

typedef struct

{

char str[maxsize];

int len;

}seqstring;

void strPut(seqstring*);

void strDelete(seqstring*,int,int);

void main()

{

seqstring*S;

int i,m;

S=(seqstring*)malloc(sizeof(seqstring));

printf("输入串:"); gets(S->str);

S->len=strlen(S->str);

strPut(S);

printf("删除的开始位置:");scanf("%d",&i);

printf("删除的字符个数:");scanf("%d",&m);

strDelete(S,i,m);

strPut(S);

}

//输出串

void strPut(seqstring*S)

{

int i;

for(i=0;ilen;i++)

printf("%c",S->str[i]);

printf("\n");

}

//删除子串

实验四:第1题

//找马鞍点程序代码

#include

#include

//数组的结构类型定义

const int m=3;

const int n=3;

typedef struct{

int A[m+1][n+1];

int max[m+1],min[n+1];

}array;

void minmax(array*);

void main()

{

array*pa=(array*)malloc(sizeof(array));

int i, j;

for (i=1;i<=m;i++)

for (j=1;j<=n;j++)

scanf("%d",&pa->A[i][j]);

minmax(pa);

}

//找马鞍点

实验四:第2题

//对称矩阵相乘的程序代码

#include

#include

//数组结构类型的定义.h

const int n=3;

const int size=n*(n+1)/2;

typedef int datatype;

typedef struct{

datatype A[size],B[size],C[n][n];

}array;

void input(datatype[]);

void output(datatype[][n]);

void mult(array*);

void main()

{

array*pa;

pa=(array*)malloc(sizeof(array));

printf("以行为主序输入矩阵A的下三角:\n");

input(pa->A);//以行为主序输入矩阵A的下三角

printf("以行为主序输入矩阵B的下三角:\n");

input(pa->B);//以行为主序输入矩阵B的下三角

mult(pa);

output(pa->C);//输出矩阵C

}

//对称矩阵的输入

void input(datatype x[])

{

for(int i=0;i

scanf("%d",&x[i]);

}

//矩阵的输出

void output(datatype x[][n])

{

for(int i=0;i

for(int j=0;j

printf("%5d",x[i][j]);

printf("\n");

}

}

//对称矩阵相乘

实验五:第1题

//交换左右子树的程序代码

#include

#include

//二叉链表的结构类型定义

const int maxsize=1024;

typedef char datatype;

typedef struct node

{

datatype data;

struct node *lchild,*rchild;

}bitree;

bitree*creattree();

void preorder(bitree*);

bitree*swap(bitree*);

void main()

{

bitree*pb;

pb=creattree();

preorder(pb);

printf("\n");

swap(pb);

preorder(pb);

printf("\n");

}

//二叉树的建立

bitree*creattree()

{

char ch;

bitree*Q[maxsize];

int front,rear;

bitree*root,*s;

root=NULL;

front=1;rear=0;

printf("按层次输入二叉树,虚结点输入'@',以'#'结束输入:\n");

while((ch=getchar())!='#')

{

s=NULL;

if(ch!='@')

{

s=(bitree*)malloc(sizeof(bitree));

s->data=ch;

s->lchild=NULL;

s->rchild=NULL;

}

rear++;

Q[rear]=s;

if(rear==1)root=s;

else

{

if(s&&Q[front])

if(rear%2==0)Q[front]->lchild=s;

else Q[front]->rchild=s;

if(rear%2==1)front++;

}

}

return root;

}

//先序遍历按层次输出二叉树

void preorder(bitree*p)

{

if(p!=NULL)

{

printf("%c",p->data);

if(p->lchild!=NULL||p->rchild!=NULL)

{

printf("(");

preorder(p->lchild);

if(p->rchild!=NULL)printf(",");

preorder(p->rchild);

printf(")");

}

}

}

//交换左右子树实验五:第2题

//统计结点总数及叶子结点总数的程序代码

#include

#include

//二叉链表的结构类型定义

const int maxsize=1024;

typedef char datatype;

typedef struct node

{

datatype data;

struct node *lchild,*rchild;

}bitree;

bitree*creattree();

void preorder(bitree*);

int countnode(bitree*);

int countleaf(bitree*);

void main()

{

bitree*root;

int leafnum,nodenum;

root=creattree();

printf("删除子树之前的二叉树:");

preorder(root);

printf("\n");

nodenum=countnode(root);

printf("结点总数是:%d\n",nodenum);

leafnum=countleaf(root);

printf("叶子结点总数是:%d\n",leafnum);

}

//建立二叉树

bitree*creattree()

{

datatype ch;

bitree*Q[maxsize];

int front,rear;

bitree*root,*s;

root=NULL;

front=1;rear=0;

printf("按层次输入结点值,虚结点输入'@',以换行符结束:");

while((ch=getchar())!='\n')

{

s=NULL;

if(ch!='@')

{

s=(bitree*)malloc(sizeof(bitree));

s->data=ch;

s->lchild=NULL;

s->rchild=NULL;

}

rear++;

Q[rear]=s;

if(rear==1)root=s;

else

{

if(s&&Q[front])

if(rear%2==0)Q[front]->lchild=s;

else Q[front]->rchild=s;

if(rear%2==1)front++;

}

}

return root;

}

//先序遍历输出二叉树

void preorder(bitree*p)

{

if(p!=NULL)

{

printf("%c",p->data);

if(p->lchild!=NULL||p->rchild!=NULL)

{

printf("(");

preorder(p->lchild);

if(p->rchild!=NULL) printf(",");

preorder(p->rchild);

printf(")");

}

}

}

//统计结点个数

//统计叶子结点个数

实验六:第1题

//无向图邻接矩阵搜索遍历的程序代码

#include

//图的邻接矩阵类型定义

const int n=8;

const int e=10;

typedef char vextype;

typedef int adjtype;

typedef struct

{

vextype vexs[n];

adjtype arcs[n][n];

}graph;

graph*g=new graph;

void creat graph();

void dfsa(int);

int visited[n]; void main()

{

creatgraph();

int i;

while(1)

{

for(i=0;i

visited[i]=0;

printf("输入出发点序号(0-7),输入-1结束:");

scanf("%d",&i);

if(i==-1) break;

dfsa(i);

}

}

//建立无向图邻接矩阵

void creat graph()

{

int i,j,k;

char ch;

printf("输入8个顶点的字符数据信息:\n");

for(i=0;i

if((ch=getchar())!='\n') g->vexs[i]=ch;

for(i=0;i

for(j=0;j

g->arcs[i][j]=0;

printf("输入10条边的起、终点i,j:\n");

for(k=0;k

{

scanf("%d,%d",&i,&j); //顶点序号从0开始

g->arcs[i][j]=g->arcs[j][i]=1;

}

}

//深度优先搜索遍历

实验七:第1题

//希尔排序的程序代码

#include

//顺序表结构类型定义

typedef int datatype;

typedef struct{

int key;

datatype data;

}rectype;

const int N=10;

const int D1=5;

void create(rectype[],int);

void print(rectype[],int);

void shellsort(rectype[],int[]);

void main()

{

rectype r[N+D1];//D1个元素存放监视哨,N个元素存放记录

int d[3]={5,3,1};//设置3趟的增量

create(r,N);//建立存放记录的顺序表

printf("排序前的数据:");

print(r,N);//输出排序前的记录表

shellsort(r,d);//希尔排序

printf("排序后的数据:");

print(r,N);//输出排序后的记录表

}

//建立顺序表

void create(rectype r[],int n)

{

printf("输入10个整型数:");

for(int i=0;i

scanf("%d",&r[D1+i].key);

}

//输出顺序表

void print(rectype r[],int n)

{

for(int i=0;i

printf("%5d",r[D1+i].key);

printf("\n");

}

//希尔排序

实验七:第2题

//双向起泡排序的程序代码

#include

#include

#include

//顺序表结构类型定义

typedef int datatype;

typedef struct{

int key;

datatype data;

}sequenlist;

void create(sequenlist[],int);

void print(sequenlist[],int);

void dbubblesort(sequenlist[],int);

void main()

{

const int n=10;

sequenlist r[n+1];

create(r,n);

printf("排序前的数据:");

print(r,n);

dbubblesort(r,n);

printf("排序后的数据:");

print(r,n);

}

//建立顺序表

void create(sequenlist r[],int n)

{

srand(time(0));

for(int i=1;i<=n;i++)

r[i].key=rand()%90;

}

//输出顺序表

void print(sequenlist r[],int n)

{

for(int i=1;i<=n;i++)

printf("%5d",r[i].key);

printf("\n");

}

//双向起泡排序

实验八:第1题

//分块查找的程序代码

#include

//类型定义

typedef int keytype;

typedef struct

{

keytype key;

int low,high;

}index;

typedef struct

{

keytype key;

}record;

const int recN=18;

const int idxN=3;

int blksearch(record[],index[],keytype,int);

void main()

{

record

r[recN]={22,12,13,8,9,20,33,42,44,38,24,48,60,58,74, 49,86,53};

index

idx[idxN]={{22,0,5},{48,6,11},{86,12,17}};

keytype key;

int loc,i;

printf("待查找的记录关键字表:\n");

for(i=0;i

printf("%5d",r[i]);

printf("\n");

printf("输入所要查找记录的关键字:");

scanf("%d",&key);

loc=blksearch(r,idx,key,idxN);

if(loc!=-1) printf("查找到,是第%d个记录。\n",loc+1);

else printf("记录查找不到!\n");

}

//折半查找索引表,块内顺序查找

实验八:第2题

//判断二叉排序树的程序代码

#include

#include

#include

//二叉链表的结构类型定义

const int maxsize=1024;

typedef int keytype;

typedef struct node

{

keytype key;

struct node *lchild,*rchild;

}bitree;

bitree*creattree();

void preorder(bitree*);

void inorder(bitree*);

void main()

{

bitree*pb;

pb=creattree();

preorder(pb);

printf("\n");

inorder(pb);

printf("是二叉排序树!\n");

}

//二叉树的建立

bitree*creattree()

{

keytype x;

bitree*Q[maxsize];

int front,rear;

bitree*root,*s;

root=NULL;

front=1;rear=0;

printf("按层次输入二叉排序树的整型结点数据,0表示虚结点,-1表示结束:\n");

scanf("%d",&x);//输入0表示虚结点,-1表示结束

while(x!=-1)

{

s=NULL;

if(x!=0)

{

s=(bitree*)malloc(sizeof(bitree));

s->key=x;

s->lchild=NULL;

s->rchild=NULL;

}

rear++;

Q[rear]=s;

if(rear==1)root=s;

else

{

if(s&&Q[front])

if(rear%2==0)Q[front]->lchild=s;

else Q[front]->rchild=s;

if(rear%2==1)front++;

}

scanf("%d",&x);;

}

return root;

}

//二叉树的输出

void preorder(bitree*p)

{

if(p!=NULL)

{

printf("%d",p->key);

if(p->lchild!=NULL||p->rchild!=NULL)

{

printf("(");

preorder(p->lchild);

if(p->rchild!=NULL) printf(",");

preorder(p->rchild);

printf(")");

}

}

}

//判断二叉排序树

《模拟电子技术实验》实验指导书

北方民族大学 Beifang University of Nationalities 《模拟电子技术实验》课程指导书 北方民族大学教务处

北方民族大学 《模拟电子技术实验》课程指导书 编著杨艺丁黎明 校审杨艺 北方民族大学教务处 二〇一二年三月

《模拟电子技术实验》课程是工科类大学二年级学生必修的一门实践类课程。实验主要设备包括模拟电子技术实验箱、信号发生器、示波器、数字万用表、交流毫伏表和直流电源等。 课程教学要求是:通过该课程,学生学会正确使用常用的电子仪器,掌握三极管放大电路分析和设计方法,掌握集成运放的使用及运算放大电路各项性能的测量,学会查找并排除实验故障,初步培养学生实际工程设计能力,学会仿真软件的使用,掌握工程设计的概念和步骤,为以后学习和工作打下坚实的实践基础。 《模拟电子技术实验》课程内容包括基础验证性实验,设计性实验和综合设计实践三大部分。 基础验证性实验主要包括仪器设备的使用、双极性三极管电路的分析、负反馈放大电路的测量等内容。主要培养学生分析电路的能力,掌握电路基本参数的测量方法。 设计性实验主要包括运算电路的实现等内容。主要要求学生掌握基本电路的设计能力。 综合设计实践主要包括项目的选题、开题、实施和验收等过程,要求学生能够掌握电子产品开发的整个过程,提高学生的设计、制作、调试电路的能力。 实验要求大家认真做好课前预习,积极查找相关技术资料,如实记录实验数据,独立写出严谨、有理论分析、实事求是、文理通顺、字迹端正的实验报告。 本书前八个实验项目由杨艺老师编写,实验九由丁黎明老师编写。全书由丁黎明老师提出课程计划,由杨艺老师进行校对和排版。参与本书课程计划制订的还有电工电子课程组的全体老师。 2012年3月1日

实验2-网络端口的扫描

南昌航空大学实验报告 二〇一三年十一月八日 课程名称:信息安全实验名称:实验网络端口扫描 班级:姓名:同组人: 指导教师评定:签名: 一、实验目的 通过练习使用网络端口扫描器,可以了解目标主机开放的端口和服务程序,从而获取系统的有用信息,发现网络系统的安全漏洞。在实验中,我们将在操作系统下使用进行网络端口扫描实验,通过端口扫描实验,可以增强学生在网络安全方面的防护意识。利用综合扫描软件“流光”扫描系统的漏洞并给出安全性评估报告。 二、实验原理 .端口扫描的原理 对网络端口的扫描可以得到目标计算机开放的服务程序、运行的系统版本信息,从而为下一步的入侵做好准备。对网络端口的扫描可以通过执行手工命令实现,但效率较低;也可以通过扫描工具实现,效率较高。 扫描工具根据作用的环境不同,可分为两种类型:网络漏洞扫描工具和主机漏洞扫描工具。 .端口的基础知识 为了了解扫描工具的工作原理,首先简单介绍一下端口的基本知识。 端口是协议中所定义的,协议通过套接字()建立起两台计算机之间的网络连接。套接字采用[地址:端口号]的形式来定义,通过套接字中不同的端口号可以区别同一台计算机上开启的不同和连接进程。对于两台计算机间的任意一个连接,一台计算机的一个[地址:端口]套接字会和另一台计算机的一个[地址:端口]套接字相对应,彼此标识着源端、目的端上数据包传输的源进程和目标进程。这样网络上传输的数据包就可以由套接字中的地址和端口号找到需要传输的主机和连接进程了。由此可见,端口和服务进程一一对应,通过扫描开放的端口,就可以判断出计算机中正在运行的服务进程。 /的端口号在~范围之内,其中以下的端口保留给常用的网络服务。例如,端口为服务,端口为服务,端口为服务,端口为服务,端口为服务等。 .扫描的原理 扫描的方式有多种,为了理解扫描原理,需要对协议简要介绍一下。 一个头的数据包格式如图所示。它包括个标志位,其中:、、、。 图数据包格式 根据上面介绍的知识,下面我们介绍基于和协议的几种端口扫描方式。

细胞生物学常用研究方法

Southern杂交: 是体外分析特异DNA序列的方法,操作时先用限制性内切酶将核DNA或线粒体DNA切成DNA片段,经凝胶电泳分离后,转移到醋酸纤维薄膜上,再用探针杂交,通过放射自显影,即可辨认出与探针互补的特殊核苷序列。 将RNA转移到薄膜上,用探针杂交,则称为Northern杂交。 RNAi技术: 是指在进化过程中高度保守的、由双链RNA(double-stranded RNA,dsRNA)诱发的、同源mRNA高效特异性降解的现象。由于使用RNAi技术可以特异性剔除或关闭特定基因的表达,所以该技术已被广泛用于探索基因功能和传染性疾病及恶性肿瘤的基因治疗领域。可以利用siRNA或siRNA表达载体快速、经济、简便的以序列特异方式剔除目的基因表达,所以现在已经成为探索基因功能的重要研究手段。 Southern杂交一般利用琼脂糖凝胶电泳分离经限制性内切酶消化的DNA片段,将胶上的DNA变性并在原位将单链DNA片段转移至尼龙膜或其他固相支持物上,经干烤或者紫外线照射固定,再与相对应结构的标记探针进行杂交,用放射自显影或酶反应显色,从而检测特定DNA分子的含量]。 扫描电镜技术:是用一束极细的电子束扫描样品,在样品表面激发出次级电子,次级电子的多少与样品表面结构有关,次级电子由探测器收集,信号经放大用来调制荧光屏上电子束的强度,显示出与电子束同步的扫描图像。 细胞显微分光光度计:用来描述薄膜、涂层厚度超过1微米的物件的光学性能的显微技术。 免疫荧光技术:将免疫学方法(抗原抗体特异结合)与荧光标记技术结合起来研究特异蛋白抗原在细胞内分布的方法。由于荧光素所发的荧光可在荧光显微镜下检出,从而可对抗原进行细胞定位。 电镜超薄切片技术:超薄切片是为电镜观察提供极薄的切片样品的专门技术。用当代较好的超薄切片机,大多数生物材料,如果固定、包埋处理得合适,可以切成50-100微米的超薄切片。 Northern印迹杂交(Northern blot)。这是一种将RNA从琼脂糖凝胶中转印到硝酸纤维素膜上的方法。 放射自显影技术:放射自显影技术是利用放射性同位素的电离辐射对乳胶(含AgBr或AgCl)的感光作用,对细胞内生物大分子进行定性、定位与半定量研究的一种细胞化学技术。放射自显影技术(radioautography;autoradiography)用于研究标记化合物在机体、组织和细胞中的分布、定位、排出以及合成、更新、作用机理、作用部位等等。其原理是将放射性同位素(如14C和3H)标记的化合物导入生物体内,经过一段时间后,将标本制成切片或涂片,涂上卤化银乳胶,经一定时间的放射性曝光,组织中的放射性即可使乳胶感光。 核磁共振技术:可以直接研究溶液和活细胞中相对分子质量较小(20,000 道尔顿以下)的蛋白质、核酸以及其它分子的结构,而不损伤细胞。 DNA序列分析:在获得一个基因序列后,需要对其进行生物信息学分析,从中尽量发掘信

模拟电子技术实验

实验2 单管放大电路 1.1 实验目的 (1) 熟悉电子元件和模拟电路实验箱。 (2) 掌握放大器静态工作点的调试方法及其对放大器性能的影响。 (3) 学习测量放大器Q点,A v,r i,r o的方法,了解共射极电路的特性。 (4) 学习放大器的动态性能。 1.2 实验仪器与设备 示波器,信号发生器,交流毫伏表,数字万用表,模拟/数字电路实验箱。 1.3 预习要求 (1) 熟悉分压式偏置放大器的工作原理,了解元器件参数对放大器性能的影响。 (2) 熟悉放大器的动态及静态测量方法。 1.4 实验内容与步骤 (一)、连接直流电路,测量静态工作点 1.连接直流电路 (1)用万用表判断实验元件(三极管、电解电容、电阻、电位器)及实验所用导线的好坏。 (2) 连接分压式偏置放大器的直流通路,电路如图1-1所示,将R W的阻值调到最大100K。 图1-1 分压式偏置单管放大器的直流通路

(3)调节直流稳压电源电压输出调节旋钮,使其输出+12V(方法:用万用表直流电压档监测直流稳压电源输出端口,调节旋钮使万用表显示+12 V) 2.调节静态工作点 接通稳压电源(方法:用红色导线连接直流稳压电源的正极与R W R C的公共点,用黑色导线连接直流稳压电源的负极与R B2 R E的公共点),调节R W使U CE=1/2 U CC,V BE=0.7V 测量晶体管各极对地电压U B、U C和U E,将测量结果和计算所得结果填入表1-1中。 U CE =U C-U E U BE =U B-U E I C = I E= U E /R E 表1-1 静态工作点实验数据 (二)、连接完整电路,测量动态参数 1.连接完整电路 图1-2 分压式偏置单管放大器原理图 注意:电解电容的极性。 3.电压放大倍数的测量 (1)接通函数信号发生器电源,调节函数信号发生器的频率调节旋钮和幅度调节旋钮,使函数信号发生器输出频率 f =1 kHz ,输出电压U S=10 mV (有效值)的交流信号(若输出不能达到10 mV,可调节输出衰减旋钮20~60 dB和幅度调节旋钮即可)。 注意:信号发生器输出交流信号的频率通过数码管显示即可读出来,输出交流信号的幅度必须使用晶体管毫伏表检测方可读出电压有效值。 (2)将信号发生器、示波器、晶体管毫伏表按图1-3接入。信号发生器的正极、示波

细胞生物学实验指导

细胞生物学实验指导

细胞生物学实验指导目录 一.显微镜的使用 实验一、几种光学显微镜的使用 实验二、参观电子显微镜及生物超薄切片标本制备 二.细胞形态结构 实验三、细胞大小的形态观察——测微尺的使用 实验四、细胞活体染色技术 实验五、植物细胞骨架光学显微观察 实验六、胞间连丝观察 三.细胞化学 实验七、鉴定RNA的细胞化学方法——Branchet反应 实验八、DNA显色的观察——Feulgen反应 实验九、固绿染色法鉴定细胞内酸性蛋白与碱性蛋白 实验十、多糖及过氧化酶的显示 实验十一、核仁组成区的银染显示与观察 四.细胞生理 实验十二、细胞膜的通透性 实验十三、细胞电泳 五.细胞和组织培养技术 实验十四、植物原生质体的分离和融合 实验十五、植物细胞的培养与观察 实验十六、动物细胞融合 实验十七、动物细胞的培养与观察 六.细胞化学成分的分离 实验十八、细胞器的分离、纯化——细胞分级分离 实验十九、荧光的细胞化学测定 实验二十、细胞活力的鉴别 实验一几种光学显微镜的使用

一、实验目的 了解几种光学显微镜的结构、工作原理、主要用途和使用方法;掌握使用普通显微镜提高分辨力的方法。 二、实验原理 (一)基本原理 一般实验室经常使用的光学显微镜都是由物镜、目镜、聚光器和光阑组成,普通显微镜它们的放大原理及光路图如下: AB物体.A1B l第一次成像,A2B2第二次成像,O l目镜.O2物镜, F1为O l的前焦点,F2为O2的前焦点 各种光学显微镜的光学放大原理基本相同,各种特殊用途的光镜不过只是在光源、物镜、聚光器等方面作了改动,或在其它方面增设了某些特殊的设备。 (二)几种光学显微镜 l、普通光学显微镜: 普通光学显微镜也叫复式显微镜,是最常见,最简单的显微镜。它适于观察一般固定的,有色的透明度较高的标本。其最大分辨力一般为0.2微米,从构造上可分光学、机械和电子三大系统。 2、暗视野显微镜: 暗视野显微镜是以丁达尔现象(Tyndall phenomenon)(即光的微粒散射现象)为基础设计的,它使用了特殊的聚光器进行斜射照明,因光源中心束不直入物镜,所以视野黑暗,而被检细胞器因斜射照明发生衍射和反射,所以发亮可见。暗视野显微镜可用增加光照方法增加物体与背景的反差,因而可观察到0.2—0.004微米直径的微小粒子,但它分不清被检物的细微构造,它常用于观察物体的存在与运动。而暗视野显微镜与普通光学显微镜的区别,主要在于聚光器的不同,致使照明方法有别。确切地说,称暗视野显微镜为暗视野照明更为贴切。它是照明光线仅照亮被检样品而不进入物镜。使视野背景暗黑,样品明亮的照明方法。 3、相差显微镜: 相差是指同一光线经过折射率不同的介质其相位发生变化并产生的差异。相位是指在某一时间上,光的波动所达到的位置。

模拟电子技术实验报告

姓名:赵晓磊学号:1120130376 班级:02311301 科目:模拟电子技术实验B 实验二:EDA实验 一、实验目的 1.了解EDA技术的发展、应用概述。 2. 掌握Multisim 1 3.0 软件的使用,完成对电路图的仿真测试。 二、实验电路

三、试验软件与环境 Multisim 13.0 Windows 7 (x64) 四、实验内容与步骤 1.实验内容 了解元件工具箱中常用的器件的调用、参数选择。 调用各类仿真仪表,掌握各类仿真仪表控制面板的功能。 完成实验指导书中实验四两级放大电路实验(不带负反馈)。 2.实验步骤 测量两级放大电路静态工作点,要求调整后Uc1 = 10V。 测定空载和带载两种情况下的电压放大倍数,用示波器观察输入电压和输出电压的相位关系。 测输入电阻Ri,其中Rs = 2kΩ。 测输出电阻Ro。 测量两级放大电路的通频带。 五、实验结果 1. 两级放大电路静态工作点 断开us,Ui+端对地短路

2. 空载和带载两种情况下的电压放大倍数接入us,Rs = 0 带载: 负载: 经过比较,输入电压和输出电压同相。 3. 测输入电阻Ri Rs = 2kΩ,RL = ∞ Ui = 1.701mV

Ri = Ui/(Us-Ui)*Rs = 11.38kΩ 4. 测输出电阻Ro Rs = 0 RL = ∞,Uo’=979.3mV RL = 4.7kΩ,Uo = 716.7mV Ro = (Uo’/Uo - 1)*R = 1.72kΩ 5. 测量两级放大电路的通频带电路最大增益49.77dB 下限截止频率fL = 75.704Hz 上限截止频率fH = 54.483kHz 六、实验收获、体会与建议

软件工程实验指导书(2016年修订)

数学与信息学院(软件学院) 《软件工程实验》指导书 编写:梁早清朱凯严尚维林毅申 完成人信息 学号姓名主要角色和任务比重 朱凯2016年修订 分组至少3人至多4人。 备注:此文档仅作为《软件工程》实验指导用,其他课程的文档模板请根据其他老师提供的模板撰写。

软件工程实验课实验说明 本实验指导书是数学与信息学院、软件学院《软件工程实验》课程的指导书,目的在于让同学们通过这些实验,体会软件开发的过程(从需求分析到设计和测试计划)。老师们试图通过一个较为简单的易实现的软件系统,让同学们分阶段完成需求分析、体系结构设计、部件级设计等设计和功能测试的工作,并完成相应的文档。同学们之间根据规范相互评审每一阶段的文档,过后老师再统一评讲。以此让同学们加深对结构化分析与设计、功能测试的方法的理解。(特别指出:因课时所限,软件工程中面向对象的设计与分析方法不在本实验课上讨论,学院另外开设有《面向对象的设计与分析》课程。) 题目如下: 一、软件系统需求的文本描述 《课程成绩管理系统》提供一个方便我校任课老师管理学生成绩的小型软件系统。该系统为教师提供方便的成绩管理功能,也为学生提供查询成绩的功能。系统描述如下:学生的成绩包含以下4个部分:课堂点名成绩、课堂考试成绩、课后作业成绩和期末考试成绩。各成绩评判标准和在总成绩中所占比例如下: 1.课堂点名3次,每次点名没有到的不得分(即记0分),到了的100分。第一次点 占总成绩的1%,第二次和第三次各占总成绩的2%,课堂点名占总成绩的5%; 2.课堂考试3次,每次满分100分,具体成绩由老师给出。其中,第一次和第二次占 总成绩的7%,第三次占总成绩的6%,共20%; 3.课后作业3次,每次满分100分,具体成绩由老师给出。其中,第一次和第二次占 总成绩的8%,第三次占总成绩的9%,共25%; 4.期末考试试卷满分100分,占总成绩的50%。 教师能通过成绩管理软件来管理学生的成绩,包含添加、删除、修改、查看、统计学生的成绩。各个功能具体描述如下: 1.添加学生成绩:填写学号,点击添加,然后在添加界面上录入对应学生的第一次点 名、第二次点名、第三次点名、第一次课堂考试、第二次课堂考试、第三次课堂考 试、第一次课后作业、第二次课后作业、第三次课后作业,期末考试卷面成绩。点

网络扫描实验

实验一:网络扫描实验 【实验目的】 了解扫描的基本原理,掌握基本方法,最终巩固主机安全 【实验内容】 1、学习使用Nmap的使用方法 2、学习使用漏洞扫描工具 【实验环境】 1、硬件PC机一台。 2、系统配置:操作系统windows XP以上。 【实验步骤】 1、端口扫描 解压并安装ipscan15.zip,扫描本局域网内的主机 【实验背景知识】 1、扫描及漏洞扫描原理见第四章黑客攻击技术.ppt NMAP使用方法 扫描器是帮助你了解自己系统的绝佳助手。象Windows 2K/XP这样复杂的操作系统支持应用软件打开数百个端口与其他客户程序或服务器通信,端口扫描是检测服务器上运行了哪些服务和应用、向Internet或其他网络开放了哪些联系通道的一种办法,不仅速度快,而且效果也很不错。 Nmap被开发用于允许系统管理员察看一个大的网络系统有哪些主机以及其上运行何种服务。它支持多种协议的扫描如UDP,TCP connect(),TCP SYN (half open), ftp proxy (bounce attack),Reverse-ident, ICMP (ping sweep), FIN, ACK sweep,X

mas Tree, SYN sweep, 和Null扫描。你可以从SCAN TYPES一节中察看相关细节。nmap还提供一些实用功能如通过tcp/ip来甄别操作系统类型、秘密扫描、动态延迟和重发、平行扫描、通过并行的PING侦测下属的主机、欺骗扫描、端口过滤探测、直接的RPC扫描、分布扫描、灵活的目标选择以及端口的描述。 图1 图2

图3 1)解压nmap-4.00-win32.zip,安装WinPcap 运行cmd.exe,熟悉nmap命令(详见“Nmap详解.mht”)。 图4

细胞生物学实验指导书09年

实验一普通光学显微镜的构造和使用 一、目的要求 1了解显微镜的基本构造和使用方法 2 掌握油镜的原理和使用方法 二、显微镜的基本结构及油镜的工作原理 1.显微镜的基本构造 光学部分:接目镜、接物镜、照明装置(聚光镜、虹彩光圈、反光镜等)。 机械部分:镜座、镜臂、镜筒、物镜转换器、载物台、载物台转移器、粗调节器、细调节器等部件。 2.显微镜的放大倍数和分辨率 放大倍数=接物镜放大倍数×接目镜放大倍数 显微镜的分辨率:表示显微镜辨析物体(两端)两点之间距离的能力3.油镜的使用原理 当光线由反光镜通过玻片与镜头之间的空气时,由于空气与玻片的密度不同,使光线受到曲折,发生散射,降低了视野的照明度。若中间的介质是一层油(其折射率与玻片的相近),则几乎不发生折射,增加了视野的进光量,从而使物象更加清晰。 三、器材 1.永久切片 2. 溶液或试剂:香柏油、二甲苯。 3. 仪器或其他用具:显微镜、擦镜纸等。 四、操作步骤 1.观察前的准备 (1)显微镜的安置,检查零件是否齐全,镜头是否清洁。 (2)调节光源 2.显微镜观察

(1)低倍镜观察 (2)高倍镜观察 (3)油镜观察:高倍镜下找到清晰的物象后,提升聚光镜,在标本中央滴一滴香柏油,使油镜镜头浸入香柏油中,细调至看清物象为止。3.显微镜用毕后的处理 观察完毕,上升镜筒,用擦镜纸和二甲苯清洗镜头,后将镜体全部复原。 五、思考题 1.用油镜观察时应注意哪些问题?在载玻片和镜头之间滴加什么油?起什么作用? 2.为什么在使用高倍镜及油镜时应特别注意避免粗调节器的误操作? 实验二胞间连丝的观察 一、实验目的 观察植物细胞的胞间连丝,加深对胞间连丝功能的认识. 二、实验原理 植物细胞的细胞壁上有许多原生质的细丝,称胞间连丝。相邻细胞的胞间连丝相互联接,在细胞间的物质运输与信息传递中起桥粱作用,并使细胞的各种生理活动协调一致,使植物体成为统一的有机体。用合适的植物细胞为材料,经简单处理,即能方便地看到胞间连丝。 三、实验材料 红辣椒表皮细胞临时装片、柿胚乳细胞间胞间连丝切片 四、实验步骤

模拟电子技术实验

实验一共射极单管放大电路的研究 1. 实验目的 (1)学会放大器静态工作点的调试方法,分析静态工作点对放大器性能的影响; (2)掌握放大器电压放大倍数、输入电阻、输出电阻及最大不失真输出电压的测试方法; (3)熟悉常用电子仪器及模拟电路实验设备的使用。 2. 实验设备与器材 实验所用设备与器材见表1.1。 表1.1 实验4.1的设备与器材 序号名称型号与规格数量备注 1 实验台1台 2 双踪示波器0~20M 1台 3 电子毫伏表1只 4 万用表1只 5 三极管1只 6 电阻1kΩ/0.25W 1只R e 7 电阻 2.4kΩ/0.25W 2只R S、R c、R L 8 电阻20kΩ/0.25W 1只R b1、R b2 9 电阻500kΩ/0.25W 1只R b2 10 铝电解电容10μF/25V 2只C1、C2 11 铝电解电容50μF/25V 1只C e 3. 实验电路与说明 实验电路如图1.1所示,为电阻分压式工作点稳定单管放大器实验电路图。它的偏置电路采用R B1和R B2组成的分压电路,并在发射极中接有电阻R E,以稳定放大器的静态工作点。当在放大器的输入端加入输入信号u i后,在放大器的输出端便可得到一个与u i相位相反,幅值被放大了的输出信号u0,从而实现了电压放大。安装电路时,要注意电解电容极性、直流电源正负极和信号源的极性。 图1.1 共射极单管放大器实验电路

I c/mA U ce/V u0波形失真情况管子工作状态 2.0 (5) 测量最大不失真输出电压的幅度 置R C=2.4kΩ,R L=2.4kΩ,调节信号发生器输出,使U s逐渐增大,用示波器观察输出信号的波形。直到输出波形刚要出现失真而没有出现失真时,停止增大U s,这时示波器所显示的正弦波电压幅度,就是放大电路的最大不失真输出电压幅度,将该值记录下来。然后继续增大U s,观察输出信号波形的失真情况。 5. 实验总结与分析 (1)用理论分析方法计算出电路的静态工作点,填入表1.2中,再与测量值进行比较,并分析误差的原因。 (2)通过电路的动态分析,计算出电路的电压放大倍数,包括不接负载时的A u、A us以及接上负载时的A u、A us。将计算结果填入表1.3中,再与测量值进行比较,并分析产生误差的原因。 (3)回答以下问题: ①放大电路所接负载电阻发生变化时,对电路的电压放大倍数有何影响? ②怎样用测量信号电压的方法来测量放大电路的输入电阻和输出电阻? (4)心得体会与其他。

软件工程实验指导书71436

软件工程实验指导书 南昌航空大学信工学院 2010年01月

目录 实验1 用PowerDesigner建模工具绘制数据流图 (3) 1 实验环境 (3) 2 实验目的 (3) 3 实验内容 (3) 4 实验要求 (3) 5 实验步骤 (3) 实验2 用PowerDesigner建模工具设计数据库 (5) 1 实验环境 (5) 3 实验内容 (5) 4 实验要求 (6) 5 实验步骤 (6) 实验3 用Microsoft Visio工具设计用户界面 (10) 1 实验环境 (10) 2 实验目的 (10) 3 实验内容 (10) 4 实验要求 (10) 5 实验步骤 (10) 实验4 用Rational Rose绘制用例图 (14) 1 实验环境 (14) 2 实验目的 (14) 3 实验内容 (14) 4 实验要求 (14) 5 实验步骤 (15) 实验5 用Rational Rose工具绘制类图 (18) 1 实验环境 (18) 2 实验目的 (18) 3 实验内容 (18) 4 实验要求 (18) 5 实验步骤 (18)

实验1 用PowerDesigner建模工具绘制数据 流图 1 实验环境 Windows 2000、Sybase公司的Power Designer应用软件 2 实验目的 1)了解Power Designer工具软件的组成及功能 2)掌握Power Designer中的Process Analyst(PA)模块的建 模方法及其工具的使用方法 3 实验内容 1)设计数据流图(DFD) 2)利用外部实体、过程处理、数据流及数据存储绘制数据流图。 4 实验要求 建立一个PAM(Process Analyst Model)的应用实例。 为方便旅客,某航空公司拟开发一个机票预定系统。旅行社把预定机票的旅客信息(姓名、性别、工作单位,身份证号码、旅行时间、施行目的地等)输入该系统,系统为旅客安排航班,印出取票通知和帐单,旅客在飞机起飞前一天凭取票通知单和帐单交款取票,系统校对无误即印出机票给旅客。 绘制该机票预定系统的数据流图。注意:功能分解的细化程度视具体情况而定。该实验中分解到第三层止。 5 实验步骤 数据流图是系统处理模型的主要组成部分。其中心问题是把功能逐层分解为多个子功能。 1)建立根处理模型 S1:在Windows桌面上双击Process Analyst程序图标,打开Process Analyst应用程序。 S2:建立一个处理过程P1。单击工具栏中的Process工具,在模型工作区内单击会出现一个处理过程的符号,它是建立的第一个处理过程。单击鼠标右键释放Process工具,再双击新建立的处理过程符号,出现特性对话框,对

网络扫描及安全评估实验报告

一、实验目的 ●掌握网络端口扫描器的使用方法,熟悉常见端口和其对应的服务程序,掌 握发现系统漏洞的方法。 ●掌握综合扫描及安全评估工具的使用方法,了解进行简单系统漏洞入侵的 方法,了解常见的网络和系统漏洞以及其安全防护方法。 二、实验原理 ●端口扫描原理 ●端口扫描向目标主机的TCP/IP服务端口发送探测数据包,并记录 目标主机的响应。通过分析响应来判断服务端口是打开还是关闭, 就可以得知端口提供的服务或信息。 ●端口扫描主要有经典的扫描器(全连接)、SYN(半连接)扫描器、 秘密扫描等。 ●全连接扫描:扫描主机通过TCP/IP协议的三次握手与目标主机的 指定端口建立一次完整的连接。建立连接成功则响应扫描主机的 SYN/ACK连接请求,这一响应表明目标端口处于监听(打开)的 状态。如果目标端口处于关闭状态,则目标主机会向扫描主机发送 RST的响应。 ●半连接(SYN)扫描:若端口扫描没有完成一个完整的TCP连接, 在扫描主机和目标主机的一指定端口建立连接时候只完成了前两 次握手,在第三步时,扫描主机中断了本次连接,使连接没有完全 建立起来,这样的端口扫描称为半连接扫描,也称为间接扫描。 ●TCP FIN(秘密)扫描:扫描方法的思想是关闭的端口会用适当的 RST来回复FIN数据包。另一方面,打开的端口会忽略对FIN数 据包的回复。 ●综合扫描和安全评估技术工作原理 ●获得主机系统在网络服务、版本信息、Web应用等相关信息,然后 采用模拟攻击的方法,对目标主机系统进行攻击性的安全漏洞扫 描,如果模拟攻击成功,则视为漏洞存在。最后根据检测结果向系 统管理员提供周密可靠的安全性分析报告。

细胞生物学实验指导

实验一显微镜的结构及使用 [实验目的] (一)熟悉显微镜的结构及各部件性能。 (二)掌握显微镜的使用方法。 (三)了解显微镜的维护方法。 [实验原理] 虽然显微镜的目镜和物镜的结构很复杂,但它的作用相当于一个凸透镜,其成像原理和光路图如图1所示,被检物体AB放在物镜(O1)下方的1—2倍焦距之间,则在物镜(O1)后形成一个倒立的放大实像A1B1,这个实像正好位于目镜(O2)的下焦点之内,通过目镜后形成一个放大的虚像A2B2,这个虚像通过调焦装置使其落在眼睛的明视距离处,即25cm,使所看到的物体最清晰,也就是说虚像A2B2是在眼球晶状体的两倍焦距之外,通过眼球后在视网膜形成一个倒立的A2B2缩小像A3B3。 [实验器材]擦镜纸字母装片羊毛交叉擦片普通光学显微镜二甲苯香柏油 三内容与方法: 普通光学显微镜(Microscope)的外形和结构因类型不同略有差异,但基本结构和功能是相似的。(图2) (一)微镜的基本结构及功能:光学显微镜由机械部分、照明部分和光学部分构成。1.机械部分: (1)镜座:位于底部的金属座。一般为马蹄形,用以支持和稳定整个镜体。 (2)镜柱:镜座与镜臂相连的短柱。 (3)镜臂:镜柱上方弯曲部分,是取用显微镜时握拿的部位。 (4)镜筒:在镜臂的上方倾斜的金属园筒,上端装有目镜、下端转折处装有棱镜,使光线转折450。其上有一固定螺钉将镜筒连接于镜臂上方。 (5)调节器:在镜柱两侧有大小两个螺旋,大螺旋为粗调节器,转动时能使载物台快速升降。调节范围较大,适于低倍镜调焦用。小螺旋为细调节器,转动是载物台仅缓慢升降,调节范围较小,适于调节物象的清晰度。此外,在右侧粗调节器内侧有一窄环,称粗调松紧调节轮,用以调节粗调节器的松紧度。向外转时偏紧,向内转时偏松。左侧粗调节器内侧有一粗调限位调节环凸柄,向上推紧时,镜台上的最高点被固定(这两个环一般不需调节)。(6)旋转盘:又称物镜转换器,安装在镜筒下端,为一可旋转的圆盘,上有4个圆孔,

13级软件工程实验指导书最新版

《软件工程》 课程实验指导书 华北水利水电大学 信息工程学院计算机科学与技术专业 2016年5月

《软件工程》课程实验指导书 一、实验选题与要求 自由选择题目,但每个班级的选题按照学号尾数为0、5选第1题,尾数为1、6选第2题,尾数为2、7选第3题,尾数为3、8选第4题,尾数为4、9选第5题。 1、单科学生成绩管理系统 任务:对在校某班学生一门课程的平时成绩与考试成绩进行统一管理。每个学生记录包括学号、姓名、每次习题(按16次计)、测验(按3次计)、考试成绩和总评成绩等信息,以学号为序存放。 要求:(1)一个文件按以班为单位存储学生记录。 (2)将允许的操作分为四种,以A、B、C、D为标志(若设置菜单操作更佳): A:插入一个新的学生记录; B:登记某次成绩(可以是每次习题、测验、考试成绩); C:修改某次成绩(可以是每次习题、测验、考试成绩); D:删除一个学生记录。 (3)计算学生的最终成绩,各项成绩权重为:习题10%、测验20%、考试70%。 (4)按学号排序打印全班成绩表,表格内容包括习题、测验、考试、总评成绩,前三项为百分制,总评成绩为加权计算结果值。 设置教师和学生两种登录系统身份,每个用户应有自己的口令; 教师身份可以完成上述基本要求的功能,学生可以通过输入学号查询个人成绩。 2、飞机航班订票系统 任务:通过此系统可以实现如下功能: (1)录入:录入航班信息(数据可以存储在一个数据文件中) (2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起飞抵达城市,查询飞机航班情况; (3)订票:(订票情况可以存在一个数据文件中) 可以订票,如果该航班已经无票,可以提供相关可选择航班; (4)退票:可退票,退票后修改相关数据文件; 订票的客户信息有姓名,证件号,订票数量及航班,订单要有编号。 (5)修改航班信息:当航班信息改变可以修改航班数据文件。 3、宾馆管理信息系统 任务:入住或预订客房时,用户要对客户管理模块或预订管理模块进行核对审查,并进行登记;客户换房时,要对换房信息进行查询和更新;客户退房时,要进行结算,并对更新客房信息。 主要功能模块: (1)登录模块:对用户身份进行验证,只有合法用户才能进入系统;

端口扫描实验报告

综合实验报告 ( 2010 -- 2011 年度第二学期) 名称:网络综合实验 题目:端口扫描程序 院系:信息工程系 班级: 学号: 学生姓名: 指导教师:鲁斌李莉王晓霞张铭泉设计周数: 2 周 成绩: 日期:2011年7月1日

一、综合实验的目的与要求 1.任务:设计并实现一个端口扫描程序,检测某个IP或某段IP的计算机的端口工作情况。 2.目的:加深对课堂讲授知识的理解,熟练掌握基本的网络编程技术和方法,建立网络编程整体概念,使得学生初步具有研究、设计、编制和调试网络程序的能力。 3.要求:熟悉有关定义、概念和实现算法,设计出程序流程框图和数据结构,编写出完整的源程序,基本功能完善,方便易用,操作无误。 4.学生要求人数:1人。 二、综合实验正文 1.端口扫描器功能简介:服务器上所开放的端口就是潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息,进行端口扫描的方法很多,可以是手工进行扫描、也可以用端口扫描软件进行。扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通过这种方法可以搜集到很多关于目标主机的各种有用的信息,例如远程系统是否支持匿名登陆、是否存在可写的FTP目录、是否开放TELNET 服务和HTTPD服务等。 2.实验所用的端口扫描技术:端口扫描技术有TCP connect()扫描、TCP SYN扫描、TCP FIN 扫描、IP段扫描等等。本次实验所用的技术是TCP connect()扫描,这是最基本的TCP 扫描,操作系统提供的connect()系统调用可以用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么connect()就能成功。否则,这个端口是不能用的,即没有提供服务。这个技术的一个最大的优点是,你不需要任何权限。系统中的任何用户都有权利使用这个调用。 3.实验具体实现方案:编写一个端口扫描程序,能够显示某个IP或某段IP的计算机的某一个或某些端口是否正在工作。基本工作过程如下: (1) 设定好一定的端口扫描范围; (2) 设定每个端口扫描的次数,因为有可能有的端口一次扫描可能不通; (3) 创建socket,通过socket的connect方法来连接远程IP地址以及对应的端口; (4) 如果返回false,表示端口没有开放,否则端口开放。 4.有关TCP/IP的知识: 4.1套接字概念 1)在网络中要全局地标识一个参与通信的进程,需要采用三元组:协议、主机IP地址、端口号。

参考答案--模拟电子技术实验指导书(2012)

参考答案--模拟电子技术实验指导书(2012)

实验一常用电子仪器的使用 一、实验目的 1.熟悉示波器,低频信号发生器和晶体管毫伏表等常用电子仪器面板,控制旋钮的名称,功能及使用方法。 2.学习使用低频信号发生器和频率计。 3.初步掌握用示波器观察波形和测量波形参数的方法。 二、实验原理 在电子电路实验中,经常使用的电子仪器有示波器、低频信号发生器、直流稳压电源、交流毫伏表及频率计等。它们和万用电表一起,可以完成对电子电路的静态和动态工作情况的测试。 实验中要对各种电子仪器进行综合使用,可按照信号流向,以连线简捷,调节顺手,观察与读数方便等原则进行合理布局,各仪器与被测实验装置之间的布局与连接如图1—1所示。接线时应注意,为防止外界干扰,各仪器的共公接地端应连接在一起,称共地。信号源和交流毫伏表的引线通常用屏蔽线或专用电缆线,示波器接线使用专用电缆线,直流电源的接线用普通导线。

图1—1 模拟电子电路中常用电子仪器布局图 1.低频信号发生器 低频信号发生器按需要输出正弦波、方波、三角波三种信号波形。输出电压最大可达20V(峰-峰值)。通过输出衰减开关和输出幅度调节旋钮,可使输出电压在毫伏级到伏级范围内连续调节。低频信号发生器的输出信号频率可以通过频率分档开关进行调节。 低频信号发生器作为信号源,它的输出端不允许短路。 2.交流毫伏表 交流毫伏表只能在其工作频率范围之内,用来测量正弦交流电压的有效值。为了防止过载而损坏,测量前一般先把量程开关置于量程较大位置上,然后在测量中逐档减小量程。 3.示波器 示波器是一种用途极为广泛的电子测量仪器,它能把电信号转换成可在荧光屏幕上直接观察的图象。示波器

模拟电子技术实验指导书

《模拟电子技术》实验教学指导书课程编号:1038181007 湘潭大学 信息工程学院电工与电子技术实验中心 2007年11月30日

前言 一、实验总体目标 通过实验教学,使学生巩固和加深所学的理论知识,培养学生运用理论解决实际问题的能力。学生应掌握常用电子仪器的原理和使用方法,熟悉各种测量技术和测量方法,掌握典型的电子线路的装配、调试和基本参数的测试,逐渐学习排除实验故障,学会正确处理测量数据,分析测量结果,并在实验中培养严肃认真、一丝不苟、实事求是的工作之风。 二、适用专业年级 电子信息工程、通信工程、自动化、建筑设施智能技术等专业二年级本科学生。 三、先修课程 《高等数学》、《大学物理》、《电路分析基础》或《电路》。 网络化模拟电路实验台:36套(72组) 主要配置:数字存储示波器、DDS信号发生器、数字交流毫伏、模块化单元电路板等。 六、实验总体要求 本课程要求学生自己设计、组装各种典型的应用电路,并用常用电子仪器测试其性能指标,掌握电路调试方法,研究电路参数的作用与影响,解决实验中可能出现各种问题。 1、掌握基本实验仪器的使用,对一些主要的基本仪器如示波器、、信号发生器等应能较熟练地使用。 2、基本实验方法、实验技能的训练和培养,牢固掌握基本电路的调整和主要技术指标的测试方法,其中还要掌握电路的设计、组装等技术。 3、综合实验能力的训练和培养。 4、实验结果的处理方法和实验工作作风的培养。

七、本课程实验的重点、难点及教学方法建议 本课程实验的重点是电路的正确连接、仪表的正确使用、数据测试和分析; 本课程实验的难点是电路的设计方法和综合测试与分析。 在教学方法上,本课程实验应提前预习,使学生能够利用原理指导实验,利用实验加深对电路原理的理解,掌握分析电路、测试电路的基本方法。

端口扫描实验报告

网络端口扫描实验报告 一、网络端口扫描简介 TCP/IP协议在网络层是无连接的,而“端口”,就已经到了传输层。端口便是计算机与外部通信的途径。一个端口就是一个潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息。进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行。在手工进行扫描时,需要熟悉各种命令,对命令执行后的输析出进行分,效率较低。用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。扫描工具根据作用的环境不同可分为:网络漏洞扫描工具和主机漏洞扫描工具。前者指通过网络检测远程目标网络和主机系统所存在漏洞的扫描工具。后者指在本机运行的检测本地系统安全漏洞的扫描工具。本实验主要针对前者。 端口是TCP协议中定义的,TCP协议通过套接字(socket)建立起两台计算机之间的网络连接。它采用【IP地址:端口号】形式定义,通过套接字中不同的端口号来区别同一台计算机上开启的不同TCP和UDP连接进程。端口号在0~~65535之间,低于1024的端口都有确切的定义,它们对应着因特网上常见的一些服务。这些常见的服务可以划分为使用TCP端口(面向连接如打电话)和使用UDP端口

(无连接如写信)两种。端口与服务进程一一对应,通过扫描开放的端口就可以判断计算机中正在运行的服务进程。 二、实验目的 1.了解熟悉MFC及的基本原理和方法。 2.加深对tcp的理解,学习端口扫描技术和,原理熟悉socket编程。 3.通过自己编程实现简单的IP端口扫描器模型。 4.通过端口扫描了解目标主机开放的端口和服务程序。 三、实验环境 Windows操作系统 VC++6.0开发环境 四、实验设计 实验原理 通过调用socket函数connect()连接到目标计算机上,完成一次完整的三次握手过程,如果端口处于侦听状态,那么connect()就可以成功返回,否则这个端口不可用,即没有提供服务。 实验内容 1. 设计实现端口扫描器 2. IP地址、端口范围可以用户输入。 3. 要求有有好的可视化操作界面。 实验步骤: 1、用户界面:使用vc6.0里的MFC来开发用户界面 2、端口扫描:使用socket函数中的connect()连接计算机来判定目标计算机是否开放了要测试的端口 五、代码实现 #include #include #pragma comment(lib,"wsock32.lib") #define ZERO (fd_set *)0 int maxth, scanok, scannum; int portip, hoststart, hoststop, startport, endport; long searchnum, searched; void usage(char *); void playx(int); void setip2(char *); void customport(char *, char *, char *); void portscannow(int); int main(int argc, char *argv[]) { WSADATA wsadata; system("cls.exe"); printf("\r\n============== 命令行端口扫描器PortScanner V1.0 ==============");

(完整版)细胞生物学学习心得

细胞生物学学习体会 通过网络课程学习,有幸聆听到王金发教授对《细胞生物学》课程的讲授,使我不仅学到了细胞生物学专业新的知识与研究技术、方法,而且在教学方面也受益非浅。下面就我的学习谈一些体会。 一、全面学习了细胞生物学的专业知识 《细胞生物学》是一门包容量大、发展迅速的学科。内容涉及生物膜的结构与功能;内膜系统区室化形成及各种细胞器的结构与功能;细胞信号转导;细胞核、染色体以及基因表达;细胞骨架体系;细胞增殖及其调控;细胞分化、癌变及其调控;细胞的衰老与程序性死亡;细胞的起源与进化;细胞工程技术等多个方面。 (一)对细胞生物学的专业知识有了更深的认识。 1、细胞通讯方面 记得第一次听王老师的课就是讲授细胞的通讯,在多细胞生物中,细胞不是孤立存在的,而是生活在细胞社会中,它们必须协调一致,才能维持机体的正常生理机能,它们的协调是通过细胞通讯来完成的。细胞通讯是通过信号分子与受体的识别,从而在靶细胞内产生一系列反应的过程。信号分子有第一信使和第二信使之分,第二信使位于细胞内,由第一信使与受体识别后最先在胞内产生的,它主要与细胞内受体作用,所以受体也可分为表面受体和胞内受体。信号分子与受体的识别作用具有特异性。细胞信号传递所发生的反应有快速反应和慢速反应。快速反应是信号分子与受体作用后直接引起细胞内的一系列代谢反应;慢速反应则需要引起基因表达,再表现出各种代谢反应。细胞通讯过程是个复杂的过程,一个细胞的周围有上百种不同的信号分子,细胞要对这些信号分子进行分析,做出正确的反应。信号转换的研究在近年很热门,但进展缓慢,主要是因为信号转换的复杂性,不同信号的组合产生的效应是不一样的。 2、蛋白质的合成和分选机理 蛋白质的合成是在核糖体上,有两种合成体系,一种是在细胞质中游离的核糖体上,另一种是在膜旁核糖体上合成,它们合成的蛋白质将分布到不同的部

《本科模拟电子技术实验》教案

《本科模拟电子技术实验》教案

4.1 共射极单管放大电路的研究 1. 实验目的 (1)学会放大器静态工作点的调试方法,分析静态工作点对放大器性能的影响; (2)掌握放大器电压放大倍数、输入电阻、输出电阻及最大不失真输出电压的测试方法; (3)熟悉常用电子仪器及模拟电路实验设备的使用。 2. 实验设备与器材 实验所用设备与器材见表4.1。 表4.1 实验4.1的设备与器材 序号名称型号与 规格 数量备注 1 直流稳压电源双路 0~30V 1台 2 双踪示波器0~10M 1台 3 函数信号发生 器 低频1台 4 模拟电路实验 箱 1台 5 电子毫伏表1只 6 万用表1只 7 数字电压表0~1只

200V 8 数字毫安表0~ 200mA 1只 9 晶体管特性图 示仪1台全班共 用 10 三极管9013 1只 11 电阻1kΩ/0.2 5W 1只R e 12 电阻 2.4kΩ/0 .25W 2只R S、R c、R L 13 电阻20kΩ/0. 25W 1只R b1、R b2 14 电阻500kΩ/ 0.25W 1只R b2 15 铝电解电容10μF/25 V 2只C1、C2 16 铝电解电容50μF/25 V 1只C e 3. 实验电路与说明 实验电路如图4.1所示,为电阻分压式工作点稳定单管放大器实验电路图。它的偏置电路采用R B1和R B2组成的分压电路,并在发射极中接有电

阻R E,以稳定放大器的静态工作点。当在放大器的输入端加入输入信号u i后,在放大器的输出端便可得到一个与u i相位相反,幅值被放大了的输出信号u0,从而实现了电压放大。安装电路时,要注意电解电容极性、直流电源正负极和信号源的极性。 图4.1 共射极单管放大器实验电路 4. 实验内容与步骤 (1)电路安装 ①安装之前先检查各元器件的参数是否正确,区分三极管的三个电极,并测量其β值。 ②按图4.1所示电路,在面包板或实验台上搭接电路。安装完毕后,应认真检查连线是否正确、牢固。 (2)测试静态工作点 ①电路安装完毕经检查无误后,首先将直流稳压电源调到12V,接通直流电源前,先将R W

相关文档
最新文档