6自由度空间机器人课程设计的简要记录

这个空间机器人的课设是在学期末的时候已经完成,现在在假期有时间正好做一下简要的总结和记录。另外最后一题仅仅是给出了思路(利用遗传算法 或是 粒子群算法),最终在代码实现方面并未完成,当时时间也比较紧,答辩完紧接着有考试,所以没有真正完成。(这里仅对实现代码做下简单的记录,具体内容可以看我的答辩报告)

任务

1、按固定基座空间机器人推导其运动学模型

2、按自由漂浮空间机器人推导其运动学模型

3、完成运动学正、逆解的简单运算

4、完成运动学模型的搭建,分析两者的运动空间异同

5、完成一次基座坐标系下的点到点运动规划

6、完成一次非完整运动规划(基座、关节角均期望)

表 2 空间机器人质量特性


Sat


B1


B2


B3


B4


B5


B6


Mass(kg)


400


6


5


5


4


3


2


iai


0


0.2702


0


0


0


0


0


0


0


0


-0.0338


0


0.15


-0.2513


0.15


-0.35


0


0.0750


ibi


0.3570


0


0.5598


0


0


0


0


-0.0095


0


0


0


0


-0.0662


0


0.419


0.15


-0.0487


0.15


-0.35


0


0.1595


iIi

(kg.m2)


Ixx


30


0.15


0.0926


0.105


0.2498


0.0330


5.152E-002


Iyy


28


0.15


0.9053


0.105


0.2498


0.0172


5.152E-002


iIi

(kg.m2)


Ixx


30


0.15


0.0926


0.105


0.2498


0.0330


5.152E-002


Iyy


28


0.15


0.9053


0.105


0.2498


0.0172


5.152E-002


Izz


32


0.075


0.8451


0.0294


0.0196


0.0260


2.192E-002

空间机械臂D-H参数表


连杆i


θi


αi


ai (mm)


di (mm)


1


90°


-90°


0


0


2


-180°


0


830


0


3


-90°


90°


0


0


4


0


-90°


0


-700


5


180°


90°


0


0


6


0


0


0


334.5

第三题利用粒子群算法求逆向运动学的最优解的代码(matlab),当然对于其他求最优解问题,只要将后面的适应度函数修改后,也是可以拿去直接用的,代码大部分每一行我都做了注释,很好理解。(后面的适应度函数的代码风格很差,不美观,已遭学霸吐槽,matlab是这学期写大作业是刚学的,还有所生疏)

%------给定初始化条件----------------------------------------------
c1=2;             %学习因子1
c2=2;             %学习因子2
w=0.7;            %惯性权重
MaxDT=3000;       %最大迭代次数
D=6;             %搜索空间维数(未知数个数)
M=3000;             %初始化群体个体数目

%------初始化种群的个体(可以在这里限定位置和速度的范围)------------
for i=1:M
    for j=1:D
        v(i,j)=randn; %随机速度大小
        x(i,j)=pi*rand; %随机初始化位置(角度)
    end
end

%------先计算各个粒子的适应度,并初始化p(i)和gbest--------------------
for i=1:M

    y(i,:)=x(i,:);   %每个粒子对应的6维度,相当于把每个粒子给y,设y对应值此时为局部最优
      p(i)=fitness(x(i,:));  %计算每个粒子距离目标位置的距离
end
   gbest=x(1,:);    %先把第一个粒子的值设为gbest全局最优      

for i=2:M
    if fitness(x(i,:)) < fitness(gbest) %从第二个粒子开始比较,如果有比gbest对应距离小的,则更新gbest为当前值
        gbest=x(i,:);
    end
end

