软件技术基础教学大纲

合集下载

软件工程专业教学大纲

软件工程专业教学大纲

软件工程专业教学大纲软件工程专业教学大纲:
第一部分:导论
软件工程的定义与概念
软件工程发展历程
软件工程的重要性与应用领域
第二部分:基础知识
计算机科学与软件工程的关系
软件工程的基本原理
软件生命周期与软件开发过程
需求分析与软件设计
软件测试与质量保证
第三部分:主要课程及内容
数据结构与算法
计算机网络原理
操作系统与系统编程
数据库原理与应用
面向对象程序设计
软件项目管理与团队协作
第四部分:实践教学
软件工程实践课程介绍
软件系统设计与开发实践
软件测试与调试实践
软件项目管理实践
软件质量保证实践
第五部分:教学方法与评估
课堂教学与实践相结合
案例分析与小组讨论
考试、作业与实验报告评估
课程设计与项目实践评估
第六部分:教学目标与培养要求培养学生的计算机基本功
培养学生的软件开发能力
培养学生的团队合作与沟通能力
培养学生的解决问题能力与创新思维
第七部分:教学资源与保障
教材与参考书目
实验室设备与软件环境
教师团队与指导导师
学校资源与实习机会
第八部分:教学内容更新与发展
结合当前软件工程领域热点
引入新技术与新方法
持续改进课程内容与教学方法
总结:
通过本教学大纲的设计,旨在为软件工程专业的学生提供系统全面的课程安排,培养学生的软件工程能力,提高学生在软件领域的竞争力,为其未来的职业发展打下坚实的基础。

愿每一位学生在本专业的学习过程中都能获得实实在在的收获,成为优秀的软件工程师。

Java程序设计基础与实战-教学大纲(45学时)

Java程序设计基础与实战-教学大纲(45学时)

《Java语言程序设计》(第三版)课程教学大纲学分:3学分学时:45学时(其中:讲课学时:30上机学时:15 )适用专业:通识选修课、专业拓展课一、课程的性质与目标《Java语言程序设计》的可作为一门计算机科学与技术的普及课、入门课,用作专业拓展课或非计算机专业的通识选修课。

通过本课程的学习,学生能够了解Java语言特征、常用的Java类库以及面向对象程序设计思想,并理解计算机软件和计算机系统的工作原理和方式,提高对计算机科学与技术的兴趣,促进学生能在未来的学习和工作中,使用“计算机思维”来解决实际问题,全面提高学生的综合素质。

二、课程设计理念与思路课程设计理念:高等职业教育不仅注重对专业知识和技能的传授,也注重对学生综合素质的培养,不局限于个人选择的专业,有助于个人潜力能够得到最大限度的发挥。

在全球云计算和移动互联的产业背景下,在高等教育的通识教育中增加有关计算机技术基础知识与能力的课程,有助于非计算机专业大学生综合素质的提高。

课程设计思路:Java语言程序设计作为一门选修课,让学生把一门程序设计语言掌握到实用的程度较有难度。

本课程并非介绍Java标准版的所有内容,而是通过Java语言深入理解程序设计的精髓,大局部知识点是适用于所有编程的基础知识,如变量、运算符、流程控制语句和10等。

潜移默化地培养学生程序化、系统化的思维模式,让学生能够使用抽象思维分类解决问题。

同时,培养学生的自学能力。

软件技术的开展日新月异,教材不能做到和语言同步,互联网的存在为自学掌握一门技能提供了便捷,可以让学生自己分析问题、动手编程和,在此过程中,学生上网查阅相关资料,能够更新知识,并逐渐具备独立研究的能力。

三、教学条件要求操作系统:Windows 10五、学时分配注:可选章节未计入合计课时。

六、考核模式与成绩评定方法本课程为考试课程,期末考试采用百分制的闭卷考试模式。

学生的考试成绩由平时成绩(30%)和期末考试(70%)组成,其中,平时成绩包括出勤(5%)、作业(5%)、实验和上机成绩(20%)。

