课程设计总结报告模板

合集下载

课程设计报告总结

课程设计报告总结

课程设计报告总结一、教学目标本课程的教学目标是使学生掌握XX学科的基本概念、原理和方法,提高学生的科学素养和解决问题的能力。

具体目标如下:1.知识目标:学生能够准确地掌握XX学科的基本知识和概念,了解学科的发展趋势和应用领域。

2.技能目标:学生能够运用所学知识解决实际问题,具备基本的实验操作能力和数据分析能力。

3.情感态度价值观目标:学生对XX学科产生浓厚的兴趣,培养科学思维和创新意识,意识到学科在生活中的重要性。

二、教学内容根据课程目标,教学内容主要包括以下几个方面:1.XX学科的基本概念和原理:通过讲解和案例分析,使学生了解并掌握XX学科的基本知识和理论。

2.学科发展及其应用:介绍XX学科在国内外的发展状况及其在各个领域的应用,激发学生的学习兴趣和应用能力。

3.实验操作和数据分析:学生进行实验,培养学生的实验操作能力和数据处理能力。

4.科学思维和创新意识的培养:通过问题讨论和案例分析,引导学生运用所学知识解决实际问题,培养学生的科学思维和创新意识。

三、教学方法为了实现课程目标,我们将采用多种教学方法,包括:1.讲授法:通过系统讲解,使学生掌握XX学科的基本知识和理论。

2.讨论法:学生进行课堂讨论,培养学生的思维能力和团队合作精神。

3.案例分析法:通过分析实际案例,使学生了解XX学科在实际中的应用。

4.实验法:学生进行实验操作,培养学生的实验能力和科学素养。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选择权威、适合学生水平的教材,作为教学的主要参考资料。

2.参考书:提供相关的参考书籍,丰富学生的知识体系。

3.多媒体资料:制作多媒体课件,提高教学的趣味性和直观性。

4.实验设备:准备实验所需的设备器材,保证实验教学的顺利进行。

五、教学评估为了全面、客观地评估学生的学习成果,我们将采取以下评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估其学习态度和理解能力。

课程设计个人工作总结范文

课程设计个人工作总结范文

课程设计个人工作总结范文
在这学期的课程设计中,我承担了一个小组的组长角色,负责协调团队的工作,并参与了整个课程设计的全过程。

通过这次课程设计,我不仅学到了很多专业知识,还提高了自己的团队合作能力和解决问题的能力。

首先,在课程设计开始之前,我和我的团队成员一起制定了详细的工作计划和时间表。

我们根据课程设计的要求,明确了每个人的任务和分工,并设定了合理的进度安排。

这样的规划使得团队工作更加有序,避免了后期出现时间紧迫的情况。

其次,在整个课程设计过程中,我充分发挥了组长的作用,与团队成员建立了良好的沟通和协作机制。

我鼓励成员们多交流,开展讨论,让大家能够互相帮助和支持。

在团队会议上,我主持了讨论和决策的过程,确保每个人的意见都得到了充分的听取和尊重。

这种团队合作的方式使得我们的工作效率大大提高,也增强了团队的凝聚力。

此外,在课程设计的实施过程中,我通过学习和研究相关的理论知识,运用所学的方法和技巧,解决了一些遇到的问题。

例如,在需求分析阶段,我们遇到了一些用户需求不明确的情况,我带领团队进行了深入的用户访谈和调研,最终明确了需求,并根据需求进行了相应的设计。

在系统开发过程中,我们遇到了一些技术难题,我组织了团队成员进行讨论和研究,最终找到了解
决问题的方法。

这些经验让我学会了如何分析问题、寻找解决方案,并将其应用到实践中。

综上所述,通过这次课程设计,我不仅学到了专业知识,还提高了团队合作和问题解决的能力。

在未来的学习和工作中,我会继续努力,不断提升自己的能力,为团队的成功做出更大的贡献。

课程设计的总结报告

课程设计的总结报告

课程设计的总结报告课程设计的总结报告篇一首先我们由衷的感谢老师供应给我们这样一个熬炼自己的机会,经过这四周的学习,本次课程设计即将结束,总的来说,经过这门课的学习收获还是相当大的。

回顾这段时间的课程设计,至今我仍感慨万分。

