上机实验报告(完整实验代码)

上机实验报告(完整实验代码)
上机实验报告(完整实验代码)

《MATLAB 程序设计与应用》

实验一 matlab 集成环境使用与运算基础

1,先求下列表达式的值,然后显示matlab 工作空间的使用情况并保存全部变量。

(1)012

2sin851z e =+

程序:

.>> z1=2*sin(85*pi/180)/(1+exp(2)) 结果: z1 =

0.2375

(2)22121

(0.4552i z In x x +??==??-??

其中 程序:

>> x=[2,1+2*i;-0.45,5];

>> z2=0.5*log(x+sqrt(1+x*x)) 结果: z2 =

0.7114 - 0.0253i 0.8968 + 0.3658i 0.2139 + 0.9343i 1.1541 - 0.0044i

(3)0.3,9.2,8.2,...,8.2,9.2,0.3,2

3.0)3.0sin(23.03.03---=+++-=

-a a

In a e e z a a 提示:利用冒号表达式生成a 向量,求各点函数值时用点乘运算。 程序:

>> a=-3.0:0.1:30;

>> z3=(exp(0.3*a)-exp(-0.3*a))/2.*sin((a+0.3)*pi/180)+log((0.3+a)/2) 结果: z3 =

1.0e+003 *

Columns 1 through 4

0.0003 + 0.0031i 0.0003 + 0.0031i 0.0003 + 0.0031i 0.0002 + 0.0031i Columns 5 through 8

0.0002 + 0.0031i 0.0001 + 0.0031i 0.0001 + 0.0031i 0.0000 + 0.0031i Columns 9 through 12

-0.0000 + 0.0031i -0.0001 + 0.0031i -0.0001 + 0.0031i -0.0002 + 0.0031i Columns 13 through 16

-0.0003 + 0.0031i -0.0003 + 0.0031i -0.0004 + 0.0031i -0.0005 + 0.0031i Columns 17 through 20

-0.0006 + 0.0031i -0.0007 + 0.0031i -0.0008 + 0.0031i -0.0009 + 0.0031i Columns 21 through 24

-0.0010 + 0.0031i -0.0012 + 0.0031i -0.0014 + 0.0031i -0.0016 + 0.0031i Columns 25 through 28

-0.0019 + 0.0031i -0.0023 + 0.0031i -0.0030 + 0.0031i -0.0370 Columns 29 through 32

-0.0030 -0.0023 -0.0019 -0.0016 Columns 33 through 36

-0.0014 -0.0012 -0.0010 -0.0009 Columns 37 through 40

-0.0008 -0.0007 -0.0006 -0.0005 Columns 41 through 44

-0.0004 -0.0003 -0.0003 -0.0002 Columns 45 through 48

-0.0001 -0.0001 -0.0000 0.0000 Columns 49 through 52

0.0001 0.0001 0.0002 0.0002 Columns 53 through 56

0.0003 0.0003 0.0003 0.0004 Columns 57 through 60

0.0004 0.0005 0.0005 0.0005 Columns 61 through 64

0.0006 0.0006 0.0006 0.0007 Columns 65 through 68

0.0007 0.0007 0.0008 0.0008 Columns 69 through 72

0.0008 0.0008 0.0009 0.0009 Columns 73 through 76

0.0009 0.0010 0.0010 0.0010 Columns 77 through 80

0.0011 0.0011 0.0011 0.0011 Columns 81 through 84

0.0012 0.0012 0.0012 0.0013 Columns 85 through 88

0.0013 0.0013 0.0013 0.0014 Columns 89 through 92

0.0014 0.0014 0.0015 0.0015 Columns 93 through 96

0.0015 0.0016 0.0016 0.0016 Columns 97 through 100

0.0017 0.0017 0.0017 0.0018 Columns 101 through 104

0.0018 0.0018 0.0019 0.0019 Columns 105 through 108

0.0020 0.0020 0.0020 0.0021 Columns 109 through 112

0.0021 0.0022 0.0022 0.0023 Columns 113 through 116

0.0023 0.0024 0.0024 0.0025 Columns 117 through 120

0.0025 0.0026 0.0026 0.0027 Columns 121 through 124

0.0027 0.0028 0.0029 0.0029 Columns 125 through 128

0.0030 0.0031 0.0031 0.0032 Columns 129 through 132

0.0033 0.0034 0.0034 0.0035 Columns 133 through 136

0.0036 0.0037 0.0038 0.0039 Columns 137 through 140

0.0040 0.0041 0.0042 0.0043 Columns 141 through 144

0.0044 0.0045 0.0046 0.0047 Columns 145 through 148

0.0049 0.0050 0.0051 0.0053 Columns 149 through 152

0.0054 0.0056 0.0057 0.0059 Columns 153 through 156

0.0060 0.0062 0.0064 0.0066 Columns 157 through 160

0.0068 0.0069 0.0071 0.0074 Columns 161 through 164

0.0076 0.0078 0.0080 0.0083 Columns 165 through 168

0.0085 0.0088 0.0090 0.0093 Columns 169 through 172

0.0096 0.0099 0.0102 0.0105 Columns 173 through 176

0.0108 0.0112 0.0115 0.0119 Columns 177 through 180

0.0123 0.0127 0.0131 0.0135 Columns 181 through 184

0.0139 0.0144 0.0148 0.0153 Columns 185 through 188

0.0158 0.0163 0.0168 0.0174 Columns 189 through 192

0.0180 0.0185 0.0191 0.0198 Columns 193 through 196

0.0204 0.0211 0.0218 0.0225 Columns 197 through 200

0.0233 0.0241 0.0249 0.0257 Columns 201 through 204

0.0265 0.0274 0.0284 0.0293 Columns 205 through 208

0.0303 0.0313 0.0324 0.0335 Columns 209 through 212

0.0346 0.0358 0.0370 0.0382 Columns 213 through 216

0.0395 0.0409 0.0423 0.0437 Columns 217 through 220

0.0452 0.0467 0.0483 0.0500 Columns 221 through 224

0.0517 0.0534 0.0552 0.0571 Columns 225 through 228

0.0591 0.0611 0.0632 0.0654 Columns 229 through 232

0.0676 0.0699 0.0723 0.0748 Columns 233 through 236

0.0773 0.0800 0.0827 0.0856 Columns 237 through 240

0.0885 0.0915 0.0947 0.0979 Columns 241 through 244

0.1013 0.1047 0.1083 0.1121 Columns 245 through 248

0.1159 0.1199 0.1240 0.1282 Columns 249 through 252

0.1326 0.1372 0.1419 0.1467 Columns 253 through 256

0.1518 0.1570 0.1624 0.1679 Columns 257 through 260

0.1737 0.1796 0.1858 0.1921 Columns 261 through 264

0.1987 0.2055 0.2125 0.2198 Columns 265 through 268

0.2273 0.2351 0.2431 0.2514 Columns 269 through 272

0.2600 0.2689 0.2781 0.2876 Columns 273 through 276

0.2974 0.3076 0.3180 0.3289 Columns 277 through 280

0.3401 0.3517 0.3637 0.3761 Columns 281 through 284

0.3889 0.4021 0.4158 0.4299 Columns 285 through 288

0.4446 0.4597 0.4753 0.4915 Columns 289 through 292

0.5082 0.5254 0.5433 0.5617 Columns 293 through 296

0.5807 0.6004 0.6208 0.6418 Columns 297 through 300

0.6636 0.6861 0.7093 0.7333 Columns 301 through 304

0.7581 0.7838 0.8103 0.8377 Columns 305 through 308

0.8660 0.8952 0.9254 0.9567 Columns 309 through 312

0.9890 1.0223 1.0568 1.0924

Columns 313 through 316

1.1292 1.1673 1.2066 1.2472

Columns 317 through 320

1.2892 1.3326 1.3774 1.4237

Columns 321 through 324

1.4715 1.5210 1.5721 1.6249

Columns 325 through 328

1.6794 1.7357 1.7940 1.8541

Columns 329 through 331

1.9163 1.9805

2.0468

(4)??

?

??=<≤<≤<≤+--=5.2:5.0:0,322110,121,2224t t t t t t t t z 其中

提示:用逻辑表达式求分段函数值。 程序:

>> t=0:0.5:2.5;

>> z1=(t>0&t<=1).*t.^2; >> z2=(t>=1&t<2).*(t.^2-1); >> z3=(t>=2&t<3).*(t.^2-2*t+1); >> z=z1+z2+z3 z =

0 0.2500 1.0000 1.2500 1.0000 2.2500

2,已知 1234413134787,2033657327A B --????

????==????

????-????

求下列表达式的值:

(1)A+6*B和A-B+I(其中I为单位矩阵)(2)A*B和A.*B

(3)A^3和A.^3

(4)A/B及B\A

(5)[A,B]和[A([1,3],:);B^2]

程序:

(1)

>> A=[12,34,-4;34,7,87;3,65,7];

>> B=[1,3,-1;2,0,3;3,-2,7];

>> I=eye(3);

>> D=A+6*B

结果:

D =

18 52 -10

46 7 105

21 53 49

程序:

>>D =A-B+I

结果:

D=

12 31 -3

32 8 84

0 67 1

(2)

程序:

>> D=A*B

结果:

D =

68 44 62

309 -72 596

154 -5 241

程序:

>> D=A.*B

结果:

D =

12 102 4

68 0 261

9 -130 49

(3)

>> D=A^3

D =

37226 233824 48604

247370 149188 600766

78688 454142 118820 >> D=A.^3

D =

1728 39304 -64

39304 343 658503

27 274625 343

(4)

>> D=A/B

D =

16.4000 -13.6000 7.6000

35.8000 -76.2000 50.2000

67.0000 -134.0000 68.0000

>> D=B\A

D =

109.4000 -131.2000 322.8000

-53.0000 85.0000 -171.0000

-61.6000 89.8000 -186.2000

(4)

>> D=[A,B]

D =

12 34 -4 1 3 -1

34 7 87 2 0 3

3 65 7 3 -2 7

>> D=[A([1,3],:);B^2] D =

12 34 -4 3 65 7 4 5 1 11 0 19 20 -5 40

3,设有矩阵A 和B

1234530166789101769A ,11121314

150234161718192097021222324

2541311B ????

????-?

???

????==-?

???????

????????

(1) 求它们的乘积C ;

(2) 将矩阵C 的右下角3*2子矩阵赋给D ; (3) 察看matlab 工作空间的使用情况。 程序: (1)

>> A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20;21,22,23,24,25];