软件开发 教学大纲

软件开发 教学大纲

软件开发教学大纲软件开发教学大纲软件开发是当今信息技术领域中的重要分支之一,它涵盖了软件设计、编码、测试和维护等方面。

随着科技的不断进步和应用的广泛推广,软件开发的需求也日益增长。

因此,培养具备软件开发技能的人才已成为现代教育的重要任务之一。

本文将探讨软件开发教学的大纲设计,以期为教师和学生提供参考。

一、课程目标软件开发教学的首要目标是培养学生的软件设计和开发能力。

通过系统学习软件开发的基本理论和实践技巧,学生应能掌握软件需求分析、系统设计、编码实现、测试和维护等关键技能。

此外,课程还应注重培养学生的团队合作、问题解决和创新思维能力,使他们能够在实际项目中灵活应用所学知识。

二、课程内容1. 软件开发基础知识- 软件工程概述- 软件生命周期- 软件需求分析与规格说明- 软件设计原理与方法- 软件测试与调试技术2. 编程语言与工具- 常用编程语言(如Java、Python等)的语法和特性- 集成开发环境(IDE)的使用方法- 版本控制工具(如Git)的基本操作3. 软件开发实践- 单元测试与集成测试- 软件项目管理与团队协作- 敏捷开发方法(如Scrum)的原理和实践- 软件质量保证与性能优化4. 前沿技术与趋势- 人工智能与机器学习在软件开发中的应用- 云计算与大数据技术的基本概念- 移动应用开发与跨平台开发技术三、教学方法为了提高学生的实践能力和创新思维,软件开发教学应采用多种教学方法,如:1. 理论授课:通过讲解基本概念和原理,帮助学生建立起系统的知识框架。

2. 实践操作:通过编写小型程序、参与项目开发等实践活动,培养学生的编程和问题解决能力。

3. 项目实训:组织学生参与真实软件项目的开发过程,锻炼他们的团队合作和项目管理能力。

4. 案例分析:通过分析实际软件开发案例,引导学生理解软件开发过程中的挑战和解决方案。

5. 论文阅读:指导学生阅读和分析相关领域的学术论文,培养他们的科研能力和学术素养。

《软件工程导论》课程教学大纲(5篇)

《软件工程导论》课程教学大纲(5篇)

《软件工程导论》课程教学大纲(5篇)第一篇:《软件工程导论》课程教学大纲《软件工程导论》课程教学大纲课程编号:课程中文名称:软件工程导论课程英文名称:Introduction of Software Engineering 总学分:2 总学时: 36 讲课学时:36习题课学时:0 实验学时:0 上机学时:0 授课对象:软件工程专业本科先修课程:程序设计课程要求:必修课课程分类:专业基础课一、课程教学目的随着计算机技术的发展,软件的规模越来越大,软件的结构越来越复杂,软件开发与维护的难度也越来越高,软件的质量难以保证,软件开发与维护的进度和成本难以控制,这就要求有一种科学的方法指导软件的开发与维护工作。

软件工程就是这样一种指导软件开发和维护的工程学科。

通过本课程的学习,使学生了解软件工程的概念、原理和技术,初步掌握软件开发的基本方法和常用工具,建立软件开发和维护的工程化意识,培养独立思考的能力和团队合作的精神,为后续相关课程的学习以及从事软件开发与维护的实际工作打下良好的基础。

二、教学内容及基本要求教学内容:1.课程内容简介(1学时)本课内容简介,基本要求和目标,教学方法,学习方法,教材(英1 文原版)的主要内容及使用,中文参考教材简介2.软件工程的基本概念(4学时)软件工程的基本概念,软件危机产生的原因,软件危机面临的问题及解决方法,什么是好的软件以及软件的质量的概念,实施软件工程的人员,软件工程的系统方法,软件工程的工程方法,软件工程的发展3.过程建模与生命周期(4学时)过程的概念,软件过程模型,软件生命周期,各种常用的软件过程模型,过程建模的工具和技术 4.软件项目计划与管理(4学时)软件项目进展跟踪,软件项目的人员,工作量的估算,风险管理,项目计划,项目管理 5.需求获取(4学时)需求过程,需求的类型,需求的特征,需求的表示方法,原型需求法,需求文档,需求过程的参加人员,需求确认,需求度量,需求表示方法的选择,表示需求的工具。