%------进入主要循环,按照公式依次迭代,直到满足精度要求------------
for t=1:MaxDT
    for i=1:M
       % theta(i,:)=w*theta(i,:)+c1*rand*(y(i,:)-theta(i,:))+c2*rand*(gbest-theta(i,:));
        %x(i,:)=x(i,:)+theta(i,:);
         v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(gbest-x(i,:));
        x(i,:)=x(i,:)+v(i,:);
        if fitness(x(i,:))<p(i)   %如果迭代后此时的x(i,:)对应的距离小于原来i对应的,则当前x为局部最优
            p(i)=fitness(x(i,:));
            y(i,:)=x(i,:);
        end
        if p(i)<fitness(gbest)
            gbest=y(i,:);
        end
    end
        if(fitness(gbest)<0.001)
            break;
        end

    end

%------显示计算结果
disp(‘*************************************************************‘)
disp(‘粒子的最优theta值为:‘)
%Solution=gbest;
disp(gbest);
%disp(y)
%disp(fitness(x))
%Result=fitness(gbest)
disp(‘*************************************************************‘)

function result = fitness(x)%适应度函数,值越小说明重合度越高,就越精确

T=myfun(x);
B=[0 -1 0 0;0 0 -1 -1864.5;1 0 0 0;0 0 0 1];
%result=sqrt(T(1,1)^2+T(2,1)^2+(T(3,1)-1)^2)+sqrt((T(1,2)+1)^2+(T(2,2))^2+(T(3,2))^2)+sqrt((T(1,3))^2+(T(2,3)+1)^2+(T(3,3))^2)+sqrt(T(1,4)^2+(T(2,4)+1864.5)^2+(T(3,4))^2);
 %result=abs(T(1,1))+abs(T(2,1))+abs(T(3,1)-1)+abs(T(1,2)+1)+abs(T(2,2))+abs(T(3,2))+abs(T(1,3))+abs(T(2,3)+1)+abs(T(3,3))+abs(T(1,4))+abs(T(2,4)+1864.5)+abs(T(3,4));
C=B-T;
result=norm(C);
end

function T=myfun(theta)

 alphad1=-pi/2; a1=0;d1=0;
 alphad2=0;  a2=830;d2=0;
 alphad3=pi/2; a3=0;d3=0;
 alphad4=-pi/2; a4=0;d4=-700;
alphad5=pi/2;a5=0;d5=0;
 alphad6=0; a6=0;d6=334.5;

i=1;
A1=[cos(theta(i)),-sin(theta(i))*cos(alphad1),sin(theta(i))*sin(alphad1),a1*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad1),-cos(theta(i))*sin(alphad1),a1*sin(theta(i));
    0,sin(alphad1),cos(alphad1),d1;
    0,0,0,1];
i=2;
A2=[cos(theta(i)),-sin(theta(i))*cos(alphad2),sin(theta(i))*sin(alphad2),a2*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad2),-cos(theta(i))*sin(alphad2),a2*sin(theta(i));
    0,sin(alphad2),cos(alphad2),d2;
    0,0,0,1];
i=3;
A3=[cos(theta(i)),-sin(theta(i))*cos(alphad3),sin(theta(i))*sin(alphad3),a3*cos(theta(i))
    sin(theta(i)),cos(theta(i))*cos(alphad3),-cos(theta(i))*sin(alphad3),a3*sin(theta(i))
    0,sin(alphad3),cos(alphad3),d3
    0,0,0,1];
i=4;
A4=[cos(theta(i)),-sin(theta(i))*cos(alphad4),sin(theta(i))*sin(alphad4),a4*cos(theta(i))
    sin(theta(i)),cos(theta(i))*cos(alphad4),-cos(theta(i))*sin(alphad4),a4*sin(theta(i))
    0,sin(alphad4),cos(alphad4),d4
    0,0,0,1];
i=5;
A5=[cos(theta(i)),-sin(theta(i))*cos(alphad5),sin(theta(i))*sin(alphad5),a5*cos(theta(i))
    sin(theta(i)),cos(theta(i))*cos(alphad5),-cos(theta(i))*sin(alphad5),a5*sin(theta(i))
    0,sin(alphad5),cos(alphad5),d5
    0,0,0,1];
