参考基于linux网络聊天室的设计_第1页
参考基于linux网络聊天室的设计_第2页
参考基于linux网络聊天室的设计_第3页
参考基于linux网络聊天室的设计_第4页
参考基于linux网络聊天室的设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

长沙理工大学高级操作系统课程设计报告学 院 计算机与通信工程 专 业 计算机科学与技术 班 级 学 号 学生姓名 指导教师 课程成绩 完成日期 课程设计任务书计算机与通信工程学院 计算机科学与技术专业课程名称高级操作系统课程设计时间20112012学年第2学期12周学生姓名指导老师题 目基于linux网络聊天室的设计主要内容:本课程设计主要实现一个Linux下的局域网聊天工具的设计。该设计主要分为两部分,客户端部分和主机部分。运行服务器端程序可以和任意运行了客户端程序的主机进行通信,通信内容能够通过终端显示出来。两个部分都使用C语言,利用vi编辑器,通过Berkeley套接口编程实现相关功能要求:(1)主要实现一个Linux下的局域网聊天工具的设计,进一步掌握vi,gcc等工具的使用,并且熟悉Linux下的网络编程,以及多线程编程。(2)通过实际项目的分析、安装、配置、测试等工作,掌握用Linux系统下的网络聊天室的应用。(3)按要求编写课程设计报告书,能正确编写分析、设计、编码、测试等技术文档和用户使用手册。应当提交的文件:(1)课程设计报告。(2)课程设计附件(实验数据、测试截图等)。课程设计成绩评定学 院 计算机与通信工程 专 业 计算机科学与技术 班 级 学 号 学生姓名 指导教师 课程成绩 完成日期 指导教师对学生在课程设计中的评价评分项目优良中及格不及格课程设计中的创造性成果学生掌握课程内容的程度课程设计完成情况课程设计动手能力文字表达学习态度规范要求课程设计论文的质量指导教师对课程设计的评定意见综合成绩 指导教师签字 年 月 日目录1引言1.1课程设计背景1.2课程设计目的1.3课程设计内容2 技术介绍2.1TCP和UDP介绍2.2客户/服务器模型2.3网络套接字(socket)的概念2.4多线程的概念3 系统设计3.1 系统结构设计3.2通信设计4系统实现4.1系统调用相关函数4.2 系统实现过程说明5 运行效果结束语致谢参考文献附录 基于Linux网络聊天室的设计 第页 共21页 基于linux网络聊天室的设计学生姓名: 指导老师: 摘 要 本课程设计主要实现一个Linux下的局域网聊天工具的设计。该设计主要分为两部分,客户端部分和主机部分。运行服务器端程序可以和任意运行了客户端程序的主机进行通信,通信内容能够通过终端显示出来。两个部分都使用C语言,利用vi编辑器,通过Berkeley套接口编程实现相关功能。关键词 Linux;网络聊天室 ;客户端; 主机;1 引 言1.1课程设计背景Linux是一种针对PC计算机和工作站的操作系统,它具有像Windows和Mac那样的功能齐全的图形用户界面(GUI,Graphical User Interface)。Linus Torvald和其它的遍布世界各地的编程人员共同开发的1。 提到Linux我们不能不提GNU和Unix。Richard M.Stallman建立的自由软件联盟出版了两种许可证,GNU通用公共许可证(GNU Gneral Public License,GPL)和GNU函数库通用公共许可证(GNU Library Gneral Public License,LGPL)。大部分GNU工程的软件和文档是以GNU通用公共许可证发行的,但是有一些库是以GNU函数库通用公共许可证发行的。按照GNU通用公共许可证的规定,Linux的源代码可以自由获取,这满足了我们学习该系统的强烈愿望。GPL充分体现了Stallman的思想:只要用户所做的修改是同等自由的,用户可以自由地使用、拷贝、查询、重用、修改甚至发布这个软件。通过这种方式,GPL保证了Linux(以及同一许可证下的大量其他软件)不仅现在自由可用,而且皮后经过任何修改这后都仍然可以自由使用。 Unix是由ATT贝尔实验室的Ken Thompson和Dennis Ritchie于1969年在一台已经废弃了的PDP-7上开发的;最初它是一个用汇编语言写成的单用户操作系统。后来,他们又在PDP-11上用C语言重新编写(发明C语言的部分目的就在于此),把Unix做成为了一个文本处理系统,这使Unix在贝尔实验室得到广泛的应用。Unix的最初版本免费提供给许多知名的大学的计算机系使用。加州大学伯克利分校的计算机系就是其中的一名,并地Unix进行了修改增加了许多新的特点,这就是主为人知的BSC版本的Unix。与此同时,其它独立开发的Unix版本也开始萌生。Unix不断发展了,各种版本被应用到不同的计算机使用。而Linux最初是专门为基于Intel的个人计算机设计的。(1)Linux的昨天 1991年,一名叫Linus Torvalds的芬兰大学生对Unix各种版本对于80386类的机器的脆弱支持十分不满,他决定要开发出一个全功能的、支持POSIX标准的、类Unix的操作系统内核,该系统吸收了BSD和System V 的优点,同进摒弃了它们的缺点。他独立把这个内核开发到0.02版,这个版本已经可以运行gcc、bash和很少的一些应用程序。后来,他又开始了在因特网上寻求广泛的帮助。 1994年,Linux已经升级到1.0版本。它的源代码量也呈指数形式增长,实现了基本的TCP/IP功能,此时Linux已经拥有大约10万的用户。(2) Linux的今天 作为一各服务器级的操作系统,Linux已经成熟了。现在的Linux内核由150多行代码组成,能作为Web服务器平台,也为越来越多的商业用户提供文件和打印服务。它既被当作邮件服务器的一种候选平台,也被当作一种强壮而安全的防火墙。 Linux的企业级特性,比如支持多处理器、支持大型文件系统、日志文件系统以及密集型计算和高可用性集群技术,也逐步成熟。 桌面上的Linux也在继续完善。KDE桌面提供的图形用户界面在易用性和可配置方面都能和微软的Windows相媲美。(3) Linux的明天 Linux最强大的生命力在于其公开的开发过程。每个人都有可以自由获取内核源程序,每个人都有要不得以运载源程序加以修改,而后他人也可以自由获取你修改后的源程序。Linux这种独特的自由流畅的开发模型已被命名为bazaar(集市模型)。Bazaar开发模型通过重视实验,征集并充分利用早期的反馈,对巨大数量的脑力资源进行平衡配置,可以开发出更优秀的软件。本联盟就是想通过bazaar开发模型,在网上召集一些Linux的爱好者,开发出更优秀的操作系统或软件。1.2课程设计目的由于Linux的开源的特点,越来越多的人转而使用Linux做为PC机的操作系统。但是Linux的真正兴起只是在最近几年,因此很多功能并不是很完善,并且由于Linux的开源特征,很多软件开发公司很难从中获得直接利益,因此很多Windows上的实用的软件,在Linux下却很少见。本课程设计正是为了解决Linux下局域网聊天问题而设计的,并且希望通过本课程设计可以更好的了解Linux操作系统的原理,进一步掌握vi,gcc等工具的使用,并且熟悉Linux下的网络编程,以及多线程编程。1.3课程设计内容本课程设计主要实现一个Linux下的局域网聊天工具的设计。该设计主要分为两部分,客户端部分和主机部分。运行服务器端程序可以和任意运行了客户端程序的主机进行通信,通信内容能够通过终端显示出来。两个部分都使用C语言,利用vi编辑器,通过Berkeley套接口编程实现相关功能。2 技术介绍2.1TCP和UDP介绍(1)UDP通信UDP是用户数据报协议的简称。它是以中午连接的逻辑通信信道。UDP在传送数据之前不需要先建立连接,远地主机的传输层在收到udp数据报后,不需要给出任何确认,所以不能保证其交付时可靠。它的特点是:因无连接,故提供的是不可靠的信道,但也是因无连接而具有很好的传输效率。(2)TCP通信 TCP是传输控制协议的简称,它是提供一条全双工的、可靠的信道。TCP提供面向连接的服务,在传送数据之前必须先建立连接,数据传送结束后要释放连接。由于TCP要提供可靠的、面向连接的运输服务,所以不可避免地增加了许多系统开销,比如确认、流量控制、计时器以及连接管理等都需要占用许多系统的时空资源。 两个计算机之间如果使用TCP通信,其连接过程需要三次握手实现,如实验图2-1所示。图2.1 用三次握手建立TCP连接 对于两个计算机之间连接的释放过程也需要类似的3次握手的互相确认的过程,如实验图2-2所示。图2.2 TCP连接的释放过程2.2客户/服务器模型在客户/服务器模型中,多个相互通信的计算机都作为客户端,与网络服务器进行连接,并通过服务器进行信息的传递3。所以多个客户端之间的通信就变为了客户端与服务端的通信。所以,采用客户/服务器模型进行网络聊天需要分别编写服务器端和客户端的程序,服务器和客户端之间相互通信的同步关系和各自的程序流程如实验图2-3所示。图2.3 Socket通信流程图2.3网络套接字(socket)的概念Socket接口上TCP/IP网络应用程序接口(API),它提供了许多函数和例程,程序员可以使用它们来开发TCP/IP网络应用程序。使用Socket接口进行网络通信的过程如图1-3所示,简要步骤如下:建立一个Socket.按要求配置socket,将socket连接到远程主机或给socket指定以各本地协议端口。按要求通过socket发送和接受数据。关闭此socket。这是通过Socket实现点对点通信需要掌握的4个编程要点。2.4多线程的概念上述点对点通信的实现知识完成了主机进程与服务器进程之间的连接,建立连接的进程之间是一对一的联系,即主机的一个进程与服务器的一个进程之间建立的连接。而每个进程进行通信的环节都包括了发送信息和接口信息两个任务,这两个任务通过一个端口地址发送和接收。对于多个并发的任务需要创建多个线程或线程去实现。使用一个进程去完成发送信息是没有问题的,因为发送总是主动的;而使用同一个进程再去完成接受信息去不一定会成功,因为接受信息是被动的,所以当没有信息可以接收时,该进程就会被阻塞,从而导致发送任务也一起被阻塞。同一个端口的发送和接收是两个并发任务,应该由两个不同的任务去分别完成信息的发送和接收。这样,当接收信息任务因没有信息而被阻塞时,不至于影响发送任务的执行。那么,发送和接收两个任务是使用两个进程还是两个进程去完成呢?在网络通信中,端口地址是以进程为单位进程分配的,而一个进程与外界的消息发送与接收必须通过分配给它的同一个端口进行。因此,不能通过创建进程方式来解决上诉问题,因为两个进程会分别对应两个不同的端口,而发送和接收必须使用同一端口。线程不是资源分配的单位,所以如果使用两个线程不会对线程分配新的端口。因此,本实验需要使用两个线程去分别完成发送和接收信息的任务,这两个线程共享其进程拥有的统一个端口地址。由于创建进程的进程本身会作为一个线程来调度,所以只需要再创建一个线程专门负责接收信息就可以了。因此,对于从每个客户端发来的请求,服务器端都要创建相应的线程去接收并处理;同理,对于客户端而言,也要创建一个线程去读取服务器端发来的信息。3 系统设计3.1 系统结构设计本系统采用客户/服务器模型,在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户/服务器模式(Client/Servermodel),即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。客户/服务器模式的建立基于以下两点:首先,建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用。其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步,这就是客户端/服务器模式的TCP/IP。在客户/服务器模型中,多个相互通信的计算机都作为客户端,与网络服务器进行连接,并通过服务器进行信息的传递4。所以多个客户端之间的通信就变为了客户端与服务端的通信。服务器端和客户端的主要组成如下:服务器端:套接字创建函数Socket(),端口绑定函数Bind(),套接口监听函数Listen(),接受连接函数Accept(),数据收发函数Read()和Write(),以及套接口关闭函数Close()。客户端:套接口创建函数Socket(),套接口连接函数Connect(),数据收发函数Read()和Write(),以及套接口关闭函数Close()。3.2通信设计首先运行服务器端程序,通过Socket()函数会建立一个套接字,然后通过Bind()函数绑定一个端口,然后调用Listen()在套接字指定的端口上开始倾听,利用Accept()从完全建立连接的队列中接受一个连接,连接获得后使用Read()和Write()函数进行通信。通信结束后调用Close()关闭套接字描述符。运行客户端的程序,调用Socket()函数建立一个套接字,使用Connect()函数与服务器端进行连接,连接完成后,使用Write()和Read()与服务器端进行通信,通信结束后调用close()关闭套接字描述符。4系统实现4.1系统调用相关函数(1)Socket() 作用:socket函数为客户机或服务器创建一个sokcet格式:int socket(int family,int type,int protocol); 参数说明: Family:表示地址族,可以去AF_UNLX和AF_INT。其中,AF_UNLX只能够用于单一的UNIX系统进程间通信;AF_INT是针对Internet的,因而可以允许在远程主机之间通信,实验中使用AF_INT。Type:网络程序所采用的通信协议,可以取SOCK_STREAM或SOCK_DGRAM。其中,SOCK_STREAM表明使用的是TCP协议,这样提供按顺序、可靠、双向、面向连接的比特流;SOCKE_DGRAM表明使用的是UDP协议,这样只会提供定长、不可靠、无连接的通信。(2)bind( )格式: int bind(int sockfd,struct sockaddr *addr,int addrlen); 参数说明: Sockfd:socket的文件描述符号。 Sockaddr:表示名字所用的一个数据结构,用来保存地址(包括IP地址和端口) Addrlen:设置结构大小长度。(3)listen()格式: int listen(int sockfd, int backlog); 作用:监听连接信号,和accepted函数合同。 参数说明: Sockfd:表示socket调用返回的文件描述符。 Backlog:表示接入队列允许的连接数目,大多数系统允许20个,也可以子定义510个。(4)accept() 格式: Int accept (int sockfd, void *addr, int *addrlen); 作用:与listen函数合用,监听信息、接收客户端请求。 参数说明: Sockfd:表示socket的文件描述符。 Addr:表示指向局部的数据结构struct sockaddr-in的指针。 Addrlen:表示地址的长度。(5)connect()格式: int connect( int sockfd , struct sockaddr *serv_addr , int addrlen); 作用:在面向连接的系统中客户及连接服务器时使用,connect必须在bind后使用。 参数作用: Sockfd:表示socket的文件描述符。 Serv-addr:表示村访目的端口和ip地址(套接字)的数据结构。(6)send() 和 recv() 格式1: Int send (int sockfd, const vod *msg,int len, int flags); 功能:发送信息。 格式2: Int recv (int sockfd , void *buf,int len, usigned int flags); 作用:用于流式socket、数据报socket内部之间的通信。(7)close( ) 和 shutdown ( )格式: Close( int sockfd)或 Int shutdown(int sockfd , int how); 参数说明: How的值为下面一种: 0-不允许继续接收; 1-不允许继续发送; 2-不允许继续发送和接收。(8)有关线程的系统调用函数pthread_create()、pthread_join()4.2 系统实现过程说明监听连接 利用socket、bind、listen建立连接,步骤是: 先用socket函数初始化socket,创建新的sockfd。Sockfd = socket(AF_INT,SOCK_STREAM,0)此步骤涉及到IP地址及其处理过程。参数说明: inet_addr 函数 INADDR_ANY该函数把由小数点分开的十进制IP地址转为unsinged long 类型,而在实验中所使用的为INADDR_ANY,使用利用自已的IP地址自动填充。1)利用bind函数绑定端口和IP地址。My_addr.sin_family=AF_INET; /*将地址族类型设定好 */My_addr.sin_port=htons(MYPORT; /* 将端口给其赋值*/My_addr.sin_addr.s_addr=INADDR_ANY; /*用连接地址自动填充ip*/Bind(sockfd,(stuct sockaddr*)&my_addr,sizeof(stuct sockaddr);/*sockfd 是分配的socket名字,my-addr则便是分配好的端口与IP,用bind绑定*/2)利用listen监听请求 发送请求1)利用gethostbyname获取主机信息。2)初始化socket端口。3)利用connect函数将自己的IP地址等信息发送到主机,等待主机调用accept函数来接受请求。主机接收请求,进行数据通信1)主机利用accept接收请求。2)创建子进程,显示欢迎信息;3)接收返回信息,显示连接成功,并推出连接;4)关闭客户端口socket;5)关闭服务端socket,结束子线程。5 运行效果(1)在编写完TCP服务端程序server.c后,用 gcc lpthread o server.c server 生成程序server。(2)在编写完TCP客户端程序client.c后,用gcc lpthread o client.c client 生成程序client(3)在主机上打开一窗口,运行server。(4)再打开另一个窗口或者在另一个主句上打开一个窗口,运行client,输入服务器的IP地址,并检查器结果的正确性。输入:【主】# ./server【从】# ./client 127.0.0.1输出:【主】#server:got connection from 127.0.0.1(5)客户端、服务器端窗口之间以及交错发送信息的方式相互发送和接收信息。客户端、服务器端窗皆通过键盘输入消息内容平回车,以发送消息给对方;消息中若使用空格,则作为本条消息结束及下一条消息的开始;输入exit则推出运行。开始运行后,服务器端窗口的执行顺序为:键入”this is server”发送给客户端,如图5.1所示。图5.1 服务器发送消息接收客户端发来的”this is client”,如图5.2所示。图5.2 接收客户端消息输入exit结束。开始运行后,客户端窗口的执行顺序为:接收服务器端发来的消息“This is server”,如图5.3所示。图5.3接收服务器端消息发送消息“This is client”给服务器端如图5.4所示。图5.4 客户端发送消息键入exit结束。上述运行结果表明,客户端与服务器端之间传递的消息已被对方成功接收。6 结束语通过本次课程设计对Linux网络聊天室的设计,确实积累和总结了不少的经验,锻炼了我的独立工作和实际动手能力,加深了对计算机网络中socket工作原理及其相互联系的认识,提高了对复杂的综合性实践环节具有分析问题、解决问题、概括总结的实际工作能力,对网络编程项目的开发、设计过程有初步认识。经过近了两周的设计和开发,网络聊天室的设计设计完毕。其功能基本符合用户需求,能够简单的网络聊天功能。但是由于课程设计时间较短,还有许多不尽如人意的地方,还有待于我们进一步完善其功能。但我从中学到了不少的道理,真正的理解到,理论与实践之间还是有很大的距离,这必将有利于我们以后的学习。使我明白,在以后的学习中,要不断的完善自己的知识体系结构,注意理论与实践的结合,学知识关键是要学活,而不能死记死搬书本上的知识,关键是要会灵活应用,这样所学到的东西才真正的学以致用,才达到了学习的真正目的!在本次课题程序设计中,我学到了很多东西,通过本次课题程序设计,无论在理论上还是在实践中,我的计算机应用水平得到了很大的提升,这对于今后的工作和学习都是一种巨大的财富。参考文献1赵敏哲,64位Linux操作系统与应用实例M. 北京:机械工业出版社,20012庞丽萍,操作系统原理(第三版) M. 武汉:华中科技大学出版社,20003张饶学,Linux网络编程M.北京:清华大学出版社,20004金钟夫,杜刚.浅析socket网络编程J. 微计算机信息,2002,3-2,87-895王群,许中万.Linux优势分析J.计算机与现代化,2003(10):7-8附 录服务端源程序清单如下,文件名为server.c#include#include#include#include#include#include#include#include#include#define MYPORT 3490#define BACKLOG 10 #define MAXDATASIZE 1024int sockfd,new_fd;pthread_t accthread,recthread;void recmessage(void) while(1) int numbytes; char bufMAXDATASIZE; if(numbytes = recv(new_fd,buf,MAXDATASIZE,0) = -1)perror(recv); exit(1); bufnumbytes = 0; if(strcmp(buf,exit) = 0)printf(Client is closedn);close(new_fd);close(sockfd);exit(1);printf(Client:%sn,buf); void acceptconnect(void) / *与listen函数合用,监听信息、接收客户端请求*/ struct sockaddr_in their_addr; int sin_size; sin_size = sizeof(struct sockaddr_in); if(new_fd = accept(sockfd,(struct sockaddr*)&their_addr,&sin_size) = -1) perror(accept); exit(1); printf(server:got connection from %sn,inet_ntoa(their_addr.sin_addr); if(pthread_create(&recthread,NULL,(void *)recmessage,NULL)!= 0) printf(Create thread error!rn); exit(1); int main(void) struct sockaddr_in my_addr; if(sockfd = socket(AF_INET,SOCK_STREAM,0) = -1) perror(socket); exit(1); my_addr.sin_family = AF_INET; my_addr.sin_port = htons(MYPORT); my_addr.sin_addr.s_addr = INADDR_ANY; bzero(&(my_addr.sin_zero),8); if(bind(sockfd,(struct sockaddr*)&my_addr,sizeof(struct sockaddr) = -1) perror(bind); exit(1); if(listen(sockfd,BACKLOG) = -1) /*监听连接信号*/ perror(listen); exit(1); if(pthread_create(&accthread,NULL,(void *)acceptconnect,NULL) != 0) printf(Create thread error!rn); exit(1); while(1) char msgMAXDATASIZE; scanf(%s,msg); if(send(new_fd,msg,strlen(msg),0) = -1) perror(send); close(new_fd); exit(1); if(strcmp(msg,exit) = 0) printf(Byebye!n); close(new_fd); close(sockfd); exit(1); return 0;客户端源程序清单如下,文件名为client.c#include#include#include#include#include#include#include#include#include#define PORT 3490#define MAXDATASIZE 1024int sockfd;pthread_t recthread;void recmessage(void) while(1) int numbytes; char bufMAXDATASIZE; if(numbytes = recv(sockfd,buf,MAXDATASIZE,0) = -1) perror(recv); exit(1); bufnumbytes=0; if(strcmp(buf,exit) = 0) printf(Server is closedn); close(sockfd); exit(1); printf(Server:%sn,buf); int main(int argc,char *argv) struct hostent *he; struct sockaddr_in their_addr; if(argc != 2) fprintf(stderr,usage:client hostnamen); exit(1); if(he=gethostbyname(argv1) = NULL) herror(gethostbyname); exit(1); if(sockfd = socket(AF_INET,SOCK_STREAM,0) = -1) perror(socket); exit(1); their_addr.sin_family = AF_INET; their_addr.sin_port = htons(PORT); their_addr.sin_addr = *(struct in_addr *)he-h_addr); bzero(&(their_addr.sin_zero),8); if(connect(sockfd,(struct sockaddr *)&their_addr,sizeof(struct sockaddr) = -1)/*在面向连接的系统中客户及连接服务器时使用*/ perror(connect); exit(1); if(pthread_create(&recthread,NULL,(void *)recmessage,NULL)!=0) printf(Create thread error!rn); exit(1); while(1) char msgMAXDATASIZE; scanf(%s,msg); if(send(sockfd,msg,strlen(msg),0) = -1) perror(send); close(sockfd); exit(1); if(strcmp(msg,exit) = 0) printf(Byebye!n); close(sockfd); exit(1); return 0;参考: 毕 业 论 文论文题目学 院专 业年 级姓 名指导教师职 称(200 年 月)教务处制毕业设计说明书与毕业论文撰写的规范化要求一篇完整的毕业设计说明书或毕业论文有题目、摘要及关键词、目录、引言(前言)、正文、结论、谢辞、参考文献、附录等几部分构成。要求理工科专业不少于4000字,文科专业不少于6000字。一、毕业设计说明书撰写的主要内容与基本要求一份完整的毕业设计说明书应包括如下主要内容:1题目设计课题名称,要求简洁、确切、鲜明。2中外文摘要及关键词应扼要叙述本设计的主要内容、特点,文字要简练。中文摘要约300字左右;外文摘要约250个实词左右。关键词35个。3目录主要内容的目录。4前言应说明本设计的目的、意义、范围及应达到的技术要求;简述本课题在国内(外)的发展概况及存在的问题;本设计的指导思想;阐述本设计应解决的主要问题。 5正文(1)设计方案论证:应说明设计原理并进行方案选择。应说明为什么要选择这个方案(包括各种方案的分析、比较);还应阐述所采用方案的特点(如采用了何种新技术、新措施、提高了什么性能等)。(2)设计及计算部分:这是设计说明书的重要组成部分,应详细写明设计结果及计算结果。(3)样机或试件的各种实验及测试情况:包括实验方法、线路及数据处理等。(4)方案的校验:说明所设计的系统是否满足各项性能指标的要求,能否达到预期效果。校验的方法可以是理论分析(即反推算),包括系统分析;也可以是实验测试及计算机的上机运算等。6结论概括说明本设计的情况和价值 ,分析其优点、特色,有何创新,性能达到何水平,并指出其中存在的问题和今后的改进方向。7谢辞简述自己通过本设计的体会,并对指导老师和协助完成设计的有关人员表示谢意。8参考文献应列出主要参考文献。9附录将各种篇幅较大的图纸、数据表格、计算机程序等作为附录附于说明书之后。二、毕业论文撰写的主要内容与基本要求1题目题目应该简短、明确,要有概括性,让人看后能大致了解文章的确切内容、专业的特点和学科的范畴。题目的字数要适当,一般不宜超过20字。字体为2中外文摘要及关键词摘要也称内容提要,应当以浓缩的形式概括研究课题的主要内容、方法和观点,以及取得的主要成果和结论,应反映整个论文的精华。中文摘要约300字左右为宜,同时要求写出250个实词左右的外文摘要。关键词3-5个。摘要应写得扼要、准确,一般在毕业论文全文完成后再写摘要。在写作中要注意以下几点:(1)用精练、概括的语言表达,每项内容均不宜展开论证。(2)要客观陈述,不宜加主观评价。(3)成果和结论性意见是摘要的重点内容,在文字上用量较多,以加深读者的印象。(4)要独立成文,选词用语要避免与全文尤其是前言和结论雷同。(5)既要写得简短扼要,又要行文活泼,在词语润色、表达方法和章法结构上要尽可能写得有文采,以唤起读者对全文的阅读的兴趣。3目录(必要时)论文编写完成后,为了醒目和便于读者阅读,可为论文编写一个目录。目录可分章节,每一章节之后应编写页码。4前言前言是全篇论文的开场白,它包括:(1)选题的缘由。(2)对本课题已有研究情况的评述。(3)说明所要解决的问题和采用的手段、方法。(4)概括成果及意义。作为摘要和前言,虽然所定的内容大体相同,但仍有很大的区别。区别主要在于:摘要一般要写得高度概括、简略,前言则可以稍微具体些;摘要的某些内容,如结论意见,可以作为笼统的表达,而前言中所有的内容则必须明确表达;摘要不写选题的缘由,前言则明确反映;在文字量上前言一般多于摘要。5正文正文是作者对自己研究工作的详细表述。它占全文的较多篇幅。主要内容包括研究工作的基本前提、假设和条件;模型的建立,实验方案的拟定;基本概念和理论基础;设计计算的主要方法和内容;实验方法、内容及其结果和意义的阐明;理论论证,理论在实际中的应用等等。根据课题的性质,论文正文允许包括上述部分内容。正文的写作要求:(1)理论分析部分应写明所作的假设及其合理性,所用的分析方法、计算方法、实验方法等哪些是别人用过的,哪些是自己改进的,哪些是自己创造的,以便指导教师审查和纠正。这部分所占篇幅不宜过多,应以简练、明了的文字概略表达。(2)课题研究的方法与手段分别用以下几种方法说明:a用实验方法研究课题,应具体说明实验用的装置、仪器、原材料的性能是否标准,并应对所有装置、仪器、原材料做出检验和标定。对实验的过程或操作方法,力求叙述得简明扼要,对人所共知的或细节性的内容不必详述。b用理论推导的手段和方法达到研究目的的,这方面内容一定要精心组织,做到概念准确,判断推理符合客观事物的发展规律,符合人们对客观事物的认识习惯与程序。换言之,要做到言之有序,言之有理,以论点为中枢,组织成完整而严谨的内容整体。c用调查研究的方法达到研究目的的,调查目标、对象、范围、时间、地点、调查的过程和方法等,这些内容与研究的最终结果有关系,但不是结果本身,所以,一定要简述。但对调查所提供的样本、数据、新的发现等则应详细说明,这是结论产生的依据。若写得抽象、简单、结论就立之不牢,分析就难以置信,写作中应特别予以重视。(3)结果与讨论是全文的心脏,一般要占较多篇幅,在写作时,应对研究成果精心筛选,把那些必要而充分的数据、现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论