C语言第1章程序设计ABC.ppt_第1页
C语言第1章程序设计ABC.ppt_第2页
C语言第1章程序设计ABC.ppt_第3页
C语言第1章程序设计ABC.ppt_第4页
C语言第1章程序设计ABC.ppt_第5页
已阅读5页,还剩39页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1章 程序设计ABC,林淑玲C语言,第1章 程序设计ABC,知识目标: 1. 了解计算机的工作原理。 2. 了解计算机和程序设计语言的关系。 3. 了解C语言的发展历史和程序设计语言的工作原理。 能力目标: 1能够启动Visual C+ 6.0,并能正确进入编程窗口,输入简单程序并进行编译、链接和运行。 2学会与人打交道,完成调查任务。 3. 能初步掌握“班级学生成绩管理系统”工作模块构成。 4. 能调查了解本校学生成绩管理系统的工作流程,画出本校学生成绩管理系统工作模块图。,什么是“会计算机”? 会打字? 会编程? 会DIY? 会上网? 会“黑客”? 懂原理、能应

2、用、有创新,学计算机学什么?,计算机与人工智能,计算机行业的梦想 让计算机(Computer)能像人一样地思考,与人自然交流, 人工智能(Artificial Intelligence) 图灵测试,计算机与人工智能,1997年,IBM公司研制的深蓝超级计算机在一场“人机大战”中打败了国际象棋大师卡斯帕罗夫 被誉为“人工智能的一大胜利” 深蓝的主要研制者之一许峰雄博士: 胜利靠的只是不知疲倦地高速运算,并不是什么智能,计算机与信息技术,计算机技术与通信技术结合,构成了信息技术(Information Technology),诞生了一个新词:IT 嵌入式系统是IT未来的主要发展方向之一 典型的嵌入

3、式系统有:机器人、手机和智能家电等,计算机,计算机是用来延伸人的能力的工具,需要人来驾驭 我们的职责是让非计算机专业的人更容易驾驭它 完成这一目标的主要手段之一就是“编程(Programming)”,计算机基本工作过程,整个过程的执行者是硬件,但硬件是受软件控制的 编程,就是编写软件,使硬件按照人的意图工作,计算机基本工作过程,“冯诺依曼机”结构,大脑,记忆装置,眼睛和耳朵,软件的形成,软件(Software)的形成 程序员(Programmer)编写程序源代码(Source Code) 编译器(Compiler)把源代码转换为可被计算机理解的机器代码(Machine Code) 并把机器代码

4、以可执行文件(Executable File)的形式保存在磁盘上,软件运行过程的简单描述,软件的运行 计算机把机器代码读入到内存(Memory) 由CPU运行这些代码 读取输入(Input) 产生输出(Output) 完成程序员预定的功能 计算机专业后续课程 计算机原理 单片机应用技术 包含程序设计的课程,两个说不同母语的人的对话方式: 一方学另一方的语言 双方都学习一种第三方语言 人与计算机的对话方式: 计算机学习人的语言(自然语言理解) 人学习计算机的语言 学习第三方语言,人与计算机的对话,程序设计语言(Programming Language)是人与计算机进行交流的语言 计算机直接能读懂

5、的语言 机器语言(Machine Code),也叫机器代码 一种纯粹的二进制语言,程序设计语言的故事,程序设计语言的故事,计算机为什么用二进制呢? 为什么不用我们日常熟悉的十进制呢? 二进制在在电器元件中容易实现 计算机进行二进制运算比进行十进制运算要简单得多,程序设计语言的故事,机器语言编写的1+1程序 汇编语言(Assemble Language)编写的1+1程序,10111000 00000001 00000000 00000101 00000001 00000000,MOV AX, 1 ADD AX, 1,程序设计语言的故事,BASIC语言编写的1+1程序 C语言编写的1+1程序,PR

6、INT 1+1,#include main() printf(%dn, 1+1); ,程序设计语言,一种程序设计语言对应一种编译器 程序员按照该语言的语法编写程序源代码,把自己的意图融入到代码中 编译器读入源代码,把程序员的意图转换成可执行程序,供他人使用,流行语言,应用编程语言 机器语言 汇编语言 Basic Pascal C C+ Java C# 专项编程语言 Lotus Notes Power Builder,Web编程语言 HTML XML PHP ASP JSP JavaScript VBScript 其他 perl python VBA,一切从一个叫“Space Travel”的电