i=6;
A6=[cos(theta(i)),-sin(theta(i))*cos(alphad6),sin(theta(i))*sin(alphad6),a6*cos(theta(i))
    sin(theta(i)),cos(theta(i))*cos(alphad6),-cos(theta(i))*sin(alphad6),a6*sin(theta(i))
    0,sin(alphad6),cos(alphad6),d6
    0,0,0,1];

T=A1*A2*A3*A4*A5*A6;

end

第四题,搭建运动学模型以及进行运动空间的分析,这里主要是利用蒙特卡洛方法,通过大样本随机生成的theta角,利用变换矩阵来求取机械臂最终的末端位姿坐标,利用matlab中的plot3或是scatter3函数来画出三维空间的点云图,下面第一个为固定基座的第二个为自由漂浮的与固定基座的工作空间比较

clear ;
N=10000;
x = -pi + (2*pi).*rand([N 6]);
%disp(x(1,:));
  for i=1:N
  T=myfun(x(i,:));
  p=[T(1,4),T(2,4),T(3,4)];
  %{
  disp(‘00000000000000000000000000000000000000000000000000000000‘);
  disp(p(1));
  disp(p(2));
  disp(p(3));
  disp(‘oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo‘);
  %}
 u(1,i)=p(1);
 v(1,i)=p(2);
 w(1,i)=p(3);
  %plot3(p(1),p(2),p(3),‘o‘);
 % scatter3(p(1),p(2),p(3),‘o‘);

  end
 figure(2)
% disp(w);
 %disp(y);
scatter3(u,v,w,‘o‘);
xlabel(‘x‘);
ylabel(‘y‘);
zlabel(‘z‘);
%plot3(u,v,w);
clear u v w;

function T=myfun(theta)

 alphad1=-pi/2; a1=0;d1=0;
 alphad2=0;  a2=0.830;d2=0;
 alphad3=pi/2; a3=0;d3=0;
 alphad4=-pi/2; a4=0;d4=-0.700;
alphad5=pi/2;a5=0;d5=0;
 alphad6=0; a6=0;d6=0.3345;

i=1;
A1=[cos(theta(i)),-sin(theta(i))*cos(alphad1),sin(theta(i))*sin(alphad1),a1*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad1),-cos(theta(i))*sin(alphad1),a1*sin(theta(i));
    0,sin(alphad1),cos(alphad1),d1;
    0,0,0,1];
i=2;
A2=[cos(theta(i)),-sin(theta(i))*cos(alphad2),sin(theta(i))*sin(alphad2),a2*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad2),-cos(theta(i))*sin(alphad2),a2*sin(theta(i));
    0,sin(alphad2),cos(alphad2),d2;
    0,0,0,1];
i=3;
A3=[cos(theta(i)),-sin(theta(i))*cos(alphad3),sin(theta(i))*sin(alphad3),a3*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad3),-cos(theta(i))*sin(alphad3),a3*sin(theta(i));
    0,sin(alphad3),cos(alphad3),d3;
    0,0,0,1];
i=4;
A4=[cos(theta(i)),-sin(theta(i))*cos(alphad4),sin(theta(i))*sin(alphad4),a4*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad4),-cos(theta(i))*sin(alphad4),a4*sin(theta(i));
    0,sin(alphad4),cos(alphad4),d4;
    0,0,0,1];
i=5;
A5=[cos(theta(i)),-sin(theta(i))*cos(alphad5),sin(theta(i))*sin(alphad5),a5*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad5),-cos(theta(i))*sin(alphad5),a5*sin(theta(i));
    0,sin(alphad5),cos(alphad5),d5
    0,0,0,1];
i=6;
A6=[cos(theta(i)),-sin(theta(i))*cos(alphad6),sin(theta(i))*sin(alphad6),a6*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad6),-cos(theta(i))*sin(alphad6),a6*sin(theta(i));
    0,sin(alphad6),cos(alphad6),d6;
    0,0,0,1];

