当前位置:文档之家› 算法设计与分析实验报告格式

算法设计与分析实验报告格式

算法设计与分析实验报告格式
算法设计与分析实验报告格式

算法设计与分析实验报告一

实验名称统计数字问题评分

实验日期年月日指导教师刘长松

姓名刘飞初专业班级计算机0901 学号10

一.实验要求

1、掌握算法的计算复杂性概念。

2、掌握算法渐近复杂性的数学表述。

3、掌握用C++语言描述算法的方法。

4.实现具体的编程与上机实验,验证算法的时间复杂性函数。

二.实验内容

统计数字问题

1、问题描述

一本书的页码从自然数1 开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如,第6 页用数字6 表示,而不是06 或006 等。数字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1,2, (9)

2、编程任务

给定表示书的总页码的10 进制整数n (1≤n≤109) 。编程计算书的全部页码中分别用到多少次数字0,1,2, (9)

三.程序算法

将页码数除以10,得到一个整数商和余数,商就代表页码数减余数外有多少个1—9作为个位数,余数代表有1—余数本身这么多个数作为剩余的个位数,此外,商还代表1—商本身这些数出现了10次,余数还代表剩余的没有计算的商的大小的数的个数。把这些结果统计起来即可。

四.程序代码

#include

int s[10]; //记录0~9出现的次数

int a[10]; //a[i]记录n位数的规律

void sum(int n,int l,int m)

