软件工程导论实习报告

合集下载

软件工程导论实习报告

软件工程导论实习报告

一、实习背景随着信息技术的飞速发展,软件工程作为一门研究软件开发和维护的学科,其重要性日益凸显。

为了更好地理解和掌握软件工程的基本原理和方法,我参加了为期两周的软件工程导论实习。

本次实习旨在通过实际操作,加深对软件工程概念、方法、工具和过程的了解。

二、实习目的1. 熟悉软件工程的基本概念和原则。

2. 掌握软件开发的基本流程和方法。

3. 学习使用常用的软件开发工具。

4. 培养团队协作和沟通能力。

三、实习内容1. 软件工程基本概念在实习的第一周,我们学习了软件工程的基本概念,包括软件、软件工程、软件开发过程、软件质量等。

通过学习,我对软件工程的定义、目标和任务有了更清晰的认识。

2. 软件开发流程接下来,我们学习了软件开发的基本流程,包括需求分析、系统设计、编码、测试和维护等阶段。

通过实际案例分析,我了解了每个阶段的具体任务和目标。

3. 软件开发方法实习期间,我们学习了两种软件开发方法:瀑布模型和敏捷开发。

通过对比分析,我认识到敏捷开发在应对需求变更和快速迭代方面的优势。

4. 软件开发工具为了提高软件开发效率,我们学习了常用的软件开发工具,如版本控制工具(Git)、集成开发环境(IDE)、数据库设计工具等。

通过实际操作,我掌握了这些工具的基本使用方法。

5. 团队协作与沟通在实习过程中,我们分组进行软件开发项目。

通过团队协作,我学会了如何与他人沟通、协调和分工,提高了团队协作能力。

四、实习成果1. 完成软件开发项目在实习期间,我们分组完成了一个简单的软件开发项目。

通过实际操作,我掌握了软件开发的基本流程和方法,提高了编程能力。

2. 撰写实习报告为了总结实习经验,我撰写了这份实习报告。

通过回顾实习过程,我对软件工程有了更深入的理解。

3. 提高团队协作能力通过实习,我学会了与他人沟通、协调和分工,提高了团队协作能力。

五、实习体会1. 理论与实践相结合本次实习让我深刻体会到理论与实践相结合的重要性。

只有将所学知识应用于实际项目,才能真正提高自己的能力。

软件工程师实习报告5篇

软件工程师实习报告5篇

软件工程师实习报告软件工程师实习报告精选5篇(一)实习期间,我在一家软件公司担任软件工程师实习生的角色。

在这段时间里,我参与了公司的软件开发项目,并在项目组中与其他团队成员合作完成了多项任务。

在实习期间,我主要参与了以下工作内容:1.需求分析:我与项目经理一起参与了项目需求的分析和讨论。

通过与客户、产品经理等相关方的沟通,我学会了如何理解和梳理需求,并将其转化为开发任务。

2.编码与开发:我与团队其他成员一起进行了软件编码和开发工作。

我负责其中的一些模块的开发任务,并遵循了公司的软件开发流程和编码规范。

通过这个过程,我学会了如何利用所学的编程知识,实现具体的功能和需求。

3.软件测试:我参与了软件测试的工作,包括编写测试用例、执行测试用例、记录测试结果等。

通过这个过程,我了解了软件测试的重要性,并学会了如何进行基本的软件测试。

4.问题解决与协作:在开发过程中,我遇到了一些技术问题和困难。

我与团队其他成员一起,通过讨论和合作,共同解决了这些问题。

同时,我也积极与其他团队成员进行沟通和协作,共同推动项目的进展。

在实习期间,我还参加了公司举办的一些技术培训和讲座,学习了一些新的技术和知识。

我也积极参与团队的讨论和分享,与其他成员一起探讨和学习软件工程领域的最新进展。

通过这段实习经历,我收获了很多。

我不仅学到了软件开发的具体技能和知识,还锻炼了自己的沟通和协作能力。

我也更加了解了软件开发项目的整个流程和各个环节的重要性。

感谢公司给予我这次实习的机会,我会继续努力学习,提升自己的技能,为公司的发展做出更大的贡献。

软件工程师实习报告精选5篇(二)软件工程师实习报告一、背景介绍我所实习的公司是一家软件开发公司,主要致力于为客户提供高质量的定制化软件解决方案。

