局域网打字比赛系统(软件工程).doc_第1页
局域网打字比赛系统(软件工程).doc_第2页
局域网打字比赛系统(软件工程).doc_第3页
局域网打字比赛系统(软件工程).doc_第4页
局域网打字比赛系统(软件工程).doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

局域网打字比赛系统南阳理工学院本科毕业设计(论文)局域网打字比赛系统LANtypegamesystem学院(系):软件学院专 业:软件工程学 生:田瑞芍指导教师:梁智学完成日期 2011年 4月南阳理工学院Nanyang Institute of Technology局域网打字比赛系统软件工程 田瑞芍摘 要 学技术的发展不仅极大的促进了整个科学技术的发展,而且明显的加快了经济信息化和社会信息化的进程。因此计算机教育在各国备受重视,计算机知识与能力已成为21实际人才素质的基本要素之一。我国也非常重视计算机的教育,国家已经开始在大中专学校及中小学普及计算机,计算机操作技能及操作水平的提高尤为重要。而打字速度是衡量一个人计算机水平的一个重要方面。现在各大中专学校对在校大学生的打字速度进行考核,使他们能够满足社会的需要。关键词局域网;套接字;多线程LANtypegamesystemSoftware engineering TIAN Rui-shaoAbstract:Computer science technology development not only greatly promoted the development of science and technology, and obvious accelerated economic informatization and the process of information society. Education in countries so computers are seriously, computer knowledge and ability has become a 21st century one of the essential elements of the quality of talents. China attaches great importance to the education of computer, the country has been started in secondary schools and popularization of computer, primary and secondary schools computer skills and raise the level of operation is especially important. While typing speed is the measure of a man is an important aspect of the computer level. Now major secondary school of undergraduates typing speed evaluation, so they can meet the need of the society.Key words: Lan;Socket;Thread目录1引言42需求分析42.1可行性分析42.1.1 技术可行性42.1.2 经济可行性52.1.3 操作可行性52.1.4 法律可行性53概要设计64详细设计与系统实现74.1命名规则74.1.1基本数据类型74.1.2常量命名74.2模块设计74.2.1客户机注册与注销模块74.2.2服务器监听模块84.3模块功能实现部分代码94.4部分功能截图125测试计划145.1软件测试基础理论145.1.1软件测试定义145.1.2 软件测试基本概念155.2软件测试目的155.3软件测试方法分类155.3.1静态测试与动态测试155.3.2 黑盒白盒与白盒测试165.4局域网打字比赛系统测试175.4.1 测试用例设计要求175.4.2 系统模块测试用例175.5测试报告186技术经济分析18结束语20参考文献20致谢211引言计算机科学技术的发展不仅极大的促进了整个科学技术的发展,而且明显的加快了经济信息化和社会信息化的进程。因此计算机教育在各国备受重视,计算机知识与能力已成为21实际人才素质的基本要素之一。我国也非常重视计算机的教育,国家已经开始在大中专学校及中小学普及计算机,计算机操作技能及操作水平的提高尤为重要。而打字速度是衡量一个人计算机水平的一个重要方面。现在各大中专学校对在校大学生的打字速度进行考核,使他们能够满足社会的需要。 开发一款局域网打字比赛系统,不仅能使枯燥无味的单机打字练习变得有趣,也能让老师对学生的打字速度有一个综合性的了解,对每个人的速度,大家的排名也有一个直观的了解,在此环境下,开发一个局域网打字比赛系统,是有很大意义的。2需求分析2.1 可行性分析可行性研究是在项目开发前期对项目的一种考察和鉴定,对拟议中的项目进行全面的、综合的调查研究,其目的是要判断项目可行与否。信息系统技术可行性研究要从系统开发的计划出发,论述系统开发力量的可行性,同时论证系统方案中所采取的各种技术手段上是否可以实现。信息系统经济可行性研究主要是对项目进行经济评价,分析系统建设投资的可能性以及评价系统运行之后给组织带来的效益。信息系统营运可行性研究要给出的方案是否可以从人力、物力、组织工作等方面保证项目按计划完成实施,还要说明项目开发后在经济、技术和环境等方面能否保证系统正常运行。由于系统建设是一项投资大、涉及面广、工程复杂的系统工程,因此必须充分的进行可行性论证,以确保投资的准确无误,而且信息系统建设是一项整体工程,必须站在系统的角度论证它的可行性才有说服力,才有意义。可行性研究的目的是用最小的代价,在尽可能短时间内确定问题是否能够解决,它的目的不是解决问题,而是确定问题是否值得去解决,可行性从以下四个方面来考虑。2.1.1 技术可行性该课题-局域网打字比赛系统,它采用了C/S结构和网络通信技术。C/S结构是常用的结构模式,同时,使用多线程可以实现多用户同时使用,由Socket通信技术实现了网络通信。所以,从技术上来说,开发这个系统的技术难题是不多的。C/S (Client/Server,客户机/服务器)模式又称C/S结构,是20世纪80年代末逐步成长起来的一种模式,是软件系统体系结构的一种。C/S结构的关键在于功能的分布,一些功能放在前端机(即客户机)上执行,另一些功能放在后端机(即服务器)上执行。功能的分布在于减少计算机系统的各种瓶颈问题。C/S模式简单地讲就是基于企业内部网络的应用系统。与B/S(Browser/Server,浏览器/服务器)模式相比,C/S模式的应用系统最大的好处是不依赖企业外网环境,即无论企业是否能够上网,都不影响应用。Socket意为套接字。在使用Internet底层协议TCP/IP的程序中是一个很重要的概念。就像使用电源插座可以连上电器一样,我们可以通过Socket,在自己的计算机和别人的计算机之间建立连接,以进行通信。要通过Internet传输数据,至少需要一对Socket。一个Socket在客户端,另一个Socket在服务器端。通过Socket启动通信时,服务器首先会启动,但它只是在等待来自客户机的请求。客户机程序向服务器提出请求进行连接。当客户机发出请求时,服务器允许连接,启动一个特殊的Socket,它与客户机端Socket相连。客户机端和服务器端的Socket接通后,他们之间就可以相互通信。试用Socket建立连接是建立在TCP/IP协议基础上,同时它在支持其他相关的协议。在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。多线程处理一个常见的例子就是用户界面。利用线程,用户可按下一个按钮,然后程序会立即作出响应,而不是让用户等待程序完成了当前任务以后才开始响应。2.1.2 经济可行性从我搜集的一些资料来看,局域网打字比赛系统对计算机硬件没有特殊要求,程序实现功能比较简单,模块也比较简洁。而我们是自行开发的系统,成本可以忽略不计,还有后期维护的成本就可以忽略不计。2.1.3 操作可行性参照其它的系统,该系统在技术上完全可以实现与用户之间的良好交互作用,并且作为开发者,我也尽可能地减少让用户难以操作或是难以理解的交互方式。2.1.4 法律可行性本系统开发不会侵犯他人、集体或国家利益,不存在侵权等问题,不违反国家法律,因此具有法律可行性。综上所述,从技术上、经济上、法律上、可操作性上都是可行的,而且要求不高,所以该系统的开发是可行的。3概要设计经过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在是决定“怎样做”的时候。总体设计的基本目的就是回答“从总体上说,系统应该如何实现?”这个问题,因此,总体设计又称为概要设计或初步设计。通过这个阶段的工作将划分出组成系统的物理元素-程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后进行详细的设计。总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。图3.1系统流程图4详细设计与系统实现总体设计阶段以比较抽象概括的方式提出了解决问题的办法。详细设计是软件开发时期的第三个阶段,也是软件设计的第二步。其任务就是把解法具体化,也就是回答下面这个关键的问题:“应该怎样具体地实现这个系统呢”,通过详细设计应该得出对目标系统的精确描述,给出各个模块的详细过程性描述。从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。详细设计阶段的任务是在总体设计的基础上进一步确定如何实现目标系统。4.1 命名规则1名字不能用保留字和关键字,但如果保留字或关键字中有字母大写就不算保留字或关键字了。2 开头字符能用字母、$或者_。3 名字中不能用+、-空格等字符。4 部分易混的保留字关键字和非保留字关键字:null, native, goto,const,instanceof,default是关键字保留字then , sizeof , main,Boolean,unsigned,java, Integer不是关键字保留字4.1.1 基本数据类型int长度数据类型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits) float长度数据类型有:单精度(32bits float)、双精度(64bits double)boolean类型变量的取值有:ture、falsechar数据类型有:unicode字符,16位对应的类类型:Integer、Float、Boolean、Character、Double、Short、Byte、Long4.1.2 常量命名常量的名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词。例如: MAX_VALUE4.2 模块设计4.2.1客户及注册与注销模块在这个模块中客户机端需要输入IP地址与昵称,点击与服务器连接。再与服务器建立连接后,客户端从服务器端获取到在线用户列表,显示在客户端,在用户使用完毕后,要和服务器断开连接。本系统采用C#开发,采用C/S模式,系统分为服务器和客户端两大块,使用Socket类建立套接字连接实现客户端和服务器的通讯。系统主体处理流程图如图1:图4.1系统主题流程图主要实现客户机的注册与注销,功能模块图如图3:图4.2客户机注册及注销功能模块图在这个模块中客户机要与服务器建立连接,并从服务器端获取到在线用户列表,显示在客户端,在用户使用完毕后,要和服务器断开连接。4.2.2 服务器监听模块需要实现以下一些基本功能: 1.消息发送:用户把输入完成的文字发送给服务器 2.消息接收:用户可以接收服务器发过来的文字信息 3.服务器端可以将用户的打字成绩公布,让每个人看到本系统分为服务器和客户端两大模块,用Socket类建立套接字连接实现客户端和服务器两端的连通。总体处理流程如图: 服 务 器 客 户 端 发送请求 返回应答 图4.3系统总体流程图客户端显示界面服务器图4.4系统总体模块结构图4.3 模块功能实现部分代码服务器端包括:程序监听功能,管理员踢人功能,发送文字功能,退出功能统计人数功能等。其中程序监听功能主要代码如下:private void stars_Click(object sender, EventArgs e) try myip = IPAddress.Parse(servername.Text); catch (Exception s) MessageBox.Show(s.Message); try myserver = new IPEndPoint(myip, Int32.Parse(serverport.Text); mysocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp); mysocket.Bind(myserver); mysocket.Listen(1000); serverview.AppendText(服务器ip: + servername.Text + rn端口: + serverport.Text + rn开始监听.); Thread s = new Thread(new ThreadStart(target); s.Start(); stars.Enabled = false; catch (Exception p) MessageBox.Show(p.Message); 管理员踢人功能代码如下: private void userview_MouseDoubleClick(object sender, MouseEventArgs e) string q = userview.Text; userview.Items.Remove(q); foreach (DictionaryEntry w in soclist) if (string)w.Value = q) Socket p = (Socket)w.Key; p.Close(); break; 发送文字功能代码如下: private void sends_Click(object sender, EventArgs e)/ try if (mput.Text = ) MessageBox.Show(内容不能为空!); else String Q = this.nickname.Text + :rn + mput.Text + rn; Byte s = Encoding.Unicode.GetBytes(Q); sendmess(s); mview.AppendText(Q); mput.Clear(); catch (Exception s) MessageBox.Show(s.Message); 客户端包括:连接服务器功能,断开服务器功能等。其中连接服务器功能代码如下: private void start_Click(object sender, EventArgs e) Thread connthread = new Thread(new ThreadStart(conns); connthread.Start(); 断开服务器功能代码如下: private void stop_Click(object sender, EventArgs e) try conn.Close(); message.AppendText(连接已断开); serverport.ReadOnly = false; ; address.ReadOnly = false; nickname.ReadOnly = false; send.Enabled = false; start.Enabled = true; userlist.Items.Clear(); stop.Enabled = false; catch (Exception) MessageBox.Show(尚未连接); 4.4 部分功能截图图4.5服务端状态栏图4.6客户端登陆栏图4.7服务端开始监听图4.8服务端发送信息图4.9服务端整体界面图4.10客户端整体界面5测试计划5.1 软件测试基础理论5.1.1 软件测试定义软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。5.1.2 软件测试基本概念1、测试的含义所谓测试,首先是一项活动,在这项活动中某个系统或组成的部分将在特定的条件下运行,结果将被观察和记录,并对系统或组成部分进行评价。测试活动有两种结果:找出缺陷和故障,或显示软件执行正确。测试是一个或多个测试用例的集合。测试用例:所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体。2、测试的步骤测试步骤详细规定了如何设置、执行、评估特定的测试用例。软件生命周期:一个软件生命周期包括制定计划、需求分析定义、软件设计、程序编码、软件测试、软件运行、软件维护、软件停用等8个阶段。软件测试在软件生命周期中横跨两个阶段:单元测试阶段:即在每个模块编写出以后所做的必要测试综合测试阶段:即在完成单元测试后进行的测试,如集成测试、系统测试、验收测试。5.2 软件测试目的测试是程序的执行过程,目的在于发现错误;不能证明程序的正确性,除非仅处理有限种情况。检查系统是否满足需求也是测试的期望目标。一个好的测试用例在于发现了还未曾发现的错误;一次成功的测试则是发现了错误的测试。5.3 软件测试方法软件测试技术按照不同的划分方法,有不同的分类:静态测试、动态测试;黑盒测试、白盒测试;单元测试、集成测试、回归测试、系统测试、验证测试以及确认测试。5.3.1 静态测试与动态测试按照软件测试分析与非分析方法而论,软件测试可以分静态测试和动态测试。1、静态测试指不实际运行软件,主要是对软件的编程格式、结构等方面进行评估。静态测试包括:代码检查 、静态结构分析、代码质量度量等。它可以由人工进行,也可以借助软件工具自动进行。2、动态测试动态测试方法是指计算机必须真正运行被测试的程序,通过输入测试用例,对其运行情况即输入与输出的对应关系进行分析,以达到检测的目的。动态测试包括:功能确认与接口测试 ,覆盖率分析,性能分析,内存分析。5.3.2 黑盒白盒与白盒测试1、黑盒测试按照软件测试用例的设计方法而论,软件测试可以分为白盒测试法和黑盒测试法。若测试规划是基于产品的功能,目的是检查程序各个功能是否能够实现,并检查其中的功能错误,则这种测试方法称为黑盒测试(Black-box Testing)方法。 黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。它是一种从用户观点出发的测试,一般被用来确认软件功能的正确性和可操作性。黑盒测试主要根据规格说明书设计测试用例,并不涉及程序内部构造和内部特性,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。2、黑盒测试的特点黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以使用。黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。若测试规划基于产品的内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试(White-box Testing)方法。3、白盒测试白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是“基于覆盖率的测试”。通常的程序结构覆盖有:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,路径覆盖。5.3.3 单元测试、集成测试、系统测试、验证测试和确认测试按照软件测试的策略和过程来分类,软件测试可分为单元测试、集成测试、系统测试、验证测试和确认测试。测试中的错误分类:A类错误:致命错误引起程序异常中断或死机的错误等。B类错误:功能错误业务功能实现错误、程序执行结果错误等。C类错误:功能缺陷功能操作不方便、缺少操作提示等。D类错误:界面缺陷界面设计不符合本系统的界面设计规范等。E类错误:测试正确正确的测试项、测试结果与预期的一致等。5.4 局域网打字比赛系统测试本系统各部分模块,采黑白盒测试。5.4.1 测试用例设计要求一个好的测试用例,应该包含以下信息: 1、软件或项目的名称2、软件或项目的版本(内部版本号)3、功能模块名4、测试用例的简单描述,即该用例执行的目的或方法5、测试用例的参考信息(便于跟踪和参考)6、本测试用例与其他测试用例间的依赖关系7、本用例的前置条件,即执行本用例必须要满足的条件,如对数据库的访问权限8、用例的编号(ID),如可以是:软件名称简写-功能块简写-NO.9、步骤号、操作步骤描述、测试数据描述10、预期结果(这是最重要的)和实际结果(如果有BUG管理工具,这条可以省略)11、开发人员(必须有)和测试人员(可有可无)12、测试执行日期5.4.2 系统模块测试用例服务器端:测试内容输入输出服务器监听点击监听按钮监听提示信息获取ip地址及端口号无需输入,自动获取显示相应的信息显示在线用户无需输入信息Listbox中显示在线用户统计在线人数系统自动统计Label中显示在线人数发送文字输入相应的信息Textbox显示发送的信息,同时客户端也能看到所发信息管理员踢人双击在线的某个用户提示用户已被删除退出功能点击退出按钮退出服务器程序客户端:测试内容输入输出连接服务器点击连接按钮提示是否连接成功断开服务器点击断开按钮提示断开服务器信息显示在线用户无需输入信息Listbox中显示在线用户清空测试记录点击清空按钮测试内容被清空服务器端:测试内容测试工作服务器监听点击开始监听按钮获取ip地址及端口号自动显示相应的信息显示在线用户Listbox中显示在线用户统计在线人数Label中显示在线人数发送信息Textbox显示发送的信息,同时客户端也能看到所发信息管理员踢人提示用户已被删除退出功能退出服务器程序客户端:测试内容测试工作连接服务器输入信息后点击连接按钮断开服务器点击断开按钮显示在线用户Listbox中显示在线用户5.5 测试报告本系统经过测试,各部分的功能基本正常,达到了预期的目的。通过对系统的全面测试,我学到了许多测试方面的知识,了解到测试方法、测试经验。通过本次设计,使我了解到测试的重要性。通过测试,可以使软件更适合用户的需求,更加稳定、可靠地运行,并能适应市场竞争,应用前景广泛。6技术经济分析技术经济学是研究技术与经济的相互关系的学科。它通过技术比较、经济分析和效果评价,寻求技术与经济的最佳结合,确定技术先进与经济合理的最优经济状态。技术经济的产生与西方的管理科学和工程经济、苏联的技术经济分析的发展有密切的关系。 二十世纪30年代以来,在西方工业发达国家曾先后产生了对工程项目和生产经营决策进行分析计算的一些方法,如可行性研究、价值工程等。技术经济学研究的不是纯技术,也不是纯经济,而是两者之间的关系,即把技术与经济结合起来进行研究,以选择最佳技术方案。技术经济学研究的主要目的是将技术更好地应用于经济建设,包括新技术和新产品的开发研制、各种资源的综合利用、发展生产力的综合论证。技术经济学把研究的技术问题置于经济建设的大系统之中,用系统的观点,系统的方法进行各种技术经济问题的研究。技术经济学把定性研究和定量研究结合起来,并采用各种数学公式、数学模型进行分析评价。技术经济学在研究中采用两种以上的技术方案进行分析比较,并在分析比较中选择经济效果最好的方案。技术经济学研究的内容涉及生产、分配、交换、消费各个领域和国民经济各个部门、各个方面,也涉及生产和建设的各个阶段。从全局的范围来看,技术经济学研究技术进步对经济发展的速度、比例、效果、结构的影响,以及它们之间的最佳关系问题;生产力的合理布局、合理转移问题;投资方向、项目选择问题;能源的开源与节流、生产与供应、开发与运输的最优选择问题;技术引进方案的论证问题;外资的利用与偿还,引进前的可行性研究与引进后的经济效果评价问题;技术政策的论证、物资流通方式与渠道的选择问题;等等。从部门和企业范围看,技术经济学研究厂址选择的论证,企业规模的分析,产品方向的确定,技术设备的选择、使用与更新的分析,原材料路线的选择,新技术、新工艺的经济效果分析,新产品开发的论证与评价,等等。从生产与建设的各个阶段看,技术经济学研究试验研究、勘测考察、规划设计、建设施工、生产运行等各个阶段的技术经济问题的研究,综合发展规划和工程建设项目的技术经济论证与评价,等等。技术经济学的基本研究方法 有系统综合,即采用系统分析、综合分析的研究方法和思维方法,对技术的研制、应用与发展进行估计;方案论证,即技术经济普遍采用的传统方法,主要是通过一套经济效果指标体系 ,对完成同一目标的不同技术方案的计算、分析、比较;效果分析是通过劳动成果与劳动消耗的对比分析,效益与费用的对比分析等方法,对技术方案的经济效果和社会效果进行评价,评价的原则是效果最大原则。技术经济分析、论证、评价的方法很多,最常见的有决定型分析评价法、经济型分析评价法、不确定型分析评价法、比较型分析评价法、系统分析法价值分析法、可行性分析法等。结束语本次毕业设计到此已经顺利结束,通过这次的毕业设计,我学到了很多。在以前的4年时间内我学习了很多的课程及编程语言,虽然通过学习对这些课程有所了解和掌握,但是始终处于理论知识的掌握阶段,并没有真正应用于实践设计开发,所以对知识的掌握还不够全面和熟练。而且并不能真正独立的开发出一个完整的应用于实际的系统。通过这次的毕业设计,我已经可以完成这一任务,对自身的编程能力也有了很大的提高。当然在学习的过程中曾经碰到过一些让人头痛的问题,我都一一解决了,直到系统全部完成,也让我在解决问题方面的能力得到了提高。整个开发的过程对我来说是一次能力的真正提高的过程;是一次将理论应用于实践的过程;是将以前所学知识充分利用的过程,比如管理信息系统等等;是一次真正的实践过程。总体说来,在这次长达一个学期的毕业设计中,我真正学到了很多有用的东西,是一些在课堂内所学不到的知识,收获很大。参考文献1刘甫迎、刘光会、王蓉.C#程序设计教程(第2版).北京:电子工业出版社,20

温馨提示

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

评论

0/150

提交评论