《软件工程》教学大纲

《软件工程》教学大纲

《软件工程》教学大纲课程性质:必修课总学时:48课程类型:专业课学分:3开课教研室:计算机软件适用专业:计算机科学与技术教学大纲说明一、本课程的地位、作用与任务《软件工程》是计算机科学与技术专业教学计划中一门综合性和实践性很强的核心课程,主要内容包括软件生存周期模型、可行性分析、需求分析、概要设计、详细设计、面向对象分析与设计、编码、软件质量与质量保证、项目计划与管理。

本课程的开设旨在使学生通过学习,掌握软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,为更深入地学习和今后从事软件工程的实践打下良好的基础.二、课程的教学基本要求学习本课程要求先修《数据结构》、《面向对象程序设计》、《数据库原理及应用》、《操作系统》等课程。

基本概念和基本知识:软件与软件工程,生存周期与软件开发模式,结构化分析、设计与编码,面向对象分析、设计与编码,软件的评审、测试与维护,项目计划与项目管理。

基本技能:能用软件工程的方法参与软件项目的分析、设计、实现和维护。

重点:系统分析、系统设计、系统实现、系统维护难点:需求分析、软件测试课程的教学要求在每一章教学内容之后给出,大体上分为三个层次:了解、理解和掌握。

了解即能正确判别有关概念和方法;理解是能正确表达有关概念和方法的含义;掌握是在理解的基础上加以灵活应用。

教学内容一、本课程的理论教学内容1、概论课程的教学要求给出,三个层次:了解、理解和掌握。

