java课程设计报告(模拟电梯系统)

java课程设计报告(模拟电梯系统)
java课程设计报告(模拟电梯系统)

Java课程设计报告

组号:第四组

课题名称:模拟电梯调度

班级:09计一

课题组成员姓名及学号:

09030101

课程设计日期:2011.6.20-2011.6.24

地点:秋白楼B720

一.正文

1)[课程设计目的与要求]

○1目的

掌握线程的应用及线程在多媒体中的使用,了解线程的运行机制和线程的新建、就绪、运行、挂起、死亡五种状态,对线程由新的认识和巩固。熟练java的动画编程,理解repaint()方法的调用过程及如何通过改写update()方法和双缓冲技术消除动画中出现的闪烁现象。理解java的容器和组件的应用。掌握java的事件处理机制:实现ActionListener接口,对事件源添加侦听器,实现actionPerformed()方法用以处理事件源所产生的事件。另外使组员能够针对具体的有一定代表性的小型综合应用类课题设计、分析,全面掌握面向对象的思想、JAVA语言的应用技巧、方法,从而使组员进一步理解和掌握利用JAVA开发综合系统的过程,学会用java开发工具,同时培养组员的合作意识和团队精神,培养学生对实际系统的采用面向对象的方法进行分析与设计能力,从而使学生提高JAVA语言运用与开发的综合能力。

○2需求分析

模拟电梯调度:有一栋三层的楼房,楼内有三个电梯。要求电梯实现可以正常上下,和到达目的楼层后即停留并且实现开门及关门动作。

电梯需有多层停留功能即:当对同一个电梯需要其在多层都有下客时,电梯要在有下客动作的楼层停留然后自动去下一个有下客动作的楼层,而不需要乘客在次发出请求。

电梯具有距离发出请求的楼层最近的电梯响应请求的功能即:当某一楼层有乘客需要使用电梯时,由距离该楼层最近的电梯去响应,而不是任意一个电梯都可以响应。(注:当存在距离该楼层最近的电梯且该电梯正在远离该楼层运动时该电梯不响应,当存在多个电梯距离该楼层最近时由编号低的电梯响应而不是全都响应。

2)[本人在课程设计中承担的任务]

在课程设计中我主要负责事件处理,并判断该事件是何种事件,需要做出怎样的响应。同时确定各电梯的工作状态,以及判断该事件是否应该得到响应若响应该事件那么应由哪一个电梯去响应。当然我所做的还有判断哪一个电梯距离发出请求的楼层最近,此时由距离该楼层最近的电梯响应请求,若距离最近的电梯处于远离该楼层的运动状态时则由下一个最近的电梯响应,若存在多个电梯距离最近,那么由编号低的响应。总的来说我的工作是考虑各种情况下给控制电梯各种动作(上、下、开门、关门、电梯响应、楼层)的变量赋予正确的值以实现电梯的正常运作。

3)[程序中使用的数据结构及符号说明]

由于电梯有三个楼层也有三层,所以要实现各电梯之间互不影响就需要由不同的变量去控制电梯的动作。这也是为什么程序中变量较多的原因。

下面是对本段程序中使用到得变量的解释说明:

Object str:获取的组件信息赋予str(按钮名)。

String st:获取的组件信息赋予st(按钮上的内容)。

int a,b,c:三个临时变量,主要用于记录各电梯当前位置(y1,y2,y3)与产生请求的楼层的差值,用以判断哪一个电梯距离该楼层最近。

int y1,y2,y3:记录各电梯的位置,同时通过加1减1控制电梯的上下,y1对应第一个电梯y2对应第二个电梯y3对应第三个电梯。

int number[]:记录电梯有效信息,有4个元素(本程序中第一个元素未用),number[1]=1时说明第一个电梯响应number[2]=2时说明第二个电梯响应

number[3]=3时说明第三个电梯响应。number[]值为0时未响应即电梯

未有动作。

int s:控制电梯的上下动作,s=1时电梯向上运动s=-1电梯向下运动。

int n1[],n2[],n3[]:记录各电梯中所响应的楼层信息,n1[]、n2[]、n3[]各对应一二

三号电梯,且各有三个元素各对应于一二三层楼。n1[]、n2[]、

n3[]中元素值为1说明对应楼层有响应即电梯到达该楼层时要停

留并开关门。值为0说明无响应。

boolean moving1,moving2,moving3:记录电梯的状态,moving1、moving2、moving3

各对应一二三号电梯。值为true时电梯处于动

作状态(上下或开关门),值为false时电梯处

于静止状态。

boolean open1,open2,open3:电梯的开门关门控制变量,open1、open2、open3各控

制一二三号电梯的开关门动作。值为true时允许电梯开

门,值为false时允许电梯关门。

int a1,a2,a3,b1,b2,b3,c1,c2,c3:记录各电梯响应的楼层信息,与n1[],n2[],n3[]

用处差不多,但不可少。a1、a2、a3分别对应n1[0]、

n1[1]、n1[2]以此类推b,c对应n2,n3。其主要目

的是当电梯到达最后一个目的楼层后将电梯的有

效信息number[]的值设置为0。这是

n1[],n2[],n3[]无法做到的,应为在到达相应的目

的楼层后n1[],n2[],n3[]中的相应值也就设置为

0了。

Button bt1···:各组件(各楼层及各电梯的按钮)。

4)[程序流程图]

由于此程序中情况众多,因此流程图中的判断框较多也较复杂。下面给出一个较简单的流程图。

5)[程序运行时的初值和运行结果]

程序开始运行时,未点击任何按钮所以对于我的程序部分来说不存在初始值,只有y1=440,y2=440,y3=440

open1=false,open2=false,open3=false

moving1=false,moving2=false,moving3=false

n1[]={0,0,0},n2[]={0,0,0},n3[]={0,0,0},number[]={0,0,0,0}

此时三个电梯均处于第一层。

下面分几种情况分别说明一下程序实现的电梯调度的过程:

○1.若开始时点击bt1即第一层的up按钮,则通过计算得出三个电梯均距离第一层最

近,所以由一号电梯响应请求。此时open1=true,number[1]=1随即一号电梯门打开并关上,此时点击一号电梯上的楼层按钮,比如bt5即第三层。此时各变量值为:

S=1

y1=440,y2=440,y3=440

open1=false,open2=false,open3=false

moving1=true,moving2=false,moving3=false

n1[]={0,0,1},n2[]={0,0,0},n3[]={0,0,0},number[]={0,1,0,0}

随即电梯向上移动到达三楼后open1=true,number[1]=1开门并关门此时:

S=1

y1=140,y2=440,y3=440

open1=false,open2=false,open3=false

moving1=false,moving2=false,moving3=false

n1[]={0,0,0},n2[]={0,0,0},n3[]={0,0,0},number[]={0,0,0,0}