>> B=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11]; >> C=A*B 结果: C =

93 150 77 258 335 237 423 520 397 588 705 557 753 890 717 (2)

>> D=C(3:5,2:3) 结果: D =

520 397

705 557

890 717

4,完成下列操作:

(1)求[100,999]之间能被21整除的数的个数。

提示:先利用冒号表达式,再利用find和length函数。(2)建立一个字符串向量,删除其中的大写字母。

提示:利用find函数和空矩阵

程序:

(1)

>> A=100:1:999;

>> B=rem(A,21)==0;

>> C=find(B==1);

>> D=length(C)

结果:

D =

43

(2)

>> x=input('请输入字符串向量:','s');

请输入字符串向量:cToOmPpuIter

>> y=find(x>='A'&x<='Z');

>> x(y)=[];

>> x

x =

computer

实验二 matlab 矩阵分析与处理

1, 设有分块矩阵??

?

?

??=2*23

*22*33

*3S O R E A ,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证??

?

???+=2

2

S O RS R E A 。 >> E=eye(3);

>> R=rand(3,2); >> O=zeros(2,3); >> S=diag(1:2); >> A=[E,R;O,S] A =

1.0000 0 0 0.9501 0.4860 0 1.0000 0 0.2311 0.8913 0 0 1.0000 0.6068 0.7621 0 0 0 1.0000 0 0 0 0 0

2.0000

>> A^2

ans =

1.0000 0 0 1.9003 1.4579 0 1.0000 0 0.4623

2.6739 0 0 1.0000 1.2137 2.2863 0 0 0 1.0000 0 0 0 0 0 4.0000

2, 建立一个5×5矩阵,求它的行列式的值、迹、秩和范数。

>> A=[-29,6,18;20,5,12;-8,8,5]; >> b=eig(A)

b =

-25.3169 -10.5182 16.8351

>> [v,b]=eig(A) v =

0.7130 0.2803 0.2733 -0.6084 -0.7867 0.8725 0.3487 0.5501 0.4050 b =

-25.3169 0 0 0 -10.5182 0 0 0 16.8351

3,下面是一个线性方程组:

????

??????=????????????????????52.067.095.06/15/14/15/14/13/14/13/12/1321x x x (1)求方程的解;

(2)将方程右边向量元素b 3改为0.53,再求解,并比较b 3的变化和解的相对变化。

(1)

>> A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]; >> C=[0.95;0.67;0.52]; >> B=A\C B =

1.2000 0.6000 0.6000

>> A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];C=[0.95;0.67;0.52]

C =

0.9500

0.6700

0.5200

(2)

>> A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];

>> C=[0.95;0.67;0.53];

>> B=A\C

B =

3.0000

-6.6000

6.6000

3,建立A矩阵,试比较sqrtm(A)和sqrt(A),分析它们的区别。

>> A=magic(3);