教学内容⑴、软件软件的发展、软件的定义、软件的特点、软件的种类⑵、软件工程的概念软件危机与软件工程的定义、软件工程的目标软件工程的原则⑶、软件生存周期与软件开发模型瀑布模型、原型模型、螺旋模型、基于四代技术模型、面向对象与组件模型、混合模型教学要求掌握:软件和软件工程的基本概念了解:软件生命周期及软件开发的各个模型2、可行性分析教学内容⑴、可行性研究的任务⑵、可行性研究的步骤⑶、系统流程图⑷、成本/效益分析教学要求了解:可行性分析的步骤3、需求分析教学内容⑴、需求分析的任务与步骤需求分析的任务、需求分析的步骤、需求分析的原则⑵、需求分析方法面向数据流的分析方法基本符号、基于数据流的分析方法、数据字典面向数据结构的分析方法Jackson系统开发方法、Warnier-Orr方法⑶、需求规格说明与评审教学要求:掌握:需求分析的方法理解:需求分析的任务和原则4、概要设计教学内容⑴、概要设计的任务与步骤概要设计的任务、概要设计的步骤⑵、软件设计的概念与原则模块化、抽象、信息隐藏和局部化、模块独立性、结构设计的评价原则⑶、概要设计的方法面向数据流的设计方法基本概念、变换分析、事务分析、设计优化原则面向数据结构的设计方法Jackson方法、Warnier-Orr方法⑷、概要设计文档与评审教学要求掌握:软件设计的概念与原则,概要设计的步骤、方法了解:概要设计文档与评审5、详细设计教学内容⑴、详细设计的任务与原则详细设计的任务、详细设计的原则⑵、详细设计的方法程序流程图PFC、N—S图、PAD图、HIPO图过程设计语言PDL、详细设计方法的选择⑶、详细设计规格说明与评审教学要求掌握:详细设计方法了解:详细设计规格说明与评审6、面向对象的分析与设计方法教学内容⑴、面向对象方法的基本概念和特征⑵、面向对象分析确定对象、确定属性、定义操作、对象间通信⑶、面向对象设计面向对象设计概念、面向对象设计方法、程序构件及接口、细节设计⑷、UML方法UML的发展与特点、UML的表示法、UML的开发步骤⑸、面向对象实例分析与设计建立用例、确定表、设计对象的交互作用、指定联系、寻找继承、分析对象行为、设计系统的体系结构教学要求⑴掌握:面向对象的基本概念和特征⑵了解:面向对象分析与设计方法及UML的开发方法7、编码教学内容⑴、程序设计语言程序设计语言分类、程序设计语言特点、程序设计语言选择⑵、编程风格⑶、编程效率⑷、编程安全⑸、面向对象编程技术教学要求⑴掌握:一般的编码原则⑵了解:面向对象编程的特点8、软件质量与质量保证教学内容⑴、软件质量的定义⑵、影响软件质量的因素⑶、软件质量保证策略⑷、软件质量保证活动⑸、软件质量保证标准⑹、软件评审⑺、结构化的软件测试软件测试的概念和原则测试的概念、测试的原则、测试的方法软件测试技术白盒测试、黑盒测试软件测试的步骤软件测试过程、软件测试步骤、单元测试、综合测试、确认测试、系统测试纠错技术⑻、面向对象的软件测试面向对象分析和面向对象设计的模型测试面向对象分析和面向对象设计模型的正确性、面向对象分析和面向对象设计模型的一致性面向对象的测试策略面向对象的单元测试、面向对象的组装测试、面向对象的确认测试面向对象软件测试用例设计测试用例设计蕴涵面向对象的概念、传统测试用例设计方法的适用性、基于故障的测试、面向对象编程对测试的影响、测试用例与类的分层、基于脚本的测试设计、测试外部结构和内部结构可用于类层次上的测试方法面向对象类的随即测试、类层次的分割测试类间测试用例设计多重类测试、按行为模型导出的测试⑼、软件测试计划与测试分析报告⑽、软件维护软件维护的定义、分类、特点、软件维护步骤及组织、软件的可维护性、软件维护的副作用、逆向工程和再生工程教学要求⑴掌握:软件质量保证的概念、策略和方法,软件评审或测试的方法和步骤.⑵了解:软件维护过程9、项目计划与管理教学内容⑴、软件项目特点、管理的特殊性及软件管理功能⑵、确定项目的工作要求⑶、确定软硬件资源⑷、人员的计划及组织⑸、成本估算及控制⑹、进度计划⑺、软件配置管理⑻、软件管理方案教学要求了解:项目计划与管理的基本内容教材:张海藩编《软件工程导论》北京清华大学出版社。

软件技术基础教学大纲-软件技术基础-瞿亮-清华大学出版社

软件技术基础教学大纲-软件技术基础-瞿亮-清华大学出版社

《软件技术基础》教学大纲一、课程信息二、课程内容(一)课程教学目标通过本课程的学习,使学生了解计算机软件中的相关重要概念、软件技术的基础知识和方法,从而培养学生利用计算机解决问题的意识和能力,为计算机在专业应用中奠定基础。

为非计算机专业学生开设的一门关于计算机软件基础知识的综合性课程,以应用为目的,选择性地介绍数据结构、操作系统、软件工程、数据库技术和网络基础等部分内容,通过这些内容的学习,学生能对计算机软件系统有一个整体的认识和了解。

(二)基本教学内容1、计算机软件技术概述及C语言回顾;2、几种典型数据结构的逻辑结构和存储结构;3、算法的概念,二叉树及图的遍历方法,常用的查找和排序算法。

4、软件工程中的基本概念及生命周期法;5、操作系统中的基本概念及管理方法;6、数据库的基本知识,SQL语言。

7、计算机网络的主要结构和常识。

8.网络新技术(1)计算机软件技术概述及C语言回顾;教学目的与要求:了解软件技术的发展历程,常用软件的分类。

复习开发工具C语言中的相关知识。