的确,从选材到开头制作,从理论到实践,在四周的实训日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的学问,而且学到了很多在书本上所没有学到过的学问。

通过这次课程设计使我们都更加懂得并亲身体会到了理论与实际相结合的重要性,只有理论学问是远远不够的,只有把所学的理论学问与实践相结合起来,从实践中得出结论,才能真正为社会服务,从而提高自己的实际动手力气和独立思索的力气。

在设计的过程中遇到很多问题,可以说是困难重重,并且在设计的过程中发觉了自己的很多不足之处,发觉自己对之前所学过的学问理解得不够深刻,把握得不够结实,有待加强。

生活就是这样,汗水预示着结果但是也见证着收获,劳动是人类生存、生活永恒不变的话题,通过实训,我才真正领略了并有所体会到"艰苦奋斗'这一词的真正含义。

我想说,设计的确有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以。

而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互关怀,协作默契,多少欢快在这里洒下。

我想说,之前的时间的确很累,但当我们看到自己所做的劳动成果时,心中也不免产生兴奋。

或许有人不宠爱这类的工作,或许有人认为编程的工作有些枯燥,但我们认为无论干什么,只要人生活的有意义就够了,而且这也是最主要的,社会需要我们,我们也可以为社会而工作。

我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必需发扬团结协作的精神,某个人的离群都可能导致整项工作的失败。

实训中只有一个人知道原理是远远不够的,必需让每个人都知道,否则一个人的错误,就有可能导致整个项目失败,团结协作是我们实训成功的一项特殊重要的保证。

课程设计结论报告总结

课程设计结论报告总结

课程设计结论报告总结一、教学目标本课程的教学目标是让学生掌握XX学科的基本知识,理解XX学科的基本概念和原理,提高学生的XX技能,培养学生的科学思维能力和创新能力。

具体分为以下三个部分:1.知识目标:学生能够掌握XX学科的基本知识,了解XX学科的发展历程,理解XX学科的基本概念和原理,能够运用所学知识解决实际问题。

2.技能目标:学生能够运用科学方法进行探究,提高观察、实验、分析和解决问题的能力。

能够运用XX技能解决实际问题,提高学生的实践能力。

3.情感态度价值观目标:培养学生对XX学科的兴趣和热情,使学生认识到XX学科在生活中的重要性,培养学生的科学思维能力和创新精神,使学生成为具有社会责任感的人。

二、教学内容根据课程目标,本课程的教学内容主要包括XX学科的基本知识、基本概念和原理,XX技能的训练,以及XX学科在生活中的应用。

具体安排如下:1.第一部分:XX学科的基本知识。

介绍XX学科的发展历程,重点讲解XX学科的基本概念和原理。

2.第二部分:XX技能的训练。

通过实验、案例分析等方法,使学生掌握XX技能,提高学生的实践能力。

3.第三部分:XX学科在生活中的应用。

通过实际案例分析,使学生了解XX学科在生活中的应用,提高学生的应用能力。

三、教学方法为了达到课程目标,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。

具体安排如下:1.讲授法:用于讲解XX学科的基本知识和原理,使学生能够系统地掌握理论知识。

2.讨论法:通过小组讨论,引导学生深入思考,提高学生的分析和解决问题的能力。

3.案例分析法:通过分析实际案例,使学生了解XX学科在生活中的应用,提高学生的应用能力。

4.实验法:通过实验操作,使学生掌握XX技能,提高学生的实践能力。

四、教学资源为了支持教学内容和教学方法的实施,本课程将选择和准备以下教学资源:1.教材:选用权威、实用的教材,作为学生学习的主要参考资料。

2.参考书:推荐一些与课程相关的参考书,丰富学生的知识体系。

课程设计报告总结模版

课程设计报告总结模版

课程设计报告总结模版一、教学目标本章节的教学目标为:学生能够掌握XX学科的基本概念、原理和方法,理解并能够运用XX知识解决实际问题;培养学生独立思考、创新能力和团队合作精神;提高学生的情感态度和价值观,使学生对XX学科产生浓厚的兴趣。

二、教学内容根据课程目标,本章节的教学内容主要包括以下几个部分:1.XX学科的基本概念:介绍XX学科的基本概念,让学生了解并掌握XX学科的核心思想。