T=A1*A2*A3*A4*A5*A6;

end
%代码中有部分数据未使用,因为还可以进一步计算clear;
m=[400,6,5,5,4,3,2];
M=sum(m);
R0(1,:)=[-0.3570,0.0095,-0.4190];%初始时刻基座位置
R0(2,:)=[0,0,0.15];
R0(3,:)=[0.2702,0.2513,0.3];
R0(4,:)=[0.83,0.15,0.3];
R0(5,:)=[1.18,0,0.3];
R0(6,:)=[1.5638,0,0.3];
R0(7,:)=[1.705,0,0];
rg=0;
for i=1:7
rg=rg+m(i)*R0(i,:);
end
rg=rg/M;

b0=[0.357,-0.0095,0.419];

a(1,:)=[0,0,0.15];
b(1,:)=[0,0,0.15];
a(2,:)=[0.2702,0.2513,0];
b(2,:)=[0.5598,0.0487,0];
a(3,:)=[0,-0.15,0];
b(3,:)=[0,-0.15,0];
a(4,:)=[0.35,0,0];
b(4,:)=[0.35,0,0];
a(5,:)=[0.0338,0,0];
b(5,:)=[0.0662,0,0];
a(6,:)=[0.075,0,0];
b(6,:)=[0.1595,0,0];

b0_=m(1)/M*b0;
for i=1:6
   a_(i,:)=sum(m(1:i))/M*a(i,:);
   b_(i,:)=sum(m(1:i+1))/M*b(i,:);
end
B0=b0-rg;%rg系统质心 ,b0基座矢近,
N=10000;
x = -pi + (2*pi).*rand([N 6]);
 for i=1:N
  T=myfun1(x(i,:),B0);
  p=[T(1,4),T(2,4),T(3,4)];
 u(1,i)=p(1);
 v(1,i)=p(2);
 w(1,i)=p(3);

 end

clear ;
N=10000;
x = -pi + (2*pi).*rand([N 6]);
%disp(x(1,:));
  for i=1:N
  T=myfun(x(i,:));
  p=[T(1,4),T(2,4),T(3,4)];
  %{
  disp(‘00000000000000000000000000000000000000000000000000000000‘);
  disp(p(1));
  disp(p(2));
  disp(p(3));
  disp(‘oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo‘);
  %}
 u(1,i)=p(1);
 v(1,i)=p(2);
 w(1,i)=p(3);
  %plot3(p(1),p(2),p(3),‘o‘);
 % scatter3(p(1),p(2),p(3),‘o‘);

  end
figure(1)
plot3(u,v,w,‘o‘,u,v,w,‘o‘);
%figure(2)
%scatter3(u,v,w,‘*‘);
xlabel(‘x‘);
ylabel(‘y‘);
zlabel(‘z‘);
%plot3(u,v,w);
clear u v w;

function T=myfun1(theta,B0)
 alphad1=-pi/2; a1=0;d1=0;
 alphad2=0;  a2=0.80265;d2=0;%830*(m(1)+m(2)+m(3))/M
 alphad3=pi/2; a3=0;d3=0;
 alphad4=-pi/2; a4=0;d4=-0.700;
alphad5=pi/2;a5=0;d5=0;
 alphad6=0; a6=0;d6=0.3345;

for t=1:10
q = rand(1,4);
k = q/sum(q(:));
n=sqrt(abs(k(1)));
q1=-sqrt(abs(k(2)));
q2=sqrt(abs(k(3)));
q3=-sqrt(abs(k(4)));
A0=[q1^2-q2^2-q3^2+n^2 2*(q1*q2-q3*n) 2*(q1*q3+q2*n) B0(1)
     2*(q1*q2+q3*n) -q1^2+q2^2-q3^2+n^2 2*(q2*q3-q1*n) B0(2)
     2*(q1*q3-q2*n) 2*(q2*q3+q1*n) -q1^2-q2^2+q3^2+n^2 B0(3)
     0 0 0 1];
