当前位置:文档之家› 11计算机1班 计吉祥毕业设计论文正文

11计算机1班 计吉祥毕业设计论文正文

1引言

框架从某种意义上讲是某种应用的半成品,它是由一组组件所构成。对于程序的重用性与所设计的系统的扩展性以达到开发周期的缩减的目的与开发质量的提高等目的,往往是框架一直追求并良好的实现了的。

在软件设计中,最终遵循的还是一个设计理念,就是“高内聚,低耦合”。框架一般是将问题分割成若干子问题进行一一攻破,从而起到易于控制、扩展,易于分配资源的效果。设计过程中,常常引入“层”的概念,及将各个义务分层实现。其间难免会出现耦合,而耦合度过高会降低系统的扩展性和维护性。而框架主要工作在层与层之间,很好的解决了这一问题。在软件设计中有一个概念叫做IoC,及控制反转,也叫DI(依赖注入),它主要就是实现层与层之间的松耦合。

面向对象编程在软件设计中无处不在,非常完美的解决了代码重用。但有时候具体的业务贯穿整个系统,而往往这个业务是重复出现的,利用面向对象已不能很好解决。在这里便出现了AOP(面向切面编程),将其中相同的业务抽取出来进行统一解决。在这里不得不说一下Spring框架的强大魅力,Spring对IoC和AOP的操作可谓前无古人。

本文主要利用IoC和AOP的概念,解决层与层之间的依赖关系以及重复业务的处理。

1.1研究背景

上世纪末与本世纪初,J2EE开始盛行,主要归功于它对中间层概念提出了系统性标准。但事实上,它并没有取得实质性的成功,原因主要是因为不管从其效率、难度还是性能上来讲都不孚众望。

在J2EE早期阶段,都是利用EJB技术来开发J2EE应用的。但是,对于EJB,其学习成本非常高也难于理解,而且要想应用EJB技术也是相当困难的。因为EJB强制程序员必须依照它的规范去继续各种不同的接口,这样便会导致代码冗余及相似。此外对于其配置既是纷繁复杂又是味同嚼蜡。对于使用JNDI查找对象也是如此。虽然xdoclet的应运而生和缓了其中部分的开发工作,但是EJB存在的各大问题都造成了对其使用的不方便性。随着Java语言的发展,AOP和IoC等技术的逐渐成熟,一种新的J2EE解决方案应运而生,即轻量级框架。[1]

1.2研究平台

本文主要是基于Eclipse平台,使用Java语言编写IoC和AOP的实现程序。

1.2.1Java语言

Java是一种面向对象的,由Sun公司开发的程序设计语言,具体研发是James Gosling及其同事,在上世纪90年代末正式推出。Java的强大之处在于其跨平台性,可在不同操作系统上编写应用软件。Java语言不同于其他编程语言,其优势主要体现在它具有通用、高效、安全等优点。而且该语言的应用领域也极其广泛。在微型电脑、数据中心、超级计算机以及各种网页应用等都能见到Java的身影。虽然Java的编程风格与之C、C++非常接近,但与C语言不同的是,Java是完全的面相对象,对于C++核心的面向对象技术它也是完美的继承了。同时,Java一改C中指针的概念,取而代之的是引用的概念。同时也摒弃了C中运算符重载和多继承等特征。在此基础上,Java 也增加了自己的新特性,就是垃圾回收机制,对于不再引用而又一直在内存中的引用进行回收处理。程序员也从中得益而不用手动进行内存管理。

1.2.2Eclipse

Eclipse是一个开源的软件开发工具,同时也是功能完备,能进行商用的工业开发平台。主要组成为Eclipse项目、工具项目、技术项目,具体是指Eclipse Platform,JDT,CDT,PDE。其中,Eclipse Platform是可扩展的集成开发环境;JDT是Java开发工具,主要用于Java开发;CDT是C语言开发工具,主要用于C开发;PDE则是对插件的开发。Eclipse为构建IDE和建造块建立坚实的基础。对于Eclipse Platform,它允许第三方工具的无缝对接,从而起到无须辨别具体工具的功能体现在哪里的作用。

2IoC和AOP

2.1IoC(控制反转)

IoC,英文全称为Inversion of Control,及控制反转,主要用于降低程序间的耦合度。控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。依赖注入应用比较广泛。[2]

2.1.1依赖注入

依赖注入就是容器全权负责组件,给予其回调接口和上下文条件。EJB和Apache Avalon 都使用这种方式。如此看来,对于依赖对象的查找以及资源的查找就必须使用容器提供的接口,控制反转也就体现在了回调接口上。容器提供应用代码资源也是通过回调接口的。 [3]

2.1.2实现方式

对于依赖注入,主要的实现方式分别为接口注入(Interface Injection)、Set 方法注入(Setter Injection)和构造注入(Constructor Injection)。[4]

2.1.2.1接口注入

在接口中定义要注入的信息再通过接口来完成此功能就叫接口注入。具体示例如下:

编写一个IBiz接口,Dao层的注入将通过这个接口进行。假设该接口中有一getDao()方法,用于获取数据访问层的对象。

public interface IBiz{

/**

* @param dao 数据访问层对象

*/

public void getDao(Dao dao);

}

对于想要进行数据库操作的类就必须得实现IBiz接口,业务逻辑类Biz实现这个接口IBiz。

/*

* 具体实现IBiz接口的类,重写了getDao方法

*/

public class Biz implements IBusiness{

private Dao dao;

@Override

public void getDao(Dao dao){

this.dao=dao;

}

}

只有实现IBiz接口才能完成依赖注入。

2.1.2.2Set方法注入

Set方法注入就是在需要属性注入的类中定义一个Set方法,并设置注入元素为其参数。

假设业务层Biz依赖数据访问层,且持有其属性,需定义一个Set方法来接受数据访问层的注入。

public class Biz{

//数据访问层对象的引用

private Dao dao;

public void setDao(Dao dao){

this.dao=dao;

}

//其他调用数据访问层的方法及其他操作

}

2.1.2.3构造注入

构造注入就是在需要属性注入的类中提供一个有参构造,其参数就是注入的元素。假设业务层Biz依赖数据访问层,且持有其属性,可通过一个构造器来接受数据访问

层的注入。

public class Biz{

private Dao dao;

public Biz(Dao dao){

this.dao=dao;

}

//其他调用数据访问层的方法及其他操作

}

2.1.2.4IoC图解

图2.1 IoC图解

2.2AOP(面向切面编程)

AOP就是Aspect Oriented Programming的缩写,意为:面向切面编程。具体是指它是一种通过预编译和动态代理来实现程序功能的统一维护的技术。[5]AOP是OOP 的延续,是软件开发中的一个热点,是函数式编程的一种衍生范型。AOP技术可以使业务逻辑的各个功能模块耦合度降低,从而达到提高程序的重用性和开发效率。 [6]

2.2.1实现技术

对于AOP技术的实现,主要可通过以下两种方式实现:一种是动态代理,对原有对象的行为通过截取消息,修饰消息,最终执行修饰后的行为;另一种是静态织入,以特定语法创建切面,以达到编译器在编译期织入切面代码的目的。[7]然而殊途同归,实现AOP的技术特性却是相同的,分别为:

(1)join point(连接点):连接点是程序运行过程中具体的执行点,比如它可以是一个方法。对于连接点并不是一个具体的概念,所以在是实现AOP时