教学重点:教材章节内容及开发工具C语言中的相关知识。

教学难点:C语言中指针的应用。

教学内容:软件的概念,历史及分类。

本教程各章节的主要内容及学习方法。

开发工具C语言中较难理解的指针,结构体等编程知识。

(2)数据结构教学目的与要求:理解数据结构的基本概念;理解线性表、栈、队列数据结构的基本概念,理解各线性数据结构的特点和存储结构,掌握基于不同的存储结构的相关操作的实现方法;理解树和图的基本概念,基本特点和存储结构,掌握二叉树的遍历算法的实现以及树和二叉树之间转换的方法;理解查找和排序的基本概念,掌握查找和排序的各三种基本方法和实现。

教学重点:线性表、堆栈、队列、树和图的逻辑结构表示;线性表、堆栈、队列、树和图的存储算法;线性表、堆栈、队列、树和图的插入和删除操作的算法。

教学难点:单链表的建立及操作算法;循环队列的工作原理、查找以及排序算法。

Java核心技术 教学大纲

Java核心技术 教学大纲

Java核心技术教学大纲java核心技术-教学大纲《java核心技术》教学大纲(javacoretechnique)课程代码:1h14455总学时数:64学分:4.0理论时数:16讨论学时:16实验时数:32先修成课程:面向对象程序设计,数据库技术与应用领域,计算机网络,web设计与技术讲课对象:软件工程一、课程的性质与目的本课程就是软件工程专业的一门减半选修。

随着web应用领域系统复杂性的不断提升,仅仅倚赖单一的某种技术,很难达至快速研发和快速部署的效果。

java目前已沦为web应用领域的主流研发语言,在采用java研发web应用程序时,必须资源整合web有关技术构成完备的研发框架或应用领域模型,以满足用户繁杂环境下应用程序有效率多样的市场需求,进而提升研发效率,并减少实行、运转、保护等环节的成本。

本课程以javaweb应用领域研发为背景,以javaweb框架技术居多线,融合具体内容的应用领域案例,重点了解struts、hibernate、spring三种广泛应用的框架,并使学生能掌控基于javaweb框架展开快速应用领域研发的方法和科学知识。

本课程的主要目的是:通过介绍struts、hibernate、spring框架的基本原理,分析三种框架的功能、特点和运行机制,探讨基于javaweb框架进行应用开发的相关技术,使学生对javaweb框架应用开发技术有一个全面的了解,能够在较高的层次上理解web应用系统的构建、集成等问题。

二、课程内容及基本建议(一)理论知识部分1.javaweb框架详述。

介绍软件开发中框架的概念,认知应用服务器的功能和用途,能娴熟布局开发工具与运转环境。

2.struts框架。

理解struts框架的工作流程,掌握struts框架的配置方法,掌握action类、model组件、view视图组件的开发方法。

3.struts高级技术。

掌控struts标签及ognl语言表达式,认知struts拦截器的同时实现原理,介绍struts的初始化与校验,介绍struts同时实现多语言应用领域的资源文件布局,介绍struts的异常机制。

(2024年)《3dsmax》教学大纲