end
i=1;
A1=[cos(theta(i)),-sin(theta(i))*cos(alphad1),sin(theta(i))*sin(alphad1),a1*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad1),-cos(theta(i))*sin(alphad1),a1*sin(theta(i));
    0,sin(alphad1),cos(alphad1),d1;
    0,0,0,1];
i=2;
A2=[cos(theta(i)),-sin(theta(i))*cos(alphad2),sin(theta(i))*sin(alphad2),a2*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad2),-cos(theta(i))*sin(alphad2),a2*sin(theta(i));
    0,sin(alphad2),cos(alphad2),d2;
    0,0,0,1];
i=3;
A3=[cos(theta(i)),-sin(theta(i))*cos(alphad3),sin(theta(i))*sin(alphad3),a3*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad3),-cos(theta(i))*sin(alphad3),a3*sin(theta(i));
    0,sin(alphad3),cos(alphad3),d3;
    0,0,0,1];
i=4;
A4=[cos(theta(i)),-sin(theta(i))*cos(alphad4),sin(theta(i))*sin(alphad4),a4*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad4),-cos(theta(i))*sin(alphad4),a4*sin(theta(i));
    0,sin(alphad4),cos(alphad4),d4;
    0,0,0,1];
i=5;
A5=[cos(theta(i)),-sin(theta(i))*cos(alphad5),sin(theta(i))*sin(alphad5),a5*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad5),-cos(theta(i))*sin(alphad5),a5*sin(theta(i));
    0,sin(alphad5),cos(alphad5),d5
    0,0,0,1];
i=6;
A6=[cos(theta(i)),-sin(theta(i))*cos(alphad6),sin(theta(i))*sin(alphad6),a6*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad6),-cos(theta(i))*sin(alphad6),a6*sin(theta(i));
    0,sin(alphad6),cos(alphad6),d6;
    0,0,0,1];

T=A0*A1*A2*A3*A4*A5*A6;
 disp(A0) ;

end

function T=myfun(theta)

 alphad1=-pi/2; a1=0;d1=0;
 alphad2=0;  a2=0.830;d2=0;
 alphad3=pi/2; a3=0;d3=0;
 alphad4=-pi/2; a4=0;d4=-0.700;
alphad5=pi/2;a5=0;d5=0;
 alphad6=0; a6=0;d6=0.3345;

i=1;
A1=[cos(theta(i)),-sin(theta(i))*cos(alphad1),sin(theta(i))*sin(alphad1),a1*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad1),-cos(theta(i))*sin(alphad1),a1*sin(theta(i));
    0,sin(alphad1),cos(alphad1),d1;
    0,0,0,1];
i=2;
A2=[cos(theta(i)),-sin(theta(i))*cos(alphad2),sin(theta(i))*sin(alphad2),a2*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad2),-cos(theta(i))*sin(alphad2),a2*sin(theta(i));
    0,sin(alphad2),cos(alphad2),d2;
    0,0,0,1];
i=3;
A3=[cos(theta(i)),-sin(theta(i))*cos(alphad3),sin(theta(i))*sin(alphad3),a3*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad3),-cos(theta(i))*sin(alphad3),a3*sin(theta(i));
    0,sin(alphad3),cos(alphad3),d3;
    0,0,0,1];
i=4;
A4=[cos(theta(i)),-sin(theta(i))*cos(alphad4),sin(theta(i))*sin(alphad4),a4*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad4),-cos(theta(i))*sin(alphad4),a4*sin(theta(i));
    0,sin(alphad4),cos(alphad4),d4;
    0,0,0,1];
i=5;
A5=[cos(theta(i)),-sin(theta(i))*cos(alphad5),sin(theta(i))*sin(alphad5),a5*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad5),-cos(theta(i))*sin(alphad5),a5*sin(theta(i));
    0,sin(alphad5),cos(alphad5),d5
    0,0,0,1];