2.XX学科的原理和方法:讲解XX学科的基本原理和方法,并通过实例使学生能够理解并运用。

3.XX知识的应用:通过案例分析和实际操作,让学生学会将XX知识应用于实际问题中。

4.情感态度和价值观的培养:通过教学过程中的互动和讨论,引导学生形成积极的情感态度和价值观,激发学生对XX学科的兴趣。

三、教学方法为了实现教学目标,本章节将采用以下教学方法:1.讲授法:通过教师的讲解,使学生掌握XX学科的基本概念和原理。

2.讨论法:通过分组讨论和全班讨论,培养学生的独立思考和团队合作精神。

3.案例分析法:通过分析实际案例,让学生学会将XX知识应用于实际问题中。

4.实验法:通过实验操作,使学生更加深入地理解XX知识,并培养学生的实践能力。

四、教学资源为了支持教学内容和教学方法的实施,本章节将准备以下教学资源:1.教材:选择适合学生水平的教材,为学生提供系统的XX知识学习。

2.参考书:提供相关参考书目,帮助学生拓展知识视野。

3.多媒体资料:制作多媒体课件和教学视频,丰富教学手段,提高学生的学习兴趣。

4.实验设备:准备实验所需的设备和材料,为学生提供实践操作的机会。

五、教学评估本章节的教学评估将包括以下几个方面:1.平时表现:通过观察和记录学生在课堂上的参与度、提问和回答问题的表现,评估学生的学习态度和积极性。

2.作业:通过检查学生完成的作业质量和及时性,评估学生的学习效果和责任心。

3.考试:设计考试题目,包括客观题和主观题,评估学生对XX知识的理解和应用能力。

课程设计总结汇报

课程设计总结汇报

课程设计总结汇报
尊敬的各位领导、老师和同学们:
大家好!今天我非常荣幸地站在这里,向大家总结汇报我所设计的课程。

在过去的一段时间里,我和我的团队经过精心的策划和努力,成功完成了这一门课程的设计工作。

在此,我将向大家简要介绍我们的课程设计思路和成果。

首先,我们对课程的目标进行了明确的界定。

我们希望通过这门课程的设计,能够培养学生的创新能力、实践能力和团队合作精神。

因此,在课程设计中,我们注重了理论与实践相结合,注重了学生的主体地位,注重了培养学生的综合素质。

其次,我们在课程的内容和教学方法上进行了精心的安排。

我们不仅注重了知识的传授,更加重视了学生的能力培养。

我们引入了案例分析、小组讨论、实践操作等多种教学方法,让学生能够在实践中学习,能够在合作中成长。

最后,我们对课程的评价和反馴进行了充分的考虑。

我们设计了多种评价方式,包括考试、作业、实践项目等,以全面地评价学
生的学习情况。

同时,我们也注重了学生的反馈意见,不断地改进和完善课程。

通过我们的努力,这门课程得到了学生们的认可和好评。

他们在课程中不仅学到了知识,更重要的是培养了自己的能力和素质。

我相信,这门课程的设计和实施,将为学生们的未来发展奠定坚实的基础。

总而言之,这次课程设计的总结汇报就到这里。

谢谢大家!希望我们的努力能够为学生们带来更好的学习体验和成长空间。

让我们一起期待着这门课程的美好未来!。

课程设计工作自我总结范文

课程设计工作自我总结范文
作为课程设计工作者,我经常需要合理规划和设计课程内容,确保内容能够符合学习者的实际需求和教学目标。

在这个过程中,我不断提升自己的设计能力,不断优化课程,使得学习者能够更有效地获取知识和技能。

在进行课程设计工作的过程中,我通常会遵循以下步骤:
1. 确定教学目标:首先,我会明确课程的教学目标,以便设计合适的教学内容和教学方法。

2. 分析学习者需求:我会调查学习者的背景和需求,了解他们的学习目的和水平,以便设计出符合他们需求的课程内容。

3. 设计课程结构:在确定了教学目标和学习者需求之后,我会设计课程的整体结构,包括课程大纲、教学计划、课程安排等。

4. 设计教学内容:根据教学目标和学习者需求,我会精心设计课程的具体内容,选择适当的教材、案例和活动,以激发学习者的学习兴趣。