此时再点击bt1,则通过计算得出二号和三号电梯距离第一层最近,所以由二号电梯响应请求。此时open2=true,number[2]=2随即二号电梯门打开并关上,此时点击二号电梯上的楼层按钮,比如bt24即第二层。此时各变量值为:

S=1

y1=140,y2=440,y3=440

open1=false,open2=false,open3=false

moving1=false,moving2=true,moving3=false

n1[]={0,0,0},n2[]={0,1,0},n3[]={0,0,0},number[]={0,0,2,0}

随即电梯向上移动到达二楼后open2=true,number[2]=2开门并关门此时:

S=1

y1=140,y2=290,y3=440

open1=false,open2=false,open3=false

moving1=false,moving2=false,moving3=false

n1[]={0,0,0},n2[]={0,0,0},n3[]={0,0,0},number[]={0,0,0,0}

此时点击bt21即第二层的up按钮,则通过计算的出二号电梯距离第二层最近,所以由二号电梯响应请求。此时open2=true,number[2]=2随即二号电梯门打开并关上,此时点击二号电梯上的楼层按钮,比如bt25即第三层。此时各变量值为:

S=1

y1=140,y2=290,y3=440

open1=false,open2=false,open3=false

moving1=false,moving2=true,moving3=false

n1[]={0,0,0},n2[]={0,0,1},n3[]={0,0,0},number[]={0,0,2,0}

随即电梯向上移动到达三楼后open2=true,number[2]=2开门并关门此时:

S=1

y1=140,y2=140,y3=440

open1=false,open2=false,open3=false

moving1=false,moving2=false,moving3=false

n1[]={0,0,0},n2[]={0,0,0},n3[]={0,0,0},number[]={0,0,0,0}

○2.若开始时点击bt1,,则通过计算得出三个电梯均距离第一层最近,所以由一号电

梯响应请求。此时open1=true,number[1]=1随即一号电梯门打开并关上,此时点击一号电梯上的楼层按钮,比如bt5即第三层。此时各变量值为:

S=1

y1=440,y2=440,y3=440

open1=false,open2=false,open3=false

moving1=true,moving2=false,moving3=false

n1[]={0,0,1},n2[]={0,0,0},n3[]={0,0,0},number[]={0,1,0,0}

随即电梯开始向上移动,若在一号电梯向上移动并且过了第二层但没到第三层时点击bt21即二楼的up按钮,则经过计算得到一号电梯距离二楼最近,但是由于一号电梯正处于远离二楼的运动状态中所以一号电梯不响应请求,由二号电梯响应,此时:

S=1

290

open1=false,open2=false,open3=false

moving1=true,moving2=true,moving3=false

n1[]={0,0,1},n2[]={0,1,0},n3[]={0,0,0},number[]={0,1,2,0}

随即二号电梯向上移动,显然一号电梯比二号电梯早到达目的楼层,当一号电梯到达目的楼层时open1=true,number[1]=1,open2=false,number[2]=2,一号电梯开门并关门此时:

S=1

y1=140,290

open1=false,open2=false,open3=false

moving1=false,moving2=true,moving3=false

n1[]={0,0,0},n2[]={0,1,0},n3[]={0,0,0},number[]={0,0,2,0}

当二号电梯到达目的楼层时open2=true,number[2]=2,此时二号电梯开门并关门此时:

S=1

y1=140,y2=290,y3=440

open1=false,open2=false,open3=false

moving1=false,moving2=false,moving3=false

n1[]={0,0,0},n2[]={0,0,0},n3[]={0,0,0},number[]={0,0,0,0}

○3.若开始时点击按钮bt1,则由一号电梯响应请求此时open1=true,number[1]=1随

即一号电梯门打开并关上,此时点击一号电梯上的楼层按钮,比如bt5和bt4即第三层和第二层。此时各变量值为:

S=1

y1=440,y2=440,y3=440

open1=false,open2=false,open3=false

moving1=true,moving2=false,moving3=false

n1[]={0,1,1},n2[]={0,0,0},n3[]={0,0,0},number[]={0,1,0,0}

随即电梯开始向上移动,到达二楼后此时open1=true,number[1]=1,n[1]=1,n1[2]=1电梯开始开门并关门此时:

S=1

y1=290,y2=440,y3=440

open1=false,open2=false,open3=false

moving1=true,moving2=false,moving3=false

n1[]={0,0,1},n2[]={0,0,0},n3[]={0,0,0},number[]={0,1,0,0}

随即电梯又开始向上移动,到达三楼即最后一个目的楼层后open1=true,number[1]=1电梯开门并关门此时:

S=1

y1=140,y2=440,y3=440

open1=false,open2=false,open3=false

moving1=false,moving2=false,moving3=false

n1[]={0,0,0},n2[]={0,0,0},n3[]={0,0,0},number[]={0,0,0,0}

○4.若开始时点击bt22即第一层的down按钮,则通过计算得出三个电梯均距离第一层

最近,所以由一号电梯响应请求。此时open1=false,number[1]=1随即电梯开始向上移动,此时各变量值为:

S=1

y1=440,y2=440,y3=440

open1=false,open2=false,open3=false

moving1=true,moving2=false,moving3=false

n1[]={0,1,0},n2[]={0,0,0},n3[]={0,0,0},number[]={0,1,0,0}

到达二楼时open1=true,number[1]=1电梯开门并关门,此时点击二号电梯上的楼层按钮,比如bt3即一楼此时各变量值为:

S=-1

y1=290,y2=440,y3=440

open1=false,open2=false,open3=false

moving1=true,moving2=false,moving3=false

n1[]={1,0,0},n2[]={0,0,0},n3[]={0,0,0},number[]={0,1,0,0}

随即电梯开始向下运动,到达一楼时open1=true,number[1]=1电梯开门并关门,此时:

S=-1

y1=440,y2=440,y3=440

open1=false,open2=false,open3=false

moving1=false,moving2=false,moving3=false

n1[]={0,0,0},n2[]={0,0,0},n3[]={0,0,0},number[]={0,0,0,0}

6)[代码分析]

int a=0,b=0,c=0;

str=e.getSource(); //获取所点击的按钮名

if(str==bt1) //发出请求的楼层是1楼

{

a=(y1-440); //计算一号电梯距离1楼得距离

if(moving1==true&&a<0) //一号电梯处于远离1楼得运动状态时a=1000即a=1000; 保证a最大

a=Math.abs(a);

b=(y2-440); //计算二号电梯距离1楼得距离

if(moving2==true&&b<0) //一号电梯处于远离1楼得运动状态时a=1000即b=1000; 保证b最大

b=Math.abs(b);

c=(y3-440); //计算二号电梯距离1楼得距离

if(moving3==true&&c<0) //一号电梯处于远离1楼得运动状态时a=1000即c=1000; 保证c最大

c=Math.abs(c);

}

if(str==bt21||str==bt22) //发出请求的楼层是2楼