i=6;
A6=[cos(theta(i)),-sin(theta(i))*cos(alphad6),sin(theta(i))*sin(alphad6),a6*cos(theta(i));
    sin(theta(i)),cos(theta(i))*cos(alphad6),-cos(theta(i))*sin(alphad6),a6*sin(theta(i));
    0,sin(alphad6),cos(alphad6),d6;
    0,0,0,1];

T=A1*A2*A3*A4*A5*A6;

end

第5题比较简单,只是做一下简单的插值,这里使用的是5阶多项式插值

close all;
clear all;

q0(1)=1.5708;
q0(2)=-3.1416;
q0(3)=-1.5708;
q0(4)=0;
q0(5)=3.1416;
q0(6)=0;
qf(1)=1.5741;
qf(2)=1.9527;
qf(3)=0.4579;
qf(4)=1.5558;
qf(5)=3.1312;
qf(6)=1.5547;
t=[0,0.1,10];
a=Planning(q0,qf,10)

function a=Planning(q0,qf,t)
a=ones(6,6);
for i=1:6
    a(i,1)=q0(i);
    a(i,2)=0;
    a(i,3)=0;
    a(i,4)=(20*qf(i)-20*q0(i))/t^3/2;
    a(i,5)=(-30*qf(i)+30*q0(i))/t^4/2;
    a(i,6)=(12*qf(i)-12*q0(i))/t^5/2;
end
end

close all;
clear all;

t=0:0.1:10;
for i=1:101
    q1(i)=1.5708;
end
q2=-3.1416+0.0509*power(t,3)-0.0076*power(t,4)+0.0003*power(t,5);
q3=-1.5708+0.0203*power(t,3)-0.0030*power(t,4)+0.0001*power(t,5);
q4=0.0156*power(t,3)-0.0023*power(t,4)+0.0001*power(t,5);
q5=3.1416-0.0001*power(t,3);
q6=0.0155*power(t,3)-0.0023*power(t,4)+0.0001*power(t,5);

figure(1)
plot(t,q1)
 xlabel(‘时间‘);
 ylabel(‘关节角1‘);

 figure(2)
plot(t,q2)
 xlabel(‘时间‘);
 ylabel(‘关节角2‘);

figure(3)
plot(t,q3)
 xlabel(‘时间‘);
 ylabel(‘关节角3‘);

figure(4)
plot(t,q4)
 xlabel(‘时间‘);
 ylabel(‘关节角4‘);

 figure(5)
plot(t,q5)
 xlabel(‘时间‘);
 ylabel(‘关节角5‘);

 figure(6)
plot(t,q6)
 xlabel(‘时间‘);
 ylabel(‘关节角6‘);
 

原文地址:https://www.cnblogs.com/pathjh/p/8392651.html

时间: 2024-10-07 15:53:39

6自由度空间机器人课程设计的简要记录的相关文章

课程设计(物体类),图片可能没有加载出来,自己运行一下就行了

一.课程设计题目与要求(包括题目与系统功能要求) A.<1>设计如下类,其功能和部分成员如下: Object:抽象类,所有的物体都有价值(profit)属性: Point:点的位置: Line(线段),Rectangle,Cuboid, Square,Cube,Circle,Cylinder. <2>功能:能够实现上述物体的移动(move),放大(zoomin),缩小(zoomout),大小比较(compare),打印物品信息(cout<<编号.面积.容积和价值)等操作

java(课程设计之记事本界面部分代码公布)

代码:涉及记事本的一些界面......!! 1 /* 2 *java课程设计之记事本(coder @Gxjun) 3 * 编写一个记事本程序 4 * 要求: 5 * 用图形用户界面实现. 6 * 能实现编辑.保存.另存为.查找替换等功能. 7 * 提示:使用文件输入输出流. 8 */ 9 package project; 10 11 import javax.swing.*; 12 import java.awt.*; 13 import java.awt.event.*; //引用类设置触发事