{

if(m==1)

{

int zero=1;

for(int i=0;i<=l;i++) //去除前缀0

{

s[0]-=zero;

zero*=10;

}

}

if(n<10)

{

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

{

s[i]+=1;

}

return;

}//位数为1位时,出现次数加1

//位数大于1时的出现次数

for(int t=1;t<=l;t++)//计算规律f(n)=n*10^(n-1) {

m=1;int i;

for(i=1;i

m=m*10;

a[t]=t*m;

}

int zero=1;

for(int i=0;i

{

zero*= 10;

} //求出输入数为10的n次方

int yushu=n%zero; //求出最高位以后的数

int zuigao=n/zero; //求出最高位zuigao

for(i=0;i

{

s[i]+=zero;

} //求出0~zuigao-1位的数的出现次数

for(i=0;i<10;i++)

{

s[i]+=zuigao*a[l];

} //求出与余数位数相同的0~zuigao-1位中0~9出现的次数

//如果余数是0,则程序可结束,不为0则补上所缺的0数,和最高位对应所缺的数if(yushu==0) //补上所缺的0数,并且最高位加1

{

s[zuigao]++;

s[0]+=l;

}

else

{

i=0;

while((zero/=10)>yushu)

{

i++;

}

s[0]+=i*(yushu+1);//补回因作模操作丢失的0

s[zuigao]+=(yushu+1);//补回最高位丢失的数目

sum(yushu,l-i-1,m+1);//处理余位数

}

}

void main()

{

int i,m,n,N,l;

cout<<"输入数字要查询的数字:";

cin>>N;

cout<<'\n';

n = N;

for(i=0;n>=10;i++)

{

n/=10;

} //求出N的位数n-1

l=i;

sum(N,l,1);

for(i=0; i<10;i++)

{

cout<< "数字"<

}

}

五.程序调试中的问题

调试过程中总是有这样那样的问题,通过一步步的修改,最终得以实现。

六.实验结果

算法设计与分析实验报告二

实验名称分治法实现归并排序算法评分

实验日期年月日指导教师刘长松

姓名刘飞初专业班级计算机0901 学号10

一.实验要求

1.了解用分治法求解的问题:当要求解一个输入规模为n,且n的取值相当大的问题时,如果问题可以分成k个不同子集合,得到k个不同的可独立求解的子问题,其中1

2.掌握分治法的一般控制流程。

DanC(p,q)

global n,A[1:n]; integer m,p,q; // 1≤p≤q≤n

if Small(p,q) then return G(p,q);

else m=Divide(p,q); // p≤m

return Combine(DanC(p,m),DanC(m+1,q));

endif

end DanC

3.实现典型的分治算法的编程与上机实验,验证算法的时间复杂性函数。

二.实验内容

1.编程实现归并排序算法,程序中加入比较次数的计数功能,输出排序结果和比较次数。

2.输入10组相同的数据,验证排序结果和完成排序的比较次数。

3.与复杂性函数所计算的比较次数比较。

4.用表格列出比较结果。

5.给出文字分析。

三.程序算法

1. 归并排序算法

procedure MERGESORT(low,high)

//A(low;high)是一个全程数组,它含

有high-low+1≥0个待排序的元素//

integer low,high;

if low

then mid←, //求这个集合的分割点//

call MERGESORT(low,mid) //将一个子集合排序//

call MERGESORT(mid+1,high) //将另一个子集合排序

call MERGE(low,mid,high) //归并两个已排序的子集合// endif

end MERGESORT

归并两个已排序的集合

procedure MERGE(low,mid,high)

//A(low:high)是一个全程数组//

//辅助数组B(low;high)//

integer h,i,j,k;

h←low;i←low;j←mid+1;

while h≤mid and j≤high do //当两个集合都没取尽时// if A(h)≤A(j) then B(i) ←A(h);h←h+1

else B(i) ←A(j);j←j+1

endif

i←i+1

repeat

if h>mid then

for k←j to high do //处理剩余的元素//

B(i) ←A(k);i←i+1

repeat

else for k←h to mid do

B(i) ←A(k);i←i+1

repeat

endif

将已归并的集合复制到A

end MERGE

2. 快速排序算法

QuickSort(p,q)

//将数组A[1:n]中的元素

A[p], A[p+1], , A[q]按不降次序排列,

并假定A[n+1]是一个确定的、且大于

A[1:n]中所有的数。//

int p,q; global n, A[1:n];

if p

j=Partition(p, q+1); // 划分后j成为划分元素的位置

QuickSort(p,j-1);

QuickSort(j+1,q);

endif

end QuickSort

procedure PARTITION(m,p)

//退出过程时,p带着划分元素所在的下标位置。//

integer m,p,i;global A(m:p-1)

v←A(m);i←m //A(m)是划分元素//

loop

loop i←i+1 until A(i)≥v repeat //i由左向右移//

loop p←p-1 until A(p)≤v repeat //p由右向左移//

if i

then call INTERCHANGE(A(i),A(p)) //A(i)和A(p)换位// else exit

endif

repeat

A(m) ←A(p);A(p) ←v //划分元素在位置p//

End PARTITION

四.程序代码

归并排序

#include

#include

#include

#include

#define M 11

typedef int KeyType;

typedef int ElemType;

struct rec{

KeyType key;

ElemType data;

};

typedef rec sqlist[M];

class guibing{

public:

guibing(sqlist b)

{

for(int i=0;i

r[i]=b[i];

}

void output(sqlist r,int n)

{

for(int i=0;i

cout<

cout<

}

void xuanze(sqlist b,int m,int n)

{

int i,j,k;

for(i=m;i

{

k=i;

for(j=i;j

if(b[k].key>b[j].key) k=j;

if(k!=i)

{

rec temp=b[k];

b[k]=b[i];

b[i]=temp;

}

}

}

void merge(int l,int m,int h,sqlist r2) {

xuanze(r,l,m);

xuanze(r,m,h);

output(r,M);

int i,j,k;

k=i=l;

for(j=m;i

{

if(r[i].key<=r[j].key)

{

r2[k]=r[i];

i++;

}

else

{

r2[k]=r[j];

j++;

}

output(r2,M);

}

while(j

{

r2[k]=r[j];

j++;

k++;

}

while(i<=m)

{

r2[k]=r[i];

i++;

k++;

}

output(r2,M);

}

private:

sqlist r;

};

void main()

{

cout<<"guibingfa1运行结果:\n";

sqlist a,b;

int i,j=0,k=M/2,n=M;

srand(time(0));

for(i=0;i

{

a[i].key=rand()%80;b[i].key=0;

}

guibing gx(a);

cout<<"排序前数组:\n";

gx.output(a,M);

cout<<"数组排序过程演示:\n";

gx.merge(j,k,n,b);

cout<<"排序后数组:\n";

gx.output(b,M);

cin.get();

}

快速排序

#include

#include

#include

#include

#define MAXI 10

typedef int KeyType;

typedef int ElemType;

struct rec{

KeyType key;

ElemType data;

};

typedef rec sqlist[MAXI];

class kuaisu

{

public:

kuaisu(sqlist a,int m):n(m)

{

for(int i=0;i

}

void quicksort(int s,int t)

{

int i;

if(s

i=part(s,t);

quicksort(s,i-1);

quicksort(i+1,t);

}

else return;

}

int part(int s,int t)

{

int i,j;

rec p;

i=s;j=t;p=b[s];

while(i

{

while(i=p.key)j--;

b[i]=b[j];

while(i

b[j]=b[i];

}

b[i]=p;

output();

return i;

}

void output()

{

for(int i=0;i

cout<

cout<

}

private:

sqlist b;

int n;

};

void main()

{

cout<<"kuaisu1.cpp运行结果:\n";

sqlist a1;

int i,n=MAXI,low=0,high=9;

srand(time(0));

for(i=0;i

a1[i].key=rand()%80;

kuaisu px(a1,n);

cout<<"数组排序过程演示:\n";

px.quicksort(low,high);

cout<<"排序后数组:\n";

px.output();

cin.get();

}

五.程序调试中的问题

1.归并排序

2.快速排序

算法设计与分析实验报告三

实验名称 动态规划算法实现多段图的最短路径问题 评分 实验日期 年 月 日 指导教师 刘长松 姓名 刘飞初 专业班级 计算机0901 学号 10

一.实验要求

1. 理解最优子结构的问题。

有一类问题的活动过程可以分成若干个阶段,而且在任一阶段后的行为依赖于该阶段的状态,与该阶段之前的过程如何达到这种状态的方式无关。这类问题的解决是多阶段的决策过程。在50年代,贝尔曼(Richard Bellman )等人提出了解决这类问题的“最优化原理”,从而创建了最优化问题的一种新的算法设计方法-动态规划。

对于一个多阶段过程问题,是否可以分段实现最优决策,依赖于该问题是否有最优子结构性质,能否采用动态规划的方法,还要看该问题的子问题是否具有重叠性质。 最优子结构性质:原问题的最优解包含了其子问题的最优解。

子问题重叠性质:每次产生的子问题并不总是新问题,有些子问题被反复计算多次。问题的最优子结构性质和子问题重叠性质是采用动态规划算法的两个基本要素。

2.理解分段决策Bellman 方程。

每一点最优都是上一点最优加上这段长度。即当前最优只与上一步有关。

U s 初始值,u j 第j 段的最优值。

3.一般方法

1) 找出最优解的性质,并刻画其结构特征;

2) 递归地定义最优值(写出动态规划方程);

3) 以自底向上的方式计算出最优值;

4) 根据计算最优值时得到的信息,构造一个最优解。

步骤1-3是动态规划算法的基本步骤。在只需要求出最优值的情形,步骤4可以省略,步骤3中记录的信息也较少;若需要求出问题的一个最优解,则必须执行步骤4,步骤3中记录的信息必须足够多以便构造最优解。

二.实验内容

1.编程实现多段图的最短路径问题的动态规划算法。

2.图的数据结构采用邻接表。

3.要求用文件装入5个多段图数据,编写从文件到邻接表的函数。

??

???+==≠}.{min ,0ij i j i j s w u u u

4.验证算法的时间复杂性。

三.程序算法

多段图算法

procedure FGRAPH(E,k,n,P)

//输入是按段的顺序给结点编号的,有n个结点

的k段图。E是边集,c(i,j)是边的成本。

P(1:k)是最小成本路径。//

real COST(n),integerD(n一1),P(k),r,j,k,n COST(n)← 0

for j←n-1to 1by-1do //计算COST(j)//

设r是一个这样的结点,(j,r) E且使c(j,r)+COST(r)取最小值

COST(j)←c(j,r)+COST(r)

D(j)←r

repeat //向前对j-1进行决策//

P(1)←1;P(k)←n;

for j←2 to k-1 do //找路径上的第j个节点// P(j)←D ( P(j-1) )

repeat

end FGRAPH

四.程序代码

多段图问题

#include

#include

#include

#define MAX_VERTEX_NUM 50

typedef struct ArcNode

{

int adjvex; //该弧所指向的顶点的位置

int value; //该结点与邻接结点间的代价

struct ArcNode *nextarc; //指向下一条弧的指针

}ArcNode, *node;

typedef struct VNode

{

int data; //顶点信息

ArcNode *firstArc; //指向第一条依附该顶点的弧的指针

}VNode, AdjList[MAX_VERTEX_NUM];

typedef struct Graph

{

AdjList vertices;

int vexnum,arcnum; //图的当前顶点数和弧数

}*ALGraph;

int build_adList(ALGraph G,int n,int a)

{ //建立邻接表

int v, m, i, t, h;

node p, q;

if(n < 0) return printf("ERROR");

G->vexnum = n; //图的顶点数

if(a < 0) return printf("ERROR");

G->arcnum = a; //图的弧数

for(m = 0; m < n; m++)

{

G->vertices[m].data = m;

G->vertices[m].firstArc = NULL;

}

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

{

i = 1;

printf("输入第%d条弧:", m);

scanf("%d,%d,%d",&t,&h,&v);

p = (ArcNode*)malloc(sizeof(ArcNode));

p->adjvex = h;

p->value = v;

p->nextarc = NULL;

while(G->vertices[i].data != t) i++; //转到下一个结点

if(!G->vertices[i].firstArc) //终点

G->vertices[i].firstArc = p;

else

{ //若当前结点有后继节点则后移

for(q = G->vertices[i].firstArc; q->nextarc; q = q->nextarc);

q->nextarc = p; //新开辟结点

}

}

return v;

void print_Graph(ALGraph G)

{ //打印邻接表

ArcNode *p=(ArcNode *)malloc(sizeof(ArcNode));

int i;

for(i = 1; i < G->vexnum; i++)

{

p = G->vertices[i].firstArc;

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

while(p)

{

printf("->%d,%d",p->adjvex,p->value);//第i个结点的邻接结点信息

p = p->nextarc;

}

printf("\n");

}

}

void fgraph(ALGraph G ,int k,int n)

{ //多段图ALGraph G,n为结点数,k为图的段数

//输入是按段的顺序给结点编号

int cost[100];

int d[100];

int path[100];

int j, r, i, min, w, value;

node p;

cost[n] = 0;

for(j = n - 1; j >= 1; j--) //向前处理结点

{

p = G->vertices[j].firstArc;

min = p->value+cost[p->adjvex]; //初始化路径最小代价

r = p->adjvex;

value = p->value;

while(p != NULL)

{ //r是一个的这样的结点,权值c(j,r)+cost[r]取最小值

if((p->value + cost[p->adjvex]) < min)

{

min = p->value + cost[p->adjvex]; //p->value=c(j,r)

r = p->adjvex;

value = p->value;

}

p = p->nextarc;

}

cost[j] = value + cost[r]; //当前节点的代价值

d[j] = r; //决策阶段,各结点到终点最小代价路径上前方顶点的编号}

path[1] = 1; path[k] = n;

for(i = 2; i <= k - 1; i++) //找出最小代价路径上的结点

path[i] = d[path[i - 1]];

printf("最小成本为:%d\n",cost[1]);

printf("最小成本路径为: ");

for(w = 1; w <= k; w++)

printf("%d->", path[w]);

}

void main()

{

ALGraph g;

int n,a,k;

g = (ALGraph)malloc(sizeof(ALGraph));

printf("请输入多段图节点数目:");

scanf("%d", &n);

printf("请输入多段图边的数目:");

scanf("%d", &a);

printf("请输入多段图的段数:");

scanf("%d", &k);

printf("输入多段图的弧的信息(弧头,弧尾,权值)\n");

build_adList(g, n, a);

printf("多段图的邻接表为:\n");

print_Graph(g);

fgraph(g, k, n);

getch();

}

五.实验结果

多段图问题

算法设计与分析实验报告四

实验名称贪心算法实现背包问题评分

实验日期年月日指导教师刘长松

姓名刘飞初专业班级计算机0901 学号10

一.实验要求

1. 优化问题

有n个输入,而它的解就由这n个输入满足某些事先给定的约束条件的某个子集组成,而把满足约束条件的子集称为该问题的可行解。可行解一般来说是不唯一的。那些使目标函数取极值(极大或极小)的可行解,称为最优解。

2.贪心法求优化问题

算法思想:在贪心算法中采用逐步构造最优解的方法。在每个阶段,都作出一个看上去最优的决策(在一定的标准下)。决策一旦作出,就不可再更改。作出贪心决策的依据称为贪心准则(greedy criterion)。

3.一般方法

1)根据题意,选取一种量度标准。

2)按这种量度标准对这n个输入排序

3)依次选择输入量加入部分解中。如果当前这个输入量的加入,不满足约束条件,则不把此输入加到这部分解中。

procedure GREEDY(A,n) /*贪心法一般控制流程*/

//A(1:n)包含n个输入//

solutions←φ //将解向量solution初始化为空/

for i←1 to n do

x←SELECT(A)

if FEASIBLE(solution,x)

then solutions←UNION(solution,x)

endif

repeat

return(solution)

end GREEDY

4. 实现典型的贪心算法的编程与上机实验,验证算法的时间复杂性函数。

二.实验内容

1. 编程实现背包问题贪心算法。通过具体算法理解如何通过局部最优实现全局最优,

并验证算法的时间复杂性。

2.输入5个的图的邻接矩阵,程序加入统计prim算法访问图的节点数和边数的语句。

3.将统计数与复杂性函数所计算的比较次数比较,用表格列出比较结果,给出文字分析。

三.程序算法

1.背包问题的贪心算法

procedure KNAPSACK(P,W,M,X,n)

//P(1:n)和W(1;n)分别含有按

P(i)/W(i)≥P(i+1)/W(i+1)排序的n件物品的效益值

和重量。M是背包的容量大小,而x(1:n)是解向量

real P(1:n),W(1:n),X(1:n),M,cu;

integer i,n;

X←0 //将解向量初始化为零

cu←M //cu是背包剩余容量

for i←1 to n do

if W(i)>cu then exit endif

X(i) ←1

cu←cu-W(i)

repeat

if i≤n then X(i) ←cu/ W(i)

endif

end GREEDY-KNAPSACK

procedure prim(G,)

status←“unseen” // T为空

status[1]←“tree node” // 将1放入T

for each edge(1,w) do

status[w]←“fringe” // 找到T的邻接点

dad[w] ←1; //w通过1与T建立联系

dist[w] ←weight(1,w) //w到T的距离

repeat

while status[t]≠“tree node” do

pick a fringe u with min dist[w] // 选取到T最近的节点

status[u]←“tree node”

for each edge(u,w) do

修改w和T的关系

repeat

repeat

课程设计实验报告

竭诚为您提供优质文档/双击可除 课程设计实验报告 篇一:课程设计(综合实验)报告格式 课程设计报告 (20XX--20XX年度第一学期) 名称:题目:院系:班级:学号:学生姓名:指导教师:设计周数: 成绩:日期:《软件设计与实践》课程设计计算机系软件设计与实践教学组 20XX年1月14 日 《软件设计与实践》课程设计 任务书 一、目的与要求 1.了解网络爬虫的架构和工作原理,实现网络爬虫的基本框架;2.开发平台采用JDK1.60eclipse集成开发环境。 二、主要内容 1.了解网络爬虫的构架,熟悉网页抓取的整个流程。

2.学习宽度优先和深度优先算法,实现宽度crawler应用程序的编写、调试和运行。 3.学习主题爬行及内容分析技术。 4.实现网络爬虫的基本框架。 三、进度计划 四、设计成果要求 1.要求按时按量完成所规定的实验内容; 2.界面设计要求友好、灵活、易操作、通用性强、具有实用性; 3.基本掌握所采用的开发平台。五、考核方式 平时成绩+验收+实验报告。 学生姓名:于兴隆指导教师:王蓝婧20XX年1月2日 一、课程设计的目的与要求1.目的: 1.1掌握crawler的工作原理及实现方法;1.2了解爬虫架构; 1.3熟悉网页抓取的整个流程及操作步骤; 1.4掌握宽度优先,深度优先算法,并实现宽度crawler 应用程序的编写、调试和运行;1.5掌握主题爬行及内容分析技术;1.6实现一个最基础的主题爬虫的过程;1.7理解pageRank算法,并编程验证;二、设计正文 网络爬虫研究与应用 [摘要]:本文通过对网络爬虫研究的逐步展开,讨论了爬虫的相关概念与技术,并通过实验设计了简单的基于宽度

数值分析实验报告176453

实验报告 插值法 数学实验室 数值逼近 算法设计 级 ____________________________ 号 ____________________________ 名 _____________________________ 实验项目名称 实验室 所属课程名称 实验类型 实验日期

实验概述: 【实验目的及要求】 本次实验的目的是熟练《数值分析》第二章“插值法”的相关内容,掌握三种插 多项式插值,三次样条插值,拉格朗日插值,并比较三种插值方法的 优劣。 本次试验要求编写牛顿多项式插值,三次样条插值,拉格朗日插值的程序编码,并 去实现。 【实验原理】 《数值分析》第二章“插值法”的相关内容,包括:牛顿多项式插值,三次样条插值, 拉格朗日 插值的相应算法和相关性质。 【实验环境】(使用的软硬件) 软件: MATLAB 2012a 硬件: 电脑型号:联想 Lenovo 昭阳E46A 笔记本电脑 操作系统: Win dows 8专业版 处理器:In tel ( R Core ( TM i3 CPU M 350 @2.27GHz 2.27GHz 实验内容: 【实验方案设计】 第一步,将书上关于三种插值方法的内容转化成程序语言,用 MATLA B 现; 第二步,分别用牛顿多项式插值,三次样条插值,拉格朗日插值求解不同的问题。 【实验过程】(实验步骤、记录、数据、分析) 实验的主要步骤是:首先分析问题,根据分析设计 MATLA 程序,利用程序算出 问题答案,分析所得答案结果,再得出最后结论。 实验一: 已知函数在下列各点的值为 试用4次牛顿插值多项式 P 4( x )及三次样条函数 S ( x )(自然边界条件)对数据进行插值。 用图给出{( X i , y i ), X i =0.2+0.08i , i=0 , 1, 11, 10 } , P 4 ( x )及 S ( x )。 值方法:牛顿 在MATLAB 件中

电路分析实验报告

南昌理工学院实验报告(样本) 二OO 年月日 课程名称电路分析实验名称电位、电压的测定 班级姓名同组人 指导教师评定签名 【一、实验名称】电位、电压的测定 【二、实验目的】 1、学会测量电路中各点电位和电压的方法,理解电位的相对性和电压的绝对性; 2、学会电路电位图的测量、绘制方法; 3、掌握使用直流稳压电源、直流电压表的使用方法。 【三、实验内容和原理】 (一)实验内容 1、测量电路中各点电位; 2、测量电路中相邻两点之间的电压值。 (二)实验原理 在一个闭合电路中,各点电位的高低视所选的电位参考点的不同而异,但任意两点之间的电压(即两点之间的电位差)则是不变的,这一性质称为电位的相对性和电压的绝对性。据此性质,我们可用一只电压表来测量出电路中各点的电位及任意两点间的电压。 若以电路中的电位值作纵坐标,电路中各点位置(电阻或电源)作横坐标,将测量到的各点电位在该坐标平面中标出,并把标出点按顺序用直线条相连接,就可得到电路的电位图,每一段直线段即表示该两点电位的变化情况。而且,任意两点的电位变化,即为该两点之间的电压。在电路中,电位参考点可任意选定,对于不同的参考点,所绘出的电位图形是不同,但其各点电位变化的规律却是一样的。 【四、实验条件】

【五、实验过程】 实验电路如图1-1所示,按图接线。图中的电源U S1用恒压源中的+6V(+5V)输出端,U S2用0~+30V可调电源输出端,并将输出电压调到+12V。 1、测量电路中各点电位 以图1-1中的A点作为电位参考点,分别测量B、C、D、E、F各点的电位。用电压表的黑笔端插入A点,红笔端分别插入B、C、D、E、F各点进行测量,数据记入表1-1中。以D点作为电位参考点,重复上述步骤,测得数据记入表1-1中。 图1-1 2、测量电路中相邻两点之间的电压值 在图1-1中,测量电压U AB:将电压表的红笔端插入A点,黑笔端插入B点,读电压表读数,记入表1-1中。按同样方法测量U BC、U CD、U DE、U EF及U FA,测量数据记入表1-1中。 【六、实验结果】 表1-1电路中各点电位和电压数据(单位:V)

vf课程设计实验报告模板

vf 课程设计实验报告模板 经济管理学院 学生信息管理系统的设计与实现 09年12 月28 日 、课程设计的目的和意义 当今,人类正在步入一个以智力资源的占有和配置,知识生产、分配和使用为最重要因素的知识经济时代,为了适应知识经济时代发展的需要,大力推动信息产业的发展,我们通过对学生信息管理系统的设计,来提高学生的操作能力,及对理论知识的实践能力,从而提高学生的基本素质,使其能更好的满足社会需求。 学生信息管理系统是一个简单实用的系统,它是学校进行学生管理的好帮手。 此软件功能齐全,设计合理,使用方便,适合各种学校对繁杂的学生信息进行统筹管理,具有严格的系统使用权限管理,具有完善的管理功能,强大的查询功能。它可以融入学校的信息管理系统中,不仅方便了学生信息各方面的管理,同时也为教师的管理带来了极大地便利。 我们进行本次课程设计的主要目的是通过上机实践操作,熟练掌握数据库的设 计、表单的设计、表单与数据库的连接、SQL语言的使用和了解它的功能:数据定 义、数据操纵、数据控制,以及简单VF程序的编写。基本实现学生信息的管理, 包括系统的登录、学生信息的录入、学生信息的浏览、学生信息的查询、学生信息的修改和学生信息的删除,并对Visual FoxPro6.0 的各种功能有进一步的了解,为我们更进一步深入的学习奠定基础,并在实践中提高我们的实际应用能力,为我们以后的学习和工作提供方便,使我们更容易融入当今社会,顺应知识经济发展的趋势。 - 1 -

、系统功能设计 通过该系统可以基本实现学生信息的管理,包括系统的登录、学生信息的录 入、学生信息的浏览、学生信息的查询、学生信息的修改和学生信息的删除。系统 功能模块如下图所示。 学生信息管理系统主界面 登录 管理 学学学学学 生生生生生 信信信信信 息息息息息 录查浏修删 入询览改除 三、系统设计内容及步骤 3.1创建项目管理文件 1.启动foxpro 系统,建一个项目管理器,命名为“学生管理”。 哑 目f ■ 也 电 岂同左 矣 氏H. 0 存 JI 蛋誤曾

算法设计与分析实验报告

本科实验报告 课程名称:算法设计与分析 实验项目:递归与分治算法 实验地点:计算机系实验楼110 专业班级:物联网1601 学号: 05 学生姓名:俞梦真 指导教师:郝晓丽 2018年 05月 04 日 实验一递归与分治算法 实验目的与要求

1.进一步熟悉C/C++语言的集成开发环境; 2.通过本实验加深对递归与分治策略的理解和运用。 实验课时 2学时 实验原理 分治(Divide-and-Conquer)的思想:一个规模为n的复杂问题的求解,可以划分成若干个规模小于n的子问题,再将子问题的解合并成原问题的解。 需要注意的是,分治法使用递归的思想。划分后的每一个子问题与原问题的性质相同,可用相同的求解方法。最后,当子问题规模足够小时,可以直接求解,然后逆求原问题的解。 实验题目 1.上机题目:格雷码构造问题 Gray码是一个长度为2n的序列。序列无相同元素,每个元素都是长度为n的串,相邻元素恰好只有一位不同。试设计一个算法对任意n构造相应的Gray码(分治、减治、变治皆可)。 对于给定的正整数n,格雷码为满足如下条件的一个编码序列。 (1)序列由2n个编码组成,每个编码都是长度为n的二进制位串。 (2)序列中无相同的编码。 (3)序列中位置相邻的两个编码恰有一位不同。 2.设计思想: 根据格雷码的性质,找到他的规律,可发现,1位是0 1。两位是00 01 11 10。三位是000 001 011 010 110 111 101 100。n位是前n-1位的2倍个。N-1个位前面加0,N-2为倒转再前面再加1。 3.代码设计: 归式,就是如何将原问题划分成子问题。 2.递归出口,递归终止的条件,即最小子问题的求解,可以允许多个出口。 3.界函数,问题规模变化的函数,它保证递归的规模向出口条件靠拢(2)递归与非递归之间如何实现程序的转换? (3)分析二分查找和快速排序中使用的分治思想。 答: 1.一般根据是否需要回朔可以把递归分成简单递归和复杂递归,简单递归一般就是根据递归式来找出递推公式(这也就引申出分治思想和动态规划)。 2.复杂递归一般就是模拟系统处理递归的机制,使用栈或队列等数据结构保存回朔点来求解。 (4)分析二次取中法和锦标赛算法中的分治思想。 二次取中法:使用快速排序法中所采用的分划方法,以主元为基准,将一个表划分为左右两个子表,左子表中的元素均小于主元,右子表中的元素均大于主元。主元的选择是将表划分为r

实验报告格式范文

实验报告格式范文 实验一撰写可行性研究报告 一、实验目的 1、掌握可行性研究步骤; 2、学习编制可行性研究报告。 二、实验要求 硬件:Intel Pentium 120 或以上级别的CPU,大于16MB的内存。 软件:Win dows 95/98/2000 操作系统,Office 97/2000 软件 学时:2学时 写岀此项实验报告 三、实验内容 1、可行性研究(结构化分析)方法; 2、绘制数据流图,使用Word写实验报告。 四、实验步骤 1 ?引言 1.1 编写目的 可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间内确定问题是否可解。 经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排。明确开发风险及其所带来的经济效益。本报告经审核后,交软件经理审查。 1 . 2 项目背景 (1 )待开发的软件产品名称:旅行社机票预定系统。 (2)本项目的提岀者:冯剑。开发者:李翀。用户:旅行社 (3)本软件产品将用于旅行社的机票预定和费用的记录。

1 . 3术语说明 DFD (数据流图):一种描述书记变换的图形工具,是结构化分析方法最普遍采用的表示手段,但数据流图并不是结构化分析模型的全部,数据字典和小说明为数据流图提供了补充,并用以验证图形表示的正确性、一致性和完整性,三者共同构成了被建系统的模型。 1 . 4.系统参考文献 参考文献见附录 2?可行性研究的前提 2.1基本要求 ⑴功能 本软件实现的功能有:为游客提供机票预定服务,提高旅游局的服务质量和服务效率。 对航班数据库的查询和修改,对机票费用记帐数据库的查询和修改,记录旅客信息(姓名、性别、年龄、身份证号、单位、旅行时间、目的地)、航班时间和班次,打印机票和帐单。 (2) 性能 时间:提供的信息必须及时的反映在工作平台上。售票系统的定单必须无差错的存 储在机场的主服务器上。对服务器上的数据必须进行及时正确的刷新。一笔业务在一分钟内完成。空间:运行空间 2M。 (3) 系统的输入和输岀 输入:旅行社定票单。数据完整,详实。 输岀:机票、帐单。简捷,快速,实时。 (4) 处理流程 旅行社将定票信息输入定票系统,系统输岀机票和帐单给旅客。 5 )安全保密要求

整流滤波电路实验报告

整流滤波电路实验报告 姓名:XXX 学号:5702112116 座号:11 时间:第六周星期4 一、实验目的 1、研究半波整流电路、全波桥式整流电路。 2、电容滤波电路,观察滤波器在半波和全波整流电路中的滤波效果。 3、整流滤波电路输出脉动电压的峰值。 4、初步掌握示波器显示与测量的技能。 二、实验仪器 示波器、6v交流电源、面包板、电容(10μF*1,470μF*1)、变阻箱、二极管*4、导线若干。 三、实验原理 1、利用二极管的单向导电作用,可将交流电变为直流电。常用的二极管整 流电路有单相半波整流电路和桥式整流电路等。 2、在桥式整流电路输出端与负载电阻RL并联一个较大电容C,构成电容滤 波电路。整流电路接入滤波电容后,不仅使输出电压变得平滑、纹波显著成小,同时输出电压的平均值也增大了。 四、实验步骤 1、连接好示波器,将信号输入线与6V交流电源连接,校准图形基准线。 2、如图,在面包板上连接好半波整流电路,将信号连接线与电阻并联。

3、如图,在面包板上连接好全波整流电路,将信号输入线与电阻连接。

4、在全波整流电路中将电阻换成470μF的电容,将信号接入线与电容并联。 5、如图,选择470μF的电容,连接好整流滤波电路,将信号接入线与电阻 并联。 改变电阻大小(200Ω、100Ω、50Ω、25Ω)

200Ω 100Ω 50Ω

25Ω 6、更换10μF的电容,改变电阻(200Ω、100Ω、50Ω、25Ω) 200Ω 100Ω

50 Ω 25 Ω 五、数据处理 1、当C 不变时,输出电压与电阻的关系。 输出电压与输入交流电压、纹波电压的关系如下: a v g ) r m V V V (输+= 又有i avg R C V ??=输89.2V )(r 所以当C 一定时,R 越大 就越小 )(r V avg 越大 输V

数值计算实验报告

(此文档为word格式,下载后您可任意编辑修改!) 2012级6班###(学号)计算机数值方法 实验报告成绩册 姓名:宋元台 学号: 成绩:

数值计算方法与算法实验报告 学期: 2014 至 2015 第 1 学期 2014年 12月1日课程名称: 数值计算方法与算法专业:信息与计算科学班级 12级5班 实验编号: 1实验项目Neton插值多项式指导教师:孙峪怀 姓名:宋元台学号:实验成绩: 一、实验目的及要求 实验目的: 掌握Newton插值多项式的算法,理解Newton插值多项式构造过程中基函数的继承特点,掌握差商表的计算特点。 实验要求: 1. 给出Newton插值算法 2. 用C语言实现算法 二、实验内容 三、实验步骤(该部分不够填写.请填写附页)

1.算法分析: 下面用伪码描述Newton插值多项式的算法: Step1 输入插值节点数n,插值点序列{x(i),f(i)},i=1,2,……,n,要计算的插值点x. Step2 形成差商表 for i=0 to n for j=n to i f(j)=((f(j)-f(j-1)(x(j)-x(j-1-i)); Step3 置初始值temp=1,newton=f(0) Step4 for i=1 to n temp=(x-x(i-1))*temp*由temp(k)=(x-x(k-1))*temp(k-1)形成 (x-x(0).....(x-x(i-1)* Newton=newton+temp*f(i); Step5 输出f(x)的近似数值newton(x)=newton. 2.用C语言实现算法的程序代码 #includeMAX_N) { printf("the input n is larger than MAX_N,please redefine the MAX_N.\n"); return 1; } if(n<=0) { printf("please input a number between 1 and %d.\n",MAX_N); return 1; } printf("now input the (x_i,y_i)i=0,...%d\n",n); for(i=0;i<=n;i++) { printf("please input x(%d) y(%d)\n",i,i);

电路分析基础实验报告模板

实验一 常用仪器使用(一) 成绩及评语 时间:第 周 星期 第 节 院系: 座号: 专业: 课号: 姓名: 学号: ============================================================================================ 一.实验目的 掌握万用表、直流稳定电源、函数信号发生器的使用方法。 二.实验仪器 万用表 1台 直流稳定电源 1台 函数信号发生器 1台 三.预习要求 1.认真阅读课本关于万用表、直流稳定电源、函数信号发生器相关内容。 是否已完成:是【 】 否【 】 2.认真学习万用表、直流稳定电源、函数信号发生器相关课件(360云盘下载)。 是否已完成:是【 】 否【 】 3.利用网络查找并学习GDM-8245台式数字万用表、SS2323直流稳定电源、TFG6020 DDS函数信号发生器使用说明。 是否已完成:是【 】 否【 】 4.掌握峰峰值、有效值的定义及正弦波、方波、三角波这三种波形峰峰值和有效值的转化关系。 是否已完成:是【 】 否【 】 5.请回答以前几个预习问题: (1)测量直流电压时,台式万用表应选择哪个档位? (2)要测量导线通断应该使用台式万用表哪个档位? (3) SS2323直流稳定电源输出控制开关叫什么名字?如果忘记打开会出现什么问题? (4)TFG6020 DDS函数信号发生器A路有哪几种输出波形? (5)请写出用TFG6020 DDS函数信号发生器输出三角波的设置步骤。 (6)请写出峰峰值、有效值的定义。

(7) 有效值为2V的正弦波、方波、三角波,其峰峰值分别为多少? 四.实验原理 根据课件及教师授课按以下要求写出各仪器操作方法: 1.请写出GDM-8245台式数字万用表常用档位作用,红黑表笔插法等简单使用方法。 2.请写出 SS2323直流稳定电源各按键、旋钮作用及简单使用方法,画出40v,±12v电压连接方法。 3. 请写出TFG6020 DDS函数信号发生器常用按键功能及简单使用方法。

程序设计课程设计实验报告

《程序设计》课程设计姓名: 学号: 班级:软件工程14班 指导教师: 成绩:

1.消除类游戏 【问题描述】 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 【基本要求】 现在给你一个n行m列的棋盘(1≤n,m≤30),棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被消除。 输入数据格式: 输入的第一行包含两个整数n,m,用空格分隔,分别表示棋盘的行数和列数。接下来n行,每行m 个整数,用空格分隔,分别表示每一个方格中的棋子的颜色。颜色使用1至9编号。 输出数据格式: 输出n行,每行m个整数,相邻的整数之间使用一个空格分隔,表示经过一次消除后的棋盘。如果一个方格中的棋子被消除,则对应的方格输出0,否则输出棋子的颜色编号。 【测试数据】 为方便调试程序,可将输入数据先写入一个文本文件,然后从文件读取数据处理,这样可避免每次运行程序时都要从键盘输入数据。 测试数据一 输出说明: 棋盘中第4列的1和第4行的2可以被消除,其他的方格中的棋子均保留。 测试数据二 输出说明: 棋盘中所有的1以及最后一行的3可以被同时消除,其他的方格中的棋子均保留。 【功能实现】 #include #include<> usingnamespacestd;

{ intm,n,i,j; inttemp; cin>>n>>m; temp=m; m=n; n=temp; int*map=newint[m*n]; int*mark=newint[m*n]; int*tmap=map; int*tmark=mark; intdif=0; ount=0; } p rintf("请输入要输入数的个数\n"); s canf("%d",&n);/*输入要输入数的个数*/ f or(i=0;idata1[j+1].number)

《算法设计与分析》实验一

学号1607070212 《算法设计与分析》 实验报告一 学生姓名张曾然 专业、班级16软件二班 指导教师唐国峰 成绩 计算机与信息工程学院软件工程系 2018 年9 月19 日

实验一:递归策略运用练习 一、实验目的 本次实验是针对递归算法的算法设计及应用练习,旨在加深学生对该算法原理的理解,提高学生运用该算法解决问题的能力。 二、实验步骤与要求 1.实验前复习课程所学知识以及阅读和理解指定的课外阅读材料; 2.学生独自完成实验指定内容; 3.实验结束后,用统一的实验报告模板编写实验报告。 4.提交说明: (1)电子版提交说明: a 需要提交Winrar压缩包,文件名为“《算法设计与分析》实验一_学号_姓名”, 如“《算法设计与分析》实验一_09290101_张三”。 b 压缩包内为一个“《算法设计与分析》实验一_学号_姓名”命名的顶层文件夹, 其下为两个文件夹,一个文件夹命名为“源程序”,另一个文件夹命名为“实验 报告电子版”。其下分别放置对应实验成果物。 (2)打印版提交说明: a 不可随意更改模板样式。 b 字体:中文为宋体,大小为10号字,英文为Time New Roman,大小为10号 字。 c 行间距:单倍行距。 (3)提交截止时间:2018年10月10日16:00。 三、实验项目 1.运用递归策略设计算法实现下述题目的求解过程。 题目列表如下: 【必做题】 (1)运动会开了N天,一共发出金牌M枚。第一天发金牌1枚加剩下的七分之一枚,第二天发金牌2枚加剩下的七分之一枚,第3天发金牌3枚加剩下的七分之一枚,以后每天都照此办理。到了第N天刚好还有金牌N枚,到此金牌全部发完。编程求N和M。 (2)国王分财产。某国王临终前给儿子们分财产。他把财产分为若干份,然后给第一个儿子一份,再加上剩余财产的1/10;给第二个儿子两份,再加上剩余财产的1/10;……;给第i 个儿子i份,再加上剩余财产的1/10。每个儿子都窃窃自喜。以为得到了父王的偏爱,孰不知国王是“一碗水端平”的。请用程序回答,老国王共有几个儿子?财产共分成了多少份?

叠加原理 实验报告范文(含数据处理)

创作编号: GB8878185555334563BT9125XW 创作者:凤呜大王* 叠加原理实验报告范文 一、实验目的 验证线性电路叠加原理的正确性,加深对线性电路的叠加性和齐次性的认识和理解。 二、原理说明 叠加原理指出:在有多个独立源共同作用下的线性电路中,通过每一个元件的电流或其两端的电压,可以看成是由每一个独立源单独作用时在该元件上所产生的电流或电压的代数和。 线性电路的齐次性是指当激励信号(某独立源的值)增加或减小K倍时,电路的响应(即在电路中各电阻元件上所建立的电流和电压值)也将增加或减小K倍。 三、实验设备 高性能电工技术实验装置DGJ-01:直流稳压电压、直流数字电压表、直流数字电流表、叠加原理实验电路板DGJ-03。 四、实验步骤 1.用实验装置上的DGJ-03线路,按照实验指导书上的图3-1,将两路稳压电源的输出分别调节为12V和6V,接入图中的U1和U2处。 2.通过调节开关K1和K2,分别将电源同时作用和单独作用在电路中,完成如下表格。 表3-1

3.将U2的数值调到12V,重复以上测量,并记录在表3-1的最后一行中。 4.将R3(330 )换成二极管IN4007,继续测量并填入表3-2中。 表3-2 五、实验数据处理和分析 对图3-1的线性电路进行理论分析,利用回路电流法或节点电压法列出电路方程,借助计算机进行方程求解,或直接用EWB软件对电路分析计算,得出的电压、电流的数据与测量值基本相符。验证了测量数据的准确性。电压表和电流表的测量有一定的误差,都在可允许的误差范围内。 验证叠加定理:以I1为例,U1单独作用时,I1a=8.693mA,,U2单独作用时, I1b=-1.198mA,I1a+I1b=7.495mA,U1和U2共同作用时,测量值为7.556mA,因此叠加性得以验证。2U2单独作用时,测量值为-2.395mA,而2*I1b=-2.396mA,因此齐次性得以验证。其他的支路电流和电压也可类似验证叠加定理的准确性。 对于含有二极管的非线性电路,表2中的数据不符合叠加性和齐次性。

个人信息管理系统毕业课程设计实验报告

(此文档为word格式,下载后您可任意编辑修改!) 山东交通学院 目录 1.系统分析 (2) 1.1系统需求分析 (2) 1.2项目规划 (2) 1.3系统功能结构分析 (3) 1.4设计目的分析 (3) 2.数据库系统设计 (4) 2.1数据表概要设计 (4) 2.2数据库逻辑结构设计 (4) 3.应用程序设计 (5) 3.1界面设置 (5) 3.2关键技术 (15) 4.系统安装 (20) 建立数据源 (20) 5.设计体会 (21) 参考文献 (22)

摘要 随着经济社会的发展,计算机已被应用到社会生活的各个领域。与此同时,互联网作为信息技术的通信桥梁连接着全球的计算机,而网站作为网络信息主要的表现形式而且还是互联网信息的主要承载者,在网络上表现出其及其重要的地位,并发挥着极其重要的作用。无论是在国内还是国外都得以迅速的发展和壮大,并被人们重视和关注。互联网已经彻底的改变了世界,互联网的世界里蕴藏着无限的可能,在这种情况下,各行各业及其个人、单位、工厂、企事业等等在网上构筑属于自己的网络信息平台,保护自己的网络资源并在互联网上开辟自己的市场和消费群体,以及构造自己的数字化世界和加强全球范围内不同地域的人们联系交流等等活动也就显的日益重要。于是各种各样的网站便如雨后春笋般地出现鱼龙混杂且良莠不齐。因此,个人信息的管理就显得尤为重要了。不仅可以更好的保护个人信息,对日常的使用也会提供很大的方便。关键词:个人信息管理系统;数据集;数据库;Visual C++6.0。 1.系统分析 1.1系统需求分析 在做本系统前,我对系统的需求做了如下分析: 1)登录权限:在登录权限的分析上我们规定必须凭借用户名和密码才可登陆,进行管理。 2)使用者功能:首先说明一下,我们的系统用户对象是个人。关于其本系统的功能,大致可分为日记管理,通讯录管理,备忘录管理,以及个人财务管理;日记管理,其中包括用户对日记编号,时间,地点,事件、人物的查询、

计算方法实验报告格式

计算方法实验报告格式 小组名称: 组长姓名(班号): 小组成员姓名(班号): 按贡献排序情况: 指导教师评语: 小组所得分数: 一个完整的实验,应包括数据准备、理论基础、实验内容及方法,最终对实验结果进行分析,以达到对理论知识的感性认识,进一步加深对相关算法的理解,数值实验以实验报告形式完成,实验报告格式如下: 一、实验名称 实验者可根据报告形式需要适当写出. 二、实验目的及要求 首先要求做实验者明确,为什么要做某个实验,实验目的是什么,做完该实验应达到什么结果,在实验过程中的注意事项,实验方法对结果的影响也可以以实验目的的形式列出. 三、算法描述(实验原理与基础理论) 数值实验本身就是为了加深对基础理论及方法的理解而设置的,所以要求将实验涉及到的理论基础,算法原理详尽列出. 四、实验内容 实验内容主要包括实验的实施方案、步骤、实验数据准备、实验的算法以及可能用到的仪器设备. 五、程序流程图 画出程序实现过程的流程图,以便更好的对程序执行的过程有清楚的认识,在程序调试过程中更容易发现问题. 六、实验结果 实验结果应包括实验的原始数据、中间结果及实验的最终结果,复杂的结果可以用表格

形式列出,较为简单的结果可以与实验结果分析合并出现. 七、实验结果分析 实验结果分析包括对对算法的理解与分析、改进与建议. 数值实验报告范例 为了更好地做好数值实验并写出规范的数值实验报告,下面给出一简单范例供读者参考. 数值实验报告 小组名称: 小组成员(班号): 按贡献排序情况: 指导教师评语: 小组所得分数: 一、实验名称 误差传播与算法稳定性. 二、实验目的 1.理解数值计算稳定性的概念. 2.了解数值计算方法的必要性. 3.体会数值计算的收敛性与收敛速度. 三、实验内容 计算dx x x I n n ? += 1 10 ,1,2,,10n = . 四、算法描述 由 dx x x I n n ? += 1 10 ,知 dx x x I n n ?+=--101110,则

电路原理图设计及Hspice实验报告

电子科技大学成都学院 (微电子技术系) 实验报告书 课程名称:电路原理图设计及Hspice 学号: 姓名: 教师: 年06月15日

实验一基本电路图的Hspice仿真 实验时间:同组人员: 一、实验目的 1.学习用Cadence软件画电路图。 2.用Cadence软件导出所需的电路仿真网表。 3.对反相器电路进行仿真,研究该反相器电路的特点。 二、实验仪器设备 Hspice软件、Cadence软件、服务器、电脑 三、实验原理和内容 激励源:直流源、交流小信号源。 瞬态源:正弦、脉冲、指数、分线段性和单频调频源等几种形式。 分析类型:分析类型语句由定义电路分析类型的描述语句和一些控制语句组成,如直流分析(.OP)、交流小信号分析(.AC)、瞬态分析(.TRAN)等分析语句,以及初始状态设置(.IC)、选择项设置(.OPTIONS)等控制语句。 这类语句以一个“.”开头,故也称为点语句。其位置可以在标题语句之间的任何地方,习惯上写在电路描述语句之后。 基本原理:(1)当UI=UIL=0V时,UGS1=0,因此V1管截止,而此时|UGS2|> |UTP|,所以V2导通,且导通内阻很低,所以UO=UOH≈UDD,即输出电平. (2)当UI=UIH=UDD时,UGS1=UDD>UTN,V1导通,而UGS2=0<|UTP|,因此V2截止。此时UO=UOL≈0,即输出为低电平。可见,CMOS反相器实现了逻辑非的功能. 四、实验步骤 1.打开Cadence软件,画出CMOS反相器电路图,导出反相器的HSPICE网表文件。 2.修改网表,仿真出图。 3.修改网表,做电路的瞬态仿真,观察输出变化,观察波形,并做说明。 4.对5个首尾连接的反相器组成的振荡器进行波形仿真。 5.分析仿真结果,得出结论。 五、实验数据 输入输出仿真: 网表: * lab2c - simple inverter

计算机网络课程设计实验报告

中南大学课程设计报告 课程:计算机网络课程设计 题目:基于Winpcap的网络流量统计分析 指导教师:张伟 目录 第一章总体设计 一、实体类设计 --------P3 二、功能类设计 --------P3 三、界面设计 --------P3

第二章详细设计 一、实体类实现 --------P4 二、功能类实现 --------P4 三、界面实现 --------P5 第三章源代码清单及说明 一、CaptureUtil.java --------P7 二、MyPcapPacketHandler.java --------P9 三、PacketMatch.java --------P9 四、Windows.java --------P13 第四章运行结果 --------P19 第五章心得体会 --------P21 第一章总体设计 一、实体类设计 TCP、UPD、ICMP、ARP、广播数据包五个包的数据结构设计 二、功能类设计 (1)网卡获取 (2)包的抓捕

(3)包的处理 三、界面设计 (1)布局 (2)按钮功能连接 第二章第二章详细设计 一、实体类实现 TCP、UPD、ICMP、ARP、广播数据包五个包的数据结构设计。 本程序采用Java编写,基于win10pcap。Win10pcap是winpcap在win10系统上的适用版本。Java对于winpcap使用jnetpcap进行支持。对于TCP、UPD、ICMP、ARP、广播数据包五种类型的包,在jnetpcap的jar包中大部分已经封装好了相关的实体类型。对应如下:ARP 实体类:https://www.doczj.com/doc/d33934763.html,work.Arp; UPD 实体类:https://www.doczj.com/doc/d33934763.html,work.Icmp;

数值分析实验报告模板

数值分析实验报告模板 篇一:数值分析实验报告(一)(完整) 数值分析实验报告 1 2 3 4 5 篇二:数值分析实验报告 实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。利用二分法求解给定非线性方程的根,在给定的范围内,假设f(x,y)在[a,b]上连续,f(a)xf(b) 直接影响迭代的次数甚至迭代的收敛与发散。即若x0 偏离所求根较远,Newton法可能发散的结论。并且本实验中还利用利用改进的Newton法求解同样的方程,且将结果与Newton法的结果比较分析。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。掌握二分法的原理,验证二分法,在选对有根区间的前提下,必是收

敛,但精度不够。熟悉Matlab语言编程,学习编程要点。体会Newton使用时的优点,和局部收敛性,而在初值选取不当时,会发散。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b) Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式xk?1?xk?f(xk) f'(xk) 产生逼近解x*的迭代数列{xk},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 xk?1?xk?rf(xk) 'f(xk) 其中r为要求的方程的根的重数,这就是改进的Newton 法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下 function y=f(x);

电路实验报告(5)

电路实验报告(5) 计科1403班覃舒婕 一、实验题目 集成放大器的应用 二、实验摘要(关键信息) 1、在面包板上搭接μA741的电路。首先将+12V和-12V直流电压正确接入μA741的Vcc+(7脚)和Vcc-(4脚)。 2、用μA741组成反比例放大电路,放大倍数自定,用示波器观察输入和输出波形,测量放大器的电压放大倍数。 3、用μA741组成积分电路,用示波器观察输入和输出波形,并做好记录。 三、实验环境(仪器用品等) 1)Tektronix DPO2012B示波器 2)RIGOL DG1022函数信号发生器 3)数字万用表 4)IT8302 直流稳压电源 5)电脑Multisim 13.0(画电路图) 6)面包板 7)μA741集成运算放大器,电阻,导线 四、实验原理和实验电路 1.μA741: The mA741 is a high performance operational amplifier with high open-loop gain, internal compensation, high common mode range and exceptional temperature stability. The mA741 is short-circuit-protected and allows for nulling of offset voltage.

如图所示,有八个端口,以黑点为参考点,逆时针增加排序,1和5是闲置端,2是反向输入端,3是同向输入端,4和7是正负电流的输入端,6是输出端,8是not current. 2集成运算放大器是一种具有高开环放大倍数、深度负反馈的直接耦合多级放大器,是模拟电子技术领域应用最广泛的集成器件。按照输入方式可分为同相、反相、差动三种接法,按照运算关系可分为比例、加法、减法、积分、微分等。利用输入方式和运算关系的组合,可接成各种运算放大器电路。 1. 反相比例运算放大器 其中,放大的倍数等于f R /1R 。 电路图:

数字电子钟课程设计方案实验报告

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书2016/2017 学年第一学期 学生姓名:张涛学号:1405024119 李子鹏学号:1405024125 课程设计题目:数字电子钟的设计 起迄日期:2017年1月4日~2017年7月10日 课程设计地点:科学楼 指导教师:姚爱琴 2017年月日

课程设计任务书

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计开题报告2016/2017 学年第一学期 题目:数字电子钟的设计 学生姓名:张涛学号:1405024119 李子鹏学号:1405024125 指导教师:姚爱琴 2017 年 1 月 6 日

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计说明书2016/2017 学年第二学期 题目:数字电子钟的设计 学生姓名:张涛学号:1405024119 李子鹏学号:1405024125 指导教师:姚爱琴 2017 年月日

目录 1 引言 (6) 2 数字电子钟设计方案 (6) 2.1 数字计时器的设计思想 (6) 2.2数字电路设计及元器件参数选择 (6) 2.2.1秒信号电路 (6) 2.2.2 时、分、秒计数器 (7) 2.2.3 计数显示电路 (8) 2.2.4校时电路 (9) 2.2.5 整点报时电路 (10) 2.2.6 总体电路 (10) 2.3 安装与调试 (11) 2.3.1 数字电子钟PCB图 (11) 3 设计单元原理说明 (11) 3.1 555定时器原理 (12) 3.2 计数器原理 (12) 3.3 译码和数码显示电路原理 (12) 3.4 校时电路原理 (12) 4 心得与体会 (12)

南京邮电大学算法设计实验报告——动态规划法

实验报告 (2009/2010学年第一学期) 课程名称算法分析与设计A 实验名称动态规划法 实验时间2009 年11 月20 日指导单位计算机学院软件工程系 指导教师张怡婷 学生姓名丁力琪班级学号B07030907 学院(系) 计算机学院专业软件工程

实验报告 实验名称动态规划法指导教师张怡婷实验类型验证实验学时2×2实验时间2009-11-20一、实验目的和任务 目的:加深对动态规划法的算法原理及实现过程的理解,学习用动态规划法解决实际应用中的最长公共子序列问题。 任务:用动态规划法实现求两序列的最长公共子序列,其比较结果可用于基因比较、文章比较等多个领域。 要求:掌握动态规划法的思想,及动态规划法在实际中的应用;分析最长公共子序列的问题特征,选择算法策略并设计具体算法,编程实现两输入序列的比较,并输出它们的最长公共子序列。 二、实验环境(实验设备) 硬件:计算机 软件:Visual C++

三、实验原理及内容(包括操作过程、结果分析等) 1、最长公共子序列(LCS)问题是:给定两个字符序列X={x1,x2,……,x m}和Y={y1,y2,……,y n},要求找出X和Y的一个最长公共子序列。 例如:X={a,b,c,b,d,a,b},Y={b,d,c,a,b,a}。它们的最长公共子序列LSC={b,c,d,a}。 通过“穷举法”列出所有X的所有子序列,检查其是否为Y的子序列并记录最长公共子序列并记录最长公共子序列的长度这种方法,求解时间为指数级别的,因此不可取。 2、分析LCS问题特征可知,如果Z={z1,z2,……,z k}为它们的最长公共子序列,则它们一定具有以下性质: (1)若x m=y n,则z k=x m=y n,且Z k-1是X m-1和Y n-1的最长公共子序列; (2)若x m≠y n且x m≠z k,则Z是X m-1和Y的最长公共子序列; (3)若x m≠y n且z k≠y n,则Z是X和Y的最长公共子序列。 这样就将求X和Y的最长公共子序列问题,分解为求解较小规模的问题: 若x m=y m,则进一步分解为求解两个(前缀)子字符序列X m-1和Y n-1的最长公共子序列问题; 如果x m≠y n,则原问题转化为求解两个子问题,即找出X m-1和Y的最长公共子序列与找出X 和Y n-1的最长公共子序列,取两者中较长者作为X和Y的最长公共子序列。 由此可见,两个序列的最长公共子序列包含了这两个序列的前缀的最长公共子序列,具有最优子结构性质。 3、令c[i][j]保存字符序列X i={x1,x2,……,x i}和Y j={y1,y2,……,y j}的最长公共子序列的长度,由上述分析可得如下递推式: 0 i=0或j=0 c[i][j]= c[i-1][j-1]+1 i,j>0且x i=y j max{c[i][j-1],c[i-1][j]} i,j>0且x i≠y j 由此可见,最长公共子序列的求解具有重叠子问题性质,如果采用递归算法实现,会得到一个指数时间算法,因此需要采用动态规划法自底向上求解,并保存子问题的解,这样可以避免重复计算子问题,在多项式时间内完成计算。 4、为了能由最优解值进一步得到最优解(即最长公共子序列),还需要一个二维数组s[][],数组中的元素s[i][j]记录c[i][j]的值是由三个子问题c[i-1][j-1]+1,c[i][j-1]和c[i-1][j]中的哪一个计算得到,从而可以得到最优解的当前解分量(即最长公共子序列中的当前字符),最终构造出最长公共子序列自身。

相关主题
文本预览
相关文档 最新文档