>> sqrtm(A)

ans =

2.7065 + 0.0601i 0.0185 + 0.5347i 1.1480 - 0.5948i

0.4703 + 0.0829i 2.0288 + 0.7378i 1.3739 - 0.8207i

0.6962 - 0.1430i 1.8257 - 1.2725i 1.3511 + 1.4155i

>> sqrt(A)

ans =

2.8284 1.0000 2.4495

1.7321

2.2361 2.6458

2.0000

3.0000 1.4142

区别:sqrt是求矩阵里每个元素的平方根,并组成一个新的矩阵,而sqrtm是求矩阵的方根并组成一个新的矩阵。

实验三 选择结构程序设计

1,求分段函数的值。

??

?

??≠≠<≤≠<--+--+=其它及且-且325x 03x 0,1,65,6222x x x x x x x x x y

用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。 程序:

>> m=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0];

for x=m

if x<0&x~=-3 y1=x^2+x-6;

disp(['y= ',num2str(y1)])

elseif x>=0&x<5&x~=2&x~=3 y2=x^2-5*x+6;

disp(['y= ',num2str(y2)]) else

y3=x^2-x-1;

disp(['y= ',num2str(y3)]) end end y= 14 y= 11 y= 2 y= 1 y= -0.25 y= 5 y= 19

2,输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。其中90分~100分为A ,80分~89分为B ,70~79分为C ,60~69分为D ,60分以下为E 。

要求:

(1)分别用if和swtich语句实现;

(2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息。

(1)if语句

程序:

>> x=input('请输入一个分数:');

请输入一个分数:90

>> if x>=90

y='A';

elseif x>=80

y='B';

elseif x>=70

y='C';

elseif x>=60

y='D';

else y='E';

end

>> y

y =

A

程序:

>> x=input('请输入一个分数:');

请输入一个分数:120

>> if x>100|x<0

x=input('输入错误,请重新输入成绩:');

end

输入错误,请重新输入成绩:80

>> if x>=90

y='A';

elseif x>=80

y='B';

elseif x>=70

y='C';

elseif x>=60

y='D';

else y='E';

end

>> y

y =

(2)

>> x=input('请输入成绩:');

请输入成绩:102

>> while (x>100|x<0)

x=input('输入错误,输入错误请重新输入成绩');

end

输入错误,输入错误请重新输入成绩68

>> switch fix(x/10)

case {9,10}

y='A';

case {8}

y='B';

case {7}

y='C';

case {6}

y='D';

case {0,1,2,3,4,5}

y='E';

end

>> y

y =

D

4,建立5×6矩阵,要求输出矩阵第n行元素,当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。

程序:

>> a=rand(5,6)

a =

0.0153 0.4186 0.8381 0.5028 0.1934 0.6979

0.7468 0.8462 0.0196 0.7095 0.6822 0.3784

0.4451 0.5252 0.6813 0.4289 0.3028 0.8600

0.9318 0.2026 0.3795 0.3046 0.5417 0.8537

0.4660 0.6721 0.8318 0.1897 0.1509 0.5936

>> n=input('请输入要输出的第n:');

if n>5|n<0

b=a(5:5,:);

disp(['输入错误,程序输出最后一行的元素:',num2str(b)])

c=a(n:n,:);

disp(['输出结果是:',num2str(c)])

end

请输入要输出的第n:6

输入错误,程序输出最后一行的元素:0.46599 0.67214 0.8318 0.18965 0.15087 0.59356

《计算方法》课内实验报告

《计算方法》实验报告 姓名: 班级: 学号: 实验日期: 2011年10月26日

一、实验题目: 数值积分 二、实验目的: 1.熟悉matlab 编写及运行数值计算程序的方法。 2.进一步理解数值积分的基础理论。 3.进一步掌握应用不同的数值积分方法求解给定的积分并给出数据结果及误差分析。 三、实验内容: 1.分别用复合梯形求积公式及复合辛普森求积公式计算积分xdx x ln 10 ? , 要求计算精度达到410-,给出计算结果并比较两种方法的计算节点数. 2.用龙贝格求积方法计算积分dx x x ?+3 021,使误差不超过510-. 3.用3=n 的高斯-勒让德公式计算积分?3 1 sin x e x ,给出计算结果. 4.用辛普森公式(取2==M N ) 计算二重积分.5 .00 5 .00 dydx e x y ? ? - 四、实验结果: 1.(1)复合梯形法: 将区间[a,b]划分为n 等份,分点n k n a b h kh a x k ,2,1,0,,=-=+=在每个区间[1,+k k x x ](k=0,1,2,···n-1)上采用梯形公式,则得 )()]()([2)()(1 11 1 f R x f x f h dx x f dx x f I n n k k k b a n k x x k k ++===∑?∑? -=+-=+ 故)]()(2)([21 1 b f x f a f h T n k k n ++=∑-=称为复合梯形公式 计算步长和划分的区间 Eps=1E-4 h1=sqrt(Eps/abs(-(1-0)/12*1/(2+1))) h1 =0.0600 N1=ceil(1/h1) N1 =17 用复合梯形需要计算17个结点。 复合梯形: function T=trap(f,a,b,n) h=(b-a)/n;

计算方法上机实验报告

《计算方法》上机实验报告 班级:XXXXXX 小组成员:XXXXXXX XXXXXXX XXXXXXX XXXXXXX 任课教师:XXX 二〇一八年五月二十五日

前言 通过进行多次的上机实验,我们结合课本上的内容以及老师对我们的指导,能够较为熟练地掌握Newton 迭代法、Jacobi 迭代法、Gauss-Seidel 迭代法、Newton 插值法、Lagrange 插值法和Gauss 求积公式等六种算法的原理和使用方法,并参考课本例题进行了MATLAB 程序的编写。 以下为本次上机实验报告,按照实验内容共分为六部分。 实验一: 一、实验名称及题目: Newton 迭代法 例2.7(P38):应用Newton 迭代法求 在 附近的数值解 ,并使其满足 . 二、解题思路: 设'x 是0)(=x f 的根,选取0x 作为'x 初始近似值,过点())(,00x f x 做曲线)(x f y =的切线L ,L 的方程为))((')(000x x x f x f y -+=,求出L 与x 轴交点的横坐标) (') (0001x f x f x x - =,称1x 为'x 的一次近似值,过点))(,(11x f x 做曲线)(x f y =的切线,求该切线与x 轴的横坐标) (') (1112x f x f x x - =称2x 为'x

的二次近似值,重复以上过程,得'x 的近似值序列{}n x ,把 ) (') (1n n n n x f x f x x - =+称为'x 的1+n 次近似值,这种求解方法就是牛顿迭代法。 三、Matlab 程序代码: function newton_iteration(x0,tol) syms z %定义自变量 format long %定义精度 f=z*z*z-z-1; f1=diff(f);%求导 y=subs(f,z,x0); y1=subs(f1,z,x0);%向函数中代值 x1=x0-y/y1; k=1; while abs(x1-x0)>=tol x0=x1; y=subs(f,z,x0); y1=subs(f1,z,x0); x1=x0-y/y1;k=k+1; end x=double(x1) K 四、运行结果: 实验二:

网络攻防实验报告

实验报告模板

【实验目的】(简要描述实验目的) 采用免杀、混淆等技术的恶意代码有可能突破安全软件的防护而运行在目标主机中。即使用户感受到系统出现异常,但是仅仅通过杀毒软件等也无法检测与根除恶意代码,此时需要用户凭借其它系统工具和对操作系统的了解对恶意代码手工查杀。本实验假设在已经确定木马进程的前提下,要求学生借助进程检测和注册表检测等系统工具,终止木马进程运行,消除木马程序造成的影响,从而实现手工查杀恶意代码的过程。 【实验结果及分析】(需要有结果截图) 一、恶意代码手工查杀实验 1、虚拟机快照 为防止虚拟机破坏后无法恢复,应先将干净的虚拟机进行快照设置。点击菜单“虚拟机”“快照”“拍摄快照”,创建一个干净的虚拟机快照。 2.创建被感染的系统环境 由于恶意代码采用了免杀技术,因此能够成功绕过防病毒等安全软件检测,等用户感到系统异常时,通常恶意代码已经在主机系统内加载运行。为了尽量模拟一个逼真的用户环境,我们在搭建好的虚拟机中运行木马宿主程序 “radar0.exe”。运行完后,可以看见,“radar0.exe”自动删除。

3.木马进程的定位 用户对系统的熟悉程度决定了发现系统异常继而查找恶意代码的早晚。在本例中,明显可以感受到系统运行速度变慢,打开任务管理器,可以观察到有一个“陌生”的进程(非系统进程或安装软件进程)“wdfmgr.exe”占用CPU比率很高。 为了确定该进程为木马进程,可以通过查找该进程的静态属性如创建时间、

开发公司、大小等,以及通过对该进程强制终止是否重启等现象综合判断。在本例中,“Wdfmgr.exe”为木马radar.exe运行后新派生的木马进程。 4.记录程序行为 打开工具“ProcMon.exe”,为其新增过滤规则“Process Name”“is”“wdfmgr.exe”,然后开始监控。点击“Add”将过滤规则加入,可以看到ProcMon开始监控“wdfmgr.exe”进程的行为。需要注意的是,有时为了保证观察到的行为完备性,会先启动ProcMon工具,然后再启动被监控进程。 为了分别观察该进程对文件系统和注册表的操作,点击菜单 “Tools”“File Summary”,观察对文件系统的修改。

太原理工大学数值计算方法实验报告

本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解 法、线性方程组的迭代解法、代数插值和最 小二乘拟合多项式 实验地点:行勉楼 专业班级: ******** 学号: ********* 学生姓名: ******** 指导教师:李誌,崔冬华 2016年 4 月 8 日

y = x*x*x + 4 * x*x - 10; return y; } float Calculate(float a,float b) { c = (a + b) / 2; n++; if (GetY(c) == 0 || ((b - a) / 2) < 0.000005) { cout << c <<"为方程的解"<< endl; return 0; } if (GetY(a)*GetY(c) < 0) { return Calculate(a,c); } if (GetY(c)*GetY(b)< 0) { return Calculate(c,b); } } }; int main() { cout << "方程组为:f(x)=x^3+4x^2-10=0" << endl; float a, b; Text text; text.Getab(); a = text.a; b = text.b; text.Calculate(a, b); return 0; } 2.割线法: // 方程求根(割线法).cpp : 定义控制台应用程序的入口点。// #include "stdafx.h" #include"iostream"