5. 评估教学效果:完成课程设计后,我会根据学习者的反馈和教学数据,评估课程的效果,及时调整和优化课程内容,以提高教学质量。

通过不断总结和经验积累,我相信我的课程设计能力会不断提升,为学习者提供更优质的学习体验和更有效的学习成果。

课程设计总结5篇精选

课程设计总结5篇精选心得体会就是一种读书、实践后的所思所感,其实它也是一种很好的学习总结经验的方式,它有助于我们找到更适合自己的学习与工作方式,从而让自己的内在得以提升。

下面是小编给大家精心挑选的工作总结,希望大家喜欢!课程设计总结篇一经过一个学期的学习,我对C语言有了一定的了解。

C语言是学习计算机科学的基础,作为一名计算机专业学生,掌握C语言更是毋庸置疑。

在上课之前,就经常听同学说,C语言很难学,确实,刚开始听课时觉得老师不知所云。

不过,发现对后续内容的预习后,前面的疑团都迎刃而解,这让我对C语言的学习更有信心。

计算机重要的就是上机操作,自己编写程序,在VisualC++运行,刚开始经常会出现错误,经过分析改正后,终于能够运行了,就觉得特别激动。

课程设计是一个把需求分析、程序编写、程序调试、撰写报告结合为一体的过程。

在这个过程中,不仅锻炼了我们缜密的思维和坚持不解的毅力,更磨练了一个队伍的团结互助的精神。

只有通过大家一起努力才能将课程设计的所有环节都顺利的完成。

另外程序设计中我们遇到问题并解决问题的过程,使得我们独自探索并解决问题的能力了有了一个提高,这有利于我们以后的学习。

同时这整一个过程,也使我们对程序编写的整个过程有了一个统筹全局的思想,因为需求分析、程序编写、程序调试、撰写报告这些过程是环环相扣的,绝对不可能独立进行。

课程设计是学习《C程序设计》后对知识的全面测试,刚拿到题目时不知道怎么去处理,觉得很复杂,经过和小组成员的讨论,上网查资料,逐个问题逐个击破,问题不再那么复杂。

通过课程设计,我发现自己还存在很多知识漏洞,编写程序时,经常会出现低级错误,很多知识点都不熟悉。

在今后的时间里,我一定要投入更多精力学习C语言,以课本为基础,请教老师,与同学讨论,参考资料,上机操作,我相信我一定能把C语言学好。

课程设计总结篇二经过两周的奋战我们的课程设计终于完成了,在这次课程设计中我学到得不仅是专业的知识,还有的是如何进行团队的合作,因为任何一个作品都不可能由单独某一个人来完成,它必然是团队成员的细致分工完成某一小部分,然后在将所有的部分紧密的结合起来,并认真调试它们之间的运动关系之后形成一个完美的作品。

课程设计工作总结通用范文

课程设计工作总结通用范文课程设计工作总结通用范文1经过一个学期对《C++程序设计》的学习,我学习到了基本的理论知识,了解到了C++语言程序设计的思想,这些知识都为我的课程实践和进一步的学习打下了坚实的基础。

在为期近两周的C++课程设计中,我体会颇多,学到了很多东西。

我加强了对C++程序设计这门课程的认识,并且复习了自己以前学习到的知识。

这些都使得我对计算机语言的学习有了更深入的认识!总之,透过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。

像职工信息表这样的程序设计,经历了平时在课堂和考试中不会出现的问题和考验。

而这些问题,这并不是我们平时只靠课本,就能够轻易解决的。

所以,锻炼了我们挑战难题,学会用已掌握的知识去解决具体问题的潜力,进一步培养了独立思考问题和解决问题的潜力。

个性是学会了在VisualC++中如何调试程序的方法。

当然,老师的指导和同学的帮忙也是不可忽视的,他们给了我许多提示和帮忙,教会了我编译复杂程序的方法。

在老师和同学的帮忙下,透过自己的努力,最后完成了这次职工信息表的简单课程设计。

我经过这段时间的编程,对其中的艰辛,我是深有体会。

从刚开始的选取程序、理解程序到之后的调试程序以及改善程序这个过程中,我遇到了各种各样的困难和挫折。

但是我坚定信念,对自己充满了信心,想尽一切办法克服重重困难。

