版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言基础软件设计常用的工具有:图形工具:程序流程图、N-S图、PAD图、HIPO;表格工具:判定表;语言工具:PDL(伪码)。DFD图(数据流程图):软件需求分析阶段使用第一章数据结构与算法算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。算法复杂度包括 时间复杂度和空间复杂度。时间复杂度 执行算法所需要的计算工作量 算法的计算工作量是用算法所执行的基本运算次数来度量的.空间复杂度 执行这个算法所需要的内存空间一个非空的数据结构(若为空不能判断)如果满足以下两个条件:有且只有一个根结点;每一个结点最多有一个前件,也最多有一个后件,称为线性结构,在数据结构中习惯称为线性表。栈是所有的插入
2、与删除都限定在表的同一端进行的线性表;队列是指允许在一端进行插入,而在另一端进行删除的线性表,二者均即可以顺序存储也可以链式存储。栈、队列、串等都为线性结构 。数组、表、树结构等数据结构都是非线性结构。栈是一种特殊的线性表,是限定只在一端进行插入与删除的线性表。栈是按照 “先进后出”或“后进先出”栈支持子程序调用!队列是只允许在一 端进行删除,在另一端进行插入的顺序表,队列也称为 先进先出 的线性表,或者 后进后出 的线性表队列的顺序存储结构一般采用队列循环的形式。循环链表所有结点的指针域都为非空,属于线性结构。循环链表是链表,循环队列属于队列,队列只能在队尾入队,在排头退队,链表可以在任何位
3、置插入、删除.计算循环队列的元素个数: “尾指针减头指针” ,若为负数,再加其容量二叉树的遍历分为三类:前序遍历根左右 中序遍历左根右 后序遍历左右根完全二叉树结点n为奇数,叶子结点为(n+1)/2 ,结点n为偶数,叶子结点为n/2.二叉树叶子结点的计算 n=n0+n1+n2 n2=n0-1 (n2是度为2的结点,n1是度为1的结点,n0是度为0的结点(叶子结点)n为总结点数)二分法查找只需要比较 log2n次,顺序查找比较n次在最坏的情况下,冒泡排序需要比较次数为 n(n- 1)/2简单选择排序法,最坏情况需要 n(n- 1)/2直接插入排序法,最坏情况需要比较n(n-1)/2次堆排法,比较
4、次数n log2n次面向对象基本方法的基本概念有对象、类和实例、消息、继承与多态性.第2章 程序设计基础结构化程序设计方法的主要原则为:自顶向下、逐步求精、模块化和限制(并非禁止)使用goto语句.对象的五大特征:标识唯一性、分类性、多态性、封装性、模块独立性。对象之间进行通信的构造叫做消息。多态性是指同一个操作可以是不同对象的行为。对象不一定必须有继承性。封装性是指从外面看只能看到对象的外部特征,而不知道也无须知道数据的具体结构以及实现操作。第3章 软件工程基础软件工程包括3个要素:方法、工具和过程软件生命周期分为3个时期共8个阶段:软件定义期,包括问题定义、可行性研究、需求分析;软件开发期
5、,包括概要设计、详细设计、实现、测试;运行维护期,即运行维护阶段。需求分析阶段的工作可概括为个方面:需求获取。需求分析。编写需求规格说明书。需求审评。结构化方法软件需求分析工具主要有数据流图、数据字典、判定树和判定表。程序设计分为:结构化程序设计,面向对象的程序设计。结构化设计方法使用的描述方式是系统结构图软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误, 程序调试通常称为Debug, 测试都应追溯到需求、严格执行测试计划,排除测试的随意性.黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。白盒测试的测试方法有:代码检查法、静态结构分析法、静态质量
6、度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、程序变异第4 章 数据库设计基础数据库应用系统中的核心问题是数据库的设计!数据库管理系统提供相应的数据语言:数据定义语言,该语言负责数据的模式定义与数据的物理存取构建;数据操纵语言,该语言负责数据的操纵,包括查询与增、删、改等操作;数据控制语言,该语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。数据库管理系统是系统软件。数据库系统的特点为高共享、低冗余、独立性高、具有完整性。数据独立性包括物理独立性和逻辑独立性,物理独立性指数据的物理结构的改变,不会影响数据库
7、的逻辑结构,也不会引起应用程序的改动;逻辑独立性指数据库的总体逻辑结构的改变,不会导致相应的应用程序的改变。数据模型按照不同的应用层次分为以下3种类型:概念数据模型,着重于对客观世界复杂事物的描述及对它们内在联系的刻画;逻辑数据模型,是面向数据库系统的模型,着重于在数据库系的实现;物理数据模型,是面向计算机物理实现的模型,此模型给出了数据模型在计算机上物理结构的表示。数据模型通常由数据结构、数据操作及数据约束部分组成。数据库管理系统支持三种数据模型: 层次模型、网状模型和关系模型。在ER图中实体集用矩形,属性用椭圆,联系用菱形。关系模式采用二维表来表示,元组 :行 属性 :列 域 :属性的取值
8、范围。在二维表中唯一标识元组的最小属性值称为该表的键或码。 二维表中可能有若干个键,它们称为表的候选码或候选键。循二维表的所有候选键选取一个作为用户使用的键称为主键或主码。关系模型中可以有3类完整性约束:实体完整性约束、参照完整性约束和用户定义的完整性约束。关系运算:交,自然连接,差,并,投影,笛卡尔积【乘】(翻倍),除(减半)。笛卡尔积:RxS 新关系属性个数n+m 元组个数k1*k2投影:从关系模式中指定若干个属性组成新的关系。交:交集 结果属于RS(元组整体相交) 差:R-S结果是属于R但不属于S的记录组成的集合。元组减元组,整体相减!并:并集 结果属于RS,结果包含所有不同元组的新关系
9、。 自然连接:去掉重复属性(列)的等值连接。二级C语言第一章C语言概述算法可以用各种描述方法进行描述,目前最常用的有种:伪代码、流程图和N-S结构图。传统的流程图下图所示的几种基本图形组成。C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.obj的二进制文件,链接将一个或多个目标文件与程序用到的库文件连接起来,形成一个可以在操作系统直接运行的执行程序.exe。C程序中主函数不能被其他函数调用main函数可以放在程序开始,也可以放在中间,也可以放在最后,位置不固定,但程序执行时必须从main函数开始在C程序的函数中不能定义另一个函数,可以声明或调用另一个函数。每个C程序中必须包含一个mai
10、n函数,但不一定是每个C程序文件中必须有,用户单独编写的某个函数也可以存储为一个C程序文件。函数的定义不可以嵌套,但函数的调用可以嵌套。标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。变量名没有长度限制,但不可超过编译器可以辨识的范围.在C程序的函数中不能定义另一个函数,可以声明或调用另一个函数,每个C程序中必须包含一个main函数,但不一定是每个C程序文件中必须有,用户单独编写的某个函数也可以存储为一个C程序文件。第二章 运算符与表达式模运算只能是整型(int)强制类型转换表达式 (double)(10%3) (int) 3.234sizeof(计算字节
11、数)是C语言中的一个操作符(operator),不是函数调用。sizeof(size)C语言中利用sizeof()函数判断数据类型长度,在VC6.0平台中,整型int,float占有4个字节,double型数据占有8个字节。char占1个字节,long占4个字节。按位异或运算符 () 将第一操作数的每个位与第二操作数的相应位进行比较。 如果一个位是 0,另一个位是 1,则相应的结果位将设置为 1。否则,将对应的结果位设置为 0。参与运算的数以补码方式出现。即0 0 得0 ,0 1 得1, 1 1得0,1 0 得1 .位运算的运算量只能是整型或字符型的数据,不能为实数数据。按位或运算&
12、#160;按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的数以补码方式出现。例如 0110|011得0111按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。 ">>"右移运算符,按位右移运算规则是将一个操作数先转换成二进制数,然后将二进制数各位右移若干位,移出的低位舍弃;并在高位补位,若为无符号数,右移时左边高位
13、移入0。例如 13>>1 13化为二进制1101,每位右移一位,0110“”单目运算符,(把运算对象的内容按位取反)字符串在C语言中,字符串常量是以双引号括起来的字符序列。用于字符串处理的函数字符串复制函数strcpy(s1,s2)把s2所指的字符串复制到s1字符串连接函数strcat(s1,s2)将s2的内容连接到s1 后面求字符串长度函数strlen(s)这一长度不包括串尾的结束标志0字符串比较函数strcmp(s1,s2)若s1>s2,函数值大于0,若s1=s2,函数值等于0,若s1<s2,函数值小于0。字符数组在定义时对数组名赋值,eg char s =&quo
14、t;language" 或者char="language"数组名是常量,代表数组的首地址!第三章 基本语句变量使用前必须先定义C语言中用"%"打印输出字符"%",所以%d,输出为%d两个普通字符,而不是格式控制符"%d"的含义函数printf()中,%md指输出带符号的十进制整数,给定最小宽度为m位,不足m位左端补空格,超过m位按实际位数输出。16进制常量以0x开头 二进制 十进制 八进制 十六进制 0 0 0 0 1 1 1 1 10 2 2 2 11 3 3 3 100 4 4 4 101 5 5 5
15、 110 6 6 6 111 7 7 7 1000 8 10 8 1001 9 11 9 1010 10 12 A 1011 11 13 B 1100 12 14 C 1101 13 15 D 1110 14 16 E 1111 15 17 F(大小写字母都可以) 10000 16 20 10*ASC码表第四/五章 选择循环结构在if else语句中 else总是与离它最近的if配对。While语句While后一对圆括号中的表达式可以使C语言中任意合法的表达式,但不能为空,表达式值为非0时执行循环体一次,表达市为0时,退出循环。do while语句表达式为0时,先执行一次循环然后才退出循环。f
16、or循环表达式值为非0时执行循环体一次,表达市为0时,退出循环。switch语句当执行switch语句时,首先计算紧跟其后的括号中的表达式的值,然后在switch语句体内寻找与该值吻合的case标号。如果有与该值相等的标号,则执行该标号后开始的各语句,包括在其后的所有case和default中的语句,直到switch语句体结束,如果有break语句,则到break语句退出switch循环。switch语句,其一般形式为:switch(表达式) case常量表达式1: 语句1;case常量表达式2: 语句2; case常量表达式n: 语句n;default: 语句n1;case语句标号后面的语句
17、可以不写case语句标号后面可以使若干条语句。如果有default标号,则当switch语句无限循环时,执行default标号后的语句。短路问题:&&运算符和|运算符,与运算符前假后不看,前真后要看,或运算符前真后不看,前假后要看break语句 退出循环continue语句 结束本次循环,进行下次循环第六章 数组函数定义数组的形式eg fun(double *a) fun(double a) fun(double aM)函数调用数组形式Eg fun(a)数组名形式 fun(&a)数组地址形式第七章 函数体数学函数abs函数int abs(int x)计算整数x的绝对值f
18、abs函数 int fabs(int x)计算x的绝对值exp函数 double exp(double x)求ex的值pow函数 double pow(double x,double y)求xy的值sqrt函数 double sqrt(double x)计算根号x动态分配函数和随机函数calloc函数 void *calloc(unsigned n,unsigned size)分配n个数据项的内存空间,每个数据项的大小为size个字节free函数 void free(void *p)释放p所指的内存区malloc函数void *malloc(unsigned size)分配size个字节空间r
19、ealloc函数 void *realloc(void *p ,nsigned size)把p所指的内存空间改为sizerand函数产生一个随机整数exit函数void exit(0)文件打开失败返回运行环境static静态存储,在函数体中,不释放内存单元。全局变量的作用域是从声明处到文件的结束。第八章 指针指针变量所占内存大小一样不能将整数直接赋给指针,只能指针指向变量的地址指针定义和指向不变量地址的写法 *p=&n*号是一个说明符。在语句中指针指向变量地址写法 p=&n输入输出中的写法 scanf(“%d”,p)pintf(”%d”,*p)*和+两个运算符的优先级别相同!按
20、照自右向左的方向结合。只能指针指向变量的地址或者指针指向另一个指针指向的地址,不能变量指向指针!*p=&a *p=a (数组) *p=*q 二级指针可以保存一级指针地址第九章 编译预处理和动态存储分配在C语言中,凡是以“#”号开头的行,都称为“编译预处理”命令行。预处理命令一行只能有一个。Eg. “预处理程序对源程序中的所有名为SIZE的标识符用100三个字符来替换”当宏定义在一行中写不下时,只需在本行最后一个字符后加一个反斜线“”用作宏名的标识符通常用大写字母表示,并不是与语法规定,只是一种习惯.带参数的宏定义eg形式 #define 宏名(形参表) 替换文本#define MO(X
21、,Y) (X)*(Y)宏替换不占运行时间宏替换中对参数没有类型的要求(宏替换中实参不能替换括在双引号中的形参)终止宏定义用#undef提前终止宏定义的作用域。无终止即整个文件。动态存储分配malloc函数用来分配size个字节的存储区,函数返回值类型为void * (无返回值)函数调用形式:malloc(size)要求size的类型为unsigned int 格式 : eg : pi=(short * )malloc(2);若不能确定数据类型所占字节数,可以使用sizeof运算符来求得Eg pi=(int*)malloc(sizeof(int);free函数free(p)指针变量p必须指向由动
22、态分配函数malloc或calloc分配的地址,free函数将指针p所指的存储空间释放,此函数无返回值。calloc函数用量来给n个同一类型的数据项分配连续的存储空间。形式 : ps=(char *)calloc(10,sizeof(char)第十章 结构体宏定义不是C语句,末尾不需要有分号。#define pi 3.14156关键字typedef的作用只是将C语言中的已有的数据类型作了置换,并不是增加新的类型。四种方式定义结构体类型的变量,数组和指针变量第十一章 文件概念:文件是由数据序列组成,可以构成二进制文件或文本文件。定义文件类型指针变量的一般形式: FILE * 指针变量名fopen
23、函数以一定方式打开指定文件,返回一个指向文件的文件指针,如果不能实现打开指定文件的操作,则返回一个空指针NULL。如果指定文件不存在则创建一个文件名为指定文件名的新文件,然后打开它。在指定文件有错误或者指定文件不存在却不能创建新文件的情况下,打开文件操作错误,返回空指针。若指定文件存在,则程序运行后,文件test.txt中的原有内容将全部消失。EOF只能作为文本文件的结束标志,其值为-1。C语言中,最常用的文件使用方式及其含义“r”为读而打开文本文件“rb”为读而打开一个二进制文件“w”为写而打开文本文件“wb”为写而打开一个二进制文件“a”为在文件后面添加数据而打开文本文件“ab” 为在文件后面添加数据而打开一个二进制文件“r+”为读和写打开文本文件“rb+”为读和写打开一个二进制文件“w+”建一个新文件,进行写操作“wb+”功能等同于“w+”“a+”“aw+”功能等同于“a”库函数fopen:打开文件形式 eg fopen(“file_a”,“w”)库函数fclose:关闭文件 形式: fclose(文件指针)调用函数,输出putc或fputcputc(ch,fp)getc(fgetc)输入函数形式 :ch=getc(fp)fgets函
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度新型绿色建筑材料采购履约担保合同3篇
- 二零二五年房地产租赁市场评估与咨询服务合同3篇
- 学生信息抽取合同(2篇)
- 奖学金基金赠与合同(2篇)
- 二零二五年房产代持业务合同范本与模板3篇
- 二零二五年度房产赠与合同范本(含土地使用)3篇
- 二零二五年汽车经销商新车销售与维修保养协议3篇
- 二零二五年高品质医用口罩制造设备供应合同3篇
- 黔南州2024年中考语文二模试卷
- 二零二五年深基坑监测与施工安全评估报告编制合同正范3篇
- 远景风机倒塔事故分析报告
- 2024全新农民普通话培训
- 2024五年级上学期家长会ppt完整版
- 广东省广州市名校2024届中考联考物理试卷含解析
- 信息化风险评估报告
- 2024年殡葬服务项目管理培训课件
- 青岛版四年级上册数学寒假35天作业
- 建筑工地春节安全生产培训 安全施工平安过节
- 谈恋爱被骗民事起诉状范本
- DB11T 945.1-2023建设工程施工现场安全防护、场容卫生及消防保卫标准 第1部分:通则
- 无犯罪证明申请表
评论
0/150
提交评论