心得体会 使用不同的方法,可以不同程度的求得方程的解,通过二分法计算的程序实现更加了解二分法的特点,二分法过程简单,程序容易实现,但该方法收敛比较慢一般用于求根的初始近似值,不同的方法速度不同。面对一个复杂的问题,要学会简化处理步骤,分步骤一点一点的循序处理,只有这样,才能高效的解决一个复杂问题。

c 计算器实验报告

简单计算器 姓名: 周吉祥 实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。 实验内容: (1)体系设计: 程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,运算结果能正确显示,可以清楚数据等。 (2)设计思路: 1)先在Visual C++ 6.0中建立一个MFC工程文件,名为 calculator. 2)在对话框中添加适当的编辑框、按钮、静态文件、复选框和单 选框 3)设计按钮,并修改其相应的ID与Caption. 4)选择和设置各控件的单击鼠标事件。 5)为编辑框添加double类型的关联变量m_edit1. 6)在calculatorDlg.h中添加math.h头文件,然后添加public成 员。 7)打开calculatorDlg.cpp文件,在构造函数中,进行成员初始 化和完善各控件的响应函数代码。 (3)程序清单:

●添加的public成员: double tempvalue; //存储中间变量 double result; //存储显示结果的值 int sort; //判断后面是何种运算:1.加法2.减法3. 乘法 4.除法 int append; //判断后面是否添加数字 ●成员初始化: CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/) : CDialog(CCalculatorDlg::IDD, pParent) { //{{AFX_DATA_INIT(CCalculatorDlg) m_edit1 = 0.0; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); tempvalue=0; result=0; sort=0; append=0; }

计算方法第二章方程求根上机报告

实验报告名称 班级:学号:姓名:成绩: 1实验目的 1)通过对二分法与牛顿迭代法作编程练习与上级运算,进一步体会二分法与牛顿迭代法的不同特点。 2)编写割线迭代法的程序,求非线性迭代法的解,并与牛顿迭代法。 2 实验内容 用牛顿法和割线法求下列方程的根 x^2-e^x=0; x*e^x-1=0; lgx+x-2=0; 3实验步骤 1)根据二分法和牛顿迭代法,割线法的算法编写相应的求根函数; 2)将题中所给参数带入二分法函数,确定大致区间; 3)用牛顿迭代法和割线法分别对方程进行求解; 3 程序设计 牛顿迭代法x0=1.0; N=100; k=0; eps=5e-6; delta=1e-6; while(1) x1=x0-fc1(x0)/fc2(x0); k=k+1; if k>N disp('Newmethod failed')

