
任何复杂的算法,都可以由顺序结构、选择(分支)结构和循环结构三种基本结构组成。在构造算法时,也仅以这三种结构作为基本单元,同时规定基本结构之间可以并列和互相包含,不允许交叉和从一个结构直接转到另一个结构的内部去。结构清晰,易于正确性验证和纠正程序中的错误,这种方法就是结构化方法,遵循这种方法的程序设计,就是结构化程序设计。遵循这种结构的程序只有一个输入口和一个输出口。
结构化程序的概念首先是从以往编程过程中无限制地使用转移语句而提出的。转移语句可以使程序的控制流程强制性的转向程序的任一处,在传统流程图中,用"很随意"的流程线来描述转移功能。如果一个程序中多处出现这种转移情况,将会导致程序流程无序可寻,程序结构杂乱无章,这样的程序是令人难以理解和接受的,并且容易出错。尤其是在实际软件产品的开发中,更多的追求软件的可读性和可修改性,象这种结构和风格的程序是不允许出现的。为此提出了程序的三种基本结构。
在讨论算法时我们列举了程序的顺序、选择和循环三种控制流程,这就是结构化程序设计方法强调使用的三种基本结构。算法的实现过程是由一系列 *** 作组成的,这些 *** 作之间的执行次序就是程序的控制结构。1996年,计算机科学家Bohm和Jacopini证明了这样的事实:任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种基本结构组合而成。所以,这三种结构就被称为程序设计的三种基本结构。也是结构化程序设计必须采用的结构。
结构化程序中的任意基本结构都具有唯一入口和唯一出口,并且程序不会出现死循环。在程序的静态形式与动态执行流程之间具有良好的对应关系。
什么是C语言?C语言的简介。
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。
它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。
语言特点:C是中级语言/C是结构式语言/C语言功能齐全/C语言适用范围大/简洁紧凑、灵活方便/运算符丰富/数据类型丰富/C是结构式语言/语法限制不太严格,程序设计自由度大/适用范围大,可移植性好。
#include <stdioh>
#include <stdlibh>
#include <stringh>
#define MAX_NUM 50
#define MAX_LINE 256
struct student {
char name[10];
float math;
float chinese;
float eng;
float aver;
char grade;
};
const char student_file = "studenttxt";
const char grade_file = "gradetxt";
int init(struct student s, int n);
int fun(struct student s[], int n);
void sort(struct student s, int n);
void display(struct student s, int n);
void save_student(struct student s, int n, const char file);
void load_student(const char file);
int main(int argc, char argv[])
{
int num = 0;
struct student st[MAX_NUM];
num = init(st, MAX_NUM);
printf("\n等级为D的人数: %d\n", fun(st, num));
save_student(st, num, student_file);
sort(st, num);
save_student(st, num, grade_file);
display(st, num);
printf("\n所有学生信息\n");
load_student(student_file);
printf("\n排序后的学生信息\n");
load_student(grade_file);
return 0;
}
/ 初始化 /
int init(struct student s, int n)
{
int num = 0, i = 0;
if (0 == s || 0 >= n || MAX_NUM < n)
return 0;
printf("请输入学生数量[不大于50]: ");
fflush(stdout);
scanf("%d", &num);
while (0 >= num || n < num)
{
fflush(stdin);
printf("无效的参数,请输入学生数量[不大于50]: ");
fflush(stdout);
scanf("%d", &num);
}
for (i = 0; i < num; ++i)
{
printf("请输入第%d个学生的信息: ", i + 1);
fflush(stdout);
scanf("%9s %f %f %f", s[i]name, &s[i]math, &s[i]chinese, &s[i]eng);
fflush(stdin);
}
return num;
}
/ 计算平均成绩并统计等级为D的人数 /
int fun(struct student s[], int n)
{
int i = 0, cnt = 0;
if (0 == s || 0 >= n || MAX_NUM < n)
return 0;
for (i = 0; i < n; ++i)
{
s[i]aver = (s[i]math + s[i]chinese + s[i]eng) / 30;
if (70 <= s[i]aver && 85 > s[i]aver)
s[i]grade = 'B';
else if (60 <= s[i]aver && 70 > s[i]aver)
s[i]grade = 'C';
else if (60 > s[i]aver)
s[i]grade = 'D';
else
s[i]grade = 'A';
if ('D' == s[i]grade)
++cnt;
}
return cnt;
}
/ 降序排列 /
void sort(struct student s, int n)
{
int i = 0, j = 0;
struct student tmp;
if (0 == s || 0 >= n || MAX_NUM < n)
return 0;
for (i = 0; i < n - 1; ++i)
{
for (j = 0; j < n - 1 - i; ++j)
{
if (s[j]aver < s[j + 1]aver)
{
tmp = s[j];
s[j] = s[j + 1];
s[j + 1] = tmp;
}
}
}
}
void display(struct student s, int n)
{
int i = 0;
if (0 == s || 0 >= n || MAX_NUM < n)
return 0;
printf("所有学生的信息如下: \n");
for (i = 0; i != n; ++i)
{
printf("%d name[%s] math[%1f] chinese[%1f] eng[%1f] aver[%1f] grade[%c]\n",
i + 1, s[i]name, s[i]math, s[i]chinese, s[i]eng, s[i]aver, s[i]grade);
}
}
/ 保存学生信息到指定文件 /
void save_student(struct student s, int n, const char file)
{
int i = 0;
FILE fp = 0;
char buf[MAX_LINE] = {0};
if (0 == s || 0 >= n || MAX_NUM < n || 0 == file)
return 0;
if (fp = fopen(file, "w"))
{
for (i = 0; i != n; ++i)
{
sprintf(buf, "%s %1f %1f %1f %1f %c\r\n",
s[i]name, s[i]math, s[i]chinese, s[i]eng, s[i]aver, s[i]grade);
fwrite(buf, 1, strlen(buf), fp);
memset(buf, 0x00, MAX_LINE);
}
fclose(fp);
}
}
/ 加载指定文件中的信息 /
void load_student(const char file)
{
char buf[MAX_LINE] = {0};
FILE fp = 0;
if (0 == file)
return ;
if (fp = fopen(file, "r"))
{
while (fgets(buf, MAX_LINE, fp))
printf("%s", buf);
fclose(fp);
}
}
结构化程序设计的目的:通过设计结构良好的程序,以程序静态的良好的结构保证程序动态执行的正确性,使程序易理解、易调试、易维护,以提高软件开发的效率,减少出错率。构成:控制结构+数据结构,控制结构有顺序、选择、循环结构。方法:模块化,自顶向下,自底向上。
程序设计(Programming)是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。专业的程序设计人员常被称为程序员。
某种意义上,程序设计的出现甚至早于电子计算机的出现。英国著名诗人拜伦的女儿Ada Lovelace曾设计了巴贝奇分析机上解伯努利方程的一个程序。她甚至还建立了循环和子程序的概念。由于她在程序设计上的开创性工作,Ada Lovelace被称为世界上第一位程序员。
任何设计活动都是在各种约束条件和相互矛盾的需求之间寻求一种平衡,程序设计也不例外。在计算机技术发展的早期,由于机器资源比较昂贵,程序的时间和空间代价往往是设计关心的主要因素;随着硬件技术的飞速发展和软件规模的日益庞大,程序的结构、可维护性、复用性、可扩展性等因素日益重要。
另一方面,在计算机技术发展的早期,软件构造活动主要就是程序设计活动。但随着软件技术的发展,软件系统越来越复杂,逐渐分化出许多专用的软件系统,如 *** 作系统、数据库系统、应用服务器,而且这些专用的软件系统愈来愈成为普遍的计算环境的一部分。这种情况下软件构造活动的内容越来越丰富,不再只是程序设计活动了,还包括数据库设计、用户界面设计、接口设计、通信协议设计和复杂的系统配置过程。
程序设计(Programming)是指设计、编制、调试程序的方法和过程。它是目标明确的智力活动。由于程序是软件的本体,软件的质量主要通过程序的质量来体现的,在软件研究中,程序设计的工作非常重要,内容涉及到有关的基本概念、工具、方法以及方法学等。
按照结构性质,有结构化程序设计与非结构化程序设计之分。前者是指具有结构性的程序设计方法与过程。它具有由基本结构构成复杂结构的层次性,后者反之。按照用户的要求,有过程式程序设计与非过程式程序设计之分。前者是指使用过程式程序设计语言的程序设计,后者指非过程式程序设计语言的程序设计。按照程序设计的成分性质,有顺序程序设计、并发程序设计、并行程序设计、分布式程序设计之分。按照程序设计风格,有逻辑式程序设计、函数式程序设计、对象式程序设计之分。
程序设计的基本概念有程序、数据、子程序、子例程、协同例程、模块以及顺序性、并发性、并行性、和分布性等。程序是程序设计中最为基本的概念,子程序和协同例程都是为了便于进行程序设计而建立的程序设计基本单位,顺序性、并发性、并行性和分布性反映程序的内在特性。
程序设计规范是进行程序设计的具体规定。程序设计是软件开发工作的重要部分,而软件开发是工程性的工作,所以要有规范。语言影响程序设计的功效以及软件的可靠性、易读性和易维护性。专用程序为软件人员提供合适的环境,便于进行程序设计工作。
计算机程序或者软件程序(通常简称程序)是指一组指示计算机每一步动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。打个比方,一个程序就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序),用于指导懂汉语的人(体系结构)来做这个菜。 通常,计算机程序要经过编译和链接而成为一种人们不易理解而计算机理解的格式,然后运行。未经编译就可运行的程序通常称之为脚本程序。
以上就是关于什么叫结构化的程序设计 它的主要内容是什么全部的内容,包括:什么叫结构化的程序设计 它的主要内容是什么、什么是C语言程序设计、C语言程序设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)