我在公司实习的时间为三个月,主要任务是参与公司的软件开发项目,并参与到项目的不同阶段中。

二、实习目标与计划在实习之前,我制定了自己的实习目标和计划。

首先,我想通过实习的机会,提升自己的编程能力和软件开发技巧。

软件专业实习报告6篇

软件专业实习报告6篇

软件专业实习报告软件专业实习报告精选6篇(一)实习报告(示例)报告人:XXX报告时间:XXXX年X月X日1. 实习背景本次实习是我作为软件工程专业学生,在XXX公司进行为期XX个月的实习。

实习内容主要涉及软件开发和测试。

2. 实习目标通过本次实习,我希望能够掌握软件开发和测试的基本流程,熟悉常用的开发工具和测试方法,并在实际项目中应用所学知识,提高自己的实际操作能力。

3. 实习内容在实习期间,我参与了公司的一个项目,负责开发一个XXX软件,并参与了软件的测试工作。

具体的实习内容如下:- 需求分析:跟随导师学习如何从客户需求中获取关键信息,并转化为可实现的软件功能。

- 系统设计:参与系统的整体架构设计,并根据设计文档进行编码工作。

- 编码与调试:使用一种主流编程语言进行开发和调试工作,并在测试环境中进行代码的单元测试。

- 测试与bug修复:参与软件的功能测试,发现并修复其中的bug,确保软件的稳定性和可靠性。

- 文档撰写:编写相应的技术文档,包括需求分析、设计文档、用户手册等。

4. 实习成果在本次实习中,我取得了以下成果:- 掌握了软件开发的基本流程和常用工具,包括需求分析、系统设计、编码与调试。

- 学会了使用一种主流编程语言进行开发,并熟悉了常用的开发工具和调试方法。

- 参与了软件测试工作,掌握了一些常用的测试方法和技巧。

- 完成了一个具体的项目,实现了其中部分功能,并对已有的功能进行了测试和bug修复。

- 撰写了相关的技术文档,使得项目的开发过程更加规范和可追溯。

5. 实习总结通过本次实习,我不仅提高了软件开发和测试的实际操作能力,还学会了在团队中协作和沟通。

我认识到在软件开发过程中,需求的准确理解和良好的沟通是至关重要的。

同时,通过与导师和同事的交流,我也了解到了行业中的一些最新技术和发展趋势。

在未来的学习和工作中,我将继续积极进取、不断学习,以提高自己的技术水平,并为软件行业的发展做出自己的贡献。

2024年软件工程实习报告(三篇)

2024年软件工程实习报告(三篇)

2024年软件工程实习报告光阴荏苒,时光飞逝,转眼间到了实习结束的日子。

从进公司实习到现在,我已经到公司近6个月了,感受颇多,收获颇多。

期间,通过公司领导的关心和帮助,同事的指导,使我能够很快地了解公司的管理与运作程序,我了解了公司的发展概况,熟悉了公司的流程和行业的基础知识,使我逐步学会如何从一个刚出校门不久的实习生转变成一个职员。

以下是我这段时间的实习报告。

学习无止境,职业生涯只是学生生涯的一种延续。

对于一个实习的学生,初踏入职场,进入专业的软件公司,对开发软件没有一点经验。

不论在人生的哪个阶段,学习的脚步都不能停歇,要把工作视为学习的殿堂。

所以在这几个月当中,我一边学习,一边从最基础的事情做起,这样的好处在于能够在工作的过程中,了解项目的整体布局,了解项目中的业务逻辑,了解项目中尚未完成的工作并以此作为下个阶段的工作目标。

在这几个月的工作中,我的主要任务是对客户使用的map系统进行测试,并且做相应的文档记录和一些简单的配置修改。

几个月里,我工作勤勤恳恳,并按时完成安排的任务。

尽的努力解决客户在工作中遇到的问题,从中我也学到了在学校里学不到的东西,也明白了很多道理,我相信对我以后的工作都将大有裨益。

其它方面,我全力协助公司的工作,在公司人手较忙的时候,为公司分担事务,圆满地完成公司委派的任务。

在这几个月的工作中,最初我会遇到一些我解决不了的问题,我会咨询公司另两位同事。