7、子游戏开始 为了让他的游戏能在PDP-7上运行,Ken Thompson用汇编语言给PDP-7写了一个操作系统UNIX 汇编太不好用了,Thompson需要高级语言 试验了一些高级语言,包括Fortran,都不理想 他在BCPL基础上,自己设计了一个B语言 UNIX开始发展,B也不够用了 Dennis Ritchie加入,把B改造成C 开始用C重写UNIX,C语言的创世纪,C程序设计语言,简称C语言 BCPL语言进化成B语言,B语言又进化为C语言 是一种高级语言 高级语言并不是“高级”,只是相对低级语言,在一个高的级别上进行编程 历史悠久,战勋卓著 诞生于上世纪70年代初,成熟于80年代 “A

8、NSI C”标准的发布是C语言成熟的标志 很多重量级软件都是用C写的 上天入地,无所不能 几乎没有不能用C写出来的软件,没有不支持C的系统,C程序设计语言,硬件(Hardware),操作系统(OS),应用程序(Application),应用平台,基于平台的应用程序,低级语言的地盘,高级语言的地盘,C语言的地盘,C程序设计语言,C语言被分类位高级语言,但实际上它是一种介于高级语言和低级语言之间的语言。 很多流行语言、新生语言都借鉴了它的思想、语法 从C+,到Java,再到C# 正确地学好C语言,是学习这些流行语言的基础。,C语言的祖师爷Dennis M. Ritchie,C is quirky,

9、 flawed, and an enormous success.,Ritchie漫画像,C诡异离奇,迷雾重重,却获得了巨大的成功,和Unix的设计者Ken Thompson接受美国国家技术勋章,Ritchie和Thompson在开发UNIX,计算机基本工作过程,整个过程的执行者是硬件,但硬件是受软件控制的 编程,就是编写软件,使硬件按照人的意图工作,编译过程 程序员(Programmer)编写程序源代码(Source Code) 编译器(Compiler)把源代码转换为可被计算机理解的机器代码(Machine Code),并把机器代码以可执行文件(Executable File)的形式保存在

10、磁盘上 软件的运行 计算机把机器代码读入到内存(Memory),由CPU运行这些代码,读取输入(Input),产生输出(Output),完成程序员预定的功能,编译运行,一种编译语言对应一种编译器 程序员按照该语言的语法编写程序源代码,把自己的意图融入到代码中 编译器读入源代码,把程序员的意图转换成可执行程序,供他人使用,C语言,可执行程序,编译器,编译语言,解释运行过程 程序员编写程序源代码 解释器读入源代码,并执行源代码 解释运行的语言特点 执行速度慢 好学易用 先编译、后解释 把源代码编译成更容易解释的中间代码,然后再解释运行,解释运行,C语言程序的运行,编辑(Edit) 扩展名为.c的文

11、件 编译(Compile) 扩展名为.obj的文件 链接(Link) 形成最后的可执行文件 扩展名为.exe的文件 运行 (Run),运行程序的步骤和方法,上机运行程序的方法 常用的有Turbo C 2.0、Turbo C+ 3.0、Visual C+6.0等 本课程采用Visual C+6.0对C程序进行编译和执行。,“学生成绩管理系统”初步总体规划设计,应用程序的开发过程 应用程序的开发过程一般分为三个阶段:分析、设计、实施。 1.系统分析 系统分析主要完成三个任务,一是需求报告,二是可行性分析,三是系统详细分析并建立逻辑模型。 在进行系统分析以前,必须首先确定用户究竟需要应用系统完成什么

12、样的工作?达到什么目标?预期完成的时间要求等。这些即称为需求报告,这种需求报告应该是由用户写出,其中应包括系统的名称、预期目标、输入输出格式说明以及完成时间等。,可行性分析是应用程序开发中的重要一环,它是在用户提交的需求报告的基础上实事求是地分析提出需求的可能性与必要性,其作用是尽量减少开发过程中的盲目性,避免不必要的损失。可行性分析应该从技术可行性、经济可行性、操作可行性等三个方面进行分析。可行性分析之后,必须由开发人员写出书面的可行性报告,它应该反映这样几个问题:系统简述、系统目标、系统开发的条件与结论。结论是根据可行性分析对所提出的应用系统研制工作是否可以继续进行作出判断。 在可行性报告

13、被认可以后,就要从系统的组织、功能、业务等各个方面进行调查分析以确定应用系统的逻辑模型。它一般分为三个阶段:调查研究、综合分析、编写系统说明书。工作的重点在于对数据流程的调查分析,在说明书中应包含数据流程图。因为这是建立逻辑模型的基础。,2.系统设计 系统设计是在系统分析的基础上,规划系统规模、设计系统结构,最终提出系统的实施方案,建立系统的物理模型。 这一阶段是系统开发的核心,这主要的工作任务包括绘制系统结构图、代码设计、输入输出设计、数据库设计、模块处理流程设计等。 绘制系统结构图实际上是进行系统的结构设计,也就是进行模块化设计。 所谓的模块化设计指将一个系统按功能自顶向下,由抽象到具体,

