第32讲 程序设计与软件开发基础(六)
- 格式:doc
- 大小:93.00 KB
- 文档页数:5
《C语言程序设计教程》课程教学大纲课程性质:必修课课程类型:专业基础课总学时: 64(理论教学32+实践教学32)学分: 4 一、本课程的地位及作用关于运算机专业的学生来讲,C语言是一门很重要的基础语言,同时,《C语言程序设计教程》作为一门重要的基础课程,对后继专业课程的学习,起到相当重要的铺垫作用。
C语言是现今应用最为普遍的几种语言之一,在实际编程应用中,它有其他语言所无法比拟的优势。
在学习的同时,培育学生具有扎实的软件开发大体技术,并养成良好的编程风格,为进一步学习后续课程和以后从事应用软件开发奠定良好的基础。
二、课程教学目标及教学任务(一)教学目标教学目标列表:目标内容具体目标能够了解C语言大体的语法知识能够运用结构化程序的3种大体结构和数组能够了解指针的操作理论知识能够运用结构体的操作能够运用函数实现简单项目能够了解文件的利用及简单链表的操作能够了解程序设计的大体风格,形成良好的编程适应能够分析和明白得较复杂的C程序专业技术能够对照已有程序,进行功能上的扩展和完善能够运用流程图来描述算法,能运用所学知识和技术对一样问题进行分析和程序设计能够了解如安在VC环境下调试程序职业道德培育学生学习新技术的能力(二)教学任务本课程终止时需要提交3个项目的代码:一、计算器项目代码。
要求:运用带参数函数完成计算器的加、减、乘、除等四那么运算及累加、阶乘、均值、方差等运算。
代码量约为400行左右。
二、学生成绩治理系统V1.0项目代码。
要求:运用数组、字符串、指针等知识,完成对学生成绩的输入、输出、查找和排序等功能。
代码量约为600行。
3、学生成绩治理系统V2.0项目代码。
要求:运用结构体数组的相关知识,完成学生成绩的输入、输出、查找和排序等功能。
代码量约为800行。
三、各单元教学内容及大体要求第1单元 C语言概述及基础知识(一)教学内容 1.1 C程序架构及C语言的数据类型 1.2 运算符与表达式(二)教学要求把握C语言开发工具的利用方式把握C程序的结构及特点,把握大体数据类型,变量,运算符与表达式的利用(三)教学重点与难点重点:C进展和特点C程序的大体结构C程序的开发进程 Visual C++开发环境介绍数据类型常量与变量运算符与表达式难点:Visual C++开发工具的利用和C程序的结构及特点数据类型常量与变量运算符与表达式第2单元程序设计结构及应用(一)教学内容 2.1 顺序结构2.2 选择结构 2.3 循环结构(二)教学要求把握简单函数的编写方式把握经常使用的运算符把握选择和循环结构的程序设计把握函数之间彼此挪用,简单系统的程序设计(三)教学重点与难点重点:if嵌套、switch分支结构、循环结构函数的利用自编写函数的挪用难点:if嵌套、switch分支结构、循环结构函数的利用自编写函数的挪用第3单元低级应用能力(一)教学内容 3.1 计算器项目 3.2 数组的大体概念 3.3 数组元素的查询3.4 数组元素的排序 3.5 字符数组(二)教学要求了解数组的应用把握一维数组的概念、引用、初始化、输入、输出把握数组的查询、排序等算法把握字符串的概念、字符串的经常使用函数的利用等(三)教学重点与难点重点:把握一维数组的概念、引用、初始化、输入、输出把握数组的查询、排序等算法把握字符串的概念、字符串的经常使用函数的利用等难点:把握一维数组的概念、引用、初始化、输入、输出把握数组的查询、排序等算法把握字符串的概念、字符串的经常使用函数的利用等第4单元指针的概念及引用(一)教学内容 4.1 学生成绩治理V1.0项目 4.2 指针的概念及应用 4.3指针作函数参数 4.4 指针和一维数组 4.5 指针和字符串(二)教学要求把握指针的概念和相关操作把握指向数组的指针操作(三)教学重点与难点重点:指针明白得、指针概念和初始化指针作函数参数指向数组的指针操作和应用难点:把握指向数组的指针操作第5单元 C语言的高级应用能力(一)教学内容 5.1 结构体的大体概念 5.2 结构体数组 5.3 文件的大体操作 5.4 学生成绩治理系统V2.0项目(二)教学要求把握结构体的概念方式把握结构体的相关操作把握文件的操作方式(三)教学重点与难点重点:结构体的利用文件的利用难点:结构体的利用文件的利用第6单元温习(一)教学内容6.1 温习(二)教学要求把握所学的全数内容(三)教学重点与难点重点: C语言的编程标准及重要的语法知识难点:重要语法知识四、实践项目实施打算表此表用于描述课程实践(含实验)项目的具体内容、目的及实践场所。
《面向对象程序设计(C++)》课程教学大纲课程代码:110242204课程英文名称:Object-Oriented Programming(C++)课程总学时:32 讲课:32 实验:0 上机:0适用专业:信息对抗技术专业大纲编写(修订)时间:2017年5月一、大纲使用说明(一)课程的地位及教学目标本课程是信息对抗技术专业的一门专业课。
本课程主要介绍C++语言的基本概念、基本语法和编程方法,面向对象的程序设计方法,以及Visual C++ 6集成开发环境。
通过本课程的学习学生应该熟悉和掌握Visual C++语言的面向对象的重要特征:如类、对象、继承、封装和多态性。
本课程的教学任务是使学生掌握一门高级程序设计语言,使学生最终能够阅读、分析、编写C++程序。
掌握面向对象程序设计的基本概念与方法,进而学会利用C++语言解决一般应用问题,为以后的学习和工作打下坚实的基础。
(二)知识、能力及技能方面的基本要求通过对本课程的学习,应使学生达到下列基本要求:1.了解C++语言的基本概念、基本语法和编程方法,同时重点介绍面向对象的特征;2.掌握类、对象、继承、封装和多态性;3.理解C++语言对C语言的扩充以及类和对象、友元、继承与派生、多态性和虚函数、C++语言的输入输出流库、异常处理、Windows编程基础和MFC编程基础、对话框和控件、菜单和文档/视图结构、图形设备接口。
(三)实施说明1.教学方法:面向对象程序设计主要采用讲授与实验相结合的方式进行,教师结合多媒体课件等教具边讲边教,有助于理解和记忆。
2.教学手段:本课程属于专业课,在教学中应与实际控制系统应用相结合,提高学生的学习兴趣。
由于学时的限制,课程实验由学生在课外完成。
(四)对先修课的要求本课程主要的先修课程是C语言程序设计。
(五)对习题课、实践环节的要求1.每部分内容均安排习题及思考题。
通过作业使学生能够对学习的内容真正了解掌握,使学生具有编程的能力。
STM32入门100步系列教学文章STM32内部重要功能全记录杜洋洋桃电子上一期我们讲了内核、存储器和时钟,它们都是单片机核心功能的一部分,没有它们中的任何一个,单片机都不能正常工作。
而核心功能还包括复位和电源管理两个部分,因为篇幅关系没有写完,这一期把它们补上。
同时我还要继续介绍单片机的多个重要功能。
之所以说“重要”,是因为单片机如果没有这些功能,虽然可以正常工作,但其性能和所发挥的作用会大大减弱。
重要功能包括:低功耗模式、ADC、DMA、I/O端口、调试模式、定时器、看门狗定时器和嘀嗒定时器。
因为我们现在是做入门的介绍,一开始不能讲得太深、太复杂,对于每个功能,我只介绍其表面上的功能与原理。
大家只要看过,有一个基本的印象即可。
待日后讲到编程设计时再深入讲解,你便会有温故知新的感觉。
【复位】复位功能是核心功能的一部分,大到PC,小到单片机,每一台计算机系统都有。
在我小时候,台式机的机箱上会有一个独立的复位按钮。
随着PC 越来越高级和稳定,复位按钮渐渐被取消了,但在主板上还是有复位电路的。
单片机上的复位功能也有着类似的变化,在我学习单片机时,需要在单片机的一个复位专用引脚上接一个由电阻和电容组成的复位电路。
如果没有这个电路,单片机就没法工作。
近些年来的新款单片机都把复位功能内置到单片机中,用户甚至可以忽略复位这件事了。
如果有必要,你可以在复位引脚上接一个按键用来手动复位,除此之外不需其他操作。
复位功能的作用是让RAM 中的数据清空,让所有连接到复位的相关功能都回到刚开始工作的(初始)状态。
在接通电源之前,单片机里的存储器及其他功能的状态是混乱、不稳定的。
如果上电后不复位,所有功能都处在无序状态,就好像军队集合时没有立正、稍息、向右看齐,直接齐步走的结果就是乱成一片。
复位的作用就是让单片机内部秩序化,都回到设计者规定好的状态。
这个状态为用户程序的运行做了充分的准备,就像计算机每次重启一样。
在STM32 单片机中,有一个供电监控器,这个监控器是一直工作的,它能监测外部电源的电压,当电压低于2V 时,监控器会让单片机复位。
MCGS组态软件培训教程i1i前 言随着工业自动化水平的迅速提高,计算机在工业领域的广泛应用,人们对工业自动化的要求越来越高,种类繁多的控制设备和过程监控装置在工业领域的应用,使得传统的工业控制软件已无法满足用户的各种需求。
MCGS工控组态软件的出现为解决一些实际工程问题提供了一种崭新的方法,因为它能够很好地解决传统工业控制软件存在的种种问题,使用户能根据自己的控制对象和控制目的任意组态,完成最终的自动化控制工程。
MCGS全中文工业自动化控制组态软件(以下简称MCGS工控组态软件或MCGS)是一套32位工控组态软件,可稳定运行于Windows95/98/Me/NT/2000等多种操作系统,集动画显示、流程控制、数据采集、设备控制与输出、网络数据传输、双机热备、工程报表、数据与曲线等诸多强大功能于一身,并支持国内外众多数据采集与输出设备,广泛应用于石油、电力、化工、钢铁、矿山、冶金、机械、纺织、航天、建筑、材料、制冷、交通、通讯、食品、制造与加工业、水处理、环保、智能楼宇、实验室等多种工程领域。
它的主要特点有(1)延续性和可扩充性。
使用MCGS工控组态软件开发的应用程序,当现场(包括硬件设备或系统结构)或用户需求发生改变时,不需作很多修改而方便地完成软件的更新和升级;(2)封装性(易学易用),MCGS工控组态软件所能完成的功能都用一种方便用户使用的方法包装起来,对于用户,不需掌握太多的编程语言技术(甚至不需要编程技术),就能很好地完成一个复杂工程所要求的所有功能;(3)通用性和可扩充性,每个用户根据工程实际情况,利用MCGS工控组态软件提供的底i2i MCGS组态软件培训教程层设备(PLC、智能仪表、智能模块、板卡、变频器等)的设备驱动、开放式的数据库和画面制作工具,就能完成一个具有动画效果、实时数据处理、历史数据和曲线并存、具有网络功能的工程,不受行业限制。
MCGS控组态软件是最为完善和方便的组态软件。
《Java程序设计与应用开发》教学大纲课程名称:《Java程序设计与应用开发》英文名称:Java programming and application development课程性质:专业选修课学时分配:注:对于有编程基础的学生,可以仅安排2-4学时完成1-3章。
教学对象(本课程适合的专业和年级):计算机科学与技术、物联网工程、数据科学与大数据技术、信息安全、网络工程、软件工程专业(本科)二年级学生预备知识:计算机基础一、课程性质Java程序设计与应用开发是计算机科学与技术相关专业的专业选修课。
该课程从零基础讲授JavaSE技术,针对JavaSE技术标准编程,涵盖JavaSE开发环境配置、程序设计基础、面向对象、工具API、GUI开发、图形开发、网络编程和实训。
课程以Java作为教学语言,讲授Java程序开发的基础理论和基本思想,培养学生的系统开发思维。
课程的总体目标是使学生能够使用Java语言开发应用程序,为学生今后学习高级编程打下坚实的基础。
该课程的特点是既有理论基础,又需要大量实践。
因此在教学中应理论联系实际,加强实践环节的教学。
在研究和教学方法上应尽量采用现场案例教学法、讨论式方法等多种教学方法。
二、教学方法:案例教学法;启发式教学法三、教学目标与要求《Java程序设计与应用开发》是计算机科学与技术相关专业一门实用性很强的专业技能课程。
本课程的教学任务是使学生熟练使用Java语言,培养较强的自学能力和系统分析、设计能力,具备开发Java桌面应用系统的技能。
四、教材[1] 郭克华,李一帆,孙王斌. Java程序设计与应用开发(微课视频版).北京:清华大学出版社,2021年.五、考核形式:考试六、教学设计1、学生自学和教师精讲结合。
在课前安排学生自学有关内容,学生在对应学习内容有了一定认识后,教师选择已混点、易错点、易忽略点重点讲解。
2、采用问题驱动法、任务驱动以及小组协作等现代教学方法。
单片机程序的设计程序设计是单片机开发最重要的工作,程序设计就是利用单片机的指令系统,根据应用系统(即目标产品)的要求编写单片机的应用程序,其实我们前面已经开始这样做过了,这一课我们不是讲如何来设计具体的程序,而是教您设计单片机程序的基本方法。
不过在讲解之前还是有必要先了解一下单片机的程序设计语言。
一.程序设计语言这里的语言与我们通常理解的语言是有区别的,它指的是为开发单片机而设计的程序语言,如果您没有学过程序设计可能不太明白,我给大家简单解释一下,您知道微软的VB,VC吗?VB,VC就是为某些工程应用而设计的计算机程序语言,通俗地讲,它是一种设计工具,只不过这种工具是用来设计计算机程序的。
要想设计单片机的程序当然也要有这样一种工具(说设计语言更确切些)单片机的设计语言基本上有三类:1.完全面向机器的机器语言机器语言就是能被单片机直接识别和执行的语言,计算机能识别什么?以前我们讲过--是数字"0"或"1",所以机器语言就是用一连串的"0"或"1"来表示的数字。
比如:MOV A,40H;用机器语言来表示就是11100101 0100000,很显然,用机器语言来编写单片机的程序不太方便,也不好记忆,我们必须想办法用更好的语言来编写单片机的程序,于是就有了专门为单片机开发而设计的语言:2.汇编语言汇编语言也叫符号化语言,它使用助记符来代替二进制的"0"和"1",比如:刚才的MOV A,40H就是汇编语言指令,显然用汇编语言写成的程序比机器语言好学也好记,所以单片机的指令普遍采用汇编指令来编写,用汇编语言写成的程序我们就叫它源程序或源代码。
可是计算机不能识别和执行用汇编语言写成的程序啊?怎么办?当然有办法,我们可以通过"翻译"把源代码译成机器语言,这个过程就叫做汇编,汇编工作现在都是由计算机借助汇编程序自动完成的,不过在以前,都是靠手工来做的。
程序设计基础软件技术专业
程序设计基础是软件技术专业的核心课程之一,它为学生进一步学习高级程序设计语言、数据结构和算法等课程奠定了坚实的基础。
这门课程通常包括以下几个方面的内容:
1. 计算机基本概念
- 计算机硬件组成
- 软件概念
- 算法和数据表示
2. 程序设计基础
- 程序设计基本思想
- 程序逻辑结构
- 常见算法和数据结构
3. 程序设计语言
- 语法和语义
- 变量、数据类型和运算符
- 控制结构(顺序、选择、循环)
- 函数和过程
- 数组、字符串和结构体
4. 程序设计实践
- 开发环境安装和使用
- 程序设计案例分析
- 程序编码和调试
通过本课程的学习,学生将掌握计算机程序设计的基本理论和方法,能够利用所学知识进行简单程序的设计和实现。
这为后续专业课程的学习以及未来的软件开发工作奠定了坚实的基础。
篇一:《视频教程下载地址汇总》篇二:《视频教程资源下载集合》篇三:《300多门上海交大教学视频下载》大量上海交大的视频,下载后的视频是avi格式,非CSF格式,一共200门左右,要下载的速度了,不保证长期可下!新人下载时请观看一下帮助手册:如何加积分:上海交大网站建设与管理操作系统上海交大 45讲高级英语上海交大 29讲应用软件开发技术上海交大 33讲专家知识讲座上海交大 14讲战略管理上海交大 38讲进出口业务上海交大 44讲宏微观经济学上海交大 46讲中国管理哲学上海交大 22讲管理心理学上海交大 48讲公共经济学上海交大 29讲商务英语上海交大 29讲营销管理上海交大 43讲专业英语上海交大 42讲语音上海交大 18讲英语听说上海交大 30讲商业银行管理上海交大 29讲德语上海交大 30讲财政与税收上海交大 55讲概率论与数理统计上海交大 46讲市场营销上海交大 23讲英语听力上海交大 15讲英语听力上海交大 18讲船舶结构设计上海交大 34讲计算机辅助船舶设计上海交大 21讲成本管理会计上海交大 25讲现代造船技术上海交大 21讲网络与数据通信上海交大 44讲绩效管理上海交大 46讲网页设计与开发技术上海交大 33讲造价预算与报价上海交大 37讲电子商务技术上海交大 31讲嵌入式系统及应用上海交大 43讲实用语法上海交大 41讲商务礼仪与谈判上海交大 33讲国际物流管理上海交大 49讲财务报表分析上海交大 34讲审计学上海交大 32课时会计学上海交大 44讲区域经济学上海交大 33讲网络攻击与防御技术上海交大 26讲证券投资分析上海交大 27讲国际商务上海交大 43讲计算机绘图上海交大 18讲英文写作上海交大 37讲上海交大机械设计 26讲船舶柴油机上海交大 31讲船舶原理与设计基础上海交大 45讲程序设计上海交大 32讲微机原理与应用上海交大 29讲社会保障实务上海交大 21讲多媒体技术及应用上海交大 42讲视译上海交大 28讲国际经济地理上海交大 49讲高级会计上海交大 43讲组织行为学上海交大 53讲三个代表上海交大 23讲行政管理原理与方法上海交大 31讲综合英语上海交大 31讲计算机网络上海交大 36讲计算机组成上海交大 42讲机械原理上海交大 51讲国际结算上海交大 31讲图形与编排设计上海交大 9讲DV设计上海交大 32讲大学语文上海交大 51讲泛读上海交大 36讲公共政策导论上海交大 52讲基于WEB的程序设计上海交大 32讲管理沟通上海交大 41讲计算机应用基础上海交大 22讲篇四:《视频背景音乐,央视常用,带下载地址》有一种旋好象一见钟情的意中人,让你知道什么叫“曾经沧海难为水,除却巫山不是云”;有一种旋律好似相思成灾的恋人,让你体会什么叫“衣带渐宽终不悔,为伊消得人憔悴”;有一种旋律恰似相恨见晚的知音,让你感慨什么叫“此曲只应天上有,人间难得几回闻”。
c/c++ 资料Visual C++ 6.0/Visual Studio 6.0下载Visual C++ 6.0 简体中文企业版集成SP6完美版Visual C++ 6.0 英文企业版集成SP6完美版Visual Studio 6.0 英文企业版集成SP6完美版C语言:谭浩强C语言教程全书 Word版C语言趣味程序百例精解Sams出版 Advanced C 高级C语言开发C数值算法程序大全C语言专家编程C语言程序设计案例精编C语言进阶C Primer Plus [SAMS]C Pocket Reference [O'Reilly]Practical C ProgrammingThe C Programming Language吉林大学C语言视频教程全51集 CSF格式C语言基础视频教程全14讲完整上架C语言程序设计视频教程曾怡教授讲解全28讲完整版下载数据结构视频教程清华大学严蔚敏主讲全48讲完整版 ASF格式数据结构C语言版视频教程全52讲完整版C++:钱能 c++程序设计教程第二版高清PDF版Essential C++ 中文版+英文版侯捷译编程点金之Visual C++(电子教程) isoC++程序调试实用手册C++面向对象多线程编程C++高级编程参考手册C++ Primer 第三版C++ Primer 第四版中文版高清晰C和C++代码精粹C++沉思录高质量C++编程指南C++ 编程思想第1卷标准C++导引C++ 编程思想第2卷实用编程技术More Effective C++ 简体中文版C++ Templates 中文版+英文版C++ Coding Standards[Addison Wesley]Absolute C++ 全彩页代码剖析Accelerated C++ - Practical Programming by ExampleInside the C++ Object ModelMore Exceptional C++ [Addison Wesley] Exceptional C++ [Addison Wesley]Sams出版 C++ UnleashedC++ GUI Programming with QT4VC++深入详解孙鑫作品系列高清PDF版下载Visual C++ 6傻瓜书快速参考Visual C++ 6.0 编程实例与技巧(PDF中文版)Visual C++ 21天自学教程跟我学Visual C++ 6Visual C++ 6 数据库编程 21天自学教程 CHMThe C++ Programming Language 第三版深度探索C++对象模型Special Edition Using Visual C++ 6Professional MFC with VC 6Practical C++ ProgrammingCross-Platform Development in C++Iterative UML Development Using VC++ 6Ace Programmer's GuideVisual C++高级界面特效制作百例精通GDI+编程清华大学出版Borland C++ Builder 6 开发指南 CHM孙鑫C++视频教程 rmvb格式全20CD完整版C++程序设计视频教程东南大学何洁月主讲全80讲(上) 48讲C++程序设计视频教程东南大学何洁月主讲全80讲(下) 32讲C++视频教程边用边学Visual C++ 6 (ASF格式)中山大学蔡培兴 C++语言视频教程全51讲精品推荐50个C C++源代码网站C/C++是最主要的编程语言。
计算机程序设计员试题及参考答案一、单选题(共100题,每题1分,共100分)1.下列关于详细设计的工具,说法错误的是:( )。
A、详细设计的工具包括表格B、详细设计的工具包括语言C、详细设计的工具包括图形D、详细设计的工具包括数字正确答案:D2.( )是指对研究的系统要抓住重要方面,而忽略个别的、非本质的属性和差别,抽出共性的、本质的东西。
A、抽象B、对象C、类D、模块正确答案:A3.所有的( )必须与业务需求一致。
A、产品需求B、用户需求C、功能需求D、系统需求正确答案:B4.狭义地讲,测试是指:( )。
A、指软件产品生命周期内所有的检查、评审和确认活动B、对软件产品功能的检查和评价C、对软件产品质量的检验和评价D、对软件产品是否存在bug的检验正确答案:C5.下列哪一种说法是对SQL Server的描述是错误的()A、层次化数据库。
B、企业级数据库。
C、客户机/服务器数据库。
D、关系型数据库。
正确答案:A6.( )方法是一种面向数据流的设计方法,是当前应用较广泛的技术,是一种较为完善的系统设计方法。
A、结构化设计B、程式化设计C、面向对象设计D、模块化设计正确答案:A7.计算机程序设计员要严格按照工作程序及相关文档的规范开展工作,指的是( )。
A、严肃认真B、谦虚谨慎C、办事规范D、胸襟宽阔正确答案:C8.( )素以最慢的数据访问方法著称。
A、ADOB、DAOC、ODBCD、OLE DB正确答案:C9.( )的工具包括图形、表格和语言。
A、详细设计B、概要设计C、模块设计D、需求分析正确答案:A10.软件管理按时间可划分为( )和使用维护管理。
A、生产管理B、技术管理C、软件设计管理D、开发进度管理正确答案:A11.密码验证模块包含的两个子模块是:( )。
A、用户登录和密码修改B、身份认证和密码修改C、身份认证和密码认证D、用户登录和密码认证正确答案:B12.( )方法是针对新的程序设计情形而采用的,它克服了早期技术的诸多限制,依赖于Microsoft新的底层访问方法OLE-DB。
STM32的PWM精讲通过对TIM1定时器进行控制,使之各通道输出插入死区的互补PWM输出,各通道输出频率均为17.57KHz。
其中,通道1输出的占空比为50%,通道2输出的占空比为25%,通道3输出的占空比为12.5%。
各通道互补输出为反相输出。
TIM1定时器的通道1到4的输出分别对应PA.08、PA.09、PA.10和PA.11引脚,而通道1到3的互补输出分别对应PB.13、PB.14和PB.15引脚,中止输入引脚为PB.12。
将这些引脚分别接入示波器,在示波器上观查相应通道占空比的方波[12]。
配置好各通道后, 编译运行工程;点击MDK 的Debug菜单,点击Start/Stop Debug Session;通过示波器察看PA.08、PA.09、PA.10、PB.13、PB.14、PB.15的输出波形,其中PA.08和PB.13为第一通道和互补通道,PB.09和PB.14为第二通道和其互补通道,PB.10和PB.15为第三通道和其互补通道;第一通道显示占空比为50%,第二通道占空比为25%,第三通道占空比为12.5%。
第2章 STM32处理器概述STM32F103xx增强型系列产品中内置了多达3个同步的标准定时器。
每个定时器都有一个16位的自动加载递加/递减计数器、一个16位的预分频器和4个独立的通道,每个通道都可用于输入捕获、输出比较、PWM和单脉冲模式输出,在最大的封装配置中可提供最多12个输入捕获、输出比较或PWM通道。
它们还能通过定时器链接功能与高级控制定时器共同工作,提供同步或事件链接功能。
在调试模式下,计数器可以被冻结。
任一个标准定时器都能用于产生PWM 输出。
每个定时器都有独立的DMA请求机制。
2.4.2 高级控制定时器[22]高级控制定时器(TIM1)由一个 16位的自动装载计数器组成,它由一个可编程预分频器驱动。
它适合多种用途,包含测量输入信号的脉冲宽度(输入捕获),或者产生输出波形(输出比较,PWM,嵌入死区时间的互补 PWM等)。
第32讲程序设计与软件开发基础(六)教学目标及基本要求:理解结构化设计方法,能利用该方法提供的常用工具解决实际问题,掌握测试与调试的概念,了解白盒测试与黑盒测试的概念,能进行简单的测试用例设计和实施,了解静态调试与动态调试。
教学重点:测试和调试的基本概念,白盒测试与黑盒测试。
教学难点:面向数据流的设计方法,白盒测试与黑盒测试。
教学内容:1.结构化设计方法2.软件测试及调试教学时间:1学时主要内容:7.4.3 结构化设计方法1.软件设计的基本概念(1)软件设计的基础概念软件设计是软件工程的重要阶段,是一个把软件需求转换为软件表示的过程。
基本目标软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,即软件设计是确定系统的物理模型。
步骤从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。
概要设计(又称结构设计):将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。
详细设计:确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。
(2)软件设计的基本原则①抽象:是一种思维工具,就是把事物本质的共同特性提取出来而不考虑其他细节。
②模块化:是指把一个待开发的软件分解成若干小的简单的部分。
③信息隐蔽:是指在一个模块内包含的信息,对于不需要这些信息的其他模块来说是不能访问的。
④模块独立性:是指每个模块只写成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。
模块的独立程度是评价设计好坏的重要度量标准。
衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。
一个优秀的软件设计应尽量做到高内聚、低耦合。
2.概要设计(1)概要设计的任务①设计软件系统结构:在需求分析阶段,已经把系统分解成层次结构,而在概要设计阶段,需要进一步分解,划分为模块以及模块的层次结构。
②数据结构及数据库设计:数据设计是实现需求定义和规格说明过程中提出的数据对象的逻辑表示。
③编写概要设计文档:需要编写的文档有概要设计说明书、数据库设计说明书、集成测试计划等。
④概要设计文档评审。
(2)概要设计的图形工具常用的软件结构设计工具是结构图(SC),也称程序结构图,它描述了软件系统的层次和分块结构关系。
模块用一个矩形表示,矩形内注明模块的功能和名字;箭头表示模块间的调用关系。
用带实心圆的箭头表示传递的是控制信息,用带空心圆的箭头表示传递的是数据。
结构图的有关术语如下。
深度:表示控制的层数。
上级模块、下级模块:调用模块中上级模块,被调用模块是下级模块。
宽度:整体控制跨度(最大模块数的层)的表示。
扇入:调用一个给定模块的模块个数。
扇出:一个模块直接调用的其他模块数。
原子模块:树中位于叶子节点的模块。
(3)面向数据流的设计方法典型的数据流类型有两种:变换型和事务型。
①变换型:是指信息沿输入通道进入系统,同时由外部形式变换成内部形成,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。
②事务型:在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。
(4)设计的准则①提高模块独立性。
②模块规模适中。
③深度、宽度、扇出和扇入适当。
④使模块的作用域在该模块的控制域内。
⑤应减少模块的接口和界面的复杂性。
⑥设计成单入口、单出口的模块。
⑦设计功能可预测的模块。
3.详细设计详细设计的任务是为软件结构图中的每个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。
常用的过程图形设计工具如下。
(1)程序流程图程序流程图是一种传统的、应用广泛的软件过程设计表示工具,通常称为程序框图。
程序流程图表达直观、清晰,易于学习掌握,且独立于任何一种程序设计语言。
构成程序流程图的最基本图符及含义如下所示。
→或↓:控制流□:加工步骤◇:逻辑条件(2)N-S图为了避免程序图在描述程序逻辑时的随意性与灵活性,提出了用方框图来代替传统的程序流程图,通常把这种图称为N-S图。
N-S 图的基本图符及表示的5种控制结构如图7-20所示。
图7-20 N-S 图图符与构成的5种控制结构(3)PAD 图PAD 图是问题分析图(Problem Analysis Diagram )的英文缩写,它是继程序流程图和方框图之后,提出的又一种主要用于描述软件详细设计的图形表示工具。
PAD 图的基本图符及表示的控制结构如图7-21所示。
图7-21 PAD 图图符与构成的5种控制结构除了以上3种工具外,还有判定表、判定树和结构化自然语言PDL 等描述工具。
7.4.4 软件测试及调试1.软件测试的目的与任务软件测试的目的是确保软件的质量,尽量找出软件错误并加以纠正,而不是证明软件没有错。
因此,软件测试的任务可以规定两点。
(1)测试任务:通过采用一定的测试策略,找出软件中的错误。
(2)调试任务:如果测试发现错误,则定位软件中的错误,并加以纠正。
找错的活动称为测试,纠错的活动称为调试。
2.软件测试的准则(1)所有测试都应追溯到需求。
(2)严格执行测试计划,排除测试的随意性。
(3)充分注意测试中的群集现象。
(4)程序员应避免检查自己的程序。
(5)穷举测试不可能。
(6)妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。
3.软件测试技术与方法软件测试的方法和技术是多种多样的,对于软件测试方法和技术,可以从不同的角度加以分类。
若从是否需要执行被测软件的角度,可以分为静态测试和动态测试方法。
若按照功能划分可以分为白盒测试和黑盒测试。
任务1 任务2 任务3条件else then判定条件循环体循环体判定条件条件=1=2 … =n ABCD条件AB选择型顺序型B AWHILE AWHILE 重复型UNTIL 重复型UNTIL B(1)静态测试与动态测试静态测试包括代码检查、静态结构分析、代码质量度量等,可以由人工完成,也可以借助软件工具。
动态测试是基于计算机的测试,是为了发现错误而执行程序的过程。
合理的测试用例是测试的关键,测试用例是为测试设计的数据。
(2)白盒测试方法与测试用例白盒测试方法也称结构测试或逻辑驱动测试,它是根据软件产品的内部工作过程,检查内部成分,以确认每种内部操作符合设计规格要求。
白盒测试把测试对象看成是一个打开的盒子。
白盒测试是在程序内部进行,主要用于完成软件内部操作的验证。
白盒测试的主要方法有逻辑覆盖、基本路径测试等。
逻辑覆盖测试是指一系列以程序的内部逻辑结构为基础的测试用例设计技术。
①语句覆盖:执行足够的测试用例,使得程序中每个语句至少都能被执行一次。
②路径覆盖:执行足够的测试用例,使程序中所有可能的路径都至少经历一次。
③判定覆盖:使设计的测试用例保证程序中每个取值分支至少经历一次。
④条件覆盖:设计的测试用例保证程序中每个判断的每个条件的可能取值至少执行一次。
⑤判断-条件覆盖:设计足够的测试用例,保证程序中判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能取值分支至少执行一次。
基本路径测试是根据软件过程性描述中的控制流程确定程序的环路复杂性度量,用此度量定义基本路径集合,并由此导出一组测试用例对每一条独立执行路径进行测试。
(3)黑盒测试方法与测试用例黑盒测试方法也称为功能测试或数据驱动测试,它是对软件已经实现的功能是否满足需求进行测试和验证。
黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明。
黑盒测试是在软件接口进行,完成功能验证。
黑盒测试方法主要有等价类划分法、边界值分析法、错误推测法、因果图法等。
其中,等价类划分法是将程序的所有可能的输入数据划分成若干部分,然后从每个等价类中选取数据作为测试用例。
4.软件测试实施软件测试过程一般按4个步骤进行,即单元测试、集成测试、验收测试(确认测试)和系统测试。
(1)单元测试单元测试集中对软件设计的最小单位——模块进行测试,主要是为了发现模块内部可能存在的各种错误和不足。
进行单元测试时,根据程序的内部结构设计测试用例,主要使用白盒测试法。
由于各模块相对独立,因而对多个模块的测试可以同时进行,以提高测试效率。
单元测试主要针对5个基本特性进行测试:模块接口、局部数据结构、重要的执行路径、出错处理和边界条件。
(2)集成测试集成测试是测试和组装软件的过程。
主要目的是发现与接口有关的错误,集成测试的依据是概要设计说明书,测试的内容主要是:软件单元的接口测试、全局数据结构测试、边界条件和非法输入的测试等。
集成测试时将模块组装成程序通常采用两种方式:非增量方式组装和增量方式组装。
(3)确认测试确认测试的任务是验证软件的功能和性能及其他特性是否满足了需求规格说明中确定的各种需求,以及软件配置是否完全、正确。
确认测试的实施首先运用黑盒测试方法。
(4)系统测试系统测试是把通过确认测试的软件作为基于计算机系统的一个元素,与整个系统的其他元素结合起来,在实际运行环境下,对计算机系统进行一系列的集成测试和确认测试。
5.软件调试实施在对程序进行了成功的测试之后将进入程序调试,程序调试的任务是诊断和改正程序中的错误。
软件测试贯穿整个软件生命周期,调试主要在开发阶段。
程序调试活动由两部分组成:其一是错误的定位,其二是修改错误。
常用的程序调试方法有:强行排错法、回溯法和原因排错法。
小结软件设计是软件工程的重要阶段,是一个把软件需求转换为软件表示的过程。
每个阶段都已形成一套较完整的理论和方法。
找错的活动称为测试,纠错的活动称为调试。
软件测试和调试都已经形成一套完整的理论和方法,这些理论和方法对软件开发者如何进行测试和调试具有十分重要的意义。
作业软件测试方法和技术按照功能划分为哪两类?各是测试软件产品哪些方面?。