13商软 《软件工程》课程设计

广州商学院 计算机系 系(部) 2015 — 2016 学年第(1)学期 <软件工程>课程设计 一.课程简介及基本要求 软件工程是一门指导软件开发和维护的工程学科,主要内容包括:软件项目管理.结构化分析和设计.面向对象的分析和设计.用户界面设计.软件测试.软件维护.软件配置管理等等. 本课程要求学生完成软件工程课程的学习后,以小组为单位,完成一个小型软件项目的开发.通过上机实践加深学生对软件工程知识的理解和综合应用,熟悉并掌握一般系统软件的设计方法和过程,掌握软件开发的传统方法和最新方法.初步

编译原理课程设计——语法分析器

实验目的 了解掌握算符优先分析的基本方法.内容:学会科学思考并解决问题,提高程序设计能力. 实验内容与要求 用算符优先分析方法设计一个分析解释程序,对输入的赋值语句.输出语句.清除语句进行词法分析.语法分析.表达式求值并存储于指定变量中:若存在错误,提示错误相关信息. 文法表示 S -> v=E | E? | clear E -> E+T | E–T | T T -> T*F | T/F | F F -> (E) | v | c 问题分析 由于要求用算符优先分析方法来进行程序的语法

计算机组成原理 课程设计报告

        计算机组成原理 课程设计报告      成员:许恺   2014011329          胡强勇  2014011315     时间:2016.12.20                 一.简要总结计算机组成原理实验 计算机组成原理实验总共五个实验,首先我们熟悉了教学机的使用方法,后面的实验我们分为运算器.存储器.控制器,控制器分为两次实验.紧接的第二次实验我们就进行了运算器的实验,对运算器的内部构造极其原理进行了验证理解,在这里我们学习了运算器ALU的8种运算功能,以

JavaWeb网上商城课程设计的反思

不知道从什么时候起,我爱上了写博客,对之前学得的只是进行反思.写了几天课程设计,代码量量8.9千左右. 然后下面文字是我在博客上复制过来的,说得很详细 MVC(Model View Controller)设计模式在JavaFX中有着比Swing更好的表现方式.它使得程序界面设计和程序逻辑设计完全分开,便于代码的可读性和以后的可维护性. JavaEE体系架构采用传统的MVC设计模式,分为Model.View.Controller三层,其中:Model即模型层,定义数据模型和业务逻辑.为了将数据访问

背单词系统 数据结构课程设计

     数据结构     课程设计说明书           题目:          轻松背单词   学生姓名:       啦啦啦 学    号:    201406060306      院 (系):    电气与信息工程 专    业:   计算机科学与技术 指导教师: 2016  年  1 月 15 日 目 录 1.设计任务 1 2. 需求分析 1 3. 概要设计 1 3.1 基本功能 1 3.2 函数说明 1 3.3 变量和结构体说明 2 3.4 单词存储简要分析 2 3.5 功能

学习&lt;&lt;汇编语言 -王爽&gt;&gt;,自已完成的一道课程设计题 (5)

课程设计1 (材料详见书上211页) 题目描述: 以下是我解答的完整的代码: :>---------------------------------------------------------------------------------------- assume cs:codesg, ss:stacksg datasg segment db '1975', '1976', '1977', '1978', '1979', '1980', '1981', '1982', '1983' db

C++课程设计-银行储蓄系统

*  课程设计概述 */ *  C++课程设计: *  银行储蓄系统 * *  功 能 介 绍: *  面向用户版的银行系统,模拟自己进入银行时相关的操作. *  首次进入银行时,需要办理相应的银行卡.    *  当用户有银行卡后,可以办理银行有的一般业务. *  业务包括:查询.存款.取款.转账.销户 *                 挂失.解挂.改密. *  同时设置了管理员的一个功能,查询银行所有账户的信息. * *  功能实现 :    *  文件保存与读取 *  为了更好的模拟真实