(2024年)《3dsmax》教学大纲
30
THANKS
感谢观看
2024/3/26
31
选择对象
复制对象
掌握多种选择对象的方法,如单击选 择、框选、加选、减选等。
了解复制对象的多种方法,如原地复 制、镜像复制等。
变换对象
学习移动、旋转、缩放对象的基本操 作及快捷键。
2024/3/26
9
视图控制与导航
视图控制
掌握缩放、平移、旋转视图的如何在不同视图间进行切换和 导航。
创意与表现
经验与教训
探讨该作品的创意来源和表现手法,以及 如何通过技术手段实现创意的呈现。
分享在制作过程中遇到的挑战和解决方法 ,以及值得借鉴的经验和教训。
2024/3/26
26
07
课程总结与拓展延伸
Chapter
2024/3/26
27
回顾本次课程重点内容
建模技术
深入讲解多边形建模、样条线建 模、NURBS建模等多种建模方法 ,让学生能够根据实际需求选择 合适的建模技术。
2024/3/26
29
拓展资源推荐及学习建议
拓展资源
推荐一些与3ds Max相关的优质教程、书籍、网站等资源,供学生课后自学和拓展知识。
2024/3/26
学习建议
给出一些学习建议和方法,如多动手实践、注重基础知识的掌握、多尝试不同的创作风格 等,帮助学生更好地学习和应用3ds Max。
职业规划
简要介绍3ds Max在相关行业中的应用和就业前景,引导学生规划自己的职业发展方向。
6
02
基础知识与操作技巧
Chapter
2024/3/26
7
3dsmax界面介绍
主界面布局
包括菜单栏、工具栏、命 令面板、视图窗口、时间 滑块、状态栏等。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《软件技术基础》教学大纲课程编号:23000840 适用专业:电子信息类(非计算机专业)学时数: 40 学分数: 2.5 开课学期:第4学期先修课程:《C语言》考核方式:笔试(闭卷)执笔者:沈晓峰编写日期:2015年3月审核人(教学副院长):一、课程性质和目标授课对象:电子信息工程专业大学二年级本科生课程类别:学科拓展课程教学目标:本课程是针对工科电子信息类本科生开设的一门学科拓展课程。

着重培养学生在软件设计领域的基本素质,基本方法和设计理念。

授课对象为大学二年级学生,课程任务是通过本课程的学习和相关实验的练习,使学生掌握数据结构、操作系统等软件技术的基本理论知识,具有一定的软件开发能力。

二、教学内容和要求1、课堂理论教学要求和学时安排(32学时)1)C程序设计(4学时)(1)C语言回顾,指针的基本概念、运算方法和使用(2学时)。

(2)结构体的基本概念和使用方法(2学时)。

2)数据结构(20学时)(1)数据结构的基本概念(2学时):理解数据结构的基本概念;理解线性和非线性结构的概念。

(2)线性数据结构(9学时):理解表、栈、队列等线性数据结构的概念,存储方式及基于不同存储方式的相关操作的实现方法。

a.理解表的概念及顺序表的存储特点,掌握其创建、插入、删除等实现方法(2学时);b.掌握单链表、双链表、循环链表的创建、插入、删除方法(2学时);c.理解栈的概念及结构特点,掌握顺序栈及链栈的出栈、入栈操作的实现方法(2学时);d.理解队列的概念及特点,掌握顺序、循环队列的创建、出队、入队、判空、判满等操作。

掌握链队列的创建及出队、入队(2学时);e.理解数组的概念及二维数组的存放方式,掌握对称矩阵及稀疏矩阵的压缩存储方法(1学时)。

(3)非线性数据结构(5学时):了解典型非线性数据结构的基本概念、存储和访问方式。

a.理解二叉树、满二叉树、完全二叉树的概念及基本性质(1学时);b.掌握二叉树的三种遍历算法、树和二叉树的转换方法(2学时);c.理解图的基本概念及性质,掌握图的邻接矩阵、邻接图存储方式(2学时)。

(4)结构查找和排序(4学时):理解查找和排序的基本概念,掌握三种查找(顺序、二分、分块)和三种排序(简单插入,简单选择和冒泡)方法和实现。

3)操作系统(8学时)(1)操作系统的基本概念(2学时):了解操作系统的基本概念,操作系统发展的历程和现代操作系统的基本特征。

(2)处理机管理(4学时);理解进程、进程的状态、描述方式、进程控制的手段,进程的同步和互斥,进程通信和死锁等基本概念,理解进程调度的相关方法。

(3)作业管理(2学时):理解作业、作业的状态、描述方式、作业控制的手段,等基本概念,理解作业调度的相关方法。

通过这一章的学习同学们应该理解一个用户作业提交给计算机之后,操作系统控制计算机来执行该用户作业的基本流程。