{

a=(y1-290);

if(moving1==true&&a<0)

a=1000; //保证a最大

a=Math.abs(a);

b=(y2-290);

if(moving2==true&&b<0)

b=1000; //保证b最大

b=Math.abs(b);

c=(y3-290);

if(moving3==true&&c<0)

c=1000; //保证c最大

c=Math.abs(c);

}

if(str==bt32) //发出请求的楼层是3楼

{

a=(y1-140);

if(moving1==true&&a<0)

a=1000;

a=Math.abs(a);

b=(y2-140);

if(moving2==true&&b<0)

b=1000;

b=Math.abs(b);

c=(y3-140);

if(moving3==true&&c<0)

c=1000;

c=Math.abs(c);

}

st=e.getActionCommand(); //获取所点击的按钮的内容

if(st=="up")

{

t=1;

if(a>b) //进行比较最终得出a,b,c中的最小值

{

if(b>c)

number[3]=3; //若c最小则将3赋予number[3]即三号电梯响应请求if(b

number[2]=2;

if(b==c)

number[2]=2;

}

if(a

{

if(a>c)

number[3]=3;

if(a

number[1]=1;

if(a==c)

number[1]=1;

}

if(a==b)

{

if(a>c)

number[3]=3;

if(a

number[1]=1;

if(a==c)

number[1]=1;

}

以上的一段算法主要是确定当楼层有请求时由距离该楼层最近的电梯去响应该请求,若最近的电梯处于远离该楼层的运动状态则由另一个最近的电梯响应。

if(number[1]==1&&(str==bt32)) //一号电梯响应且请求楼层为三层

{

if(y1>140) //一号电梯在三楼以下

s=1; //一号电梯向上

n1[2]=1; //记录三楼有请求

}

if(number[2]==2&&(str==bt32)) //二号电梯响应且请求楼层为三层

{

if(y2>140)

s=1;

n2[2]=1;

}

if(number[3]==3&&(str==bt32)) //三号电梯响应且请求楼层为三层

{

if(y3>140)

s=1;

n3[2]=1;

}

以上一段程序主要是在当确定了响应请求的电梯后,找出请求发出的楼层。并通过判断电梯的位置来决定电梯是否需要向上或者向下到达该楼层,同时记录该楼层。这一段只是请求楼层为3楼时的代码,请求楼层为1楼2楼时的代码与其相似,这里就不再列出。

if((str==bt1)&&(y1==440||y2==440||y3==440)) //请求楼层为1楼,且有电梯处于该楼层

{

if(number[1]==1&&moving1==false) //若1号电梯响应且其处于静止状态

open1=true; //1号电梯允许开门

if(number[2]==2&&moving2==false) //若2号电梯响应且其处于静止状态

open2=true; //2号电梯允许开门

if(number[3]==3&&moving3==false) //若3号电梯响应且其处于静止状态

open3=true; //3号电梯允许开门

}

if((str==bt21||str==bt22)&&(y1==290||y2==290||y3==290)) //请求楼层为2楼,且有电梯处于该楼层

{

if(number[1]==1&&moving1==false)

open1=true;

if(number[2]==2&&moving2==false)

open2=true;

if(number[3]==3&&moving3==false)

open3=true;

}

if((str==bt32)&&(y1==140||y2==140||y3==140)) //请求楼层为2楼,且有电梯处于该楼层

{

if(number[1]==1&&moving1==false)

open1=true;

if(number[2]==2&&moving2==false)

open2=true;

if(number[3]==3&&moving3==false)

open3=true;

}

以上一段程序主要是考虑当在发出请求的楼层存在静止的电梯时,直接由该电梯响应请求并立即允许该电梯开门。

上面的程序是我负责的部分中较为重要的部分,当然我所编写的程序还远不止这些,其它的一些部分虽说没有以上的重要但也必不可少,其中也有一些对于特殊情况下的各变量的赋值。由于这些部分比较琐碎并且长度很大所以这里也不一一列出。

7) [小结与体会]

经过一个星期的努力,终于完成了模拟电梯调度。其实说完成也有点违心,我只道我比任何人都要了解这个模拟电梯调度程序到底还存在什么问题,运行过程中可能会出现什么样的情况。只不过因为时间和技术限制我没有能够进一步该处其中的错误。不过错误虽然任然存在但是并不影响程序的一般运行,很多时候程序还是可以正常运行的。

通过这个课程设计我发现其实实现一部电梯的正常上下及开关门动作还是很简单的,但要实现多部电梯在多层楼之间的正常动作却是比较复杂的,因为必须要保证电梯之间互不影响,就必须设置多个控制电梯动作的变量,且要时刻监视电梯的运动状态。与其它课题相比模拟电梯调度难的并不是各功能的实现,而是电梯在楼内的状态众多,需要编程者考虑的情况复杂,每一步都要给众多的用于控制各电梯动作的变量赋予正确的值才能使电梯正常运行。

其实至始至终都有一个问题困扰着我,那就是当两部电梯同时运动,若其中一部电梯到达了目的地进行开关门动作而另一部仍处于向上或向下运动时,由于开关门动作不可能与电梯运动速度一样,开关门需要再次调用sleep()方法减慢其动作。这样便使得一个电梯开门时另一个运动中的电梯会出现停滞不动或运动极其缓慢的情况。我想之所以会出现这样的情况是因为程序执行过程是顺序执行的而不能并行执行吧?所以即使我使用多个线程并且使用线程的方法同步也无法解决这个问题。如果我想的没有错,那么需要怎样才能解决这个问题呢?

不管怎样,课程设计还是如期完成。从中我当然获得了很多,至少在这个过程中遇到了问题之后还是通过思考解决了。这当然会提高我的java编程能力和积累更多的解决程序问题的方法。这个课题的完成是以小组为单位的,所以无论如何组内成员之间或多或少的都有合作,这也必然会增强我的团队协作能力。我想这也因该是我从中获益最重要的吧。

java课程设计报告书

《Java程序设计》课程设计报告2015—2016学年第二学期 设计题目:《数字连连看》 学生:黄杰 学号: 2 专业班级:软件工程1402 指导教师:国权 2016 年7 月2 日

目录 1.JAVA程序设计书 3 1.1《简易连连看》 3 1.1.1具体要求 3 1.2本系统设计的知识点 3 2.功能设计 3 2.1算法设计 3 2.2部分模块流程图 4 3.代码设计 5 4.界面及运行效果,测试工具与测试效果14 5.设计总结 16 5.1.程序调试情况:16 5.2.本人在程序设计中感想: 16 6.致 16 主要参考文献16

: 1.1Java程序课程设计任务书 1.1《简易连连看游戏》 本程序基本实现了小游戏连连看的功能,玩家找出游戏中2个相同图案的方块,如果它们之间的连接线不多于3根直线,则将其连接起来,就可以成功将图案相同的方块消除,否则不会消失,当游戏中已没有满足条件的图案时,点击重列,可重新排序,游戏结束会跳出所得分数,该游戏的特点是与自己竞争,超过自己之前所创纪录。 1.1.1具体要求(包括技术要求等): <1>. 该游戏界面为方格类型,由纵6横7的直线平行垂直交叉组成,分别是6行5列方块拼接,共有30格小方块。方块上随机分布一些数字,数字的要至少两两相同,位置随机打乱。 <2>. 当将相同数字的方块连接,但要满足只能至少单边无阻碍呈直线趋势连接,否则无效,若连接一对成功就消失于界面,继续游戏,直到游戏结束,并能返回所得分数。 <3>. 重列按钮(帮助)的功能:游戏过程中,遇到困难难以寻找下一符合要求的一对数字,可按左下按钮重置重新排列方可继续游戏。 <4>. 退出按钮:击左下方的“退出游戏”按钮,即可结束游戏。 1.2本系统涉及的知识点: 循环,javaGUI组件,函数,数组,分支等 2.功能设计 2.1算法设计 本系统需要实现的功能要求: 图一,数字按钮功能模块 图二,三个功能按钮模块

信号与系统仿真实验报告

信号与系统仿真实验报告1.实验目的 了解MATLAB的基本使用方法和编程技术,以及Simulink平台的建模与动态仿真方法,进一步加深对课程内容的理解。 2.实验项目 信号的分解与合成,观察Gibbs现象。 信号与系统的时域分析,即卷积分、卷积和的运算与仿真。 信号的频谱分析,观察信号的频谱波形。 系统函数的形式转换。 用Simulink平台对系统进行建模和动态仿真。 3.实验内容及结果 3.1以周期为T,脉冲宽度为2T1的周期性矩形脉冲为例研究Gibbs现象。 已知周期方波信号的相关参数为:x(t)=∑ak*exp(jkω),ω=2*π/T,a0=2*T1/T,ak=sin(kωT1)/kπ。画出x(t)的波形图(分别取m=1,3,7,19,79,T=4T1),观察Gibbs现象。 m=1; T1=4; T=4*T1;k=-m:m; w0=2*pi/T; a0=2*T1/T; ak=sin(k*w0*T1)./(k*pi); ak(m+1)=a0; t=0:0.1:40; x=ak*exp(j*k'*w0*t); plot(t,real(x)); 3.2求卷积并画图 (1)已知:x1(t)=u(t-1)-u(t-2), x2(t)=u(t-2)-u(t-3)求:y(t)=x1(t)*x2(t)并画出其波形。 t1=1:0.01:2; f1=ones(size(t1)); f1(1)=0; f1(101)=0; t2=2:0.01:3; f2=ones(size(t2)); f2(1)=0; f2(101)=0; c=conv(f1,f2)/100;

t3=3:0.01:5; subplot(311); plot(t1,f1);axis([0 6 0 2]); subplot(312); plot(t2,f2);axis([0 6 0 2]); subplot(313); plot(t3,c);axis([0 6 0 2]); (2)已知某离散系统的输入和冲击响应分别为:x[n]=[1,4,3,5,1,2,3,5], h[n]=[4,2,4,0,4,2].求系 统的零状态响应,并绘制系统的响应图。 x=[1 4 3 5 1 2 3 5]; nx=-4:3; h=[4 2 4 0 4 2]; nh=-3:2; y=conv(x,h); ny1=nx(1)+nh(1); ny2=nx(length(nx))+nh(length(nh)); ny=[ny1:ny2]; subplot(311); stem(nx,x); axis([-5 4 0 6]); ylabel('输入') subplot(312); stem(nh,h); axis([-4 3 0 5]); ylabel('冲击效应') subplot(313); stem(ny,y); axis([-9 7 0 70]); ylabel('输出'); xlabel('n'); 3.3 求频谱并画图 (1) 门函数脉冲信号x1(t)=u(t+0.5)-u(t-0.5) N=128;T=1; t=linspace(-T,T,N); x=(t>=-0.5)-(t>=0.5); dt=t(2)-t(1); f=1/dt; X=fft(x); F=X(1:N/2+1); f=f*(0:N/2)/N; plot(f,F)

大学java课程设计实验报告_计算器

JAVA课程设计报告 组员信息: 第(二)组 计算器的实现问题 问题描述:制作一个计算器 基本要求:要求实现类似Windows操作系统里面的标准计算器。 在此基础上实现部分科学性的功能。 测试数据:分别对加、减、乘、除和sin、cos、tan函数进行测试 算法思想:使用String定义的数组a[25]对每个按钮进行按钮赋值,创建一个Panel进行字符和数字的存放,调用 addActionListener()对各个时间进行监听。调用 系统库函数对数值进行运算。 模块划分:1、主函数main()创建一个计算器。 2、void actionPerformed(ActionEvent e)对鼠标 点击的事件进行响应以及在文本框中的显示。 3、各Buuton对应的功能: “开方”:对输入数字开方 “平方”:对输入数字平方

“getResult()”:对四则运算进行分别运算操 作 “backspace”:取消上一次的操作 “CE”:取消上一次运算的操作 “C”:清空作用 “sin”:对输入数据进行sin运算 “cos”:对输入数据进行cos运算 “tan”:对输入数据进行tan运算 “+/-”:对输入的数据取反 “+”,“-”,“*”,“/”:对数据进行四则 运算 源程序: package hechongwei; import https://www.360docs.net/doc/214851890.html,ng.String; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; import https://www.360docs.net/doc/214851890.html,ng.Math; class Calculator extends JFrame implements ActionListener

Java课程设计报告模板

Java课程设计报告 模板

浙江科技学院 《Java程序设计》课程设计报告 设计题目:学生信息管理系统 姓名:邱焕明 学号: 所属院系:信息学院 专业:软件工程 小组成员:邱焕明 设计时间: -1-6 指导教师:虞建东

一、课程设计目的 (1)实验目的:结合开发的系统,给出学生信息管理系统 二、课程设计完成的任务 三、设计过程 (一)需求分析 1、基础资料管理 基础资料管理包括对院系、班级和学期的设置。该模块可实现以下功能: 添加、修改、删除和显示院系代码、院系名称和电话号码。 添加、修改、删除和显示班级代码、班级名称、学生人数和所属院系名。 添加、修改、删除和显示学期代码、学期名称。 2、学生信息管理 学生信息管理包括对学生档案和学籍的管理。该模块可实现以下功能: 添加、修改、查询和显示学生的基本信息、所属班级和院系。 记录学生学籍、学生离校信息和学生调动信息。 3、课程信息管理 课程信息管理包括对课程设置和班级选课的管理。该模块可实

现以下功能: 添加、修改、删除和显示课程代码、课程名称、学分和院系名称。 添加、删除和提交班级所选课程。 4、成绩信息管理 成绩信息管理包括对成绩录入和成绩分析的管理。该模块可实现以下功能: 录入班级课程成绩,以不同形式(列表统计、图表分析)显示班级课程成绩。 (二)系统设计概念、流程初定义 1、实体名:院系 2、实体名:班级 3、实体名:学生 4、实体名:课程 (三)系统内容规划 1、班级信息表 表3-1 班级信息表 2、课程信息表 表3-2 课程信息表

(四)系统总体设计 内 (五)系统详细设计 (六)系统测试 列名 数据类型 长度 备注 课程代码 char 10 主键 课程名称 varchar 50 无 学 分 tinyint 1 无 所属院系 varchar 50 无

电梯控制器报告(Verilog实现)

华中科技大学课程设计报告数字电路与逻辑设计课程设计报告 题目:电梯控制器的设计与实现 专业:计算机科学与技术 班级: 学号: 姓名: 电话: 邮件:974985526@https://www.360docs.net/doc/214851890.html, 分组: 完成日期:2015.10.8 指导教师:

华中科技大学课程设计报告不建议采用本报告所采用的设计方案(异步时序),因为这样的实现过于复杂且难以调试。 建议仅采用统一的CLK作为always语句的更新条件,以实现同步时序的电路。

华中科技大学课程设计报告 目录 1课程设计概述 (5) 1.1课设目的 (5) 1.2课设要求 (5) 1.3课设任务 (5) 1.4实验环境 (5) 2基本方案设计 (7) 2.1设计需求 (7) 2.2总体结构设计 (8) 2.2.1时钟分频 (8) 2.2.2七段译码器显示模块 (8) 2.2.3电梯请求控制模块 (8) 2.2.4电梯开关门控制模块 (9) 2.2.5电梯运行总控模块 (9) 2.2.6电梯单次运行模块 (9) 2.2.7LED灯控制模块 (9) 2.3详细设计 (10) 2.3.1时钟分频 (10) 2.3.2七段译码器显示 (10) 2.3.3电梯请求控制模块 (10) 2.3.4电梯开关门控制模块 (12) 2.3.5电梯运行总控模块 (14) 2.3.6电梯单次运行模块 (14) 2.3.7LED灯控制模块 (14) 2.4实验过程与调试 (15) 2.4.1仿真结果 (15) 2.4.2主要故障与调试 (32)

华中科技大学课程设计报告 2.4.3模块内部图 (33) 2.5功能测试 (42) 2.5.1手动开关门测试 (42) 2.5.1重置功能测试 (44) 2.5.1常规使用测试 (46) 3总结与心得 (50) 3.1课设总结 (50) 3.2课设心得 (50) 参考文献 (52) 附录(源程序) (53)

Matlab通信系统仿真实验报告

Matlab通信原理仿真 学号: 2142402 姓名:圣斌

实验一Matlab 基本语法与信号系统分析 一、实验目的: 1、掌握MATLAB的基本绘图方法; 2、实现绘制复指数信号的时域波形。 二、实验设备与软件环境: 1、实验设备:计算机 2、软件环境:MATLAB R2009a 三、实验内容: 1、MATLAB为用户提供了结果可视化功能,只要在命令行窗口输入相应的命令,结果就会用图形直接表示出来。 MATLAB程序如下: x = -pi::pi; y1 = sin(x); y2 = cos(x); %准备绘图数据 figure(1); %打开图形窗口 subplot(2,1,1); %确定第一幅图绘图窗口 plot(x,y1); %以x,y1绘图 title('plot(x,y1)'); %为第一幅图取名为’plot(x,y1)’ grid on; %为第一幅图绘制网格线 subplot(2,1,2) %确定第二幅图绘图窗口 plot(x,y2); %以x,y2绘图 xlabel('time'),ylabel('y') %第二幅图横坐标为’time’,纵坐标为’y’运行结果如下图: 2、上例中的图形使用的是默认的颜色和线型,MATLAB中提供了多种颜色和线型,并且可以绘制出脉冲图、误差条形图等多种形式图: MATLAB程序如下: x=-pi:.1:pi; y1=sin (x); y2=cos (x); figure (1); %subplot (2,1,1); plot (x,y1); title ('plot (x,y1)'); grid on %subplot (2,1,2); plot (x,y2);

Java课程设计实验报告

Java课程设计实验报告 导语:日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。以下是小编为大家整理分享的Java课程设计实验报告,欢迎阅读参考。 1、加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2、使用本学期学习的Java SE技术完成多功能日历GUI 程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3、在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 1、问题描述准确、规范。 2、程序结构合理,调试数据准确、有代表性、。 3、界面布局整齐,人机交互方便。 4、输出结果正确。 5、正确撰写实验报告。 编写一个GUI程序实现日历的功能。一年日历用12页

显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农 历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报 时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 1、在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2、在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3、各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4、根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5、详细的上机实验步骤见任务分工及程序设计进度表。 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能

Java课程设计报告

湖北大学 本科课程设计 题目 ATM 自助机模拟程序姓名 学号 专业年级 指导教师 职称

目录 第一章系统描述 (2) 1 前言 (2) 2 系统功能需求 (2) 第二章系统分析与设计 (3) 1 功能模块划分 (3) 2 功能模块的描述 (3) 3 系统设计流程图 (4) 4 测试数据及期望结果 (6) 第三章系统详细设计 (7) 1 主界面开发设计 (7) 2 功能选择界面开发设计 (7) 3 取款界面开发设计 (7) 4 存款界面开发设计 (8) 5 转账界面开发设计 (8) 6 查询界面开发设计 (9) 7 修改密码界面开发设计 (9) 8 界面开发设计使用函数 (9) 第四章系统测试 (11) 第五章源程序部分清单 (21) 第六章实验心得 (30) 参考文献 (31)

第一章系统描述 1 前言 Java技术是一门简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言,它也是一个平台,它基于Java虚拟机技术,借助这个东西建立了跨平台的优势。Java编程语言与众不同之处在于:Java程序既是编译型的,又是解释型的。 Java平台是一种纯软件平台,它有三个版本Java SE、Java EE、Java ME。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 本课程设计采用Eclipse作为开发工具,并采用Window Builder下的SWT Designer来实现相应的功能。着重通过模拟实现当前非常快捷又使用的ATM机来加深对java开发设计的了解,从而进一步提高自己对java图像界面的设计及相关知识的认识。 2 系统功能需求 当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM 柜员机系统,用户可以按照以下规则进行: (1)查询余额:初始余额为10000元。 (2)ATM取款:每次取款金额为100的倍数,一次取款不能超过1000,总额不 超过5000元,支取金额不允许透支,有快捷取款和用户自定义取款。 (3)ATM存款:每次存款金额为100的倍数,一次存款不能超过1000,不能出 现负存款。 (4)ATM转账:只有在两次输入账号相同且输入转账金额正确的情况下才允许 转账,不允许透支。 (5)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只 有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

plc实验报告之三层电梯的运行

电气控制综合实验报告 PLC控制系统目:三层电梯项 132 电班级: 名:姓 学号:联系 方式: 2015-2016-2 期:学 实验过程记录以及调试步骤及方法 第一章实验过程记录1.好好复习老师之前讲的一些基本的电路,例如轿 厢内锁存电路,门厅锁存电路等,将这些基本的电路搞懂之后,就可以开始设计接下来的电路啦。 2.认真查看电梯要求的7大原则,开始设计梯形图,并用GX Works2进行仿真,并及时发现问题,加以修改。 3.在GX Works仿真都没有问题后,去实验室,用组态软件再进行仿真, 看电梯能否自如顺畅的运行,因为开门是通过延时来实现的,组态仿真,看之前设置好的定时器定时的时间是否能让电梯顺利的关门开门,若不行,修改定时器定时的时间,知道符合要求为止。这个可分为一下几小部分:打开计算机;a. 软件,将自己编写好的程序拷入电脑并打开;打开GX Works2b. ;PLC拨到调为由RUNSTOP状态,然后将程序写入c.将PLC (即运行状态)状态,然后打开组态;RUNd.将PLC调为 运行组态,点击启动;e.

开始根据组态运行的结果来调试,找出错误并修改程序,直至完成设计要求;f. 实验调试步骤及方法介绍 1.调试软件GX Works2 编程软件,是专用于PLCPLC设计、调试、GX Work2是三菱电机推出的三菱综合维护的编程工具。与传统的GX Developer 软件相比,提高了功能及操作性能,变得更加容易使用。梯形图绘制时更加的简单明了,例如输入X000,只要打X000,然后按回车键就好了,输出Y001,只要打Y001,然后按回车键就好了,输入特别的简单,很方便。例如下图: 图 GX Works2新建工程后界面 2.程序的调试 用软件GX Works2软件进行调试,是很有必要的一部分,它能帮你发现一些画梯PLC形图时出现的问题,还有一些意想不到的问题,熟练掌握调试方法对我们以后 的编程很有意义。 调试步骤3. 软件中,输入好之后,点将自己设计好的梯形图一行一行的输入到GX Worksa.击菜单栏中的“调试”,如下图: 图调试下拉菜单 b.点击模拟开始,可进行软件调试,如图: 图开始加载调试图 等到加载到百分之百就可以开始调试了。 c.在梯形图上面右击,出现下拉菜单,如图:

系统仿真实验报告

中南大学系统仿真实验报告 指导老师胡杨 实验者 学号 专业班级 实验日期 2014.6.4 学院信息科学与工程学院

目录 实验一MATLAB中矩阵与多项式的基本运算 (3) 实验二MATLAB绘图命令 (7) 实验三MATLAB程序设计 (9) 实验四MATLAB的符号计算与SIMULINK的使用 (13) 实验五MATLAB在控制系统分析中的应用 (17) 实验六连续系统数字仿真的基本算法 (30)

实验一MATLAB中矩阵与多项式的基本运算 一、实验任务 1.了解MATLAB命令窗口和程序文件的调用。 2.熟悉如下MATLAB的基本运算: ①矩阵的产生、数据的输入、相关元素的显示; ②矩阵的加法、乘法、左除、右除; ③特殊矩阵:单位矩阵、“1”矩阵、“0”矩阵、对角阵、随机矩阵的产生和运算; ④多项式的运算:多项式求根、多项式之间的乘除。 二、基本命令训练 1.eye(m) m=3; eye(m) ans = 1 0 0 0 1 0 0 0 1 2.ones(n)、ones(m,n) n=1;m=2; ones(n) ones(m,n) ans = 1 ans = 1 1

3.zeros(m,n) m=1,n=2; zeros(m,n) m = 1 ans = 0 0 4.rand(m,n) m=1;n=2; rand(m,n) ans = 0.8147 0.9058 5.diag(v) v=[1 2 3]; diag(v) ans = 1 0 0 0 2 0 0 0 3 6.A\B 、A/B、inv(A)*B 、B*inv(A) A=[1 2;3 4];B=[5 6;7 8]; a=A\B b=A/B c=inv(A)*B d=B*inv(A) a = -3 -4 4 5 b = 3.0000 -2.0000 2.0000 -1.0000

Java课程设计实验报告及全部源码流程图

课程设计 一、实验目的 1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 二、实验要求 1.问题描述准确、规范。 2.程序结构合理,调试数据准确、有代表性.。 3.界面布局整齐,人机交互方便。 4.输出结果正确。 5.正确撰写实验报告。 三、实验内容 编写一个GUI程序实现日历的功能。一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报

时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 四、实验步骤 1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4. 根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5.详细的上机实验步骤见任务分工及程序设计进度表。 五、实验结果 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

java课程设计报告书

《Java程序设计》课程设计报告 2015—2016学年第二学期 设计题目:《数字连连看》 学生:黄杰 学号: 2 专业班级:软件工程1402 指导教师:国权 2016 年 7 月 2 日 目录 1.JAVA程序设计书 3 1.1《简易连连看》3 1.1.1具体要求 3 1.2本系统设计的知识点 3

2.功能设计 3 2.1算法设计 3 2.2部分模块流程图 4 3.代码设计 5 4.界面及运行效果,测试工具与测试效果14 5.设计总结 16 5.1.程序调试情况:16 5.2.本人在程序设计中感想: 16 6.致 16 主要参考文献16

: 1.1Java程序课程设计任务书 1.1《简易连连看游戏》 本程序基本实现了小游戏连连看的功能,玩家找出游戏中2个相同图案的方块,如果它们之间的连接线不多于3根直线,则将其连接起来,就可以成功将图案相同的方块消除,否则不会消失,当游戏中已没有满足条件的图案时,点击重列,可重新排序,游戏结束会跳出所得分数,该游戏的特点是与自己竞争,超过自己之前所创纪录。 1.1.1具体要求(包括技术要求等): <1>. 该游戏界面为方格类型,由纵6横7的直线平行垂直交叉组成,分别是6行5列方块拼接,共有30格小方块。方块上随机分布一些数字,数字的要至少两两相同,位置随机打乱。 <2>. 当将相同数字的方块连接,但要满足只能至少单边无阻碍呈直线趋势连接,否则无效,若连接一对成功就消失于界面,继续游戏,直到游戏结束,并能返回所得分数。 <3>. 重列按钮(帮助)的功能:游戏过程中,遇到困难难以寻找下一符合要求的一对数字,可按左下按钮重置重新排列方可继续游戏。 <4>. 退出按钮:击左下方的“退出游戏”按钮,即可结束游戏。 1.2本系统涉及的知识点: 循环,javaGUI组件,函数,数组,分支等 2.功能设计 2.1算法设计 本系统需要实现的功能要求: 图一,数字按钮功能模块 图二,三个功能按钮模块

汇编语言模拟电梯实验报告书

一.实训目的 (1) 二.实训内容与要求 (1) 1.基本内容 (2) 2.实训要求 (2) 三.实训设计思路 (1) 1.总体思路 (3) 2.硬件设计 (4) 3.软件设计 (6) 四.模拟电梯源代码 (9) 五.加载调试 (28) 六.实训总结 (30) 1.出现的问题及排除方法 (30) 2.实训注意事项 (30) 3.心得体会 (1) 七.参考文献 (31) 一.实训目的 1.了解电梯调度算法,运用汇编语言编写程序。 2.利用微机实验系统来模拟电梯,实现电梯功能。 3.进一步掌握微机接口的设计方法,正确连各芯片引脚。 4. 加强学生实际应用能力及综合知识运用能力的培养。

二.实训内容与要求 绘制流程图、根据流程图编写程序、选用硬件电路编制应用软件、自主选择硬编制应用软件,并画出详细原理图。 2.实训要求 用键盘、按钮、八段码和LED模拟电梯工作过程。楼层设为8层,键盘数字键1~8用来键入希望停的楼层,8个LED显示希望停的楼层,八段码指示电梯当前所在楼层,按钮用来启、停电梯。电梯正常运行时以每2秒1层的速度上升或下降。要求“电梯”能按以下方式运行: (1)设电梯停在某层。键入1~8数字键,如数字与当前电梯停层同,则什么亦不动作,若不同则相应楼层的LED亮;如按运行键,则电梯自动判别上升或下降一直到达希望停的楼层。 (2)设电梯正在上升或下降运行,若键入新的希望停的楼层数字,则对同方向未到的楼层能停,对其它情况则先停原希望停的楼层,然后按运行键后继续运行)。如下几例: 电梯在2层,向上运行,LED希望在6层停,若键入4,则将在4楼停,若按运行键,则运行至6层停;若键入的不是4而是8,则电梯将先停在6层,再按运行键,运行至8层停若键入的不是4(或8),而是1,则电梯先停在6层,再按 运行键,运行至1层停。

交通运输系统仿真实验报告

一、系统描述 1.1.系统背景 本系统将基于下面的卫星屏幕快照创建一个模型。当前道路网区域的两条道路均为双向,每个运动方向包含一条车道。Tapiolavagen路边有一个巴士站,Menninkaisentie路边有一个带五个停车位的小型停车场。 1.2.系统描述 (1)仿真十字路口以及三个方向的道路,巴士站,停车点;添加小汽车、公交车的三维动画,添加红绿灯以及道路网络描述符; (2)创建仿真模型的汽车流程图,三个方向产生小汽车,仿真十字路口交通运行情况。添加滑条对仿真系统中的红绿灯时间进行实时调节。添加分析函数,统计系统内汽车滞留时间,用直方图进行实时展示。 二、仿真目标 1、timeInSystem值:在流程图的结尾模块用函数统计每辆汽车从产生到丢弃的,在系统中留存的时间。 2、p_SN为十字路口SN方向道路的绿灯时间,p_EW为十字路口EW方向道路的绿灯时间。 3、Arrival rate:各方向道路出现车辆的速率(peer hour)。

三、系统仿真概念分析 此交通仿真系统为低抽象层级的物理层模型,采用离散事件建模方法进行建模,利用过程流图构建离散事件模型。 此十字路口交通仿真系统中,实体为小汽车和公交车,可以源源不断地产生;资源为道路网络、红绿灯时间、停车点停车位和巴士站,需要实施分配。系统中小汽车(car)与公共汽车(bus)均为智能体,可设置其产生频率参数,行驶速度,停车点停留时间等。 四、建立系统流程 4.1.绘制道路 使用Road Traffic Library中的Road模块在卫星云图上勾画出所有的道路,绘制交叉口,并在交叉口处确保道路连通。 4.2.建立智能体对象 使用Road Traffic Library中的Car type模快建立小汽车(car)以及公共汽车(bus)的智能体对象。 4.3.建立逻辑 使用Road Traffic Library中的Car source、Car Move To、Car Dispose、

JavaWeb课程设计实验报告

湖南科技大学计算机科学与工程学院 WEB编程课程设计报告 题目:网上购物商店 学号:1111111111 姓名: 1 指导老师: 1 完成时间:111111111

目录 一、设计内容 (3) 二、设计方法 (4) 1、网站的整体结构设计 (4) 2、网站设计的技术方案 (5) 3、网站的界面设计 (6) 三、实现方法 (8) 1、数据库的设计 (8) 2、网站具体的实现过程 (10) 开发环境: (10) 设计思路 (10) 四、心得体会 (11)

随着互联网时代的迅猛发展,人们的生活方式已经发生了翻天覆地的变化,传统的实体店购物方式已经不能满足人们的需求,传统购物方式购物不方便,非得出门才能购物,去到了实体店有不一定有自己满意的商品,有时候会浪费大量的时间和精力。 随着网络的全面覆盖,网上支付系统的逐步完善,物流业的快速兴起,网上购物已经成为了当今购物的潮流。 网上购物商店主要满足人们足不出户就能买到自己想要的物品的需要,同时也为商家省去了昂贵的门面租赁费用,而且商品还可以卖到全国各地,大大的扩大了客源又节省了成本。 网上购物商店主要有以下几个方面的功能: 顾客可以浏览整个网站的商品,可以再网站进行注册,注册之后可以登录并购买商品,同时也可以查看和修改自己的个人信息,为了安全的需求,还可以修改密码。 商家,也就是店主,管理员,可以管理网站所出售的所有商品,同时也可以对在网站进行注册的用户进行管理。 1、用户登录、注册功能 (1)注册功能:用户进入网站,如果有兴趣在该商店购买商品,那么用户就可以注册。 (2)登录功能。已经注册的用户可以登录,登录之后方可购买商品。 (3)查看、修改用户信息功能。 (4)修改密码,为了用户安全的需要,经常更换密码可以保证用户账户的安全。 2、购物功能 (1)物品浏览:顾客进入网站,就可以浏览网站的商品。 (2)商品购买:顾客注册自己的账户,并登录之后就可以在网站购买商品了。购买商品的步骤如下; a)添加商品到购物车 b)确定购买 3、商品管理:管理网站所出售的商品。 4、用户管理:管理员对在网站注册的用户进行管理。 5、订单管理:对用户的订单进行管理。

Java课程设计报告书

华东交通大学理工学院课程设计报告书( 2010-- 2011年度第 2 学期) 所属课程名称 Java面向对象程序设计题目设计一个多功能计算器分院电信分院 专业班级 09信管<1>班 学号 20090210450106 蔡炜指导教师黄建华 2011年06月23日

华东交通大学理工学院 课程设计(论文)任务书专业09信管班级 <1>班姓名蔡炜 一、课程设计(论文)题目设计一个多功能计算器 二、课程设计(论文)工作:自 2011 年06 月 13日起至2011年 06 月 23日止。 三、课程设计(论文)的内容要求: 本应用程序继承自框架类(JFrame),此程序使用Frame布局管理器BorderLayout,将单行文本框加入到“North”区域,包含各种按钮的面板Panel p加入到”Center”区域。包含各种按钮的面板Panel p 采用4行5列的网格布局,然后将数字按钮和运算符按钮以及控制按钮添加到面板中。同时注册按钮事件监听器。如:Button b=new Button(); b.addActionListener(事件监听器); 事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”…”8”,”9”)、运算符按钮事件(”+”,”-“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”=”)、求倒按钮事件(”1/x”)、清零按钮事件(“C”)。

