毕业论文-C语言在线编译器_第1页
毕业论文-C语言在线编译器_第2页
毕业论文-C语言在线编译器_第3页
毕业论文-C语言在线编译器_第4页
毕业论文-C语言在线编译器_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

Online C Complier 08100241040810024104 宋笑雪宋笑雪 学校代码学校代码 分 类 号分 类 号 学号学号 密级密级 1072210722 公公 开开 作 者 姓 名作 者 姓 名胡泽江胡泽江 指 导 教 师指 导 教 师 学 科 门 类学 科 门 类工工学学 提交论文日期提交论文日期 专 业 名 称专 业 名 称软件工程软件工程 成绩评定等级成绩评定等级 题目题目C C 语言在线编译器语言在线编译器 I 摘要摘要 C 语言在 1970 年由丹尼斯.里奇研制出来后发展至今,以它高效、灵活、功能丰富、 表达力强和较高的移植性等特点,广泛用于系统与应用软件的开发,2012 年反超 Java 重 登宝座,在程序员中说起 Hello World,可能就想起 C 语言了,同时在计算机二级考试中, 也有 C 语言的科目,所以在学习 C 语言的人当中不仅仅是程序员,还有很大一部分是对计 算机知识,特别是编程语言了解相对较少的学生和社会人群。因此,需要一个相对简易, 易理解的 C 语言编译和学习环境提供给这种人群。 本论文研究的是 C 语言在线编译器,包含了 C 语言的编译器,加入了 C 语言的学习 资料, 示例代码, 供初学者使用。 系统架构是基于 B/S 的系统, 在前端使用了 JS, JQUERY, AJAX,CSS,HTML 作为布局和业务逻辑,由于 C 语言在线编译器的特殊性,前端技术 也承担了一部分的 C 语言编译的技术,大量使用了正则表达式,来操作 C 语言代码字符。 后台使用 JAVA 语言开发, 使用 LL1 算法, 词法分析来完成 C 语言的语法分析, 应用 struts 机制和页面交互,后台主要用于代码编译、错误提示,前端主要用于代码执行。论文主要 介绍了本课题的开发背景、所完成的功能和以及具体的开发过程。 关键词:关键词:C 语言;编译器;LL1 算法;正则表达式 II Abstract C language developedby Dennis Ritchie in 1970, development hasto express thecharacteristics of strong and high portability, efficient, flexible, feature-rich, widelyused for system and application software development, 2012overtake re-board the throne of Java programmers talk about the Hello World may think of the C language, while in the computer two examinations, but also the subjects of the C language, not just in learning the C language programmers.there are a large part of computerknowledge, especially a programming language is understood that a relatively small number of students and social groups. Therefore, we need a relatively simple, easy to understand the C language compiler and learning environment available to thispopulation. This thesis is a C Language Compiler, contains a C language compiler, adding aC-language learning materials, sample code, for beginners to use. The system architecture is based on B / S system, the front end of the JS, JQUERY, AJAX,CSS, the HTML layout and Business logic, due to the special nature of the C Language compiler front-end technology also bear part of the C language compiler technology to achieve, The use of regular expression, operation of the C language code characters.Background using the JAVA language development, Use LL1 algorithm, lexical analysis to complete C language syntaxanalysis applicationstruts mechanismsinteract and page background is mainly used for code compilation error, the front-end for code execution. The paper introduces the development background of thesubject, the complete function and the specific development process. Keywords: C Language; complier; LL1 Algorithm, Regular expressions III 目录目录 摘要.I Abstract.II 第一章 概 述.1 1.1 C 在线编译器的定义.1 1.2 web 应用价值.1 1.3 C 在线编译器意义.1 1.4 开发技术.1 第二章 需求分析.3 2.1 可行性研究.3 2.1.1 技术可行性.3 2.1.2 经济可行性.3 2.2 系统的功能要求.3 2.3 系统的性能要求.4 2.3.1 可靠性要求.4 2.3.2 时间要求.4 2.3.3 并发处理能力要求.4 第三章 关键技术.5 3.1 Ajax 概述.5 3.2 Servlet 概述.5 3.3 Jquery 概述.5 3.4 正则表达式.6 3.5 LL1 算法.6 3.6 编译器.6 第四章 概要设计.8 4.1 系统总体结构.8 4.2 代码编辑模块.8 4.3 代码分析器模块.9 第五章 详细设计与实现.10 IV 5.1 代码编辑模块.10 5.1.1 页面设计.10 5.2 类设计.10 5.2.1 代码分析器类图.11 5.3 代码生成器模块和代码执行模块.13 第六章 系统测试.15 6.1 测试方法.15 6.2 测试用例.15 6.3 测试结果.16 总结.17 致谢.18 参考文献.19 C 语言在线编译器 1 第一章第一章 概概 述述 1.1 C 在线在线编译器的定义编译器的定义 C 语言是众多编程语言中的姣姣者,每年都有很多高校学生以及一部分社会人群在学 习 C 语言,但是传统的虽然功能强大,但是相对复杂,并且 C 语言本身也相对较难1,对 于刚入门的新手,会有一定的心里压力,同时随着互联网的普及,许多互联网应用都给我 们带来了极大的便利,结合互联网和传统的 C 语言编译器,就产生了有特色的 C 语言在线 编译器,只要能上网,不需要安装任何的编译环境和软件就能够写 C 语言程序,编译 C 语 言程序,执行 C 语言程序,同时也提供了大量的 C 语言学习资料以及示例代码,让 C 语 言初学者们能够轻松简单快乐的学习 C 语言。 1.2 web 应用价值应用价值 传统应用指的是仅仅能运行在 pc 上的,单用户操作的应用,例如我们每天都会接触的 Office 软件,他们功能强大,但是仅仅只能应用在 PC 机上,无法和别人共享,在使用他 们之前,你必须安装对应的软件,他会占用你一定的硬盘空间和内存,即有一定的消耗。 但是如果将传统的应用换成互联网应用2,那么它所产生的消耗就少得多,你仅仅需要能 上网,就能够使用,而且随着 web 技术的发展,新技术的成熟,比如 Html5,互联网应用 所产生的用户体验也完全不亚于传统的应用,在功能上也能够接近传统应用。所以,将一 切的传统应用转换成互联网应用都是合适的,甚至是您的操作系统,在互联网应用上的更 高一层就是云,这也是今后云计算,云存储的发展方向。 1.3 C 在线编译器意义在线编译器意义 C 语言在线编译器,不需要安装任何的编译环境和软件就能够写 C 语言程序,编译 C 语言程序,执行 C 语言程序。用户能够快速的开始编写 C 语言程序3,不需要承担传统编 译器所带来的内存消耗和硬盘存储空间的消耗,同时 C 语言在线编译器集学习和编写代码 为一体,边学习边实践是最好的学习方式,同时,用户可以到任何一个可以上网的 PC 上 编写代码,学习 C 语言,不需要费时去安装和配置传统的编译环境。 1.4 开发技术开发技术 本系统是严格的按照“软件工程”的思想和开发流程进行的4, 采用 B/S 架构5, 前端使 用 Ajax、 jquery, html、 css 将页面显示和页面逻辑处理和页面数据剥离开来, 结合 Javascript, 给予了页面动态效果6,增强了用户体验。后台分为逻辑处理模块和前端交互模块,把业 咸阳师范学院 2012 届本科毕业设计(论文) 2 务逻辑和数据交互拆分开来,便于后期的维护。 在软件工程开发思想的指导下,使用了最优秀的开发工具 Intellij, ,使用 SeverLet 和 Ajax 技术7,采用 Tomcat7.0 作为 Web 服务器。 C 语言在线编译器 3 第二章第二章 需求分析需求分析 根据调查显示至今年四月份开始至今,C 语言是世界上使用的最多的语言,C 语言如 此受欢迎已经能够足够说明 C 语言本身的优点吸引着开发人员去使用它,也使广大人群去 学习它,同时在计算机二级考试中,也有 C 语言的科目。 学习总是需要和实践相结合,在学习 C 语言过程中需要大量的代码编写,这就需要一 个对于新手来说简单、方便的编译器,来为学习 C 语言的人群减轻学习压力,但是如今在 PC 上运行的 C 语言编译器大多数比较复杂,C 语言学习者还需要花心思去熟悉 C 语言编 译环境。 在学习 C 语言的人当中不仅仅是程序员,还有很大一部分是对计算机知识了解相对薄 弱的学生和社会人群。同时,这类人群的学习环境复杂,并不是每个人都拥有 PC,他们可 能去网吧,朋友家去练习,而且各个操作系统也存在差异,这样传统编译器就带来了些麻 烦,因为到一个新的环境去学习,你就可能需要下载安装软件,而这个是一个相对耗费时 间和精力的过程。因此,脱离系统环境的的 C 语言编译环境提供给这类人群。 2.1 可可行性研究行性研究 2.1.1 技术可行性技术可行性 在大学,学习了 Java 8、Web、编译原理等关键性的技术9,为我之后的学习和写这 个系统打下了坚实的基础,同时这些技术也实际应用过,增加了我能够写好这个系统的信 心。这些技术已经相当成熟,遇见的问题可以通过技术资料、搜索引擎解决。 大学也培养了我的自学能力,对于陌生的知识能够较快的接受和理解,并将他们投入 实战应用。 学校学习了软件工程、软件需求与分析等课程,加上在公司实习积累的经验,使得我 能够做好需求分析,架构设计等工作,为编写软件打下了基础 6。 2.1.2 经济可行性经济可行性 经济可行性主要是从对项目的经济上进行分析评价的,一方面是支出的费用,包括编 写这个系统的成本,以及后期系统上线后需要服务器等硬件支持和网站维护的花费,另一 个是取得的收益,在网站积累用户后,可以和 C 语言培训机构合作,加入培训机构的广告 来获取广告费用。 2.2 系统的功能要求系统的功能要求 C 语言编译器要实现 C 语言语法检验功能、C 语言代码转换功能、运行结果功能、C 咸阳师范学院 2012 届本科毕业设计(论文) 4 语言在线学习功能。其具体功能模块如下: 1.C 语言语法检验模块:通过该模块可以对用户编写的 C 语言进行代码扫描,检验 C 语 言程序语法错误。 2.C 语言代码转换模块:通过该模块可以实现将 C 语言代码转换为 JS 代码。 3.运行结果模块: 通过该模块可以实现将由C语言代码转换过来的JS代码运行输出结果。 4.C 语言在线学习模块:通过该模块提供 C 语言学习资料以及示例代码,供用户学习8。 2.3 系统的性能要求系统的性能要求 2.3.1 可靠性要求可靠性要求 系统没有后台数据库,不需要考虑后台数据的完整性以及数据安全,同时系统大量的 功能实现是由 Javascript 去完成的,以及使用了 Ajax 技术,减少了页面和后台的访问,减 少了恶意的 Doc 攻击,也使得系统可以接受庞大的用户同时访问。 2.3.2 时间要求时间要求 在不考虑网络状况的情况下,系统响应时间应较迅速,一般控制在 0.1 秒以内。 2.3.3 并发并发处理能力要求处理能力要求 系统能够支持同时间多用户的访问要求,并且保证运行的顺畅。 C 语言在线编译器 5 第三章第三章 关键技术关键技术 3.1Ajax 概述概述 传统的 Web 应用允许用户端填写表单(form) ,当送出表单时就向 Web 服务器发送一 个请求。服务器接收并处理传来的表单,然后送回一个新的网页,但这个做法浪费了许多 带宽,因为在前后两个页面中的大部分 HTML 代码基本上是相同的。由于每次应用的沟通 都需要向服务器发送请求,应用的回应时间就依赖于服务器的回应时间。这导致了用户界 面的回应比本机应用慢得多。 与此不同,AJAX 应用可以仅向服务器发送并取回必需的数据,它使用 SOAP 或其它 一些基于 XML 的页面服务接口(接口) ,并在客户端采用 JavaScript 处理来自服务器的回 应。因为在服务器和浏览器之间交换的数据大量减少(大约只有原来的 5%) ,结果我们就 能看到回应(服务器回应)更快的应用(结果) 。同时很多的处理工作可以在发出请求的 客户端机器上完成,所以 Web 服务器的处理时间也减少了。 3.2 Servlet 概述概述 Servlet 是一种服务器端的 Java 应用程序, 具有独立于平台和协议的特性,可以生成动态 的 Web 页面。它担当客户请求 (Web 浏览器或其他 HTTP 客户程序) 与服务器响应 (HTTP 服务器上的数据库或应用程序)的中间层。 Servlet 是位于 Web 服务器内部的服务器端的 Java 应用程序,与传统的从命令行启动的 Java 应用程序不同,Servlet 由 Web 服务器进行 加载,该 Web 服务器必须包含支持 Servlet 的 Java 虚拟机。 3.3 Jquery 概述概述 jQuery 是一个跨浏览器的 JavaScript 库的设计,简化了客户端脚本的 HTML。简单的 说 jQuery 是使用最流行的 JavaScript 库。jQuery 是开源码软件, jQuery 的语法专门设计, 以使它更容易来浏览一个文档,选择 DOM 元素,创建动画,处理事件,开发 Ajax 应用程 序。jQuery 还提供了插件开发创造能力的 JavaScript 库。这使开发人员能够创建抽象为低 层次的互动和动画,先进的特效和高层次,主题能够部件。jQuery 库的模块化方法允许创 建强大的动态网页和 Web 应用程序。 微软和诺基亚宣布其平台上捆绑 jQuery 的,微软采用它最早在 ASP.NET AJAX 框架和 ASP.NET MVC 框架,而诺基亚已经融入他们的 Web 运行时构件开发平台。 咸阳师范学院 2012 届本科毕业设计(论文) 6 3.4 正则表达式正则表达式 正则表达式(Regular Expression、regex 或 regexp,缩写为 RE) ,也译为正规表示法、 常规表示法,在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字 符串的单个字符串。在很多文本编辑或其他工具里,正则表达式通常被用来检索和/或替换 那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操 作。例如,在 Perl 中就内建了一个功能强大的正则表达式引擎12。 3.5 LL1 算法算法 LL(1)是预测分析器, 第一个 L 代表扫描模式是自左向右的,第二个 L 代表分析模式是最左推导。至于括号中的 1 代表在分析中最多向前看一个输入字符。LL(1)的组成包括总控程序,分析栈和分析表, 其中分析表是 LL(1)分析器的核心。 First 集合以及后面讲到的 Follow 集合都与分析表有关。 分析栈:存放分析过程中的文法符号(待匹配和已经推导的串) 。 分析表:判断当前用那条文法进行推导 总控程序:做大的调度工作 关于 LL(1)文法的性质如下: 任何 LL(1)文法是无二义性的。 若一文法中的非终结符含有左递归,则它必然是非 LL(1)文法。 非 LL(1)语言是存在的。 存在一种算法,它能判定任一文法是否为 LL(1)文法。 存在一种算法,它能判定任意两个 LL(1)文法是否产生相同的语言。 不存在这样的算法,它能判定上下文无关语言能否由 LL(1)文法产生。 3.6 编译器编译器 编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、 语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译器是将一种语言翻译为另一种语言的计算机程序。编译器将源程序(source language) 编写的程序作为输入,而产生用目标语言(target language )编写的等价程序。 编译器编译程序的流程: 1.扫描程序(scanner) 在这个阶段编译器阅读源程序(通常以析程序字符流的形式表示) 。 C 语言在线编译器 7 2.语法分析程序(parser ) 语法分析程序从扫描程序中获取记号形式的源代码,并完成定义程序结构的语法分析 (syntax analysis ) ,这与自然语言中句子的语法分析类似。语法分析定义了程序的结构元 素及其关系。通常将语法分析的结果表示为分析树(parse tree)或语法树(syntax tree) 13。 3.语义分析程序(semantic analyzer ) 程序的语义就是它的“意思”,它与语法或结构不同。程序的语义确定程序的运行,但 是大多数的程序设计语言都具有在执行之前被确定而不易由语法表示和由分析程序分析 的特征。 4.代码生成器(code generator) 5.代码生成器得到中间代码(IR) ,并生成目标机器的代码 8 第四章第四章 概要设计概要设计 4.1 系统总体结构系统总体结构 系统从纵向上分为两层,即前端和后台,前端处理数据显示,以及部分的业务逻辑, 包括代码的初步审查、代码生成、代码执行,后台主要负责代码分析的业务逻辑,前端和 后台通过 Ajax 结合 Severlet 来进行数据通讯。系统的框架如图 4.1 所示。 4.2 代码编辑模块代码编辑模块 代码编辑模块主要用于得到用户输入的代码,并对用户输入关键字提示,其工作流程 如图 3.2 所示。 C 语言在线编译器 9 4.3 代码分析器模块代码分析器模块 代码分析模块主要处理从前台传递过来的代码,对代码进行词法分析和语法分析,判 断用户的代码的正确性,如果用户输入的代码有误,能够识别出错误的位置,并将错误信 息返回给前台,其工作流程如图 3.3 所示 4.4 代码生成器模块代码生成器模块和代码执行模块和代码执行模块 代码生成模块主要处理编译通过的代码,利用正则表达式将原来的 C 语言代码转换成 Javascript 代码并将生成的 javascript 代码推送到页面,让浏览器去执行,将结果显示在页 面上,其工作流程如图 3.4 所示 代码转换器 执行 C 语言代码 javascript 代码 浏览器 页面 显示 图 4.4 代码生成和代码执行工作流 程 10 第五章第五章 详细设计与实现详细设计与实现 5.1 代码编辑模块代码编辑模块 代码编辑模块主要用于得到用户输入的代码,并对用户输入关键字提示。 5.1.1 页面设计页面设计 1.使用 Div 实现 TextArea 在代码编辑模块中,是使用了 Div 元素来模拟 TextArea,因为 TextArea 中的内容只允 许是文字,同时,对文字的字体和颜色的设置会应用到整个 TextArea 中的文字内容,不能 对局部调整,但是我的需求是希望能对代码中的关键字进行高亮显示,并改变颜色,所以 TextArea 不能够满足我的需求。 在 Div 中我可以任意插入 Html 元素, 同时也可以是用 CSS 样式调整,使得 Div 的外观和 TextArea 差不多,甚至比 TextArea 更加美观 14,多以就选择 了 Div。 2.页面大小有限,而且页面中还有其他很多元素,例如标题,结果显示模块等,如何, 然而用户编写的代码量是不确定的,如何能够满足用户能够编写任意量的代码? 在页面中使用分页,用户在本页编辑满了后,可以点击下一页继续编辑,同时系统保 证页面不跳转,代码不丢失,用户可以编写任意长度的代码,上下翻页非常方便,在编辑 也下方显示当前页页码,可以让用户随时了解当前所在的位置。 5.2 类设计类设计 对用户输入的代码进行初步的判断,提示用户是否输入了关键字,以及出入关键字的 准确性,并将关键字高亮显示 15,显示蓝色,显示 1 秒后,删除包装关键字的标签,然后 重新组装上关键字。 关键字定义: keyWord=printf,print,int,float,double,bool,void,long,switch,caseelse,stru ct,enum,return,short,const,typedef,extern,continue,while,do,default,for,s tatic,if; 判断是否是关键字 function isKeyWord(n) 获取最后当前编辑代码块的一个单词(依照用户敲入空格为准) function getLastWord(n) return lastword; 将最后关键字裁减掉 C 语言在线编译器 11 function cutLastWord(n) 改变关键字的颜色 function dealKeyWordColor() 删除已经呗改变颜色的关键字,然后补上正常的关键字 function removeKeyword() 用于将字体设置成原来的样式 function resetWord(n) return word; 包装 keyword,使得代码符合 Html 执行的要求 function packKeyWord(keyword) return word; 从文本中找出所有的单词 function getWordList(code1) 5.2.1 代码分析器类图代码分析器类图 代码分析器主要由词法分析器和语法分析器构成,其类图结构如图 5.1 所示。 代码预处理代码预处理:由功能类 CodeAnalyser 构成,CodeAnalyser 类图如图 5.2 所示。 图 5.1 后台处理逻辑类图 咸阳师范学院 2012 届本科毕业设计(论文) 12 该类索引传入的 C 语言代码,并将找到的字符进行分类处理 letterProcessor()用于处理字符为字母的情况 digitProcessor()用于处理字符为数字的情况 otherProcessor()用于处理字符为特殊字符的情况 analyse 调用上述的方法,分析取得的字符,重构 C 语言代码。 词法分析词法分析:由功能类 WordAnalyser 构成,WordAnalyser 类图如图 5.3 所示。 图 5.3 WordAnalyser 类图 isKeyWord()用于判断是否为关键字 isOperator()用于判断是否为操作符 isDelimit()用于判断是否为界符 andlyse()调用上述三个函数,从 UserCollection 提取定义好的字符,来进行比较判断,并进 行处理。 语法分析器语法分析器:由功能了 LL1Module 构成,LL1Module 类图如图 5.4 所示 图 5.4 LL1Module 类图 LL1()中使用 LL1 算法进行语法分析,自定义栈来存储文法,并对输入字符串进行匹配扫 描,来判断合法性。 四元式四元式: 由功能类 FourYuanStyle 构成, 用于分析四元式, 处理 C 语言的语法, FourYuanStyle 类图如图 5.5 所示、 图 5.2 CodeAnalyser 类图 C 语言在线编译器 13 图 5.5 FourYuanStyle 类图 fourYuanStyle()初始化四元式,四元式的定义在 SYS 类中 getFourYuan()获取已经初始化完成的四元式数组 analyse()分析 code,拆分出可构的四元式,并存入静态的四元式数组中,被用于 CodeProcessor 类 5.3 代码生成器模块代码生成器模块和代码执行模块和代码执行模块 代码生成模块主要处理编译通过的代码,利用正则表达式将原来的 C 语言代码转换成 Javascript 代码并将生成的 javascript 代码推送到页面 16,让浏览器去执行,将结果显示在 页面上。如图 5.6. 图 5.6 代码生成流程图 代码转换器:使用 CtoJava.js 来完成这个功能模块 参与的函数如下: 删除原 C 代码的函数头 function deleteMain(code) return code;/删除指 删除指定索引处的字符 function deleteIndex(code, position) return code; 查找到在 code 中指定字符的最后一个的位置 function findLastChar(code, char) return position; 处理 printf 串,转换成可以被 Javascript 的代码 删除函数头 C 语言代码 替换变量类型 删除结尾标 识($) 处 理 输 出 printf Javascript 语言代码 咸阳师范学院 2012 届本科毕业设计(论文) 14 function deal_printf(code) return code; function replacePrintf(position, length, codeTemp1) 生成 Javascript 写到页面的输出语句 function getPrintfString(printf_position) return null; 对输出语句进行转换 function printfProcess(printf_position) 生成 js 写入 homepage function makeJavaJs(code) 咸阳师范学院 2012 届本科毕业设计(论文) 15 第六章第六章 系统测试系统测试 6.1 测试方法测试方法 在编写代码分析模块时,进行了大量的单元测试,检验代码分析的可靠性,以及是否 能够提示正确的错误信息,后期和前端页面结合是进行了集成测试,保证数据在前端和后 台之间传递的完整性17,把单元测试穿插在编码过程中进行并及时改正了所发现的错误 18,在系统完成进行验收测试时,选择可具有代表性的 C 语言代码对系统功能进行测试, 验证 C 语言在线编译器是否达到开发目标。 6.2 测试用例测试用例 根据用例测试的目的是在系统测试过程中,验证系统各个功能是否可以完成预期目 标,以及在测试中出现错误时如何改正以达到其拟定功能。 对代码编译模块的测试对代码编译模块的测试: 以下对给出系统的功能的测试用例。 1. 输入错误 C 语言代码 #include”studio.h” int main() int a=10; int c,d,b=10; int x,y; if(ac)a=c+d+y; a=b; x=y-b; else/此处少了一个“” a=c; while(ac) a=c; printf(a 的值为:); printf(%d,a); 咸阳师范学院 2012 届本科毕业设计(论文) 16 $ 页面执行结果:编译失败,在第 9 行出现错误 2. 输入正确 C 语言代码 #include”studio.h” int main() int a=10; int c,d,b=10; int x,y; if(ac)a=c+d+y; a=b; x=y-b; else a=c; while(ac) a=c; printf(a 的值为:); printf(%d,a); $ 页面执行结果:编译通过,结果:a 的值为:10 对对 C 语言学习模块的测试语言学习模块的测试: 点击 C 语言学习的各个章节,能够成功跳转到相应的学习内容。 点击 C 语言示例代码,能够显示各个示例代码 6.3 测试结果测试结果 通过 C 语言在线编译器各种功能的测试,该系统基本达到了开发之初所拟定的目标, 实现了 C 语言在线编译器的预期功能。 C 语言在线编译器 17 总结总结 在大学的四年中,有很多自己想去实践的东西,但是在技术上遇见很多问题,所以总 是不能够实现自己的想法,随着各种相关的课程的开放,自己的自学能力的提高,渐渐的 相信自己的实力,只要肯去钻研,就能够解决所有的问题。本次毕业设计是对大学四年学 过的“c+程序设计语言“、“Java 程序设计语言”、“Web 编程技术”、“数据库原理”、“软件 工程”、“软件测试”等课程的一个具体实践,是一个理论结合实践的过程,也是对自己自学 能力的一个肯定。作为一项毕业设计的任务,C 语言在线编译器的设计与实现目标是实现 一个在浏览器上运行的 C 语言编译器。在设计与开发的过程中,我充分利用所学知识,遇 见不懂的技术就去学习,遇见问题就百度、谷歌解决,将理论联系实践,使自己对所学的 知识有一个更深刻的理解,并为以后的实际工作积累了实践经验。由于时间仓促和技术所 限,该系统存在一些不足之处,有待进一步改进和完善。 本次的毕业设计,也是对自己大学四年的学习的一个总结和检验。设计之初,进行需 求分析,搜集了大量的素材,来判断 C 语言在线编译器的可行性。在前期工作完成之后, 各种 C 语言本地编译环境进行了研究,使得之后的 C 语言在线编译器能够尽量满足 C 语 言入门学者的需求。设计阶段,写代码,调程序,反反复复出现问题。在这期间我学会了 很多,也得到了许多宝贵的经验。我切实体会到了在软件系统开发过程中,最重要也最困 难的工作就是需求分析, 需求分析是系统开发能否取得成功的关键。 而对于整个开发过程, 需要合理的进度安排和很好的逻辑协调能力,这种解决问题的能力锻炼和思考问题的模式 都使我受益匪浅,相信从本次的毕业设计中体会到的会影响我今后的程序员生涯。 咸阳师范学院 2012 届本科毕业设计(论文) 18 致谢致谢 本次毕业设计,首先要感谢我的指导老师宋笑雪老师,宋笑雪对本次毕业设计给与了 很大的帮助,并为具体开发以及论文的书写提出了许多宝贵意见,她严谨仔细的治学态度 深深的影响了我,在此对宋笑雪的帮助表示衷心的感谢!此外还要感谢在本次毕业设计中 帮助过我的同学们,没有老师及同学的帮助和指导是不可能顺利完成本次的设计任务的。 感谢信息工程学院的领导以及老师为我们创造的良好的学习环境。 C

温馨提示

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

评论

0/150

提交评论