2、实验安排(8学时)共设置5组实验,分为上机实验和课外实验两部分:上机实验包括两个实验,课外实验包括3个实验,详细实验内容见实验教学大纲。

三、考核方式课程最后成绩构成包括:期末考试卷面成绩(70%),平时成绩(10%),实验成绩(20%)。

实验部分的考核包含上机实验和课外实验,实验成绩采用实验出勤、实验考核、实验报告和实验程序验证相结合的方式给出。

四、教材和参考资料1、教材《软件技术基础》,黄迪明,电子科技大学出版社,1998年2、参考资料1)高质量C编程指南,林锐,附电子版2)数据结构(C语言),严蔚敏,清华大学出版社3)操作系统基础教程(第6版)William S.Dav 清华大学出版社4)深入理解计算机系统 Randal E.Bryant,David O’Hallaron 著,龚奕利,雷迎春译,中国电力出版社《软件技术基础实验》教学大纲一、实验项目基本信息实验项目名称:软件技术基础实验适用专业:电子信息类(非计算机专业)学时数: 8先修课程:《C语言》考核方式:实验过程、实验报告、实验二、实验项目的性质和任务1、实验项目的性质本实验是本科生学科拓展课程《软件技术基础》的实验部分,属软件设计的范畴。

2、实验项目的目的和任务通过上机实验,要求学生对常用数据结构的基本概念及其不同的实现方法的理论得到进一步的掌握,并对在不同存储结构上实现不同的运算方式和技巧有所体会。

培养学生在软件设计方面的知识基础,同时也提供必要的技能训练。

3、实验内容和要求《软件技术基础实验》是与理论课程《软件技术基础》配套开出的,主要包含两个数据结构部分的基本上机实验和三个课外实验,着重培养同学进行软件设计的基本能力。

(1)上机实验内容:实验一:顺序表和单链表基本操作上机实验 4学时实验目的:理解线性结构的基本概念,掌握两种基本的存储结构:顺序存储结构(顺序表)和链式存储结构(单链表);用C语言实现在两种存储结构上的对应操作(包括创建、删除插入元素、遍历等),巩固强化C程序设计的基本方法和能力。

实验内容:1、顺序表的创建、元素删除、遍历等操作:有序的一组整数{1,2,3,4,6},设计顺序表并实现以下操作:A.初始化一个空的顺序表;B.从键盘依次输入上述数据添加到顺序表中;C.删除表中的第四个数据元素;D.显示B、C操作后顺序表中的内容。

2、现有有序的一组整数{1,2,2,3,4,6,6},设计单链表,分别编写函数实现以下操作:A.初始化一个空链表。

B.依次添加上述一组数据(结点),生成该链表。

C.统计该链表的长度。

D.在表中查找数据为3和7的结点,并返回其位置(若找不到返回 -1)。

E.删除中间重复结点,使链表变为 1-2-3-4-6。

F.显示经B,E操作后,链表的内容。

实验二:基本查找排序操作上机实验 4学时实验目的:掌握两种基本的查找算法(顺序查找、二分查找)和三种基本排序算法(简单插入排序、简单冒泡排序、简单选择排序)的原理及C语言实现。

实验内容:现有一顺序表,表中元素分别为{51,38,79,22,91,105,33,52,16,112},分别编写函数实现以下操作:A、采用简单插入排序法实现对顺序表的排序,显示每一趟的排序结果;B、采用简单冒泡排序法实现对顺序表的排序,显示每一趟的排序结果;C、采用简单选择排序法实现对顺序表的排序,显示每一趟的排序结果;D、对上述排序后的顺序表采用顺序查找方法,查找关键字为52和关键字为36的元素,分别显示查找结果;E、对上述排序后的顺序表采用二分查找方法,查找关键字为22的元素,显示查找结果。

(2)课外实验内容:本环节设置了三个相对较复杂的课外实验,旨在进一步巩固学生对数据结构相关知识点的理解和掌握,提高软件开发能力。

实验三:较复杂的顺序表操作实验目的:进一步掌握复杂顺序表的相关操作及编程实现。