在事件处理触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。 计算器完成的是一个数学表达式,如:3+2,所以可以采用一个链表(LinkedList类)来存储数字或字符,如3,+,2分别存储在链表中,最后运算时,可以一一取出来进行运算。 学生签名: ( ) 2011 年06 月 23 日 课程设计(论文)评阅意见 评阅人职称 20 年月日

控制系统仿真实验报告

哈尔滨理工大学实验报告 控制系统仿真 专业:自动化12-1 学号:1230130101 姓名:

一.分析系统性能 课程名称控制系统仿真实验名称分析系统性能时间8.29 地点3# 姓名蔡庆刚学号1230130101 班级自动化12-1 一.实验目的及内容: 1. 熟悉MATLAB软件的操作过程; 2. 熟悉闭环系统稳定性的判断方法; 3. 熟悉闭环系统阶跃响应性能指标的求取。 二.实验用设备仪器及材料: PC, Matlab 软件平台 三、实验步骤 1. 编写MATLAB程序代码; 2. 在MATLAT中输入程序代码,运行程序; 3.分析结果。 四.实验结果分析: 1.程序截图

得到阶跃响应曲线 得到响应指标截图如下

2.求取零极点程序截图 得到零极点分布图 3.分析系统稳定性 根据稳定的充分必要条件判别线性系统的稳定性最简单的方法是求出系统所有极点,并观察是否含有实部大于0的极点,如果有系统不稳定。有零极点分布图可知系统稳定。