在他俩的指导和帮助下,我的技术技能不断提升,对整个MAP系统和配置工具的使用逐步熟练,思维方式和工作方法也不断提升,直至到目前我基本能解决客户在使用MAP系统过程中遇到一般问题的问题。

在近6个月的工作过程中,我在领导和同事们的帮助和支持下取得了一定的进步,但我深知自己还存在很多缺点和不足,与工作需要还有一定的差距。

在工作中未能考虑的各种因素还有很多,比如:对整个MAP系统的掌握还不够熟练、工作的灵活性还不够、服务意识还有待提升等等,这都有待于在今后的工作中改进。

2024年软件工程实习报告(四篇)

2024年软件工程实习报告(四篇)

2024年软件工程实习报告一、关于实习公司我所实习的南京xx软件有限公司简称xx公司,公司成立于xx 年,主营软件开发和信息系统集成,专门从事工程建设项目管理信息系统开发和实施,具有自主知识产权的项目管理软件产品xx项目管理系列软件(包括xx投资控制合同管理软件、xx进度控制计划管理软件、xx质量控制安全管理软件、xx项目管理门户、xx城建项目管理平台等),并已经在全世界第一大桥苏通长江大桥、国内最大的开发区苏州工业园区以及南水北调工程实施和应用,目前正与南京城建集团合作,开发城建项目管理平台。

二、实习的内容今年xx月xx日开始,我正式走进xx开始了实习工作,并被调到了江苏省建筑质量检测中心,参加正在进行的一个检测项目。

由于我才大三,本身对企业的经营方式等都很陌生,公司让我们的王工带我学习,以师傅带徒弟的方式,指导我的日常实习。

在王工的热心指导下,我依次对此次项目的业务流程和大概框架进行了了解,并积极参与相关工作,注意把书本上学到的理论知识对照实际工作,用理论知识加深对实际工作的认识,用实践验证大学所学确实有用。

以双重身份完成了学习与工作两重任务。

跟公司同事一样上下班,协助同事完成部门工作;又以学生身份虚心学习,努力汲取实践知识。

我心里明白我要以良好的工作态度以及较强的工作能力和勤奋好学来适应公司的工作,完成公司的任务。

三、实习的提高与收获实习收获,主要有四个方面:一是通过直接参与企业的运作过程,学到了实践知识,同时进一步加深了对理论知识的理解,使理论与实践知识都有所提高,圆满地完成了本科教学的实践任务。

二是提高了实际工作能力,为就业和将来的工作取得了一些宝贵的实践经验。

三是一些学生在实习单位受到认可并促成就业。

四是为毕业后的正式工作做好了准备。

四、结语到公司实习并没有我想象中的难以融入,通过慢慢的学习,发现在公司用的到得知识在我们的学校学习中都会遇到。

至暑期结束,从不懂到渐渐的做了几个检测项目。

2024软件工程实习报告3篇

2024软件工程实习报告3篇

2024软件工程实习报告2024软件工程实习报告精选3篇(一)实习报告一、实习内容及目标在2024年暑期,我参加了一家软件工程公司的实习。

这次实习的主要目标是让我能够实践所学的软件工程知识和技术,并了解软件开发的流程和方法。

在实习期间,我主要参与了公司正在进行的一个项目,负责其中的一部分功能开发和测试工作。

二、实习过程1. 项目介绍本次实习的项目是一个在线学习平台的开发。

该平台主要面向学生和教师,提供在线课程学习、作业提交、在线讨论等功能。

该平台采用了前后端分离的架构,前端使用Vue.js框架开发,后端使用Spring Boot框架开发。

2. 自己的任务在项目中,我负责了平台的用户管理模块的开发和测试工作。

具体包括用户注册、登录、个人信息管理等功能。

我使用了Vue.js和Element UI框架进行前端页面的构建,同时使用了Java和Spring Boot框架进行后端接口的开发。

在开发过程中,我遇到了一些技术难题,但通过查阅资料和和同事的帮助,最终成功完成了任务。

3. 实习收获在实习期间,我深入了解了软件开发的流程和方法,学习了很多实际的开发技术。

通过参与实际项目的开发,我对软件工程的各个方面有了更深入的理解。

同时,我也提高了自己的团队协作能力和问题解决能力。

三、总结及展望在2024年软件工程实习中,我通过参与一个在线学习平台的开发项目,深入了解了开发流程和技术。