实验内容:图书资料管理问题,设一本书有编号、书名、作者、价格等信息,如下表所示:设计顺序表并实现以下操作:A、初始化线性表;B、向表中添加一条新记录;C、删除表中的第三条记录;实验提示:本实验中图书信息的数据类型可定义如下:typedef struct{long int number; // 书号char name[50]; // 书名char author[20]; // 作者int price; // 价格} bookinfo;因此顺序表的定义也应作相应的变化:typedef struct{bookinfo data[MAXNUM];int num;} listtype;请同学们思考,插入和删除的函数要做怎样的修改?实验四:栈和队列的操作实现实验目的:理解栈和队列的基本概念,栈和队列操作的基本方法以及其编程实现。

通过本实验的两个项目的编程、调试和运行结果的比较,分析栈和队列的差别。

实验内容:1、设计一个容量为4的循环队列,编程实现如下操作,并显示各步骤操作后队列的内容:A、队列初始化为空;B、将1、2、3三个数据依次做入队操作;C、做两次出队操作(1、2出队);D、将4、5、6三个数据依次做入队操作;E、将数据7做入队操作;2、设计一个容量为4的顺序栈,编程实现如下操作,并显示各步骤操作后栈的内容:A、栈初始化为空;B、将1、2、3三个数据依次做入栈操作;C、做两次出栈操作;D、将4、5、6三个数据依次做入栈操作;E、将数据7做入栈操作;实验五:查找和排序操作实验实验目的:理解在线性表中的各种基本的查找和查找方法的原理,实现方法,适用条件,掌握各种基本查找和排序方法编程实现。

实验内容:设计一个描述学生成绩信息的线性表,用于存放学生的相关信息,学生成绩表的基本信息如下:要求编程实现以下功能:A、用顺序表存储以上学生成绩表;B、添加一个同学的相关信息;C、用顺序查找方法查找有某科成绩高于90分或某科成绩不及格的同学信息,并显示相应查找结果;D、以英语成绩为排序码,利用简单选择排序方法对学生成绩表进行排序,并显示排序结果;E、以高数成绩为排序码,利用简单插入排序方法对学生成绩表进行排序,并显示排序结果;F、以C语言成绩为排序码,利用冒泡排序方法对学生成绩表进行排序,并显示排序结果;G、再利用二分查找的方法在已经排序后的成绩表中查找C语言成绩为x的学生信息(x为键盘输入分数值)。

4、实验项目涉及核心知识点:对最典型的线性数据结构(线性表)采用不同的存储结构时的基本算法的C语言实现;栈和队列的基本操作C语言实现,查找和排序的操作C语言实现;5、重点和难点重点在理解数据结构的本质,学会用数据结构中的分析方法来刻画和解决实际问题,并利用C语言为工具来编程验证这些数据结构中的基本算法;6、实验步骤A、问题分析和任务的定义明确问题要求做什么,限制做什么(本步强调做什么,而不是怎么做)。

对问题的描述应避开算法和所涉及的数据类型,而是所完成的任务做出明确的回答。

如输入数据的类型、值的范围以及输入的形式;输出数据的类型、值的范围及输出的形式;这一步还应该为调试程序准备好测试数据,包括合法的输入数据和非法形式的输入数据。

B、数据类型和系统设计在设计这一步骤中分为逻辑设计和详细设计两步实现。

逻辑设计指的是,为问题的描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主模块和各抽象数据类型;详细设计则为定义相应的存储结构并写出各函数的伪码算法。

在这个过程中,要综合考虑系统的功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据的封装,基本操作的规格说明尽可能的明确和具体。

作为逻辑设计的结果。

应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的规格说明),各个主要模块的算法,并画出模块之间的调用关系图。

详细设计的结果是对数据结构和基本操作的规格说明做出进一步的求精,写出数据存储结构的类型定义,按照算法书写规范用类C语言写出函数形式的算法框架。

相关文档
最新文档