break end if(abs(x1-x0)=delta) c=x1; x1=cutnext(x0,x1); x0=c; %x0 x1μYí?μ?μ?x1 x2 è?è?±£′??úx0 x1 end k=k+1; if k>N disp('Cutline method failed') break; end if(abs(x1-x0)

网络防御实验报告

网络防御实验报告 学院计算机学院 专业网络工程 班级1班 姓名刘小芳 学号41009040127 - 2013年12月30日

一.实验题目 网络防御实验 二.实验环境 PC 机一台; 操作系统:win7 物理地址:EO-E9-A5-81-A5-1D IP地址:192.168.1.102 三.实验目的 掌握有关网络防御的基本原理和方法; 四.常见网络防御方法 10.1物理层 10.2网络层 路由交换策略 VLAN划分 防火墙、隔离网闸 入侵检测 抗拒绝服务 传输加密 10.3系统层 漏洞扫描 系统安全加固 10.4应用层 防病毒 安全功能增强 10.5管理层 独立的管理队伍 统一的管理策略 五、实验方法概述 前面设计了网络攻击实验,现在在前面的基础上完成网络攻击的防御,主要模仿现在常用的网络防御手段,如防火墙等。 六.概述: 1.恶意代码及黑客攻击手段的三大特点: 传播速度惊人:“大型推土机”技术(Mass rooter),是新一代规模性恶意代码具备的显著功能。 这些恶意代码不仅能实现自我复制,还能自动攻击内外网上的其它主机,并以受害者为攻击源继续攻击其它网络和主机。 以这些代码设计的多线程和繁殖速度,一个新蠕虫在一夜之间就可以传播到互联网的各个角落。

2.受害面惊人:许多国家的能源、交通、金融、化工、军事、科技和政府部门等关键领域的信息化程度逐年提高,这些领域的用户单位的计算机网络,直接或间接地与Internet有所联系。 各种病毒、蠕虫等恶意代码,和各种黑客攻击,通过Internet为主线,对全球各行业的计算机网络用户都造成了严重的影响。 3穿透深度:蠕虫和黑客越来越不满足于攻击在线的网站,各种致力于突破各种边界防线的攻击方式层出不穷。 一个新的攻击手段,第一批受害对象是那些24小时在线的网站主机和各种网络的边界主机; 第二批受害对象是与Internet联网的,经常收发邮件的个人用户; 第三批受害对象是OA网或其它二线内网的工作站; 终极的受害对象可能会波及到生产网络和关键资产主机。 4.网络攻击的动机 偷取国家机密 商业竞争行为 内部员工对单位的不满 对企业核心机密的企望 网络接入帐号、信用卡号等金钱利益的诱惑 利用攻击网络站点而出名 对网络安全技术的挑战 对网络的好奇心 5.攻击的过程 预攻击攻击后攻击

计算方法实验报告格式

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

形式列出,较为简单的结果可以与实验结果分析合并出现. 七、实验结果分析 实验结果分析包括对对算法的理解与分析、改进与建议. 数值实验报告范例 为了更好地做好数值实验并写出规范的数值实验报告,下面给出一简单范例供读者参考. 数值实验报告 小组名称: 小组成员(班号): 按贡献排序情况: 指导教师评语: 小组所得分数: 一、实验名称 误差传播与算法稳定性. 二、实验目的 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,则

数值分析上机实验报告

数值分析上机实验报告

《数值分析》上机实验报告 1.用Newton 法求方程 X 7-X 4+14=0 在(0.1,1.9)中的近似根(初始近似值取为区间端点,迭代6次或误差小于0.00001)。 1.1 理论依据: 设函数在有限区间[a ,b]上二阶导数存在,且满足条件 {}α?上的惟一解在区间平方收敛于方程所生的迭代序列 迭代过程由则对任意初始近似值达到的一个中使是其中上不变号 在区间],[0)(3,2,1,0,) (') ()(],,[x |))(),((|,|,)(||)(|.4;0)(.3],[)(.20 )()(.110......b a x f x k x f x f x x x Newton b a b f a f mir b a c x f a b c f x f b a x f b f x f k k k k k k ==- ==∈≤-≠>+ 令 )9.1()9.1(0)8(4233642)(0)16(71127)(0)9.1(,0)1.0(,1428)(3 2 2 5 333647>?''<-=-=''<-=-='<>+-=f f x x x x x f x x x x x f f f x x x f 故以1.9为起点 ?? ?? ? ='- =+9.1)()(01x x f x f x x k k k k 如此一次一次的迭代,逼近x 的真实根。当前后两个的差<=ε时,就认为求出了近似的根。本程序用Newton 法求代数方程(最高次数不大于10)在(a,b )区间的根。

1.2 C语言程序原代码: #include #include main() {double x2,f,f1; double x1=1.9; //取初值为1.9 do {x2=x1; f=pow(x2,7)-28*pow(x2,4)+14; f1=7*pow(x2,6)-4*28*pow(x2,3); x1=x2-f/f1;} while(fabs(x1-x2)>=0.00001||x1<0.1); //限制循环次数printf("计算结果:x=%f\n",x1);} 1.3 运行结果: 1.4 MATLAB上机程序 function y=Newton(f,df,x0,eps,M) d=0; for k=1:M if feval(df,x0)==0 d=2;break else x1=x0-feval(f,x0)/feval(df,x0); end e=abs(x1-x0); x0=x1; if e<=eps&&abs(feval(f,x1))<=eps d=1;break end end

实验1-木马病毒攻防

南昌航空大学实验报告 二〇一三年十一月八日 课程名称:信息安全实验名称:实验1木马攻击与防范 班级:xxx 姓名:xxx 同组人: 指导教师评定:签名: 一、实验目的 通过对木马的练习,使读者理解和掌握木马传播和运行的机制;通过手动删除木马,掌握检查木马和删除木马的技巧,学会防御木马的相关知识,加深对木马的安全防范意识。 二、实验原理 木马的全称为特洛伊木马,源自古希腊神话。木马是隐藏在正常程序中的具有特殊功能的恶意代码,是具备破坏、删除和修改文件、发送密码、记录键盘、实施DOS攻击甚至完全控制计算机等特殊功能的后门程序。它隐藏在目标计算机里,可以随计算机自动启动并在某一端口监听来自控制端的控制信息。 1.木马的特性 木马程序为了实现其特殊功能,一般应该具有以下性质: (1)伪装性(2)隐藏性(3)破坏性(4)窃密性 2.木马的入侵途径 木马入侵的主要途径是通过一定的欺骗方法,如更改图标、把木马文件与普通文件合并,欺骗被攻击者下载并执行做了手脚的木马程序,就会把木马安装到被攻击者的计算机中。木马也可以通过Script、ActiveX及ASP、CGI交互脚本的方式入侵,攻击者可以利用浏览器的漏洞诱导上网者单击网页,这样浏览器就会自动执行脚本,实现木马的下载和安装。木马还可以利用系统的一些漏洞入侵,获得控制权限,然后在被攻击的服务器上安装并运行木马。3.木马的种类 (1)按照木马的发展历程,可以分为4个阶段:第1代木马是伪装型病毒;第2代木马是网络传播型木马;第3代木马在连接方式上有了改进,利用了端口反弹技术,例如灰鸽子木马;第4代木马在进程隐藏方面做了较大改动,让木马服务器端运行时没有进程,网络操作插入到系统进程或者应用进程中完成,例如广外男生木马。 (2)按照功能分类,木马又可以分为:破坏型木马;密码发送型木马;服务型木马;DOS 攻击型木马;代理型木马;远程控制型木马。 4.木马的工作原理 下面简单介绍一下木马的传统连接技术、反弹端口技术和线程插入技术。 (1)木马的传统连接技术;C/S木马原理如图1-1所示。第1代和第2代木马都采用的是C/S连接方式,这都属于客户端主动连接方式。服务器端的远程主机开放监听端目等待外部的连接,当入侵者需要与远程主机连接时,便主动发出连接请求,从而建立连接。 (2)木马的反弹端口技术;随着防火墙技术的发展,它可以有效拦截采用传统连接方式。但防火墙对内部发起的连接请求则认为是正常连接,第3代和第4代“反弹式”木马就是利用这个缺点,其服务器端程序主动发起对外连接请求,再通过某些方式连接到木马的客户端,如图1-2和图1-3所示。

计算方法上机实习题大作业(实验报告).

计算方法实验报告 班级: 学号: 姓名: 成绩: 1 舍入误差及稳定性 一、实验目的 (1)通过上机编程,复习巩固以前所学程序设计语言及上机操作指令; (2)通过上机计算,了解舍入误差所引起的数值不稳定性 二、实验内容 1、用两种不同的顺序计算10000 21n n -=∑,分析其误差的变化 2、已知连分数() 1 01223//(.../)n n a f b b a b a a b =+ +++,利用下面的算法计算f : 1 1 ,i n n i i i a d b d b d ++==+ (1,2,...,0 i n n =-- 0f d = 写一程序,读入011,,,...,,,...,,n n n b b b a a 计算并打印f 3、给出一个有效的算法和一个无效的算法计算积分 1 041 n n x y dx x =+? (0,1,...,1 n = 4、设2 2 11N N j S j == -∑ ,已知其精确值为1311221N N ?? -- ?+?? (1)编制按从大到小的顺序计算N S 的程序 (2)编制按从小到大的顺序计算N S 的程序 (3)按两种顺序分别计算10001000030000,,,S S S 并指出有效位数 三、实验步骤、程序设计、实验结果及分析 1、用两种不同的顺序计算10000 2 1n n -=∑,分析其误差的变化 (1)实验步骤: 分别从1~10000和从10000~1两种顺序进行计算,应包含的头文件有stdio.h 和math.h (2)程序设计: a.顺序计算

#include #include void main() { double sum=0; int n=1; while(1) { sum=sum+(1/pow(n,2)); if(n%1000==0)printf("sun[%d]=%-30f",n,sum); if(n>=10000)break; n++; } printf("sum[%d]=%f\n",n,sum); } b.逆序计算 #include #include void main() { double sum=0; int n=10000; while(1) { sum=sum+(1/pow(n,2)); if(n%1000==0) printf("sum[%d]=%-30f",n,sum); if(n<=1)break; n--; } printf("sum[%d]=%f\n",n,sum); } (3)实验结果及分析: 程序运行结果: a.顺序计算

计算机病毒实验报告

计算机病毒实验报告 ——windows病毒实验 姓名:张艳秋 学号:081300607 班级:信安0802 指导老师:韦俊银 实验日期:2011.5.27

实验内容 1.PE文件感染实验(选) 2.暴风一号病毒 3.VBS病毒产生 4.宏病毒实验(选)

PE文件感染实验 实验目的 了解pe病毒的感染过程 实验环境 硬件设备 PC机一台(建议虚拟机) 软件工具 Office Word 2007 实验步骤 一:参照病毒感染PE文件的7个步骤,记录病毒是如何感染文件(文字和截屏形式) 病毒感染文件过程(以感染文件ebookcode.exe为例): 重定位,获得所有API地址: …… 通过软件Stud_PE可查看可执行文件ebookcode.exe的结构可查看文件内容: 1.判断目标文件开始的两个字节是否为“MZ”:

2.判断PE文件标记“PE”: 3.判断感染标记,如果已被感染过则跳出继续执行宿主程序,否则继续: 4.读取IMAGE_FILE_HEADER的NumberOfSections域,获得Data Directory (数据目录)的个数,(每个数据目录信息占8个字节): 5.得到节表起始位置。(数据目录的偏移地址+数据目录占用的字节数=节表起始位置):

6.得到节表的末尾偏移(紧接其后用于写入一个新的病毒节信息)节表起始位置+节的个数*(每个节表占用的字节数28H)=节表的末尾偏移 7.开始写入节表,感染文件: 二:在掌握Stud_PE工具的基础上,比较文件感染前后有哪些变化。 感染前:

感染后: 由上两图可以看出,感染前后有4处发生了变化: 1:PE文件头中入口点: 感染病毒后ebookedit.exe程序的入口点变成了病毒文件的入口点 2:PointerToRawData域值,即该文件的偏移量发生了变化; 3:imag的大小发生了变化; 4:sections的数量发生了变化。 由.exe文件感染前后变化可知,PE病毒感染过程即在文件中添加一个新节,

大学大一c语言程序设计实验室上机题全部代码答案(实验报告)汇编

C语言实验报告 实验1-1: hello world程序: 源代码: #include main() { printf("hello world!\n"); system("pause"); } 实验1-2: 完成3个数据的输入、求和并输出计算结果的程序: 源代码: #include main() { int i,j,k,sum; scanf("%d%d%d",&i,&j,&k); sum=i+j+k; printf("sum=%d",sum); system("pause"); 实验1-3: 在屏幕上输出如下图形: A BBB CCCCC 源代码: #include main() { printf(" A\n"); printf(" BBB\n"); printf(" CCCCC\n"); system("pause"); } 实验2-1: 计算由键盘输入的任何两个双精度数据的平均值 源代码: #include

main() { double a,b; scanf("%lf%lf",&a,&b); printf("%.1lf\n",(a+b)/2); system("pause"); } 实验2-2: 写一个输入7个数据的程序,把输入的数据代入a + b * (c – d ) / e * f – g 表达式进行运算源代码: #include main() { float a,b,c,d,e,f,g,x; scanf("%f%f%f%f%f%f%f",&a,&b,&c,&d,&e,&f,&g); x=a + b * (c - d ) / e * f - g; printf("x=%f",x); system("pause"); } 实验2-3: 编写一个C语言程序,测试下列各表达式: i, j i + 1 , j + 1 i++ , j++ ++i , ++j i+++++j 源代码: #include main() { int i=1,j=1; printf("%d %d\n",i+1,j+1); printf("%d %d\n",i++,j++); printf("%d %d\n",++i,++j); printf("%d\n",(i++)+(++j)); system("pause"); } 实验2-4: 输入存款金额money,存期year和年利率rate,根据下列公式计算存款到期时的利息interest (税前),输出时保留2位小数。 interest = money(1+rate)year - money

计算方法实验报告 拟合

南京信息工程大学实验(实习)报告 一、实验目的: 用最小二乘法将给定的十个点拟合成三次多项式。 二、实验步骤: 用matlab编制以函数为基的多项式最小二乘拟合程序,并用于对下列数据作三次多项式最小二乘拟合(取权函数wi=1) x -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 y -2.30 -1 -0.14 -0.25 0.61 1.03 1.75 2.75 4.42 6.94 给定直线方程为:y=1/4*x3+1/2*x2+x+1 三、实验结论: 最小二乘法:通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。 一般地。当测量数据的散布图无明显的规律时,习惯上取n次代数多项式。 程序运行结果为: a = 0.9731 1.1023 0.4862 0.2238 即拟合的三次方程为:y=0.9731+1.1023x+0.4862*x2+0.2238*x3

-2.5 -2-1.5-1-0.5 00.51 1.52 2.5 -4-20246 81012 x 轴 y 轴 拟合图 离散点 y=a(1)+a(2)*x+a(3)*x.2+a(4)*x.3 结论: 一般情况下,拟合函数使得所有的残差为零是不可能的。由图形可以看出最小二乘解决了残差的正负相互抵消的问题,使得拟合函数更加密合实验数据。 优点:曲线拟合是使拟合函数和一系列的离散点与观测值的偏差平方和达到最小。 缺点:由于计算方法简单,若要保证数据的精确度,需要大量的数据代入计算。

防火墙实验报告 2

计算机安全实验报告 实验题目:天网防火墙windows安全设置专业/班级:计科一班 学号:110511407 姓名:李冲 指导教师:张小庆

一天网防火墙技术 1 实验题目简述 个人防火墙是防止电脑中的信息被外部侵袭的一项技术,在系统中监控、阻止任何未经授权允许的数据进入或发出到互联网及其他网络系统。个人防火墙产品如著名Symantec公司的诺顿、Network Ice公司的BlackIce Defender、McAfee公司的思科及Zone Lab的free ZoneAlarm 等,都能帮助用户的系统进行监控及管理,防止特洛伊木马、spy-ware 等病毒程序通过网络进入电脑或向外部扩散。 这些软件都能够独立运行于整个系统中或针对个别程序、项目,所以在使用时十分方便及实用。本次试验采用天网个人防火墙SkyNet FireWall进行个人防火墙简单的配置应用。 2.实验目标和意义 实验的目标是在于熟悉个人防火墙的配置与应用,以便更加保证个人电脑的网络安全,避免恶意用户以及程序的入侵。防治安全威胁对个人计算机产生的破坏。 3.实验原理和实验设备 3.1 实验原理 随着计算机技术的迅速发展,在计算机上处理的业务也由基于单机的数学运算、文件处理,基于简单连接的内部网络的内部业务处理、办公自动化等发展到基于复杂的内部网、企业外部网、全球互联网的企业级计算机处理系统和世界范围内的信息共享和业务处理。在系统处理能力提高的同时,系统的连接能力也在不断的提高。但在连接能力信息、流通能力提高的同时,

基于网络连接的安全问题也日益突出,因此计算机安全问题,应该像每家每户的防火防盗问题一样,做到防范于未然。防火墙则是一个安全策略的检查站。所有进出的信息都必须通过防火墙,防火墙便成为安全问题的检查点,使可疑的访问被拒绝于门外。 防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能禁止特定端口的流出通信,封锁特洛伊木马。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。 例如,防火墙可以限制 TCP、UDP协议及TCP协议允许访问端口范围,当不符合条件时,程序将询问用户或禁止操作,这样可以防止恶意程序或木马向外发送、泄露主机信息。并且可以通过配置防火墙IP规则,监视和拦截恶意信息。与此通知,还可以利用IP规则封杀指定 TCP/UDP端口,有效地防御入侵,如139漏洞、震荡波等。 3.1 实验设备 Window 7 天网个人防火墙2010版 4.实验步骤 4.1 实验步骤 第一步:局域网地址设置,防火墙将会以这个地址来区分局域网或者是INTERNET的IP来源。设置如图3-1.

周信东主编版C语言程序设计基础实验一实验报告

周信东主编版C语言程序设计基础实验一实验报告 The latest revision on November 22, 2020

实验1 C程序的运行环境和最简单的C程序设计 学号:姓名:莫新锋实验日期: 一、实验目的和要求 (1)熟悉C语言程序开发环境(Visual C++),了解开发环境中的编辑、编译、链接和运行命令。 (2)掌握在C语言开发环境中如何编辑、编译、链接和运行一个标准C语言程序。(3)掌握简单C语言程序的查错方法,理解编译错误信息的含义。 (4)掌握C语言数据类型的概念,熟悉如何定义一个整型、字符型、实型变量,以及如何对它们进行赋值。 (5)了解下列命令及函数:#include <>、main、printf、scanf。 (6)通过运行简单的程序,熟悉C语言的基本格式规范,并初步了解它的结构特点。 二、实验内容 实验指导书中的实验一的“基础部分”题目。 三、实验步骤及结果 (一)VC 实验平台的使用 1.简要描述在VC环境下开发一个C程序的主要步骤,并粘贴主要操作窗口的截图。【请填空。截图的操作方法:先点击欲截取的窗口使之置于屏幕最前方,并作适当的缩放,再按快捷键+将窗口截取到内存中,然后打开word将光标移到欲插入图片的位置上进行粘贴即可。也可对图片进行适当剪切,裁剪掉多余部分。注意:截图上必须有你自己的学号或姓名等信息,否则视为抄袭。】 主要步骤: 1: 创建一个工作文件夹。 2:启动 Visual C++。 3:新建一个 C 语言源程序。 4:编辑源程序 5:保存源程序 2.编译、链接、运行程序 (1)输入源程序后,如何编译该程序 【请填空】 输入好后在编译器中有一个编译按钮按一下就能编译 (2)如何链接程序生成可执行文件 【请填空】 得到后缀为obj的目标程序后选择build菜单下的build选项,表示要求连接并建立一个可执行文件 (3)如何运行程序查看结果 【请填空】

计算方法实验报告册

实验一——插值方法 实验学时:4 实验类型:设计 实验要求:必修 一 实验目的 通过本次上机实习,能够进一步加深对各种插值算法的理解;学会使用用三种类型的插值函数的数学模型、基本算法,结合相应软件(如VC/VB/Delphi/Matlab/JAVA/Turbo C )编程实现数值方法的求解。并用该软件的绘图功能来显示插值函数,使其计算结果更加直观和形象化。 二 实验内容 通过程序求出插值函数的表达式是比较麻烦的,常用的方法是描出插值曲线上尽量密集的有限个采样点,并用这有限个采样点的连线,即折线,近似插值曲线。取点越密集,所得折线就越逼近理论上的插值曲线。本实验中将所取的点的横坐标存放于动态数组[]X n 中,通过插值方法计算得到的对应纵坐标存放 于动态数组[]Y n 中。 以Visual C++.Net 2005为例。 本实验将Lagrange 插值、Newton 插值和三次样条插值实现为一个C++类CInterpolation ,并在Button 单击事件中调用该类相应函数,得出插值结果并画出图像。CInterpolation 类为 class CInterpolation { public : CInterpolation();//构造函数 CInterpolation(float *x1, float *y1, int n1);//结点横坐标、纵坐标、下标上限 ~ CInterpolation();//析构函数 ………… ………… int n, N;//结点下标上限,采样点下标上限 float *x, *y, *X;//分别存放结点横坐标、结点纵坐标、采样点横坐标 float *p_H,*p_Alpha,*p_Beta,*p_a,*p_b,*p_c,*p_d,*p_m;//样条插值用到的公有指针,分别存放 i h ,i α,i β,i a ,i b ,i c ,i d 和i m }; 其中,有参数的构造函数为 CInterpolation(float *x1, float *y1, int n1) { //动态数组x1,y1中存放结点的横、纵坐标,n1是结点下标上限(即n1+1个结点) n=n1; N=x1[n]-x1[0]; X=new float [N+1]; x=new float [n+1]; y=new float [n+1];

网络安全 实验报告

首都经济贸易大学信息学院实验报告 实验课程名称网络安全技术 首都经济贸易大学信息学院计算机系制

实验报告 学号:实验地点:3机房 姓名:实验时间: 一、实验室名称:网络安全实验 二、实验项目名称:冰河木马攻击 三、实验原理: 原理:特洛伊木马(简称木马),是一种基于远程控制的黑客工具,具有隐蔽性和破坏性的特点。大多数木马与正规的远程控制软件功能相似。但木马有一些明显的特点,例如,它的安装和操作都是在隐蔽之中完成。攻击者经常将木马隐蔽在一些游戏或小软件中,诱使粗心的用户在自己的机器上运行。最常见的情况是,用户从不正规的网站下载和运行了带恶意代码的软件,或者不小心点击了带恶意代码的邮件附件。 大多数木马包括客户端和服务器端两个部分。攻击者利用一种称为绑定程序的工具将服务器绑定到某个合法软件上,只要用户运行被绑定的合法软件,木马的服务器部分就在用户毫无知觉的情况下完成了安装过程。通常,木马的服务器部分是可以定制的,攻击者可以定制的项目一般包括服务器运行的IP端口号,程序启动时机、如何发出调用、如何隐身、是否加密。另外,攻击者还可以设置登录服务器的密码,确定通信方式。木马攻击者既可以随心所欲地查看已被入侵的机器,也可以用广播方式发布命令,指示所有在他控制之下的木马一起行动,或者向更广泛的范围传播,或者做其他危险的事情。 木马的设计者为了防止木马被发现,会采用多种手段隐藏木马,这样用户即使发现感染了木马,也很验证找到并清除它。木马的危害越来越大,保障安全的最好办法就是熟悉木马的类型、工作原理,掌握如何检测和预防这些代码。常见的木马,例如冰河、Netbus、网络神偷等,都是多用途的攻击工具包,功能非常全面,包括捕获屏幕、声音、视频内容的功能。这些木马可以当作键记录器、远程控制器、FTP服务器、HTTP服务器、Telnet服务器,还能够寻找和窃取密码。攻击者可以配置木马监听的端口、运行方式,以及木马是否通过Email、IRC或其他通信手段联系发起攻击的人。一些危害大的木马还有一定的反侦测能力,能够采取各种方式隐藏自身,加密通信,甚至提供了专业级的API供其他攻击者开发附加的功能。冰河在国内一直是不可动摇的领军木马,有人说在国内没有用过冰河的人等于没用过木马。冰河木马的目的是远程访问、控制。该软件主要用于远程监牢,具体功能包括: (1)自动跟踪目标机屏幕变化,同时完全模拟键盘及鼠标输入,即在同步变化的同时,监控端的一切键盘及鼠标操作将反映在被控端屏幕(局域网适用)。 (2)记录各种口令信息。包括开机口令、屏保口令、各种虚伪补齐诼绝大多数在对话框中出现过的口令信息,且1.2以上的版本中允许用户对该功能自行扩充,2.0以上的版本还同时提供了击键记录功能。 (3)获取系统信息。包括计算机名、注册公司、当前用户、系统路径、操作系统版本、当

实验报告(五)GUI程序设计(完整代码)

福建农林大学计算机与信息学院实验报告 实验(五)GUI程序设计 一、实验目的和要求 1.掌握简单GUI的设计和实现 2.理解并掌握GUI事件驱动的程序设计 3.理解网络程序设计 二、实验内容和原理 实现一个程序,用于浏览用户指定的文本文件。界面如图1所示: 图1 文本文件浏览的用户界面

2、界面实现 // Panel p to hold a label, a text field, and a button Panel p = new Panel(); p.setLayout(new BorderLayout()); p.add(new Label("Filename"), BorderLayout.WEST); p.add(jtfFilename, BorderLayout.CENTER); p.add(jbtView, BorderLayout.EAST); // Add jsp and p to the frame add(jsp, BorderLayout.CENTER); add(p, BorderLayout.SOUTH); 3、事件驱动 // Register listener jbtView.addActionListener(new ActionListener() { /**Handle the View button*/ public void actionPerformed(ActionEvent e) { if (e.getSource() == jbtView) showFile(); //自己实现这个方法,在textArea中浏览文本文件内容 } }); 4、网络程序设计(可选) 实现一个网络服务,用于把指定的文件内容传给客户端(见Exp_5_Server.java),在“事件驱动”中调用方法“showFileFromServer()” package com.fafu.training; import java.awt.BorderLayout; import java.awt.Panel; import java.awt.TextArea; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.Inputream; import java.io.Reader; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel;

相关文档
最新文档