并不用去定义它。

(2)point cut(切入点):对于切入点这个概念,它实质上是一个捕获连接点的一种结构。所以在实现AOP中,可通过定义一个切入点来拦截相关方法的

调用。

(3)advice(通知):本质上是切入点是执行程序,具体执行切面的逻辑。

(4)aspect(方面):切点与通知合称切面,虽与面向对象中的类相似,但它更多的表达的是对象间的横向关系。

(5)introduce(引入):以附加属性方法的形式达到修改对象结构的目的。有的AOP工具又将其称为mixin。

2.2.2主要目的

对于AOP的主要目的大致可分为事务处理、性能监测、日志记录、安全控制等。

[8]

2.2.3主要意图

对逻辑代码中事务处理、性能监测、日志记录、安全控制等的处理从中分离,重新独立到非向导业务方法中。此等做法的好处是在修改这些代码的时候不影响业务逻辑,进一步体现了软件开发的“开闭原则”。[9]

2.3注解(Annotation)

Annotation(注解)是JDK5.0及以后版本引入的。对于注解,主要作用大致是监测代码依赖性,创建文档,通过注解甚至可以执行基础的编译检查。[10]注解的编写方式是以“@”开头加上自定义的注解名,通过其参数个数的不同,大致可分为三类:单值注解、标记注解和完整注解。注解只是作为标识存在,一般不会直接影响到程序的语义,通过反射机制我们可以访问到这些元数据,元数据就是用来描述数据的数据。

注解的存在级别一共有三种:RUNTIME,CLASS,SOURCE。RUNTIME表示运行时存在,CLASS 表示能作用于class文件,SOURCE表示只存在源代码中。程序员可在编译时选择代码的存在级别。 [11]

2.3.1基本作用

虽然对于注解的作用还没有明确的定义,但是大致可以分为三种:

(1)编写文档:检查代码中存在的标识注解来生成文档。

(2)代码分析:以代码中标识的注解对代码进行分析。

(3)编译检查:检查标识的注解使编译器能执行基础的编译检查。[12]

2.3.2基本的内置注解

(1)@Override:只能用在方法上,用来申明该方法是改写父类的。

(2)@Deprecated:对于弃用的方法添加的注解。当程序员调用这些方法时,在编译时将会显示提示信息。该注解可添加在程序的所有元素上。

(3)@SuperressWarnings:暂时关闭警告信息。[13]

3基于注解的IoC和AOP的实现

就IoC而言,主要实现是靠设计模式中的工厂模式,工厂模式负责将大量具有Component注解的类进行实例化,而不必事先知道每次是要实例化哪一个类。换句话说,工厂模式对于具体的new的细节都进行了隐藏和封装。

对于工厂模式的优点主要分为下列四点:

(1)代码结构清晰,具有良好的封装性。对于对象的创建不是无条件的。假设一个调用者需要一个具体的产品,调用者并不需要知道产品具体是如何被生产的。对于他而言只需要知道产品类名或者产品约束字符串就可以了,从而降低模块耦合度。

(2)优秀的可扩展性。如果具体需求需要增加产品,不必具体对产品类进行修改,只需适当修改工厂类或者再增加一个工厂就可以了。

(3)屏蔽产品类。对于具体产品是如何生产的,调用者并不用关心,他的关注点主要在于产品的接口。如果产品接口不发生变化,那么系统上层的模块也不会发生改变。具体的产品的实例化主要由工厂类管理,对于不同的产品对象的生产应取决于不同的工厂类。

(4)关于工厂方法的经典应用就是解耦合了。处于较高层的模块只需知道实现

类的接口,具体实现类无需关心。对于工厂方法,它也遵循迪米特和依赖倒

置法则,仅仅依赖实现类的接口;除此之外,工厂方法也遵循里氏替换原则,子类可以随时随地替换父类。[14]

而对于AOP来说,在扫描系统组件时,如果该组件存在Interception注解且已声明需要拦截的方法。那么在调用存在Interception注解的类的方法时,如果该方法已被拦截,则该方法执行前和执行后会进行相应的操作。而实现AOP技术主要用到了代理模式。

对于使用代理模式,只要有点体现在以下几个方面:

(1)职责清晰:具体的产品类实现具体的业务,不必去在意非自身所要实现的业务。如需其他业务可通过后期代理完成附加,此种做法的好处是代码简洁

清晰。

(2)高扩展性:对于产品类可能需求不同,但是只要是实现了其接口的,可通过代理手段代理各种产品类,而代理类却不用做任何修改。

(3)智能化:代理对象可在运行时才去调用具体的代理类,换言之就是代理类可以在运行时才确定代理对象。[15]

3.1注解的编写

在本文中,主要用到的注解有@Component,@Property,@Aspect,@Interception。@Component注解主要说明该类是一个组件,用于在初始化容器时将其实例创建放入一个Map中;@Property注解主要说明该类是组件类的属性,在运行时将注入属性,以便调用该类的方法;@Aspect注解主要用于说明该类是一个切面类,用来执行在拦截方法执行过程中要处理的操作;@Interception注解用于说明该类中的方法需要被拦截,可指定要拦截的方法,拦截下来的方法将先进行其他操作,如事务处理。具体注解的代码如下:

@Component注解:

public @interface Component {

//组件在HashTable中的名字,当为空时默认为组件类名的小写

public String name() default "";

//组件是否存在单例,默认为存在

public boolean isSingleton() default true;

}

@Property注解:

public @interface Property {

//需要注入的属性注入的对象的名称,默认为空时则直接获取组件中属性的名称

public String ref() default "";

}

@Aspect注解:

public @interface Aspect {

//切面类的名称

public String name() default "";

}

@Interception注解:

public @interface Interception {

//拦截的方法

public String[]methods();

}

3.2IoC实现(对象工厂)

首先,在工厂初始化的时候会创建组件的对象,而对于组件类的存放放在对应的包中,对于读取的包及包的扫描则配置在XML中。读取XML获取包名及子包名代码如下:

String packageInfo="";

URL url=XMLParse.class.getResource("");

File file=new File(url.getPath()+xmlName);

DocumentBuilder builder=null;

try {

builder=DocumentBuilderFactory.newInstance().newDocumentBuilder();

Document doc=builder.parse(file);

Element ele=doc.getDocumentElement();

NodeList nls=ele.getChildNodes();

Element ce=null;

for (int i = 0; i < nls.getLength(); i++) {

Node n=nls.item(i);

if(n.getNodeType()==Node.ELEMENT_NODE){

if(n.getNodeName().equals("component-package")){

ce=(Element)n;

break;

}

}

}

packageInfo=ce.getTextContent();

} catch (Exception e) {

e.printStackTrace();

}

其次通过包名,获取包中的所有类,而类的存放是以文件形式存在,则需进行文件的扫描。文件扫描代码如下:

public void findAndAddClassesInPackageByFile(String packageName,

String physicsPath, final boolean recursive, Set> classes) {

//获取此包的目录建立一个file

File dir=new File(physicsPath);

//如果不存在或者也不是一个目录就直接返回

if(!dir.exists()||!dir.isDirectory()){

return;

}

//如果存在就获取包下的所有文件及目录

File[] dirFiles=dir.listFiles(new FileFilter() {

@Override

public boolean accept(File file) {

//如果可以循环(即包含子目录)或是以.class结尾的文件(即编译好的java 文件)

return (recursive&&file.isDirectory())||(file.getName().endsWith(".class"));

}

});

//循环所有文件

for (File file : dirFiles) {

//如果是目录则继续扫描

if(file.isDirectory()){

findAndAddClassesInPackageByFile(packageName+"."+file.getName(), file.getAbsolutePath(), recursive, classes);

}else{

//如果是java类文件去掉后面的.class只留下类名

String className=file.getName().substring(0,file.getName().length()-6);

//System.out.println(className);

try {

//添加到集合中

//System.out.println(packageName+'.'+className);

classes.add(Thread.currentThread().getContextClassLoader().loadClass(packageName+'.'+clas sName));

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

获取包中所有类的代码如下:

public Set>getClasses(String packages){

//存放包中的class

Set>classes=new LinkedHashSet>();

//是否迭代循环

boolean recursive=true;

//将包名从以"."隔开换成以"/"隔开

String packageName=packages;

String packageToDir=packageName.replace(".", "/");

//System.out.println(packageToDir);

//定义一个枚举的集合循环处理该目录下的所有东西

Enumeration dirs;

try {

dirs=Thread.currentThread().getContextClassLoader().getResources(packageToDir);

//循环迭代

while(dirs.hasMoreElements()){

//获取下一个元素

URL url=dirs.nextElement();

//获取协议名

String protocal=url.getProtocol();

//如果是文件形式保存在服务器上

if("file".equals(protocal)){

//System.err.println("file类型的扫描");

//获取包的物理路劲

String physicsPath=URLDecoder.decode(url.getFile(), "utf-8");

//sSystem.out.println(physicsPath);

//以文件方式扫描整个包下的文件并添加到集合中

findAndAddClassesInPackageByFile(packageName,physicsPath,recursive,classes);

}else if("jar".equals(protocal)){

//如果是jar文件,则定义一个jarFile

JarFile jar;

try {

//获取jar

jar=((JarURLConnection)url.openConnection()).getJarFile();

//从此jar包中获取一个枚举类

Enumerationentries=jar.entries();

//同样进行循环迭代

while(entries.hasMoreElements()){

//获取jar里的一个实体,可以是目录和一些jar包里的其他文件,如META-INF等文件

JarEntry entry=entries.nextElement();

String name=entry.getName();

//如果以"/"开头

if(name.charAt(0)=='/'){

//获取"/"后的字符串

name=name.substring(1);

}

//如果前半部分与定义的包名相同

if(name.startsWith(packageToDir)){

//若以"/"结尾是一个包

int index=https://www.doczj.com/doc/6e1528010.html,stIndexOf("/");

if(index!=-1){

//获取包名且把"/"替换成"."

packageName=name.substring(0,index).replace("/", ".");

}

//若可迭代下去且是一个包

if((index!=-1)||recursive){

if(name.endsWith(".class")&&!entry.isDirectory()){

//去掉".class"获取正真的类名

String

className=name.substring(packageName.length()+1,name.length()-6);

try {

//添加到classes中

classes.add(Class.forName(packageName+"."+className));

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

}

}catch (Exception e) {

e.printStackTrace();

}

}

}

} catch (Exception e) {

e.printStackTrace();

}

return classes;

}

接着就是对工厂的初始化。具体代码如下:

public void init() {

//获取配置文件中的包信息

String packageInfo=XMLParse.getInstance().getPackage();

//System.out.println(packageInfo);

//获取包下的所有class

Set>classes=getClasses(packageInfo);

//System.out.println(classes.size());

for (Class cls : classes) {

//判断是否存在Component注解

if(cls.isAnnotationPresent(Component.class)){

//获取注解对象

Component component=cls.getAnnotation(Component.class);

//获取注解name的属性值

String comName=https://www.doczj.com/doc/6e1528010.html,();

try {

//判断注解comName是否为空

if(comName.equals("")){

//如果为空将comName设置为类名的小写

comName=cls.getSimpleName();

comName=comName.substring(0,1).toLowerCase()+comName.substring(1);

//System.out.println(comName);

}

//最终将处理后或未处理的类名对应的实例存入cms中

cms.put(comName, cls.newInstance());

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

接下来则是在程序运行过程中,对存在@Property注解的属性进行属性注入,获取其对应的实例对象。具体代码如下:

public T getObject(String name,Class cz){

T target=(T)cms.get(name);

//获取组件时首先要判断该组件是否存在

if(target==null){

throw new RuntimeException("对象不存在");

}

//如果对象存在,则要判断对象是否需要注入属性,如果需要注入属性,则先注入属性在返回对象

Field []fields=target.getClass().getDeclaredFields();

for (Field field : fields) {

//判断该属性是否存在Property注解

if(field.isAnnotationPresent(Property.class)){

//获取属性名

String fieldName=field.getName();

Property pro=(Property)field.getAnnotation(Property.class);

String ref=pro.ref();

//判断ref是否为空

if(ref.equals("")){

ref=fieldName;

}

//获取set方法的名称

String

methodName="set"+fieldName.substring(0,1).toUpperCase()+fieldName.substring(1);

try {

Method m=cz.getMethod(methodName, field.getType());

m.invoke(target, this.getObject(ref, field.getType()));

} catch (Exception e) {

e.printStackTrace();

}

//target=this.getObject(fieldName, cz);

}

}

if(target.getClass().isAnnotationPresent(Interception.class)){

Interception inter=target.getClass().getAnnotation(Interception.class);

//拦截的方法

String methods[]=inter.methods();

SpringInterceptor mi=null;

try {

mi=(SpringInterceptor)Class.forName(interceptionName).newInstance();

mi.setMethodsName(methods);

mi.setTarget(target.getClass().newInstance());

} catch(ClassNotFoundException e){

e.printStackTrace();

}catch (InstantiationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return (T)mi.getInstance();

}

return target;

}

在属性注入的同时会判断该属性是否存在拦截器以及要拦截的方法。接下来则是利用AOP实现拦截器功能。

3.3AOP实现(拦截器)

对于拦截器,其实就是代理模式的具体实现,首先需实现InvocationHandler接口,该接口是代理实例的调用处理程序实现的接口。对于各个代理实例都被联接了具体的处理程序代码。在代理实例调用处理程序时,将对该程序方法编码设置且将其指派到它的invoke方法。

以下是实现InvocationHandler的抽象类,该类需要一个目标对象及该目标对象需要拦截的方法。具体代码如下:

public abstract class SpringInterceptor implements InvocationHandler {

//目标对象

private Object target;

//所要拦截的方法

private String[] methodsName;

public Object getInstance(){

Object obj=Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), this);

return obj;

}

public void setTarget(Object target){

this.target=target;

}

public void setMethodsName(String[] methodsName){

this.methodsName=methodsName;

}

@Override

public Object invoke(Object proxy, Method method, Object[] args)

throws Throwable {

for (String name : methodsName) {

if(name.equals(method.getName())){

return interceptor(target,method,args);

}

}

return method.invoke(target, args);

}

/**

*

* @param target 拦截类的对象

* @param method 拦截的方法

* @param args 方法的参数

* @return 返回值

* @throws IllegalArgumentException

* @throws IllegalAccessException

* @throws InvocationTargetException

*/

public abstract Object interceptor(Object target, Method method, Object[] args)throws IllegalArgumentException, IllegalAccessException, InvocationTargetException;

}

接下来则是编写具体实现拦截功能的实现类。具体代码如下:

public class MyInterception extends SpringInterceptor {

@Override

public Object interceptor(Object target, Method method, Object[] args)

throws IllegalArgumentException, IllegalAccessException,

InvocationTargetException {

Object result=null;

System.out.println("开启事务");

result=method.invoke(target, args);

System.out.println("提交事务");

return result;

}

}

至此,基本实现了拦截器功能。对于AOP编程,能实现的功能主要有事务处理、性能监测、日志记录、安全控制等,在这里只是象征性的输出语句。

3.4IoC和AOP实现流程图

根据IoC和AOP的描述以及实现程序,绘制了实现的基本流程图,如图3.1和图3.2所示:

图3.1 初始化对象工厂流程图

图3.2 获取对象及AOP实现流程图

4基于注解的IoC和AOP的框架在WEB中的应用

下面是该框架在WEB中的应用,主要为了验证IoC和AOP,所以只是实现了简单的增删改查,而没有过多是去追求系统的其他功能。前台显示页面利用AJAX异步请求数据,当访问主页就会显示数据,对于显示的方法并没有进行拦截。提供基本的增删改功能,当点击相应功能时会提交给servlet进行处理,servlet中将创建service 层的对象,而对象的创建利用框架中的获取对象方法,而不是直接new出来,实现了层与层之间的松耦合。在service层将申明dao层的属性,配有setDao方法获取属性对象。而在dao层中将实现方法的拦截,拦截的方法主要就是增删改,对于拦截的方法会进行相应的处理,而在这只是象征性的输出语句。下面是WEB的具体实现。

表4.1 用户信息表

序号列名类型含义备注

1 id int id 主键

2 username Varchar 用户名

3 4 5

userno

userage

usergender

Varchar

int

Varchar

用户编号

用户年龄

用户性别

4.1用户显示

当客户端访问主界面时,主界面中利用AJAX异步请求servlet,将传过去一个op,也就是请求的操作。servlet根据请求的op判断该执行什么操作,然后调用相应的方法。在这里则是进行查询操作。在servlet中将使用框架中的对象工厂获取service 层,也就是业务层的对象,所以servlet将调用service层的查询方法。而在service 层中存在dao层(数据访问层)的属性,要想获取dao层的对象,首先需对dao属性进行set处理,这样在对象工厂初始化的时候凡是有@Property注解的将通过set方式注入其对象。当然也会判断该属性对应的类是否需要方法拦截。在该web显示中只对修改、删除和更新用户的方法进行了拦截,对于其他方法并没有进行拦截。用户显

示如下图所示:

图4.2 用户信息显示

查询用户的servlet代码如下所示:

//查询相关用户

Listusers=userService.queryUser();

ObjectMapper mapper=new ObjectMapper();

//将其转换成json数据

String json=mapper.writeValueAsString(users);

response.setCharacterEncoding("utf-8");

PrintWriter pw=response.getWriter();

pw.write(json);

pw.flush();

pw.close();

4.2用户的增删改

对于用户的增删改操作,具体实现方法不同,但大致的操作过程和查询用户类似,在这里就不再赘述。唯一有区别的就是,对于用户的增删改方法进行了方法拦截,即在dao层中存在@Intecerption注解,并指明了拦截的方法有“saveUser”,“delUser”和“updateUser”。对于拦截的方法采用AOP编程思想,将调用具有@Aspect注解的类,在方法执行过程中执行该类相应的方法。但是在本web实现中也只是象征性的输出语句。具体增加修改用户的页面和进行拦截的结果如下所示:

1-毕业设计(论文)排版格式

学号:(宋体五号粗体)常州大学 毕业设计(论文) (××××(Times New Roman三号粗体)届) 题目(宋体四号粗体) 学生(宋体四号粗体) 学院(宋体四号粗体)专业班级(宋体四号粗体) 校内指导教师(宋体四号粗体)专业技术职务(宋体四号粗体)校外指导老师(宋体四号粗体)专业技术职务(宋体四号粗体) 二○××年×月(居中宋体四号粗体)

毕业设计(论文)题名(居中宋体三号粗体) (空一行) 摘要(宋体小四号粗体):……………………………………………………………。(宋体小四号) 关键词(宋体小四号粗体):(3~8)…………;…………;…………;…………(宋体小四号) 说明:①题名以简明的词语恰当、准确地反映论文最重要的特定内容(一般不超过25字),应中英文对照。题名通常由名词性短语构成,应尽量避免使用不常用缩略词、首字母缩写字、字符、代号和公式等。如题名内容层次很多,难以简化时,可采用题名和副题名相结合的方法,其中副题名起补充、阐明题名的作用。题名和副题名在整篇学位论文中的不同地方出现时,应保持一致。 ②摘要应具有独立性和自含性,即不阅读论文的全文,就能获得必要的信息。摘要的内容应包含与论文等同量的主要信息,供读者确定有无必要阅读全文,也可供二次文献采用。摘要一般应说明研究工作目的、方法、结果和结论等,重点是结果和结论。 ③中文摘要一般字数为300~600字,外文摘要实词在300个左右。如遇特殊需要字数可以略多。

Title(居中Times New Roman字体三号粗体) (空一行) Abstract(Times New Roman 小四号粗体):内容(Times New Roman 小四号)Key words(Times New Roman 小四号粗体):内容(Times New Roman 小四号)

计算机专业毕业论文完整版

摘要 随着信息技术的高速发展,21世纪是数字信息时代,互联网正以前所未有的冲击力影响着人类的生活。它的出现和发展,同样也为学校的发展提供了丰富的资源。正是在这样的趋势下,大部分的学校都建立了自己的,通过来发布消息,共享资源,为学校和学生提供一个相互交流的平台,增强学校和学生之间的联系。 本文主要讲述了如何利用DREAMWEAVER和ACCESS数据库进行学校设计的开发过程,详细给出了从学校的需求分析到总体设计、详细设计与实现及测试的各个环节,最后对本做出了客观评价,指出了本的不足之处,并给出今后的完善方向,基本上完成了一个所要求的容,包括前台展示和后台管理。整个包括首页模块、留言板模块、后台模块。通过本次的开发,使我明白在进行的设计与维护的时候应该要从整体上把握全局,对设计有了一定的了解。 关键词:ASP;ACCESS数据库;学校网络;管理 Abstract With the rapid development of information technology, the 21st century is the digital information age, Internet is an unprecedented impact affects human life. Its emergence and development, but also for the development of enterprises provides a rich resource. It is in such a trend, the majority of enterprises have set up their own website, through the website to publish news, Gongxiangziyuan for enterprises and Ke Hu provide a mutual exchange of the platform, enhance business and customer. This article describes how to conduct business using DREAMWEAVER and ASP web design development process, from the corporate website gives detailed system analysis to design, detailed design and implementation and testing of all aspects of the system made the final objective of this evaluation, that the shortcomings of this system, and gives direction for the future perfect, basically completed the required content of a site, including the front display and back office management. The entire system including the Home module, message board module, the background module. Through the development of the site, so that we understand that when the system should do from the whole to grasp the overall situation, of design web site has some understanding. Key words: ASP;ACCESS;DREAMWEAVER;HTML;Website design

毕业设计论文正文模板及格式规范标准

本文给出了职业技术学院物联网专业毕业设计论文的写作规和排版格式要求。文中格式可作为编排论文的格式模板,供学生参考使用。 摘要容说明: 论文摘要是论文的缩影,文字要简练、明确。容要包括目的、方法、结果和结论。摘要的编写应遵循下列原则:1)摘要应具有独立性和自含性,即不阅读论文的全文,就能获得必要的信息。摘要是论文的缩影,是论文的主要容、见解、结论简短明了的缩写。2)摘要中要有数据、有结论,是一片完整的短文,可以独立使用,可以引用。3)摘要容应尽可能包括原论文的主要信息,供读者确定有无必要阅读全文,也供文摘汇编等二次文献采用。4)要用文字表达,不要附图和照片,除了实在无变通办法可用以外,摘要中不用图、表、化学结构式、非公知公用的符号和术语,不要使用表格、公式、上下标以及其他特殊符号,单位制一律换算成国际标准计量单位制,除特别情况外,数字一律用阿拉伯数码。 摘要格式说明: 标题“摘要”手动设置成字体:黑体,居中,小三号,段后6磅,段前0磅。 摘要容:宋体,小四号,1.5倍行距。每段落首行缩进2个汉字;两端分散对齐。 篇幅以一页为限,字数为600字左右。一般不超过1000字。 摘要正文后,列出3-5个关键词。关键词请尽量用《汉语主题词表》等词表提供的规词。 关键词与摘要之间空一行。关键词间用逗号间隔,末尾不加标点,3-5个,黑体,小四,加粗。 关键词:写作规,排版格式,毕业论文

目录 1.2 论文页眉页脚的编排 (3) 1.3 论文正文格式 (4) 1.4 章节标题格式 (4) 1.5 各章之间的分隔符设置 (4) 1.6 正文中的编号 (5) 2 图表及公式的格式说明 (6) 2.1 图的格式说明 (6) 2.1.1 图的格式示例 (6) 2.1.2 图的格式描述 (6) 2.2 表的格式说明 (7) 2.2.1 表的格式示例 (7) 2.2.2 表的格式描述 (8) 2.3 公式的格式说明 (9) 2.3.1 公式的格式示例 (9) 2.3.2 公式的格式描述 (9) 2.4 参考文献的格式说明 (9) 2.4.1 参考文献在正文中引用的示例 (9) 2.4.2 参考文献在正文中引用的书写格式 (9) 2.4.3 参考文献的书写格式 (10) 2.4.4 参考文献的书写格式示例 (10) 2.5 量和单位的使用 (10) 2.5.1 使用方法 (10) 2.5.2 中华人民国法定计量单位 (10) 2.6 规表达注意事项 (13) 2.6.1 名词术语 (13) 2.6.2 数字 (13) 2.6.3 外文字母 (13) 2.6.4 量和单位 (14) 2.6.5 标点符号 (14) 3 打印说明 (15)

毕业设计(论文)主要参考资料电影

毕业设计(论文)主要参考资料电影 篇一:毕业论文电影网页总体设计6 本科生毕业设计说明书(毕业论文) 题目:电影网站的设计 学生姓名: 学号: 专业:计算机科学与技术 班级: 指导教师: 第四章“爱电影”网站总体设计分析 4.1 网站总体设计 本网站用DIV块将页面分为几部分,每一个页面都有自己的页面划分情况,将电影网站制作成为一个拥有友好界面,并且布局合理、功能强大的,信息详尽的网站,本网站分为多个页面,分别为首页,各分类页,包括新闻频道、影院频道、商城频道、社区频道、发现频道,和详情展示页、注册页、登录页等。 电影网站会运用到多种颜色,只运用一种颜色会让人感觉单调、乏味、枯燥;但网站中主色太多的话,会让人感觉凌乱,无主题感[1]。一个网站需要有1~2种主题色与1~2种辅色,才不会让浏览者迷失方向。 1、主色

在网页上,面积最大的色彩为网页的主色调,爱电影网站中白色贯穿网站中所有的页面。其次就是以淡蓝色色做为设计的主色调。以蓝色为主色的作品,多数给人感觉理智、沉稳和冷静。 2、辅色 网站的辅色用了浅灰色,浅灰色给人以诚恳、沉稳、考究的感觉。灰色更有弹性,但灰色决不是灰心丧气,悲观的表现,它甚至比黑色更有张力!浅灰色使人觉得比较干练、干净,作为辅色就不能那么的抢眼,干净利落终归是最好的选择[2]。 3、背景色 整个网站的背景色是用的白色,白色显得特别的干净、简单。不会显得整个网站杂乱无章。白色与其他色彩对比强烈。当白色与其他鲜艳的色彩组一起搭配时,往往更引人注目并可以吸引浏览者。 4.2 “爱电影”网页版式设计 通过了解各个类型的网页设计版式,结合本网站是商业性网站,爱电影网站的设计中选择了骨骼型的设计方法来完成爱电影网站的前台网页设计与制作。 以首页为主,我将整个网页纵向分为三部分,第一部分作为该网也的头部约180px,主要包括网站logo,导航条;底部约300px,该部分主要书写电影网站的内部介绍,版权

哈尔滨工业大学关于本科生毕业设计(论文)的若干规定

哈尔滨工业大学关于本科生毕业设计(论文)的若干规定发布时间:2013-07-02浏览次数:8817 来源:毕业设计(论文)是学生大学阶段的综合训练教学环节,是培养学生工程实践能力、理论研究能力和创新意识的重要环节,是学生毕业及学位资格认定的重要依据。为适应教学改革与发展的需要,对本科生毕业设计(论文)做出如下规定。 一、毕业设计(论文)的组织管理 1.毕业设计(论文)的组织管理工作包括确定指导教师、选题、开题、中期检查、结题验收、答辩及归档等各个环节。各项工作在主管校长的领导下,由教务处、院(系)和教研室分级完成。对不设教研室的院(系),教研室的职责由院(系)或相应的基层教学组织承担。 2.毕业设计(论文)教学实行指导教师负责制,指导教师应对整个毕业设计(论文)阶段的教学活动全面负责。 3.毕业设计(论文)指导教师应由讲师及讲师以上职称的教师担任,由助教任导师时,应有副教授以上职称的教师共同指导。需要在工厂或校外其它单位进行毕业设计(论文)工作时,可聘请该单位具有中级以上技术职称的技术人员协助我校指导 教师进行指导。每位指导教师指导的学生数量不宜超过6人。 4.教务处的职责

(1)统一管理毕业设计(论文)工作,通过制定毕业设计(论文)工作的有关政策、制度及规定,对其进行宏观指导。 (2)协调校内有关部门,为毕业设计(论文)工作的顺利进行提供场地、设备、经费等方面的保证。 (3)组织校级毕业设计(论文)检查组,负责对毕业设计(论文)的开题、中期、答辩等教学环节进行质量监督和检查。 (4)进行毕业设计(论文)工作的考核、总结,组织经验交流和质量评估等工作。 5.院、系的职责 (1)贯彻执行学校关于毕业设计(论文)的规定,结合本院(系)的专业特点,制定毕业设计(论文)管理的实施细则;文科类专业的院(系)还要制定适合文科的毕业论文撰写规范。 (2)成立毕业设计(论文)领导小组,定期检查、指导各教研室毕业设计(论文)工作的进度和质量,包括要做好开题、中期检查和答辩等环节的检查。 (3)为指导教师和学生提供适当的资料、实验条件、调研途径等。 (4)审批答辩委员会和答辩小组。 (5)做好毕业设计(论文)工作总结,及时将总结报告上报教务处。 6.教研室的职责 (1)确定指导教师。

计算机类毕业论文范文

计算机类毕业论文范文 一:计算机应用技术对医院信息化的影响 摘要:随着信息化技术的迅猛发展,各个行业也因此取得巨大进步与发展,医疗卫生 行业亦不例外。计算机技术在医院信息化建设中起着举足轻重的作用,为我国卫生行业做 出了重大的影响。本文便主要分析计算机技术在医院信息化管理中发挥的巨大影响,希望 能为今后计算机应用技术在医院信息化管理中的应用产生更多积极的影响。 关键字:计算机技术;医院信息化管理;影响分析 1医院信息化建设的意义 医疗水平往往能够体现人类文明的发展程度,因此,医院在社会发展中占据着重要的 地位。在医院信息化建设的过程中,随着计算机技术的不断运用,医院现的代化管理水平 也随之不断提升[1]。医院信息化建设利用计算机应用技术,提高管理的现代化程度,不 仅能够提高工作效率还有效益最大化和降低成本的作用,如此一来,医院的资源能够得到 更好的利用,百姓看病将更加方便、快捷。 2完善医疗流程,提高工作效率 运用多种计算机技术,不仅能够完善医院的管理流程,还能提升医院不同部门之间信 息传输的速度。这样便减少了劳动工作量,避免了重复性的工作,提升了工作效率以及处 理医疗信息的质量,如此一来,医护人员能够将更多的精力放到为患者提供高质量服务上面。此外,医院内部信息管理的完善,调查病人病历将更加方便有序,便于专家会诊,也能够 避免一些医疗隐患,甚至可能在避免医疗纠纷方面有突出影响[2]。主要体现在部门业务 过程的自动化,如门急诊挂号、病情录入、划价收费、药品发放、多种查询、检查报告等 流程的自动化;住院床位的管理、医护人员分配、费用余额提醒等过程的自动化。 3病例管理系统的影响 病例管理系统是利用计算机技术,将病人的病例进行搜集整理从而统一管理的系统。 该系统通常通过编码对病例进行管理,可以通过病例编号、病人姓名等信息进行查找。这 样不仅方便对资料进行检索,及时调取病人信息,方便医生及病人,更主要的影响是:能 够有效避免病案和统计的重复输入,这是由于病人的信息是唯一的。因此,在将计算机技 术应用到病例管理系统之后,系统统计的住院人数、抢救成功率、死亡率等数据信息的准 确性将大大提升,数据统计的速度更是不可同日而语。 4决策支持系统的影响 将TPS业务处理系统采集的各方数据链接为数据仓库,通过调动模型库、方法库和知 识库对数据仓库进行访问并计算,辅助半结构化甚至非结构化决策。常见的比如药品管理 系统、药房管理系统等[3]。

毕业设计论文规范

湖北工业大学本科生毕业设计(论文)规范 一、内容要求 毕业设计报告正文要求: (1)理、工科类专业毕业设计报告正文内容应包括:问题的提出;设计的指导思想;方案的选择和比较论证;根据任务书指出的内容和指标要求写出设计过程、课题所涉及元件结构和相关参数的设计计算,有关基本原理的说明与理论分析;给出所设计课题实际运行的数据或参数,并与理论设计参数进行比较和分析,说明产生误差的原因。最后要对所设计课题实用价值做出评估说明;设计过程中存在的问题,改进意见或其它更好的方案设想及未能采纳的原因等。 (2)经济、管理类专业毕业设计报告或论文正文应包括:问题的提出、设计的指导思想;设计方案提出的依据,设计方案的选择和比较;设计过程;所运用的技术经济分析指标和方法;数学模型及其依据,数据计算方法;对设计方案的实用性和经济效益等方面做出评估;对设计实施过程中存在的问题(或可能发生的问题)提出合理化建议。毕业论文的基本论点、主要论据;根据国家有关方针、政策及规定联系实际展开理论分析。 (3)文科类专业毕业设计报告或论文正文应包括:问题的提出、解决问题的指导思想;解决方案提出的依据,解决方案的选择和比较,结论。 二、论文印装 毕业论文用毕业设计专用纸打印。正文用宋体小四号字,行间距为24磅;版面页边距上3cm,下、左2.5cm,右2cm;页眉加“湖北工业大学毕业设计(论文)”字体为隶书3号字居中,页眉距边界2cm;页码用小五号字底端居中,页脚距边界1.75cm。 三、论文结构、装订顺序及要求 毕业论文由以下部分组成: (1)封面; (2)毕业设计(论文)任务书; (3)毕业设计(论文)开题报告; (4)毕业设计(论文)学生申请答辩表与指导教师毕业设计(论文)评审表; (5)毕业设计(论文)评阅人评审表; (6)毕业设计(论文)答辩表; (7)毕业设计(论文)成绩评定总表; (8)中英文内容摘要和关键词; (9)目录; (10)正文; (11)致谢; (12)参考文献及引用资料目录; (13)附录; (14)实验数据表、有关图纸(大于3#图幅时单独装订); (15)封底。 (一)封面及毕业设计(论文)任务书 封面及毕业设计(论文)任务书由学校统一印制。论文题目不得超过20个字,要简练、准确,可分为两行。 任务书由指导教师填写,经系主任、教学院长审查签字后生效。 (二)中英文摘要(中文在前,英文在后)及关键词 摘要是论文内容的简要陈述,应尽量反映论文的主要信息,内容包括研究目的、方法、成果和结论,不含图表,不加注释,具有独立性和完整性。中文摘要一般为200-400字左右,英文摘要应与中文摘要内容完全相同。 “摘要”字样位置居中。

毕业设计论文范文参考——摘要、目录、正文、致谢、参考文献、附录

单片机运动控制系统设计 摘要 本文介绍了利用红外反射式传感器实现小车自动寻迹的设计与实现。本设计中的小车能够自动识别路线 ,......。 ......。 关键词:自动寻迹;传感器;单片机;机器人;数据采集

Abstract This article introduces the design and execution of auto-searching for track by usage of the reflected infrared sensor on the auto-guided car. The car discern the routs automatically, ....... ....... Keyword: Auto-tracking;Infrared Sensor; Single-chip microcomputer; Robot; Data Collection

目录 1 绪论 (1) 1.1机器人的运动控制背景 (1) 1.2本设计的应用及意义 (1) 1.3论文主要工作 (1) 2 系统总体方案 (2) 2.1系统总体规划 (2) 2.2单片机内部结构及接口描述 (2) 2.3技术指标 (2) 2.4主要芯片的选型 (2) 2.4.1 电机驱动芯片的选型 (2) 2.4.2温度传感器芯片的选型 (3) 2.5其他芯片的简介 (3) 2.5.1 ATMEL 93C46 (3) 2.5.2 LCD1602 (3) 2.5.3 74HC540 (3) 2.5.4 74HC245 (3) 3 硬件设计与实现 (4) 3.1系统运动控制部分设计 (4) 3.1.1 电机选型 (4) 3.1.2 L298N驱动电机 (4) 3.2寻迹模块设计 (4) 3.3无线电发射接收模块介绍 (4) 3.4测温系统设计 (5) 3.5电源 (5) 3.5.1电源的选型 (5) 3.5.2稳压电路设计 (5) 3.5.3抗干扰设计 (5) 4 测试及其控制程序设计 (6) 5 总结与展望 (7) 致谢 (8) 参考文献 (9) 附录1机器实体照片 (10)

毕业设计论文

编号: 毕业设计说明书 题目:水草清理装置水下机构 的设计 学院:机电工程学院 专业:机械设计制造及其自动化 学生姓名: 学号: 指导教师: 职称: 题目类型:?理论研究?实验研究?工程设计?工程技术研究?软件开发 2010年5 月24日

针对河道、水塘等水域具有航道窄、面积小,一般的大型水草收割机难以实现水草收割的现状,本文设计了一种结构紧凑,机构传动平稳,效率高,适合在中小尺度水域作业的小型水草收割机。 论文概述了水草收割机的发展背景、研究现状及分类;完成了水草收割机水下部分的机构设计,主要包括清除机构和定位机构;阐述了前置往复式切割器和旋转式升降台的总体设计方案、工作原理、参数计算以及试验校核;同时,为了防止二次污染,本文还另外设计了水草回收装置,通过传送带将水草运回船体;按照任务要求完成了装置总装图与各主要零部件图的绘制;最后,通过Solidworks软件的动画仿真验证了机构设计的合理性。 结果表明:所设计的小型水草收割机具有结构合理、紧凑,适应性强,切割效率高等优点。这种新型的水草收割机可在水下实现切割,捡拾、传送一体化连续作业方式,能够达到清除泛滥的水草,净化水质的目的。总的来说,是一种较为理想的水草收获机具。 关键词:小型水草收割机;水下机构设计;动画仿真

Waters such as rivers,ponds are generally with narrow waterway and small area,so general large aquatic weed harvesters can hardly harvest hydrophytes.To eliminate the current phenomenon, smaller aquatic weed harvester is designed in this paper.It has compact structure, smooth transmission and high efficiency ,at the same time ,it is suitable for working in the small and medium waters. This article summarizes the development background,research status and classification of the aquatic weed harvester.;the mechanism design of underwater part of the aquatic weed harvesters, including clear organization and positioning mechanism,is completed;the paper describes the overall design, working principle, parameter calculation and experimental check of front reciprocating cutter and rotating lift;meanwhile, in order to prevent secondary pollution, the paper also designs of the recovery agencies, the aquatic weeds will be shipped back to the hull through the conveyor belt;w hat’s more,the study also finishes the work of the main device assembly parts drawing.Finally, this pa per’s simulation result proves the rationality of the design with the animation of the software Solidworks. The results show that: the smaller aquatic weed harvester has many advantages of reasonable and compact structrue, high adaptability and high efficiency to harvesting.The new aquatic weed harvesters can realize continuous integration mode such as harvesting,collecting and transmiting under water.It can achieve the goal to clear the flood hydrophytes and to purify water quality. In all,it is an ideal machine of harvesting aquatic weeds. Key words:small aquatic weed harvester;underwater mechanism design;animated simulation

计算机专业毕业设计(论文)-范例

石家庄科技工程职业学院毕业设计(论文) 学生姓名 xxx 学生学号 xxxxxxxxxxx 专业计算机应用技术 系别信息工程系 指导教师 xxxx 指导系部信息工程系 xxxx年x月xx日

网络设备在校园网中的应用 专业:计算机应用技术班级:计083班姓名:陈晨指导教师:樊永霞 摘要: 随着网络的逐步普及,校园网络的建设是学校向信息化发展的必然选择,校园网网络系统是一个非常庞大而复杂的系统,它不仅为现代化教学、综合信息管理和办公自动化等一系列应用提供基本操作平台,而且能提供多种应用服务,使信息能及时、准确地传送给各个系统。而校园网工程建设中主要应用了网络技术中的重要分支局域网技术来建设与管理的,因此本毕业设计课题将主要以校园局域网络建设过程可能用到的各种技术及实施方案为设计方向,为校园网的建设提供理论依据和实践指导。 Abstract: With the gradual popularization of the network, campus network construction is the development of school information necessary to select, campus network is a very large and complex system, it not only for modern teaching, integrated information management and office since A series of automated applications to provide basic operating platform, but also offers a variety of applications, so that the information timely and accurately transmitted to the various systems. The campus construction projects, we use a network technology to the important branch of local Network technology to the construction and management, so this issue will focus on graduation campus local area network construction process may be used in a variety of technical and implementation options for the design direction for the construction of the campus network to provide the theoretical basis and practical guidance. 关键词:局域网、网络设备、网络协议、服务器、网络拓扑图 Keywords:LAN、Network equipment、Network Protocol、Server、Network topology

1、毕业设计(论文)对学生的要求

昆明理工大学 毕业设计(论文)管理工作 对学生的基本要求 一、毕业设计(论文)中学生应遵循的基本原则 1、毕业设计(论文)教学环节是综合性的实践教学活动,不仅可使学生综合运用所学过的知识和技能解决实际问题,还训练学生学习、钻研、探索的科学方法,提供学生自主学习、自主选择、自主完成工作的机会。 2、毕业设计(论文)是在指导教师的指导下,使学生受到解决工作实际问题、进行科学研究的初步训练。学生应充分认识此项工作的重要性,要有高度的责任感,在规定的时间内按要求全面完成毕业设计(论文)的各项工作。 3、学生在接到毕业设计(论文)任务书后,在领会课题的基础上,了解任务的范围及涉及的素材,查阅、收集、整理、归纳技术文献和科技情报资料,结合课题进行必要的外文资料阅读并翻译与课题相关、不少于3000汉字的外文资料。 4、向指导教师提交开题报告或工作计划。在开题报告或工作计划中,要拟定完成课题所采取的方案(凡选“工程设计类”、“工程技术研究类”的题目,必须有方案的经济、技术、社会发展指标的对比分析,“工程设计类”偏重于经济技术指标的对比分析,选择较优的方案进行详细设计;“工程技术研究类”偏重于研究技术路线的经济性、先进性、可靠性、可行性、实用性等)、步骤、技术路线、预期成果等。经指导教师审阅同意后方可实施。 5、学生应主动接受教师的检查和指导,定期向指导教师汇报工作进度,听取教师对工作的意见和指导。 6、毕业设计(论文)是对学生工作能力的训练,学生在毕业设计(论文)中应充分发挥主动性和创造性,独立完成任务,树立实事求是的科学作风,严禁抄袭他人的设计(论文)成果,或请人代替完成毕业设计(论文)。 7、学生在毕业设计(论文)答辩结束后,必须交回毕业设计(论文)的所有资料,对工作中的有关技术资料,学生负有保密责任,未经许可不能擅自对外交流和转让。 8、学生应做好毕业设计(论文)的总结。在提交的成果中总结业务上的收获、思想品德方面的提高,感受到的高级工程技术人才应具有的科学精神和品质。 9、学生在毕业设计(论文)期间要遵守学校、学院的规章制度。 二、开题报告、毕业设计说明书、毕业论文的撰写要求 (一)、开题报告撰写内容与要求 1、工程设计类、工程技术研究类、软件类的课题学生必须完成开题报告。 2、开题报告一般应包括:项目研究的目的、意义,国内外技术发展概况及国内需求,国内现有工作的基础和条件,研究进展,最终成果形式及应用方向,研究方案及技术途径,协作配套措施及协作单位,所需研究试验条件及落实措施,经费概算等内容(具体要求见学校统一的开题报告)。

单片机毕业设计论文可参考范文

摘要 近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用。本论文详细的阐述了功率测量系统的设计思路和具体设计步骤。依据单片机的接口技术的原理,以测量功率为主要设计意图。以单片机为核心,着重的介绍了51单片机在系统中的重要地位,以及其外围硬件电路的芯片结构特点、功能和管脚知识。集测量、显示等功能于一体,设计完整、结构清晰、操作简单。在本设计中,是采用对电路中电压和电流分别进行采样,再经模数转换器ADC0809,将模拟量变为对应的数字量,利用6合一的数码管显示电压和功率。本文详细论述了硬件电路的组成。利用单片机完成整个测量电路的测试控制、数据处理和显示输出。 关键词单片机模数转换功率表采样 正文 1 引言 近年来,随着电子技术、计算机技术和半导体技术的飞度发展,给电力系统测量也带来了巨大的革命。提高电能测量技术-改机械式功率表为智能型数字功率表已成为时代的要求。电力测量系统的智能型数字表通常是以单片机为核心,配置一定的外围电路和软件,能够实现多种功能。在软件和硬件的设计中,系统的抗干扰性和系统的实时性与准确度成了解决数字表的关键所在。单片机具有成本低、可靠性高、应用灵活的特点。由各具体行业的业内人士使用单片机来开发或改造一般仪表是一条可行的道路。在电工与电子技术应用中,经常要测量功率。它是利用通有电流的可动线圈在另一个通电线圈形成的磁场中产生转动力矩而工作的仪表,其显着缺点是结构复杂、过载能力较差,本身消耗功率较大,且易受外磁场的影响,同时这样的功率表一般都是多量程的,在测量过程中需有电压表和电流表配合选定电压和电流量程,在选择不同的电压和电流量程时,刻度盘上每一分格代表不同的瓦特数,读得格数需要进行换算才能得出所要测量的功率,致使测量很不方便。另外在功率测量中,经常遇到被测电路的功率因数很低的情况,这时必须采用专门的低功率因数功率表。基于功率表是电工仪表中最常用的一种仪表,目前常用的是指针式电动系功率表。而为了更为精确的显示测量结果,数字功率表的设计成为了必

软件工程毕业设计论文 (1)

浙江工业大学本科毕业设计说明书(论文) 1 本科毕业设计说明书(论文) (2013届) 论文题目 基于RFID 的生产线管理系统 作者姓名 梁宏安 指导教师 王子仁 学科(专业) 计算机科学与技术 所在学院 计算机科学与技术学院 提交日期 2013年5月

浙江工业大学本科毕业设计说明书(论文) 摘要 近年来,企业之间的竞争已经变得越来越激烈,企业若是想要赢得市场,就要不断的提高自身的生产效率。在生产企业的供应链管理和物料管控等领域,RFID电子标签可以用于产品的物流管理、仓储管理、上下游供应链管理、产品装配与生产管理、产品防伪等多个方面。大量使用RFID电子标签可以提高整个供应链和生产作业的管理水平,继而通过计算机互联网实现物品的自动识别和产品信息的互联与共享。从而优化制造方法和加快对制造过程中信息的收集和传播速度。 本文对RFID技术的相关原理和发展现状进行了介绍,介绍分析了国内关于RFID技术在生产企业中的应用情况。本文对应用RFID作为产品的标签来定位生产线中的某个产品进行了实践。本文主要包括如下内容:对RFID相关技术进行一定的描述;描述了RFID的应用场景;对基于RFID技术的制造业生产管理系统进行了需求分析和系统设计,主要包括系统功能设计和数据库设计;按照要求实现了本系统。 所实现的系统具有一定的实用性。RFID的使用以及基于RFID的生产线管理系统的应用对提高生产效率大有帮助。 关键字:RFID,电子标签,生产线,物联网 I

浙江工业大学本科毕业设计说明书(论文) Abstract The competition between enterprises becomes more and more intense in recent years, in order to win the market, an enterprise should continuously improve their production efficiency. In supply chain management and material control and other fields for an enterprise, the RFID tag could be used in logistics management, product warehouse management, supply chain management, product assembly, production management, and product security, etc. The extensive use of RFID electronic tags could improve the whole supply chain and production management level, interconnected automatic identification and product information could be processed and shared via computer network. The RFID is used to collect relevant information in production line in order to optimize the manufacturing method and speed up the information transmission. A comprehensive summary of principles of RFID and application in the manufacturing industry information collection is presented herein, and the RFID technology in manufacturing enterprises is introduced. An application of using RFID as product’s tag to quick allocation of a given product in production line id practiced. It mainly includes contents in this paper as follow: an summary introduction to RFID is presented; an practical application environment of RFID is given; the requirement analysis, system analysis and design of application based on RFID, mainly on functionalities and database, are discussed; and implementation of a practical application according to the requirements is described. Then application developed is practical, the adoption of RFID and application of management system in production line should promote the productivity effectively. Keywords:RFID, electronic tag, production line, internet of things II

计算机专业本科毕业论文

摘要 21世纪,高新技术的超速发展和全球化的市场经济导致企业之间的竞争空前激烈,这种竞争归根结底是人才的竞争,谁能有效地管理和开发人力资源,谁就能掌握知识经济时代的生产力。 本文基于 Web的人力资源管理系统的实现进行了研究。首先阐述了人力资源管理的重要地位、基本思想、发展趋势、新时期的一些主要特点等理论知识,分析了建立了基 于Web的人力资源管理系统的必要性和可行性,然后对人力资源管理系统进行了需求分析和系统设计,探讨了人力资源管理系统的开发方法和实现技术。 论文给出了基于 Web的招聘管理系统开发实例。该实例实现了招聘管理的一些主要 功能。主要包括招聘岗位管理、人才库管理、应聘简历管理等模块。不仅能代替日常招 聘管理中一些的繁琐的工作,而且能充分利用 Internet/Intranet 快速地收集和发布信息,给基于Web的人力资源管理系统的开发提供了一个好的思路。关键词:,人力资源管理系统

Abstract In the 21st century,new and advanced technology develop over the speed limit and market economy is globalizing, which cause the competition among enterprises unprecedentedly fierce,the competition is the talents ’oneafter all,who can manage and develop the human resources effectively,who can grasp the productivity of the knowledge driven economical aera. The paper studies the realization of Web-based HRMS.Firstly explains some theory knowledge on HRM,such as its concept,development course,main role,some main characteristics of new period,and the influence that some new technologies such as Internet/Intranet bring to HRMS.And carries on demand analysis and system designs on HRMS.Probes into the development approach and realizing technology of the HTMS. The paper provides the Web-based recruitment administrative system instance,it realize some main functions of recruiting management module.Mainly include applying recruiting management posts,pool of management,managementcandidates curriculum vitae ,etc.It not only can replace some daily recruit management tedious jobs but also can fully utilize Internet/Intranet to collect and issue information fast.The instance gives a good way to develop Web-Based HRMS. Key Words: Web,Human Resource Management

相关主题
相关文档 最新文档