在实践中,我不断学习和成长,克服了许多难题,提高了自己的能力。

展望未来,我会继续努力学习软件工程知识和技术,不断提升自己的开发能力。

希望有机会能够继续参与更多实际项目的开发,锻炼自己的实践能力。

同时,我也会注重团队协作和沟通能力的提升,成为一名出色的软件工程师。

实习报告完毕。

2024软件工程实习报告精选3篇(二)在2024年的软件工程师实习中,我得到了许多宝贵的经验和知识。

以下是我对这次实习的总结:1. 技术能力提升:通过参与实际项目,我有机会应用和学习多种编程语言和工具,包括Java、Python、SQL等。

软件工程实习报告

软件工程实习报告软件工程实习报告(精选16篇)随着社会不断地进步,报告与我们的生活紧密相连,多数报告都是在事情做完或发生后撰写的。

你所见过的报告是什么样的呢?以下是店铺精心整理的软件工程实习报告(精选16篇),仅供参考,大家一起来看看吧。

软件工程实习报告篇1一、实习目的实习是大学生学习和事业中重要的里程碑,将所学的理论知识与实践结合起来,培养勇于探索的创新精神、提高动手能力,加强社会活动能力,严肃认真的学习态度,为以后专业实习和走上工作岗位打下坚实的基础。

认识实习是教学计划的重要部分,它是培养学生的实践等解决实际问题的第二课堂,它是专业知识培养的摇篮,也是对工业生产流水线的直接认识与认知。

实习中应该深入实际,认真观察,获取直接经验知识,巩固所学基本理论,保质保量的完成指导老师所布置任务。

学习工人师傅和工程技术人员的勤劳刻苦的优秀品质和敬业奉献的良好作风,培养我们的实践能力和创新能力,开拓我们的视野,培养生产实际中研究、观察、分析、解决问题的能力。

通过顶岗实习,拓宽了我的知识面,增加感性认识,把所学知识梳理归类,不断进行总结纠正。

增强了从书本学不到的人际交往能力,语言表达和沟通能力,并了解到当前工程业的现状和发展前景和随着时代发展的最新动态。

通过顶岗实习,大大激发了我向实践学习和探索的积极性,为今后从事的工作打下坚实的基础。

认识实习是我们工科学生的一门必修课,通过认知实习,我们要对机械设计制造及其自动化专业建立感性认识,并进一步了解本专业的学习实践环节。

通过接触实际生产过程,一方面,达到对所学专业的性质、内容及其在工程技术领域中的地位有一定的认识,为了解和巩固专业思想创造条件,在实践中了解专业、熟悉专业、热爱专业。

另一方面,巩固和加深理解在课堂所学的理论知识,让自己的理论知识更加扎实,专业技能更加过硬,更加善于理论联系实际。

再有,通过到工厂去参观各种工艺流程,为进一步学习技术基础和专业课程奠定基础。

软件工程实习报告(三篇)

软件工程实习报告一、实习概况本次实习是我在某软件公司进行的为期三个月的实习。

实习期间,我被分配到了软件开发部门,参与了一个基于Java的项目的开发工作。

在这个项目中,我主要负责了功能模块的设计、编码和测试工作。

通过这次实习,我深入了解了软件开发的流程和方法,并学习到了许多实用的技术和工具。

二、实习内容1. 需求分析与设计在项目启动前,我参与了需求分析的工作。

通过与产品部门的沟通和确认,我明确了项目的功能需求和业务逻辑。

然后,我和团队成员们一起进行了系统设计。

我们使用UML建模工具进行了类图和时序图的绘制,以明确系统的结构和交互流程。

2. 编码与调试在需求分析和设计完成后,我开始了编码和调试工作。

我们项目采用了Java作为开发语言,所以我使用了Eclipse作为开发工具。

我根据需求文档和设计图,先编写了基础代码框架,然后逐步完善各个功能模块。

在编码过程中,我遵循了代码规范和设计原则,并积极参与了代码评审和重构工作。

3. 测试与集成在编码完成后,我进行了功能测试和集成测试。

我使用Junit进行了单元测试,并通过Mockito框架进行了模拟和验证工作。

在测试中,我发现了一些潜在的问题,并及时修复了它们。

在集成测试中,我与其他成员合作,测试了系统各个模块之间的交互和兼容性。

