目录
语言:C语言
工具:Dev-C++
CSDN源码下载:C语言成绩管理系统源码
接上一篇,C语言成绩管理系统实例 附源码(一)继续唠叨。
四、系统设计中的要点
4.1 系统分块开发
C语言允许加工对象不是一个完整的程序,而是多个源程序文件。在程序规模比较大时,一般是根据结构化程序设计方法将程序划分成多个源文件。在编译该程序时,可以以源文件为单位分别进行编译并产生与之对应的目标文件,然后再用链接程序把所生成的多个目标文件进接成一个可执行文件。C语言的这种编译过程称为分块编译,这种开发方法称为分块开发。
C语言的这种分块开发和编译处理方法使一个程序可以同时由多个人进行开发,为大型软件的集体开发提供了有力支持。分块编译的优点还在于修改一个源文件中的程序后,并不需要重新编译整个程序的所有文件,这就大大节省了时间。
分块开发中最重要的工作是程序结构的"物理"组织。虽然对于同一个程序,完全可能采用不同的物理组织结构,但都必须遵循这样一个原则:使同一个程序对象的定义点和所有使用点都能参照同一个描述。例如,让它们参照同一个头文件。
按照惯例,常把C程序分为后级为.c和.h文件的两类文件。前者是包含实际程序代码基本程序文件,后者是为基本程序文件提供必要信息的辅助性文件。
4.1.1.头文件
编译程序库中的许多函数都要与它们自己的专门类型的数据和变量一起工作,用户的程序也必须访问这些数据和变量。这些变量和类型由编译程序提供的"头文件"所定义。在任可一个使用这些特定函数的文件中,必须嵌入涉及这些特定函数的头文件(用#include语句包含)。此外,对于C库中的所有函数,均在相应的头文件中有它们的原型定义,以便提供一个更强的类型检查手段。把程序中使用的标准函数与对应的头文件链接进来,就可以查出溶在的类型不匹配错误。例如,库函数中战入字符串函数的头文件string.h,使下面的程序在编译时产生警告信息。
#include <string.h>
char s1 [20] = “hello”;
char s2[ ]=“there”;
void main()
{
int p;
p=strcat(s1,s2);
}
因为在头文件中是strcat()说明为返回一个字符型指针,而程序中定义的变量p是整型,所以编译程序会给出一个可能出错的标记,指出错误地把该文件参数赋给了整型变量P。C编译器使用的头文件有些是重复的。例如,有的编译器在a11oc.h中出现的说明,又在stdlib.h中重复说明。保留多余的头部文件是为了让早先为ANSI标准编写的源文件,在编译时可以不必改动。
因为明确的数据类型对检查和防止程序出错具有积极的作用,所以最好开放所有的编译程序警告信息,利用所有必要的嵌入文件来