二.单容过程的阶跃响应 一、实验目的 1. 熟悉MATLAB软件的操作过程 2. 了解自衡单容过程的阶跃响应过程 3. 得出自衡单容过程的单位阶跃响应曲线 二、实验内容 已知两个单容过程的模型分别为 1 () 0.5 G s s =和5 1 () 51 s G s e s - = + ,试在 Simulink中建立模型,并求单位阶跃响应曲线。 三、实验步骤 1. 在Simulink中建立模型,得出实验原理图。 2. 运行模型后,双击Scope,得到的单位阶跃响应曲线。 四、实验结果 1.建立系统Simulink仿真模型图,其仿真模型为

最新四层电梯的自动控制系统及模拟系统设计

四层电梯的自动控制系统及模拟系统设计

陕西国防工业职业技术学院 SHAANXI INSTITUTE OF TECHNOLOGY 毕业设计说明书 题目四层电梯的自动控制系统及模拟系统

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段

保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

java课程设计实验报告

Java课程设计实验报告实验题目:打字游戏小程序 专业:计算机科学与技术系 班级:1202班 成员:

Java课程设计(打字游戏小程序) 一、课程设计目的 经过一学期的java学习,能灵活运用书中和实验中所学习的各类知识和技巧,并且能在程序开发中得以很好的运用和发挥。在以后的学习和工作中,可以从中获取很好的经验,并且锻炼自己开发程序和创新的意识。 二、课程设计内容 1.课程设计简介 设计的是一个打字的小游戏,屏幕上不断地有英文字母下落,键盘输入字母,屏幕上与输入的字母形同的就会消失,并计分,如果有没有消去的字母掉到屏幕底,将扣分。 2.设计说明 因为要进行键盘操作,所以引用了event包,还要注册事件监听。字母是随机产生的,又要用。注册了线程。还要对窗口定义坐标,防止字母出现在同一位子。并且通过一位数组来给随机出现的字母做坐标定义。主要通过一位数组来控制字母的坐标,并且通过字母坐标的改变来对整个游戏的流程进行控制。 3.设计流程图 4.实现功能 随机产生字母,运用了键盘操作当按对屏幕中出现的字母时,该字母全部消失,并且在分数上相应的增加或减少。 5.详细设计(源代码) 1) packageDownCharGame; import import import /** *下落的字母实体类 *@authorshenbf * */ publicclassCharEntity{ raw(g); } etY()>=480){ etX((int)()*580)+30); chs[i].setY(0);