4. 文档编写与维护在实习期间,我还负责了部分文档的编写和维护工作。

我参与了用户手册和技术文档的编写,以便使用人员和开发人员可以更好地理解项目的功能和实现细节。

我还负责了项目的版本控制和文档管理工作,确保了项目资料的安全和可追溯性。

三、实习收获1. 技术能力的提升在实习期间,我得到了大量的实践机会,提升了自己的技术能力。

我学会了使用Eclipse进行项目开发,掌握了Java语言的常用库和框架,并熟悉了常见的设计模式和软件开发方法。

我还学会了使用Git进行版本控制和团队协作,以及使用Junit和Mockito进行测试和调试。

2. 项目管理和沟通能力的提升在实习期间,我参与了团队的讨论和决策,学会了如何与他人进行有效的沟通和协作。

大学软件工程专业实习报告(优秀范文五篇)

大学软件工程专业实习报告(优秀范文五篇)第一篇:大学软件工程专业实习报告20xx年x月,我离开了学校,进入了最后一学期的顶岗实习阶段。

从离开学校的那天起,我就当自己是一个正式的员工,做好了经历重重困难的准备,我始终坚信,我的努力与坚持不懈不会白费,我的未来不是梦。

一、实习单位介绍南京xx有限公司是我现在实习的单位,它成立于xx年,是从事教育软件、数字化教学资源、多媒体产品等开发、制作的专业公司;是江苏省信息产业厅认定的双软企业、江苏省新闻出版局审核认定的电子出版物开发制作单位。

公司长期承担高校及教育管理部门的数字化教学资源、教务教学、实验科研等管理系统的开发和信息化项目建设。

如:《数字化教学资源库-名师名课网系统》、《OA办公系统》等多个系统平台。

智风公司多年来致力于网络课程的建设服务工作,拥有一支专业化的开发团队,通过严格的开发流程和创新的教学理念为广大院校提供优质的服务。

专业化的研发队伍:从教学设计、技术开发,到交互设计、视觉设计、资源素材制作等各个方面,全面解决您的后顾之忧;丰富的开发经验:业已开发的课程中有42门被评为精品课程,累计开发的网络课程已逾1000门。

二、实习岗位、主要过程、主要内容、主要工作、收获我在该公司任职软件开发工程师,刚实习的第一个星期,主要的工作是熟悉公司的开发框架及开发流程,及时完成项目经理派发的任务。

从第二个星期开始,我就开始接触公司的开发项目。

令我印象最深、体会也最深的一个项目是《南京大学110周年校庆系统》。

该项目不仅开发时间短(只有一个月的时间),最主要的是需求不清。

在客户与公司的双重压力下,我们这组人(共5人)在与客户只沟通了两次的需求下,我们就开始动工。

该项目的用户主要分为校领导和嘉宾。

针对校领导和嘉宾进行相应的车辆、餐厅、宾馆、会场、时间、志愿者的安排,要有冲突提示功能。

如:在一个重叠的时间段内,一个人不能同时参加两项及以上活动;一辆车安排的人数不能超过他的承载数等等。

软件工程专业实习报告(共6篇)

软件工程专业实习报告(共6篇)软件工程专业实习报告(共6篇)第1篇:软件工程专业实_报告软件工程专业培养适应计算机应用学科的发展,特别是软件产业的发展,具备计算机软件的基础理论、基本知识和基本技能,具有用软件工程的思想、方法和技术来分析、设计和实现计算机软件系统的能力,毕业后能在IT行业、科研机构、企事业中从事计算机应用软件系统的开发和研制的高级软件工程技术人才。

下面是为大家整理的软件工程专业实_报告,仅供参考,欢迎大家阅读。

软件工程专业实_报告(一)时间过的很快,转眼间已经实_将近5个月,其中有2个月是属于完全被流放的。

最先在内部系统组参与内部管理系统开发(struts+mysql+spring+hibernate),之后是去做网络交换机软件的脚本测试。

现在又回归内部系统,虽然在脚本组期间,编码能力被别人甩在后头,但至少具有了一些测试经验。

至少自己做的东西,是真正交付到了客户手上,到也稍微有些成就感。

一直以来,我都认为测试是脱离了软件工程范围的工作,不以为屑。

但在实际情况中,测试是既重要且难以精湛的。

