程序设计与软件开发——程序设计(1)
- 格式:pdf
- 大小:1.24 MB
- 文档页数:97
PART 01 Visual Basic概述什么是程序设计语言?我们想用计算机解决一个问题,必须事先设计好计算机处理问题的步骤,然后把这些步骤按照计算机能够识别的指令编写出来。
并送给计算机执行,计算机才能按照我们的意图完成指定的工作。
我们把计算机能够执行的指令序列称为程序。
编写程序的过程称为程序设计。
显然我们人类是通过程序来告诉计算机该如何处理问题,那么如何与计算机进行交流?人类与计算机的交流存在鸿沟,计算机听不懂人类语言。
假如我们直接对着电脑说出汉语、英语、俄语等其他自然语言跟计算机交流,计算机听不懂。
计算机只能理解0和1的二进制的指令码,这个时候就需要一种填补语言(中间的媒介)来跨越人与计算机交流的鸿沟。
你好语言程序桥梁这种语言不仅我们人类能理解,,而且计算机也能明白,这种特殊的语言成为程序设计语言,实现人与计算机之间的交流。
程序设计语言与现代计算机共同诞生,共同发展,至今已有60多年的历史;形成规模庞大的家族,经历了机器语言、汇编语言和高级语言三个阶段。
计算机语言用二进制代码0和1来表示计算机可直接执行的指令,每条指令让计算机执行一个简单动作。
对人类来说机器语言比较晦涩难懂,但计算机却可以直接理解和执行,为了克服这个问题,在指令中使用助记符,这样形成了汇编语言。
汇编语言以约定的助记符来表示机器指令,每条汇编指令基本上与一条机器指令相对应,与机器语言比较,汇编语言比较直观,用汇编语言编写的程序经过简单的翻译,就可以被机器执行。
高级语言的语法规则简单清晰,是由英语单词和数学符号组成,最接近我们人类语言,比较容易掌握和理解。
但高级语言编写的程序,需要经过翻译软件翻译成机器指令后,才能被计算机执行。
现在比较流行的高级语言有:Visual Basic、C语言、Java语言。
Visual Basic是一种面向对象的可视化程序设计,它是在 Basic语言基础上发展起来的、功能强大的Windows应用程序的开发工具。
1.1 程序与程序语言1.2.1 程序与程序语言1.计算机语言什么是计算机语言?为什么要使用计算机语言?过去,一提到语言这个词,人们自然想到的是像英语、汉语等这样的自然语言,因为它是人和人相互交流信息不可缺少的工具。
而今天,计算机遍布了我们生活的每一个角落,除了人和人之间的相互交流之外,我们必须和计算机交流。
用什么样的方式和计算机做最直接的交流呢?人们自然想到的是最古老也最方便的方式--语言。
人和人交流用的是双方都能听懂和读懂的自然语言,同样,人和计算机交流也要用人和计算机都容易接受和理解的语言,这就是计算机语言。
人们用自然语言讲述和书写,目的是给另外的人传播信息。
同样,我们使用计算机语言把我们的意图表达给计算机,目的是使用计算机。
计算机语言是根据计算机的特点而编制的,它没有自然语言那么丰富多样,而只是有限规则的集合,所以它简单易学。
但是,也正因为它是根据机器的特点编制的,所以交流中无法意会和言传,而更多地表现了说一不二,表现了"规则"的严谨。
例如该是";"的地方不能写成".",该写"a"的地方不能写成"A",这使得人和计算机的交流在一开始会有些不习惯。
不过,只要认识到计算机语言的特点,注意学习方法,把必须的严谨和恰当的灵活相结合,一切都会得心应手。
2.程序我们知道,计算机是一种具有内部存储能力的自动、高效的电子设备,它最本质的使命就是执行指令所规定的操作。
如果我们需要计算机完成什么工作,只要将其步骤用诸条指令的形式描述出来,并把这些指令存放在计算机的内部存储器中,需要结果时就向计算机发出一个简单的命令,计算机就会自动逐条顺序执行操作,全部指令执行完就得到了预期的结果。
这种可以被连续执行的一条条指令的集合称为计算机的程序。
也就是说,程序是计算机指令的序列,编制程序的工作就是为计算机安排指令序列。
但是,我们知道,指令是二进制编码,用它编制程序既难记忆,又难掌握,所以,计算机工作者就研制出了各种计算机能够懂得、人们又方便使用的计算机语言,程序就是用计算机语言来编写的。
软件开发与程序设计软件开发与程序设计是信息技术领域中的核心组成部分,它们是构建现代软件系统的基础。
软件开发是一个复杂的过程,涉及多个阶段,包括需求分析、设计、编码、测试和维护。
程序设计则是开发过程中的一个关键环节,它涉及到编写代码以实现特定的功能。
软件开发流程1. 需求分析:这是软件开发的第一步,开发者需要与客户沟通,明确软件需要解决的问题和满足的需求。
需求分析的目的是确定软件的功能、性能和用户界面。
2. 系统设计:在这一阶段,开发者根据需求分析的结果,设计软件的架构和组件。
设计阶段包括概念设计、逻辑设计和物理设计。
3. 编码:编码是将设计转化为实际代码的过程。
开发者使用特定的编程语言来编写代码,实现软件的功能。
4. 测试:测试是确保软件质量的关键步骤。
它包括单元测试、集成测试、系统测试和验收测试,目的是发现并修复软件中的错误。
5. 部署:一旦软件通过测试,就可以部署到生产环境中供用户使用。
6. 维护:软件发布后,开发者需要持续对其进行维护,包括修复错误、更新功能和改进性能。
程序设计原则程序设计不仅仅是编写代码,它还涉及到遵循一些基本原则,以确保代码的质量和可维护性:1. 模块化:将程序分解为独立的模块,每个模块负责一个特定的功能,有助于提高代码的可读性和可维护性。
2. 抽象:抽象是简化复杂问题的一种方法,通过隐藏不必要的细节,只展示关键信息。
3. 封装:封装是将数据和操作这些数据的方法组合在一起,限制对数据的直接访问。
4. 继承:继承允许新创建的类(子类)继承现有类(父类)的属性和方法,从而减少代码重复。
5. 多态:多态允许同一个接口以不同的方式在子类中实现,增加了程序的灵活性。
编程语言的选择选择合适的编程语言对于软件开发至关重要。
不同的语言有不同的特点和适用场景:- C/C++:适用于系统编程、游戏开发和性能密集型应用。
- Java:以其跨平台特性和广泛的企业级应用而闻名。
- Python:以其简洁性和易读性而受到欢迎,常用于数据分析、机器学习和Web开发。
什么是程序设计意思与概念程序设计是一门关于编写计算机程序的学科,它涉及到定义、设计和实现算法和数据结构,以及编写、测试和维护这些计算机程序的过程。
程序设计是计算机科学的重要组成部分,也是计算机软件开发中的核心环节。
本文将介绍程序设计的意义和基本概念。
一、程序设计的意义程序设计在日常生活和工作中扮演着重要的角色,它的意义主要体现在以下几个方面。
1. 自动化处理:程序设计可以让计算机完成各种复杂的任务和处理过程,实现自动化处理。
例如,我们可以设计一个程序来自动化处理大量的数据,提高工作效率。
2. 解决实际问题:通过程序设计,我们可以解决和改进许多实际问题。
例如,我们可以利用程序设计实现在线购物、在线支付等功能,方便人们日常生活。
3. 提高效率和精确度:通过程序设计,可以使计算机以更高的速度和更高的准确性处理数据和任务,从而提高工作效率和精确度。
二、程序设计的基本概念1. 算法:算法是程序设计的基础,它是由一系列明确指令组成的计算步骤序列,用于解决特定问题或完成特定任务。
一个好的算法应该具有清晰、可执行和高效的特点。
2. 数据结构:数据结构是程序设计中用于组织和存储数据的方式。
常见的数据结构包括数组、链表、栈、队列、树和图等。
不同的数据结构适用于不同的应用场景,选择合适的数据结构可以提高程序的运行效率和可扩展性。
3. 编程语言:编程语言是进行程序设计的工具,它是一种用于定义和组织计算机程序的规范或语法。
常见的编程语言包括C、C++、Java、Python等。
不同的编程语言适用于不同的应用领域,选择合适的编程语言可以提高编程效率和程序性能。
4. 软件开发过程:软件开发过程是指从需求分析到软件发布的整个过程。
它包括需求分析、系统设计、编码实现、测试和维护等阶段。
良好的软件开发过程可以提高软件质量和开发效率。
5. 调试和错误处理:在程序设计过程中,出现错误是常见的。
调试和错误处理是程序设计中重要的环节,它们用于找出程序中的错误并对其进行修复。
c语言程序设计方法C语言是一种广泛应用于软件开发领域的高级编程语言,其简洁、高效和具有较强的可移植性,使其成为许多程序员首选的编程语言之一。
在进行C语言程序设计时,合理的设计方法能够提高代码的质量和可维护性。
本文将介绍几种常用的C语言程序设计方法,以帮助读者更好地进行程序开发。
一、模块化设计模块化设计是一种将程序拆分成多个独立模块的方法。
每个模块都具有特定的功能,通过模块化设计可以提高代码的可读性和重用性。
在C语言中,可以通过建立函数来实现模块化设计。
一个好的模块化设计应该考虑到函数的功能单一性、接口设计的灵活性以及模块之间的高内聚低耦合原则。
二、注释规范注释是程序开发中不可或缺的一部分,良好的注释规范可以使其他开发人员更好地理解代码的逻辑和意图。
在C语言中,可以使用单行注释(//)和多行注释(/* ... */)来添加注释。
在进行注释时,应尽量避免使用无意义的注释,而要注重对代码中关键逻辑或特殊处理的解释。
三、错误处理在程序开发中,错误处理是非常重要的一环。
良好的错误处理能够提高程序的健壮性和可靠性。
C语言提供了多种处理错误的方式,如使用错误码、异常处理等。
在进行错误处理时,首先应该考虑到可能出现的错误情况,然后针对每种情况制定相应的处理策略,以保证程序的正常运行。
四、优化算法在进行C语言程序设计时,算法的优化是一个至关重要的方面。
合理选择和设计算法能够使程序运行效率更高,减少资源的消耗。
在优化算法时,应注意避免过多的嵌套循环和重复计算,尽量使用已有的库函数和数据结构,以提高程序的执行效率。
五、代码风格良好的代码风格能够使程序的阅读和维护更加方便。
在C语言中,可以采用统一的代码缩进、命名规范和注释规范等来确保代码的可读性。
合理选择变量名和函数名,并使用有意义的命名能够提高代码的可理解性。
此外,在书写代码时,要注意代码的排版,以保持整洁美观。
六、调试技巧调试是程序开发中不可避免的一部分。
掌握一些常用的调试技巧能够帮助程序员更快地定位和解决问题。
程序设计基础(一)(总分:40.00,做题时间:90分钟)一、{{B}}选择题{{/B}}(总题数:10,分数:20.00)1.结构化程序设计方法主要是为 ______ 服务的。
(分数:2.00)A.项目管理人员B.程序员√C.系统分析员D.用户解析:2.下列各项中,不是结构化程序基本模块结构的是 ______。
(分数:2.00)A.处理单元B.循环机制C.二分决策机制D.嵌套机制√解析:3.面向对象程序设计中,基于父类创建的子类具有父类的所有特性(属性和方法),这一特点称为类的______。
(分数:2.00)A.多态性B.封装性C.继承性√D.重用性解析:4.结构化程序设计主要强调程序的 ______。
(分数:2.00)A.效率B.速度C.可读性√D.大小解析:5.以下关于结构化程序的说法中,正确的是 ______。
(分数:2.00)A.结构化程序由单入口、单出口和循环3种结构组成B.结构化程序由顺序、单入口和单出口3种结构组成C.结构化程序由顺序、循环和goto3种结构组成D.结构化程序由顺序、循环和分支3种结构组成√解析:6.程序设计属于软件开发过程的 ______ 阶段。
(分数:2.00)A.分析B.定义C.实现√D.维护解析:7.结构化程序设计方法特点大致可分为3点,下列选项中, ______ 不是其特点。
(分数:2.00)A.要求所有模块都使用单入口、单出口,顺序、选择和循环三种控制结构B.由顶向下逐步求精的程序设计方法C.采用模块化来实施具体开发D.充分考虑模块间的相互联系√解析:8.结构化程序设计理论认为,实现良好的程序结构要应用 ______ 的分析方法。
(分数:2.00)A.自顶向下√B.自底向上C.面向对象D.基于组件解析:9.信息隐蔽的概念与下述 ______ 概念直接相关。
(分数:2.00)A.软件结构定义B.模块类型划分C.模块独立性√D.模块耦合性解析:10.在结构化程序设计中,不建议使用 ______。
计算机程序与程序设计语言
计算机程序和程序设计语言是指使用计算机系统来执行存储在其中一种形式中的指令的过程,而程序设计语言则是用来写出这些指令的软件程序。
计算机程序是编写的一系列指令的集合,而程序设计语言则是提供给编写者来编写这些指令的标准化语言。
程序设计语言中的程序包含了许多相同的元素,例如函数(Function),变量(Variable),循环(Loop),判断(Conditional),以及数据结构(Data Structure)等。
函数提供了一种定义功能的方式,它可以被重复使用;变量用于存储和修改数据;循环主要用于重复执行一组动作;判断则可用于根据条件来选择该执行哪一组动作;数据结构主要用于组织和存储数据。
程序设计语言的类型很多,主要有通用语言(General-Purpose Language),尖端语言(Advanced-Purpose Language),特定目的语言(Special-Purpose Language),脚本语言(Scripting Language),面向对象语言(Object-Oriented Language),函数式语言(Functional Programming Language)等。
计算机类专业认证与竞赛活动一、类目从所需专业知识内容和能力要求方面,本科阶段可以参加的计算机类认证与竞赛大致可分为三类:IT类、计算机专业基础类、计算机专业高级类。
IT就是信息技术,面向非计算机类专业,主要内容有Microsoft Office、数字媒体设计、平面设计、课件制作等。
面向计算机类专业的有程序与算法、计算机系统设计、物联网、软件外包和企业级应用能力等。
并不完全针对计算机专业:不少专业都开设程序与算法类课程;软件外包等很多竞赛项目从软件行业的角度看属于软件定义与分析,从内容上看只涉及应用领域对于特定问题的理解与分析,完全不涉及计算机技术细节。
二、计算机类竞赛A、通用专业类本类目录任何专业均可关注,不需要计算机技术细节的支持即可参赛。
1.中国大学生计算机设计大赛2008年组赛,已经举办了11届。
一般暑假期间决赛。
以学校为单位向省级选拔赛区申请学校管理帐号,再由学校管理帐号分派作品报名帐号。
4月份起向已经开通省级赛的赛区申请学校管理帐号。
省赛未设立的类别,直接在国赛报名。
国赛组委会组织专家组负责组织评审,取得进入国赛资格。
缴纳报名评审费100元/作品。
2018中国大学生计算机设计大赛分设11类。
除第(1)类“软件应用与开发”外,全都面向非计算机专业:(2)微课与教学辅助;(3)数字媒体(简称数媒)设计:普通组;(4)数媒设计:专业组;(5)数媒设计:1911年前中华优秀传统文化元素;(6)数媒设计:中华民族服饰手工艺品;(7)数媒设计:动漫游戏;(8)软件服务外包;(9)计算机音乐创作:普通组;(10)计算机音乐创作:专业组;(11)人工智能。
2.全国大学生计算机应用能力与信息素养大赛2011年开办,每年一次,已经举办8届。
每年11月开始报名,12月到下一年4月院校选拔,5月决赛。
大赛分为本科组和高职组,每组赛项相同,都有:计算机基础类3项:文字处理,电子表格,简报设计;专业英语类2项:专业英语词汇,专业英语对话;其它:大数据应用,平面设计。
程序设计与软件工程基础知识要点程序设计和软件工程是计算机科学的重要组成部分,它们涉及到计算机程序的设计、开发和维护。
在本文中,我们将介绍程序设计和软件工程的基础知识要点。
以下是我们将要讨论的内容:一、程序设计基础知识要点1. 算法和数据结构:程序设计的核心是算法和数据结构。
算法是解决问题的方法和步骤,而数据结构是存储和组织数据的方式。
程序员需要熟悉不同类型的算法和数据结构,并且根据问题的要求选择合适的算法和数据结构。
2. 编程语言:编程语言是程序员用来编写计算机程序的工具。
常见的编程语言包括C++、Java、Python等。
程序员需要掌握至少一种编程语言,并且熟悉其语法和特性。
3. 编程范式:编程范式是程序设计的模式或风格。
常见的编程范式包括面向对象编程、函数式编程等。
根据问题的要求,程序员可以选择合适的编程范式来开发程序。
4. 调试和测试:调试和测试是程序开发过程中的关键步骤。
调试是查找和修复程序错误的过程,而测试是验证程序的正确性。
程序员需要学会使用调试工具和编写测试用例来提高程序的质量。
二、软件工程基础知识要点1. 软件开发生命周期:软件开发生命周期是指软件从概念到退役的整个过程。
常见的软件开发生命周期模型包括瀑布模型、敏捷开发等。
了解软件开发生命周期可以帮助程序员组织和管理开发过程。
2. 需求分析和规格说明:需求分析是明确软件系统的需求和功能,规格说明是对软件系统的详细描述。
程序员需要与其他团队成员合作,了解用户需求并编写规格说明。
3. 模块化和重用:模块化是将程序划分为相互独立的模块,并且模块之间存在明确的接口和关系。
重用是指利用已有的模块来构建新的软件系统。
程序员需要编写可重用的代码,并且合理组织程序结构。
4. 软件测试和质量保证:软件测试是验证软件系统是否满足规格说明的过程,质量保证是确保软件系统达到一定质量标准的活动。
程序员需要学会编写测试用例、进行软件测试并修复问题。
总结:本文介绍了程序设计和软件工程的基础知识要点,包括程序设计中的算法和数据结构、编程语言、编程范式以及调试和测试等内容,以及软件工程中的软件开发生命周期、需求分析和规格说明、模块化和重用、软件测试和质量保证等内容。
程序设计基础知识程序设计是计算机科学中的一个重要领域,它涉及到计算机程序的设计、开发和维护。
掌握程序设计的基础知识对于从事软件开发或计算机科学相关工作的人来说至关重要。
本文将介绍程序设计的基础知识,包括编程语言、算法和数据结构等方面。
一、编程语言编程语言是程序设计的基础,它是程序员与计算机之间进行交流的工具。
常见的编程语言包括C、C++、Java、Python等。
每种语言都有自己的特点和用途,选择适合的编程语言对于程序设计至关重要。
1. C语言C语言是一种面向过程的编程语言,它以简洁、高效和可移植性强而著称。
C语言广泛应用于嵌入式系统、操作系统和网络编程等领域。
掌握C语言的基础知识能够帮助程序员编写出高效、可靠的代码。
2. C++语言C++语言是在C语言的基础上发展而来的一种面向对象的编程语言。
它不仅继承了C语言的特点,还增加了面向对象的特性,如封装、继承和多态。
C++语言广泛应用于游戏开发、图形界面设计和科学计算等领域。
3. Java语言Java语言是一种跨平台的编程语言,具有简单、安全和可移植的特点。
Java语言广泛应用于Web开发、移动应用开发和大数据处理等领域。
掌握Java语言的基础知识能够帮助程序员编写出可靠、易维护的代码。
4. Python语言Python语言是一种简洁、易读且具有强大功能的编程语言。
它常用于数据分析、人工智能和Web开发等领域。
Python语言的简洁和易读性使得它成为初学者学习编程的首选语言。
二、算法和数据结构算法和数据结构是程序设计中的核心概念,它们描述了如何解决问题和组织数据。
熟练掌握算法和数据结构能够帮助程序员设计出高效、可靠的程序。
1. 算法算法是解决问题的步骤或方法。
一个好的算法应该具有正确性、高效性和可读性。
常见的算法包括排序算法、搜索算法和图算法等。
理解不同算法的原理和特点,能够帮助程序员选择适合的算法来解决问题。
2. 数据结构数据结构是组织和存储数据的方式。
《程序设计语言(1)》模拟试题一一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内。
每小题3分,共45分)1.一个C语言程序由________。
A. 一个主程序和若干子程序组成B. 若干函数组成C. 若干过程组成D. 若干子程序组成2. 十进制数-78的八位二进制补码是:________。
A.10100011B.10110010C.10110011D.101101003. 下列哪个是正确的字符数组定义?________A. char s (100);B. char s[ ];C. char s[10, 20];D. chars[ ]="abcd";4.设a=0, b=1,则以下表达式为假的是________。
A. (!a)&& b||a &&(!b)B. !(a && b)||(!a)&&(!b)C. !(a||(!b))&&((!a)||b)D. (a||(!b)&&((!a)||b)5.在C语言中判断字符变量ch的值否为大写字母的正确写法是:________。
A. if (ch>='A'&&ch<='Z')B. if (ch>='A'|| ch<='Z')C. if ('A'<=ch|| ch<='Z')D. if ('A'<=ch<='Z')6.设有 int c,a=35,则执行 c=a>>2;后,c的值是:________。
A.140B.70C.8D.97.以下标识符中不符合C语言变量名规定的是________。
A. FORB. _bitC. scu+ccD. act_1238.在C语言中,字符数据在内存中存放的形式是________。
一、单选( 每题参考分值2.5分)1、下面叙述正确的是()。
宏展开不占用运行时间,只占用编译时间B.预处理命令也是C语句,必须以分号结束C.一个源程序只能有一个预编译处理命令行D.宏名必须用大写字母表示错误:【A】2、以下程序段的运行结果是()。
union { int num1; intnum2; }s; s.num1=20; s.num2=30; printf("%d",s.num1);20B.30C.50D.2030错误:【B】3、若有定义:struct teacher{int num; char sex; int age;}teacher1;则下面叙述错误的是()。
struct是结构类型的关键字B.struct teacher是用户定义的结构类型C.num、sex、age都是结构变量teacher1的成员D.teacher1是结构类型名错误:【D】4、下面叙述正确的是()。
C语言中整型与字符型变量的混合运算表达式的结果是整型B.(3+9)++ 是正确表达式C.模运算符"%"两边运算数的数据类型是任意的D."abc"+"xxx"是正确表达式错误:【A】5、有以下程序:main(){ int c;while((c=getchar())!= '\n'){ switch(c-'2'){ case 0 :case 1 : putchar(c+4);case 2 : putchar(c+4); break;case 3 : putchar(c+3);default: putchar(c+2); break;}}printf("\n");}当输入:247<回车>,程序的输出结果是()。
689B.6689C.66778D.66887错误:【B】6、若有定义:int a=3; 语句a+=a-=a*a; 运行后,a的值为()。
6-1 工作备忘录的生成(链表) (10分)每天都要处理很多事务,为了更好地安排工作,希望在每天开始工作前,根据工作记录,生成工作备忘录。
首先输入工作记录数(大于0 的一个整数),再逐条输入各条工作记录,每条工作记录包括:工作名,开始时间,结束时间。
假设每项工作的开始时间均小于它的结束时间,并且各项工作的开始时间互不相同。
我们的工作是需要把这些工作记录按开始时间排序并输出,在输出时,如果某项工作与若干项工作冲突(在做该项工作时,需要同时做其它工作),则在该工作名前加'*' 。
函数接口定义:Node* add(Node *, Node *);void display(Node *);裁判测试程序样例:#include<iostream>#include <string>using namespace std;struct Node{string name;int start;int end;Node *next;};Node* add(Node *, Node *);void display(Node *);bool check(Node *head) {if(head==NULL || head->next==NULL) return true;Node *p=head->next;if(head->start > p->start) return false;return check(p);}int main(){Node *head=NULL, *p;int i, repeat;cin>>repeat;for(i=0;i<repeat;i++){p = new Node;cin>>p->name>>p->start>>p->end;p->next=NULL;head = add(head, p);}if(!check(head)) cout<<"ERROR"<<endl;display(head);return 0;}/* 请在这里填写答案*/输入样例:4aaa 19 20ccc 169 200ddd 153 170bbb 20 111输出样例:aaa 19 20bbb 20 111*ddd 153 170*ccc 169 200Node* add(Node *head, Node *p){ // Node *q = head, *s = head;当前的 q 节点不是末尾,并且 q 节点的起始时间 早于 p 节点的起始时间p->next = head; head = p;}else{p->next = q;s->next = p;}return head;}void display(Node *head){Node *p = head, *q;bool conflict; // while(p != NULL){ //} cout << p->name << " " << p->start << " " << p->end << endl; p = p->next;}}6-2 函数调用 (10 分 )s = q; q = q->next;}// if(q == head){ //s //p 始终在 q的前面 直到当前节点 NULL 或者 q 的起始时间晚于 p 的起始时间 应该接在链表的开始位置,即成为新的表头 conflict = false; q = head; while(!conflict && q != p){ if(q->end > p->start){ conflict = true; break; } q = q->next; } q = p->next; while(!conflict && q != NULL){ if(p->end > q->start){ conflict = true; break; } q = q->next; }if(conflict){ //cout << "*";// //p // //p 检查 p 的开始时间是否小于 p 之前的任务的结束时间 之前的任务的结束时间如果大于 p 的开始时间则冲突 检查 p 的结束时间是否大于 p 之后的任务的开始时间 之后的任务的开始时间如果大于 p 的结束时间则冲突 把节点 p 插入到链表,按照任务的起始时间升序排列while((q != NULL)&&(q->start <p->start)){ //用于标识是否有冲突编写三个函数:求两个整数的最大值、最小值、和。