透过课程设计的训练,我进一步学习和掌握了对程序的设计和编写,从中体会到了面向对象程序设计的方便和巧妙。

懂得了在进行编写一个程序之前,要有明确的目标和整体的设计思想。

另外某些具体的细节资料也是相当的重要。

这些宝贵的编程思想和从中摸索到的经验都是在编程的过程中获得的宝贵财富。

这些经验对我以后的编程会有很大的帮忙的,我要好好利用。

虽然这次课程设计是在参考程序的基础之上进行的,但是我觉得对自己是一个挑战和锻炼。

我很欣慰自己能在程序中加入自己的想法和有关程序资料,也就验的潘同学就耐心的给我传授一下他的心得。

课程设计总结报告5篇

课程设计总结报告5篇(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如工作计划、工作总结、述职报告、合同协议、演讲致辞、条据文书、心得体会、策划方案、教学资料、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample essays, such as work plans, work summaries, job reports, contract agreements, speeches, documents, insights, planning plans, teaching materials, other sample essays, and more. If you want to learn about different sample formats and writing methods, please stay tuned!课程设计总结报告5篇我们都想让自己的工作能力得到进一步加强,这时候就需要写好相关的总结报告,通过总结报告的写作很多人都是可以让自己的语言组织能力提升的,本店铺今天就为您带来了课程设计总结报告5篇,相信一定会对你有所帮助。

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

课程编号:B080109010数据结构课程设计总结报告东北大学软件学院第一章需求分析。

1、问题的定义设计一个景点管理系统,分为管理员和游客两部分,需要帮助景区更为方便的管理景区,规划道路,帮助游客更为方便地找到自己想要的信息2、问题分析为游客提供景点分布图,景点简介,景点查询,以及查询路线选择等相关建议;为管理员提供添加景点,删除景点,添加道路,以及发布公告的功能,考虑到景区的实际情景,整个项目应该设计为一个手机App,这样才能满足用户需求,方便用户操作3、研究意义这是一个与实际相连的小项目,以方便游客游览和景区管理作为最终目的,提供高效的算法,和简洁的界面,方便用户操作,这样有利于学生写的作业与社会实际情况相连,考虑确实需求第二章系统设计2.1总体设计(1)基本数据结构:○1list: MyListprivate final static int INIT_CAPACITY;private Object[] mList;private int mCurrentCapacity;private int mSize;public void add(T item);public void remove(int index);public T get(int index);public void set(int index, T item);public int size();○2队列: MyQueueprivate Object[] queue;private int front;private int nItems;private int maxSize = 100;public void add(T item)public T remove()public boolean isEmpty()public int size()○3栈: MyStackprivate int capacity = 10;private int length = 0;private Object[] stack;public boolean isEmpty()public boolean isFull()public void push(Object obj) public T pop()public int size()○4邻接表: Graphpublic MyList<VertexNode> adjList; public MyList<Boolean> visit;○5边: EdgeNodepublic int index;public String name;public boolean flag = true;public int value;public EdgeNode nextArc;○6点: VertexNodepublic String name;public Attraction attraction;public EdgeNode firstArc = new EdgeNode();(2)游客操作的定义:○1提供所有景点之间的距离: void outputGraph()○2搜索相关的景点: ArrayList<Attraction> findByName(String keyword)○3通过欢迎度来排序: ArrayList<Attraction> sortByPopular()○4通过岔路数进行排序: ArrayList<Attraction> sortByStreetNum()○5找最短路径的长度: int shortestDistance(String start,String end)○6找最短路: String shortestRoute(String Start,String end)○7获取所有景点: ArrayList<Attraction> getAllAttraction()○8获取所有的道路: ArrayList<VertexNode> getAllStreet()○9提供导游回路: String outputloop()○10登记车辆: String registerCar(String license)○11驶出车辆: String leaveCar(String lisence)(3)管理员操作定义:○1添加新景点: void addAtrraction(VertexNode newAttraction)○2添加道路: String addStreet(String start,String end,int distance)○3删除景点: boolean deletAttraction(String name)○4维护道路: void maintainStreet(String start,String end)○5发布公告: void sendNotice()2.2程序设计(1)Dijkstra算法找最短路径○1初始时,S只包含了初始的起点,即S={v},v的距离为0。

U包含着v之外的所有节点,即U={其余节点},若v与U中顶点有边,则<u,v>正常有权值,若不是u与v无直接的边相接,则<u,v>的权值为无穷大。

○2从U中选取一个距离v最小的顶点k,把k,加入S中。

○3以k为新考虑的中间点,修改U中各顶点的距离,若从源点v到顶点u的距离(经过顶点k)比原来距离(不经过顶点k)短,则修改顶点u的距离值,修改后的距离值为顶点k的距离加上边上的权。

○4重复步骤2和3直到所有顶点都包含在S中(2)哈密尔顿回路找最短的导游回路○1初始时,S中只包含一个起点,即S={v}○2遍历所有与v,相邻的节点,选取最近的顶点k加入,检查集合中是否形成了回路,若存在,则换其他点,若没有,则k便成了新的v节点○3重复步骤2,直到将所有节点都包含在S中第三章系统实现与调试3.1 景区路线图的初始化我将所需要的数据放进了数据库,然后再录入数据,通过Graph,VertexNode 和EdgeNode三个数据结构来保存这个邻接表while (rs.next()) {// 初始各顶点信息String name = rs.getString("name");String introduce = rs.getString("introduce");int popularity = rs.getInt("popularity");int streetNum = rs.getInt("streetnum");G.adjList.add(new VertexNode(name, new Attraction(name, introduce, popularity, streetNum)));G.adjList.get(i).firstArc = null;G.visit.add(false);i++;}v = G.adjList.size();// 初始化顶点数目的信息sql = "select * from route";stmt = conn.prepareStatement(sql);rs = stmt.executeQuery();i = 0;while (rs.next()) {// 根据路径形成图String start = rs.getString("start");String end = rs.getString("end");int v1 = Index(start);int v2 = Index(end);EdgeNode enode1 = new EdgeNode(); = start;enode1.index = v1;enode1.value = rs.getInt("distance");enode1.nextArc = G.adjList.get(v2).firstArc;G.adjList.get(v2).firstArc = enode1;EdgeNode enode2 = new EdgeNode(); = end;enode2.index = v2;enode2.value = rs.getInt("distance");enode2.nextArc = G.adjList.get(v1).firstArc;G.adjList.get(v1).firstArc = enode2;}3.2 景区管理模块(1)添加景点public void addAtrraction(VertexNode newAttraction) { // 添加新景点G.adjList.add(newAttraction);v = G.adjList.size();}(2)删除景点enode = new EdgeNode();enode = G.adjList.get(v).firstArc;while (enode != null) {EdgeNode pEnode = new EdgeNode();EdgeNode bEnode = new EdgeNode();pEnode = G.adjList.get(enode.index).firstArc;bEnode = G.adjList.get(enode.index).firstArc;if (pEnode.index == v) {G.adjList.get(enode.index).firstArc = pEnode.nextArc;} else {pEnode = pEnode.nextArc;}while (pEnode != null) {if (pEnode.index == v) {bEnode.nextArc = pEnode.nextArc;break;}pEnode = pEnode.nextArc;}enode = enode.nextArc;}G.adjList.remove(v);(3)添加道路int v1 = Index(start);int v2 = Index(end);EdgeNode enode1 = new EdgeNode(); = start;enode1.index = v1;enode1.value = distance;enode1.nextArc = G.adjList.get(v2).firstArc;G.adjList.get(v2).firstArc = enode1;EdgeNode enode2 = new EdgeNode(); = end;enode2.index = v2;enode2.value = distance;enode2.nextArc = G.adjList.get(v1).firstArc;G.adjList.get(v1).firstArc = enode2;3.3 景点的查找与排序(1)景点的查找public ArrayList<Attraction> findByName(String keyword) {// 搜索相关的景点ArrayList<Attraction> result = new ArrayList<Attraction>();ArrayList<Attraction> attractions = getAllAttraction();for (int i = 0; i < attractions.size(); i++) {if (attractions.get(i).name.indexOf(keyword) >= 0 || attractions.get(i).introduce.indexOf(keyword) >= 0) {result.add(attractions.get(i));}}return result;}(2)景点排序public ArrayList<Attraction> sortByPopular() {// 通过欢迎度来排序ArrayList<Attraction> attractions = getAllAttraction();for (int i = 0; i < attractions.size(); i++) {for (int j = i + 1; j < attractions.size(); j++) {if(attractions.get(i).popularity<attractions.get(j).popularity) {Attraction temp = attractions.get(i);attractions.set(i, attractions.get(j));attractions.set(j, temp);}}}return attractions;}3.4 两景点间最短路径(1)得到最短路径的长度EdgeNode enode = G.adjList.get(x).firstArc;// 初始化distancewhile (enode != null) {distance[enode.index] = enode.value;enode = enode.nextArc;}for (int k = 1; k < v; k++) {int second = inf;int pIndex = x;// 选取用于松弛的点for (int i = 0; i < v; i++) {if (!(G.visit.get(i)) && distance[i] < second) {pIndex = i;second = distance[i];}}G.visit.set(pIndex, true);EdgeNode enode1 = G.adjList.get(pIndex).firstArc;for (int i = 0; i < v; i++) {if (!(G.visit.get(i))) {int temp = inf;enode1 = G.adjList.get(pIndex).firstArc;while (enode1 != null) {if (enode1.index == i) {temp = enode1.value;break;}enode1 = enode1.nextArc;}if (distance[i] > (distance[pIndex] + temp)) {distance[i] = distance[pIndex] + temp;}}}}return distance[Index(end)];(2)得到最短路径public String shortestRoute(String start, String end) { int[] distance = new int[v + 1];int[][] p = new int[v + 1][v + 1];// 初始化distancefor (int i = 0; i < v; i++) {distance[i] = inf;}for (int i = 0; i < v; i++) {for (int j = 0; j < v; j++) {p[i][j] = -1;}}// 初始化visit的值for (int i = 0; i < v; i++) {G.visit.set(i, false);}int x = Index(start);distance[x] = 0;G.visit.set(x, true);EdgeNode enode = G.adjList.get(x).firstArc;// 初始化distancewhile (enode != null) {distance[enode.index] = enode.value;// 若存在直接路径p[enode.index][0] = x;p[enode.index][1] = enode.index;enode = enode.nextArc;}for (int k = 1; k < v; k++) {int second = inf;int pIndex = x;// 选取用于松弛的点for (int i = 0; i < v; i++) {if (!(G.visit.get(i)) && distance[i] < second) {pIndex = i;second = distance[i];}}G.visit.set(pIndex, true);EdgeNode enode1 = G.adjList.get(pIndex).firstArc;for (int i = 0; i < v; i++) {if (!(G.visit.get(i))) {int temp = inf;enode1 = G.adjList.get(pIndex).firstArc;while (enode1 != null) {if (enode1.index == i) {temp = enode1.value;break;}enode1 = enode1.nextArc;}if (distance[i] > (distance[pIndex] + temp)) {distance[i] = distance[pIndex] + temp;for (int j = 0; j < v; j++) {p[i][j] = p[pIndex][j];if (p[i][j] == -1) {// 在p[w][]第一个等于-1的地方加上顶点wp[i][j] = i;break;}}}}}}int pEnd = Index(end);String route = "";// 最短路径for (int i = 0; i < v; i++) {if (p[pEnd][i] > -1) {route += G.adjList.get(p[pEnd][i]).name;if (i + 1 == v || p[pEnd][i + 1] == -1) {break;} else {route += "->";}}}return route;}(3) 导游线路图设计public String outputloop() {// 提供导游回路boolean[] visit = new boolean[v + 1];for (int i = 0; i < v; i++) {visit[i] = false;}int start = 0;// 先假定从第一个值开始int[] result = new int[v + 1];EdgeNode enode = new EdgeNode();int next = start;visit[start] = true;int k = 0;int value = inf;while (next != -1) {enode = G.adjList.get(next).firstArc;result[k++] = next;next = -1;value = inf;while (enode != null) {if (!visit[enode.index] && enode.value < value) {next = enode.index;value = enode.value;}enode = enode.nextArc;}if (next != -1) {visit[next] = true;}}String ans = "";for (int i = 0; i < v; i++) {ans += G.adjList.get(result[i]).name;if (i != v - 1) {ans += "->";}}return ans;}3.6输出车辆的进出信息(1)车辆登记public String registerCar(String license) {// TODO Auto-generated method stubString result = "";Car car = new Car(license);if (!parking.isFull()) {car.setStratDate();parking.push(car);result = "车辆" + license + "停在" + (MAX_SIZE - parking.size()+1) + "号停车场";} else {waitting.add(car);result = "停车场已经满了,请在"+(MAX_SIZE-waitting.size()+1)+"号便道等候";}System.out.println(result);return result;}(2)车辆移出public String leaveCar(String license) {// TODO Auto-generated method stub// System.out.println(parking.size());String ans = "没有这辆车";//在停车场中找要驶出的车辆if(parking.size()>0){Car car = parking.pop();while(!car.getLicense().equals(license)&&!parking.isEmpty()) {quitting.push(car);car = parking.pop();}if(car.getLicense().equals(license)){car.setEndDate();ans = "车辆"+car.getLicense()+"已经驶出,停车时间"+car.getPeroid()/1000+"秒";//将让位的车辆依次回归while (!quitting.isEmpty()) {parking.push(quitting.pop());}//用等待的车辆来填补空位if (!waitting.isEmpty()) {Car pCar = waitting.remove();pCar.setStratDate();parking.push(pCar);//System.out.println("车辆"+pCar.getLicense()+"已经停入"+(MAX_SIZE-parking.size()+1)+"停车场");}}}return ans;}第四章系统测试1、测试公告(1)测试用例:在管理页面,尝试添加公告(2)测试结果:○1问题:添加的公告,无法及时回显○2解决方案:添加监听函数EventListener,当有公告添加时,将主页中显示公告的部分刷新一下2、测试最短路(1)测试用例:查询两个景点之间的距离,填写名字(2)测试结果○1问题:当输入地点的名字都是正确时,是没有问题,但是当有景点的名称输入错误,会有bug生成○2解决方案:将用户输入,改为用户选择,提供景点目录,让用户进行选择第五章结论1、系统页面展示(1)首页模块此页面上方是一个轮播窗口,提供景区展示和推广的照片的内容,下方是公告部分,通知所有景点内的游客(2)景点展示模块此页面提供查看全部景点,对景点按照欢迎度和岔路数进行排序,和搜索景点功能(3)路线模块此模块包括查询最短路径,查询最短回路,看景点分布图,以及停车和取车的提车功能(4)管理模块此模块含有发布公告,添加景点,删除景点以及添加路的功能2、主要创新点(1)完成作品以手机app的形式展示,整个过程,依次完成数据库设计,接口编写(实现算法),界面设计,服务器部署,和测试与修改bug(2)添加轮播控件,用于在第一时间展示给游客景区中最精彩的部分(3)在手机画景点分布图,借助echarts真实的将景点的位置展示给了游客,比一排数字更为形象3、困难(1)最短路实现由于以前最短路径的获得,都是借助的邻接矩阵,十分简单,而在邻接链表的基础上,不是很熟悉,所以查询了网上的资料,研究了好几个人的代码,才了解了如何保留经过的路径(2)传递json数据在后台将生成的数据打包成json发给移动端,如何按照自己意愿打包json,学了挺久,以前一直通过Gson一下打包完事,现在通过JSONObject和JSONArray进行打包,又学习了一下(3)localStorage储存数组一开始存储完获取的都是乱码,后来发现是方法不对,没有按规则来,通过查阅资料localStorage.setItem(“array”,JSON.Stringify(array));和String.parse(localStorge.getItem(“array”));4、遗留问题(1)手机webview优先级问题此前排序的那个弹出窗口,是一个原生,有些不好看,可是如果使用自己写的来作为弹出窗口,被遮盖,我认为是页面优先级的问题,但我暂时还不知如何去修改(2) 生成景点分布图通过使用eCharts我将景点分布图画出,可是由于每个点是有坐标形成,所以会有覆盖,和路线的交叉问题,这我采取的是折中的办法,依次设计了每个点的坐标,但如果景点个数超限,就还会出现点重复以及道路交叉问题,可以通过随机数的方式生成坐标,但是还会有道路交叉问题附录:《数据结构课程设计》实验成绩评定表评价内容具体要求分值得分。

相关文档
最新文档