14、由粗到细,逐层分解,一直分解到功能明确、大小适中、彼此独立、能用程序实现的模块为止。系统结构图一般是在数据流程图的基础上变换而来的。 代码设计是指将系统中涉及的实体的名称、属性、状态等用一定的符号(数字或字母不同组合)来定义,使数据标准化、系统化,便于计算机对其进行处理。代码设计应具唯一性、可扩充性、通用性、便于记忆与识别等特性。代码的编码方法很多,如顺序码、层次码、组码、多面码、助记码、缩写码等。例如:一个学生的学号可以这样编:20000102002,其中前四位2000表示该学生入学的时间,01表示所在的系,02表示该系所属的专业,002表示该生的顺序号,这种码就是多面码。 输入输出设计一般

15、是先进行输出设计,再进行输入设计。输出设计是确定输出信息的需求,确定输出信息的内容,输出介质和设备,输出格式的设计等。 输入设计是确定原始信息的输入方式,主要有菜单法、表格法、应答法等三种输入方法。这三种方法可以混合使用,取长补短,其目的是为了简化操作,提高输入速度。在确定了输入方式以后还要设计数据校验方法,对输入的数据还要进行校验以保证数据输入的正确性。 数据库设计包括数据库的逻辑设计与数据库的物理设计,逻辑设计的任务是建立数据模型,物理设计的目的是确定数据库的物理结构如字段的类型、宽度等。通常在一个数据库中往往要包含多个表,物理设计还要确定数据库中应包含那些表,各个表之间的关系等。 模块处

16、理流程设计的任务是分析各个模块内的信息流动情况,选择信息处理的方法并组织处理的过程。,3.系统实施 系统实施是继系统分析与设计之后的最重要的开发阶段。这个阶段的主要任务是将前两个阶段所完成的“做什么?怎么做?”真正付诸实现。其主要工作包括编制程序、系统的调试与测试、试运行与维护、系统评价等。 程序设计是利用程序设计语言实现各个功能模块的要求。要广泛使用面向对象的程序设计方法,在程序设计过程中实现功能要求是不言而喻的,但更要强调程序的可靠性、可维护性与程序的界面友好性。,系统的调试是开发人员为了排除程序错误,检查能否实现模块功能而进行的工作。可分为子系统分调和应用系统联调。分调重点在于程序的功能

17、与数据处理的正确性,而联调则侧重于整个应用系统中相关模块的相互影响、参数传递的正确性及程序整体控制的正确性检查。 系统维护主要是指针对应用系统在运行过程中出现的各种问题进行纠正、修改、升级等。可以分为纠正性维护、完善性维护和适应性维护三种。系统维护主要包括数据维护、程序维护、硬件与系统软件的维护等三个方面的工作。 系统的评价是在系统运行了一段时间后,对系统的性能指标、经济指标和管理指标作出一个公正而又准确的评价。,“学生成绩管理系统”总体规划设计 学生成绩的统计与管理,是学校教学管理中的重要管理内容,它关系到学生是否能正常毕业。随着学校规模的扩大和管理要求的提高,传统的手工管理的方法就不适应当

18、前学校教学管理的需要,学生学习成绩的计算机自动化管理也是衡量一个学校管理水平的标志。学生学习成绩的计算机自动化管理能高效、方便的管理学生成绩。 要开发一个班级学生成绩管理系统软件,可以先走访本校的教务管理部门,了解学生成绩管理方法,经过分析得出管理流程,按管理流程设计出管理模块,如果是正式开发管理软件,这个工作要经过与用户单位充分的讨论、论证,最后得出一致的意见。下面就开发学习型的“班级学生成绩管理系统”的主要功能说明如下:班级学生成绩管理系统共设计了6大模块:,(1)打开文件模块,能够打开保存在磁盘上的学生成绩文件。 (2)保存文件模块,能将一个班40个学生,每个学生包括学号、姓名、三门课程学习成绩和总成绩以及平均成绩全部保存在磁盘文件中。 (3)编辑成绩模块,能编辑学生信息和学生成绩,并能进行相应的增加、删除、修改等操作。 (4)显示成绩模块,能显示全部学生信息、指定学生信息、不及格学生信息和按总成绩排序后的学生信息。 (5)计算模块,能对学生成绩进行总成绩与平均成绩计算,能找出全班学习成绩最好的和最差的学生。 (6)程序说明模块,能对软件的版本、功能、使用方法、开发者信息等进行相应说明。,另外,本系统只有一个出口,程序只能通过该出口正常结束,以保证安全退出系统。6大功能模块可以用图 1表示。,图 1,开发“班级学生成绩管理系统”项目遵循“软件开发工作流程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论