其真正的压力,在于找不到bug,责任在你,而不在于编码人员。

一般的测试人员不懂编码,他们靠的是日以累计的经验总结和想象力。

而要做到高级测试工程师,则一定要懂编码,因为这是你完全掌握整个系统的方方面面具体运作的前提。

但占主导地位的,还是大型系统的集成测试经验。

实际项目中,编码时间一般只占30%左右,真正耗费时间的是IT阶段的找bug与对应bug,此阶段基本评定了coder的编码质量。

有些人,以为教学视频和代码看多,自己就懂的多,实际做起来,却不知从何下手,问题在那?如何定位?如何解决?通通跟一样能力有关,debug追踪能力,也称调试。

在项目组工作不愁源码资源,但问题是蛋糕摆在面前,你如何去消化?有位同事告诉我:代码看几遍都没用,要去抄,例如一个查询模块,在此基础上去做具体记录的历史记录查询模块,你可能会觉得很简单,但实际情况却往往报一堆异常,配置问题涉及到方方面面,以及数据库字段,传值问题等等,一大堆对于新人来说很郁闷的问题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

安徽工业大学计算机学院“程序设计综合实习【软】”报告题目:关于“贪吃蛇”游戏的课程报告姓名:刘玉路学号:109074277学院:计算机学院专业:软件工程班级:104指导教师:胡增涛完成日期:2011年6月5日内容课程设计任务书题目关于“贪吃蛇”游戏的课程报告对原有的游戏代码进行一定程度上的改进,通过增加函数以实现更多游戏控制功能。

在面向人的对象时,能够更好的实现游戏操控,在这个游戏运行的环境只能在TC下运行。

设计者姓名刘玉路指导教师意见:指导教师签名:目录一、可行性研究报告 (4)1. 项目由来 (4)2. 可选方案 (4)3. 可行性 (4)4. 结论 (4)二、需求规格说明 (4)1.目标 (4)2. 功能需求 (5)3. 数据需求 (5)三、总体设计 (5)1.软件结构 (5)四、详细设计 (6)1.各模块算法流程图 (6)五、程序源代码 (7)六、程序测试 (10)1.测试内容和结果表+运行效果抓图 (10)2. 测试效果 (11)七、总结 (11)1.项目评价 (11)2.不足之处 (11)3.心得体会 (11)一、可行性研究报告1.项目由来对“贪吃蛇”这一经典游戏进行的课程设计以加深对软件工程思想的理解与认识,以便在以后的编程中熟练应用。

2.可选方案对原有的游戏代码进行一定程度上的改进吗,通过增加函数以实现更多游戏控制功能。

3.可行性本程序是在原有的游戏代码的基础上进行修改而得的,所以个人可独立完成,只需要一定的时间进行熟悉现有代码并进行修改设计,技术上要求较简单,设备资源(计算机)方便获取,成本较低,可行性较高。

4.结论本系统可以马上开始实施,并进可能的做到提前完成。

从人力资源的角度来说,尽量独立完成。

从开发成本角度来说,将支出成本降到最低。

所以可选方案即为最优方案。

二、需求规格说明1.目标本文主要描述连连看游戏应用程序的软件要求,目的是为了清晰地描述用户使用本软件必须要完成的任务和定义开发人员必须实现软件功能,使用户利用程序能够完成他们的任务。

2.功能需求由主函数读入用户的命令,进行判断,如果命令符合预定规则,则确认请求,并执行相应的命令,执行后对屏幕进行更新,然后读入第二条命令,如此往复。

3.数据需求在数据结构的选取,我们选择了链表,链表具有用多少空间就开多少空间的优点,使程序执行更稳定,高效。