chs[i].setColor(newColor((int)()*256), (int)()*256),(int)()*256))); chs[i].setCh((char)(65+(int)()*26))); } chs[i].down(); } repaint();tart(); } publicvoidkeyTyped(KeyEvente){ } publicvoidkeyPressed(KeyEvente){ } publicvoidkeyReleased(KeyEvente){ etCh()||key==chs[i].getCh()+32){ etY()

系统仿真,电梯

复杂系统建模与仿真 实验报告 报告人: 吴陈鹤1083班3111315003 田博1084班3111316001

一.电梯仿真实验 1.模型设计说明 模拟一个五层楼的电梯系统,该楼有一个自动电梯,能在每层停留。设计一个电梯运行的模型,保证乘客的等待时间最短。 2.模型设计思想 (1)五个楼层由下至上依次称为地下层、第一层、第二层、第三层和第四层,其中第一层是大楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来该层候命。五个楼层从下到上的编号为:0、1、2、3、4。除了地下层外,每一层都有一个要求向下的按钮除了第四层外,每一层都有一个要求向上的按钮。对应的变量为:CallUp[0..3]和CallDown[1..4]。电梯内的五个目标层按钮对应的变量为:CallCar[0..4]。 (2)电梯一共有七个状态,即正在开门(Opening)、已开门(Opened)、正在关门(Closing)、已关门(Closed)、等待(Waiting)、移动(Moving)、减速(Decelerate)。 (3)乘客可随机地进出于任何层。对每个人来说,他有一个能容忍的最长等待时间,一旦等候电梯时间过长,他将放弃。对于在楼层内等待电梯的乘客,将插入在等候队列里,每一层有两个等候队列,一队要求向上,一队要求向下,用链队列来实现。对于在电梯内的乘客,用五个乘客栈来实现,该乘客要去哪一层,就把他放在相应编号的栈中,对应变量为EleStack[0…4]。 (4)模拟时钟从0开始,时间单位为0.1秒。人和电梯的各种动作均要耗费一定的时间单位(简记为t): ●有人进出时,电梯每隔40t测试一次,若无人进出,则关门 ●关门和开门各需要20t ●每个人进出电梯均需要25t ●电梯加速需要15t ●上升时,每一层需要51t,减速需要14t ●下降时,每一层需要61t,减速需要23t ●如果电梯在某层静止时间超过300t,则驶回1层候命。 (5)按时序显示系统状态的变化过程:发生的全部人和电梯的动作序列。 3.模型设计概要 本程序包含6个模块: (1)主程序模块 (2)乘客模块 (3)乘客栈模块 (4)电梯模块 (5)等待队列模块 (6)高楼模块:实现电梯和乘客之间的互交。 各模块之间的调用关系如下:

相关文档
最新文档