计算机程序设计基础 第五章 程序组织与软件开发方法参考课件

  • 格式:ppt
  • 大小:280.00 KB
  • 文档页数:74

下载文档原格式

  / 74
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

main.c
#includae “zylib.h”
int main() {
int n; n = GetIntegerFromKeyboard(); ……
}
zylib.h typedeaf enum{FALSE, TRUE}
BOOL;
int GetIntegerFromKeyboard(); double GetRealFromKeyboard();
– 多次包含同一个头文件可能会导致程序问题
西安电子科技大学
7
头文件的包含策略
解决方法
– 使用条件编译指令 #ifndef(条件判断,若未定义)、#define (定义)与 #endif(结束条件判断)
被包含的头文件
– #ifndef __ZYLIB__ – #define __ZYLIB__ – 头文件的具体内容在此 – #endif
计算机程序设计基础
第五章 程序组织与 软件开发方法
西安电子科技大学
提纲
5.1 库与接口(阅读) 5.2 随机数库(阅读) 5.3 作用域与生存期(阅读) 5.4 宏 5.5 条件编译 5.6 典型软件开发流程 本章小结
西安电子科技大学
2
5.1 库与接口
库与程序文件
– 程序文件:源文件(*.c)、头文件(*.h)、工程文件 – 库:源文件与头文件
西安电子科技大学
6
头文件的包含策略
包含头文件的格式
– 尖括号:在 C 编译器的标准目录下查找该头文件 – 双引号:首先在当前工程项目所在的目录下查找,若不
存在,则查找标准目录 – 使用双引号包含自己或其他编写的非 C 标准库
头文件的多次包含
– 多个文件包含同一个头文件
– 例:“zyrandom.h”包含“zylib.h”,“main.c”包 含“zyrandom.h”与“zylib.h”,则“main.c”不仅 主动包含了“zylib.h”,还通过“zyrandom.h”被动 包含了“zylib.h”
printf( "%d; ", rand() ); printf( "\n" ); return 0; }
西安电子科技大学
10
随机数的生成第二版
编写程序,调用 rand 函数生成五个随机数
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
……
zylib.c int GetaIntegerFromKeyboard()
{ …… return t;
}
……
接 口
– 通过接口使用库:包括指定库的头文件与源文件 – 优势:不需了解库的实现细节,只需了解库的使用方法
西安电子科技大学
3
标准 I/O 库
输入输出函数 常用函数列表
– STRING gets( STRING buffer ); – int printf( CSTRING fmt, … ); – int puts( CSTRING str ); – int scanf( CSTRING fmt, … );
性能稳定
– 经过严格测试,不存在程序缺陷
西安电子科技大学
12
随机数库接口
设计随机数接口
#ifndef __ZYRANDOM__ #define __ZYRANDOM__
#ifndef __ZYLIB__ #include "zylib.h" #endif
void Randomize(); int GenerateRandomNumber( int low, int high ); double GenerateRandomReal( double low, double high );
编写程序,调用 rand 函数生成五个随机数
#include <stdio.h> #include <stdlib.h> int main() { int i; printf( "On this computer, the RAND_MAX is %d.\n", RAND_MAX ); printf( "Five numbers the rand function generates as follows:\n" ); for( i = 0; i < 5; i++ )
for( i = 0; i < 5; i++ ) printf( "%d; ", rand() );
printf( "\n" );
return 0;
}
西安电子科技大学
11
接口设计原则
用途一致
– 接口中所有函数都属于同一类问题
操作简单
– 函数调用方便,最大限度隐藏操作细节
功能充足
– 满足不同潜在用户的需要
int main()
{
int i;
printf( "On this computer, the RAND_MAX is %d.\n", RAND_MAX );
printf( "Five numbers the rand function generates as follows:\n" );
srand( (int)源自文库ime(0) );
– 其他数学函数
double sqrt( double x ); ……
西安电子科技大学
5
标准辅助函数库
工具与辅助函数 常用函数列表
– void exit( int status ); – void free( void * p ); – void * malloc( size_t size ); – int rand(); – void srand( unsigned int seed );
源文件或包含文件
– #ifndef __ZYLIB__ – #include "zylib.h" – #endif – 源文件或包含文件的具体内容在此
西安电子科技大学
8
5.2 随机数库
随机数的生成 库的设计原则 随机数库接口 随机数库实现 随机数库测试
西安电子科技大学
9
随机数的生成第一版
西安电子科技大学
4
数学库
数学函数
常用函数列表
– 三角函数与反三角函数系列
double acos( double x ); double sin( double x ); ……
– 幂函数与对数函数系列
duoble log( double x ); double pow( double x, double y ); ……