三、总体设计1.软件结构游戏控制模块开始游戏暂停游戏继续游戏退出游戏四、详细设计1.各模块算法流程图InitSnake() DrawSnake()设置自动移动定时器和增加食物定时器 游戏开始CSnakeDlg::OnPaint()DrawFood ()桌面初始化 初始化蛇头和蛇移动方向随机初始化一个食物到桌面 SetTimer()CTable::AddFood()蛇移动 蛇吃食?蛇增长继续?蛇死亡?桌面上随机生成食物 MoveSnake ()AddSnake()是是否否OnGameStart()否GameOver()TB_STATE_SBLOCK五、程序源代码#define N 200#include <graphics.h>#include <stdlib.h>#include <dos.h>#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011bint i,key;int score=0;int gamespeed=50000;struct Food{int x;int y;int yes;}food;struct Snake{int x[N];int y[N];int node;int direction;int life;}snake;void Init(void);void Close(void);void DrawK(void);void GameOver(void);void GamePlay(void);void PrScore(void);void main(void){Init();DrawK();GamePlay();Close();}void Init(void){int gd=DETECT,gm;initgraph(&gd,&gm,"D:\\tc20\\BGI");cleardevice();}void DrawK(void){setcolor(11);setlinestyle(SOLID_LINE,0,THICK_WIDTH);for(i=50;i<=600;i+=10){rectangle(i,40,i+10,49);rectangle(i,451,i+10,460);}for(i=40;i<=450;i+=10){rectangle(50,i,59,i+10);rectangle(601,i,610,i+10);}}void GamePlay(void){randomize();food.yes=1;snake.life=0;snake.direction=1;snake.x[0]=100;snake.y[0]=100;snake.x[1]=110;snake.y[1]=100;snake.node=2;PrScore();while(1){while(!kbhit()){if(food.yes==1){food.x=rand()%400+60;food.y=rand()%350+60;while(food.x%10!=0)food.x++;while(food.y%10!=0)food.y++;food.yes=0;}if(food.yes==0){setcolor(GREEN);rectangle(food.x,food.y,food.x+10,food.y-10);}for(i=snake.node-1;i>0;i--){snake.x[i]=snake.x[i-1];snake.y[i]=snake.y[i-1];}switch(snake.direction){case 1:snake.x[0]+=10;break;case 2: snake.x[0]-=10;break;case 3: snake.y[0]-=10;break;case 4: snake.y[0]+=10;break;}for(i=3;i<snake.node;i++){if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]){GameOver();snake.life=1;break;}}if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||snake.y[0]>455){GameOver();snake.life=1;}if(snake.life==1)break;if(snake.x[0]==food.x&&snake.y[0]==food.y){setcolor(0);rectangle(food.x,food.y,food.x+10,food.y-10);snake.x[snake.node]=-20;snake.y[snake.node]=-20;snake.node++;food.yes=1;score+=10;PrScore();}setcolor(4);for(i=0;i<snake.node;i++)rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);delay(gamespeed);setcolor(0);rectangle(snake.x[snake.node-1],snake.y[snake.node-1],snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);}if(snake.life==1)break;key=bioskey(0);if(key==ESC)break;elseif(key==UP&&snake.direction!=4)snake.direction=3;elseif(key==RIGHT&&snake.direction!=2)snake.direction=1;elseif(key==LEFT&&snake.direction!=1)snake.direction=2;elseif(key==DOWN&&snake.direction!=3)snake.direction=4;}}void GameOver(void){cleardevice();PrScore();setcolor(RED);settextstyle(0,0,4);outtextxy(200,200,"GAME OVER");getch();}void PrScore(void){char str[10];setfillstyle(SOLID_FILL,YELLOW);bar(50,15,220,35);setcolor(6);settextstyle(0,0,2);sprintf(str,"score:%d",score);outtextxy(55,20,str);}void Close(void){getch();closegraph();}六、程序测试1.测试内容和结果表+运行效果抓图2.测试效果七、总结1.项目评价本程序在原有的代码基础上进行修改,使一些错误得到改正,提高了游戏的可玩性和控制性,并且耗时较短,对设备资源和人力资源的要求较低,成本最大程度上得到了控制,同时锻炼了实验操作者的文档书写能力。

2.不足之处(1)没有解决死局的问题。

(2)没有实现提示的功能。

(3)没有实现重排的功能。

3.心得体会总的来说,这次练习贪吃蛇游戏收获很大,达到了实习锻炼的目的。

自己的C语言设计能力得到了提高,体验了软件开发过程,培养了项目开发的分析能力和程序设计能力。

在这次练习中我通过了解贪吃蛇这个游戏体会到了编程的快乐,也体会到了那种做成功的喜悦,当我们遇到问题时能够相互合作去解决问题,不仅程序问题成功解除了,同时也加深了印象、加强了我们思考的深度。

总之,这次实习让我学到了很多有用的东西,也相信在我今后的学习生活中会发挥很大的作用。

相关文档
最新文档