时间:2023-08-04 09:18:59
绪论:在寻找写作灵感吗?爱发表网为您精选了8篇程序设计基本结构,愿这些内容能够启迪您的思维,激发您的创作热情,欢迎您的阅读与分享!
C语言 结构化程序设计 循环结构 效率
一、引言
学习和应用计算机高级程序设计语言的人都知道,在这些语言中为实现结构化程序设计,一般都会采用三种最基本的结构,即顺序结构、选择结构和循环结构。因此,掌握这三种基本结构的使用方法,是学习和掌握高级程序设计语言课的基础。这三种基本结构中,顺序结构和选择结构和我们平常的思维习惯相似。因此,最容易理解和掌握;而循环结构是这三种基本结构中最复杂的一种结构,与我们日常的思维习惯不尽相同,因此理解起来相对来说比较困难。但是,几乎所有的程序都离不开循环结构,利用它可以简化程序、提高工作效率。因此,学习和应用高级程序设计语言的人又必须要掌握循环结构。但是,通过本人近几年的教学发现,大多数学生在学到循环结构一段时间后,干脆将这门课给放弃了,原因是他们觉得循环结构太难理解了。用顺序结构和选择结构做一个小程序还可以,用循环结构实在难理解。鉴于这个原因,本人将日常授课中总结出来的一点心得从初学者的角度写出来,希望能对即将和正在学习高级程序设计语言课的人有所帮助。当然,我们在这里是以C语言为例来说的,其实这方面的知识对其他语言比如Visual Basic语言等同样适用。
在C语言中,循环结构主要是由For语句、While语句、Do-While语句三种结构来实现的。而在这三种循环结构语句中又以for语句的应用更为广泛。因为for语句在其开头语句中就已经包含了循环变量的初始值、循环变量的终止值、循环的判断条件以及循环变量的变化趋势等这些内容,因此在编写其循环体时,只用考虑其循环体应该包含的主要功能就行了,而不用在For语句之前对循环变量的初始值进行过多地考虑,同样也不用在循环内部考虑其循环变量如何变化。对大多数有程序设计经验的人来说,使用for语句实现循环结构是一件轻而易举的事情。但是,对于没有经验的初学者来说,要想将for语句的作用及使用方法掌握住也不是一件容易的事情,更不用说While语句、Do-While语句的使用了。因此,本文从初学者的角度,阐述了C语言中循环结构的几种典型应用。
二、用循环结构输出几何图形
在教学过程中,不管开设哪一种高级程序设计语言课,只要一讲到循环结构,大多数老师几乎不约而同地选择输出简单的几何图形来作为讲解循环结构的最好实例。
对于这种类型的题目,初学者往往最容易想到的方法就是采用多条输出语句来完成程序的设计。虽然这种方法很快能够实现所要效果,但其缺陷也是很明显的:缺乏灵活性、程序修改起来不方便,也不符合程序设计的思想。比如,我想让大家输出8行,每行36个“*”。这个时候,我们就不得不在输入“*”的时候特别仔细,因为一不小心可能个数就不对了。
但是,这样的问题如果用循环语句来实现的话,程序不但可以简化多,并且可以很灵活地将其修改成我们想要的效果。
因此,在讲解这一类图形时,授课教师最好引导学生按照正常的程序设计思想,先分析图形的组成结构,找出其中变化的规律,然后按照所找到的规律用循环结构来编写出相对应的程序代码,这样一旦要求有一点点变化不用大篇幅地修改程序,而只用找到关键的几个地方修改一下就可以了。教师在讲解的过程中,可以举一反三,多次修改、让学生反复练习,直到他们理解为止。
现在,我们来具体分析一下该图形,看看它有什么样的特点,然后我们利用For循环将它的程序代码编写出来。
三、结束语
以上关于循环结构的使用基本上都是在程序设计教学过程中的一些体会与总结,可能比较肤浅,但是对于初学者来说,掌握这些知识还是有必要的。在进行课程教学的过程中,将自己在学习过程中得到的一些好的方法传授给学生,让他们从中去实践、体会,从而引起他们更大的学习兴趣是必要的。如何让一名初学者尽快摆脱日常的思维定式,更加透彻地理解和掌握程序设计中的基本思想,领会程序设计的精髓,是高级语言程序设计这门课程在讲授过程中,应该时刻注意的问题。更希望学生在学习的过程中不只是从老师这里拿一些现成的经验去使用,更重要的是让学生学会自己去发现问题、解决问题,总结出一些更好的程序设计方法,为以后进行软件开发与设计打下良好的基础。
参考文献:
[1]谭浩强.C程序设计(第三版)[M].清华大学出版社,2005.
[2]苏运霖.计算机程序设计艺术第1卷・基本算法[M].北京:国防工业出版社,2002.
[3]谭浩强.C语言程序设计(第二版)[M].北京:清华大学出版社,1999.
摘要:本文在分析了C语言程序设计课程的教学现状和教学困境的基础上,对比自然语言和程序设计语言的共性以及C语言的特殊性,提出了“从概念入手,侧重程序阅读和程序设计能力培养”而非“语法研究”的教学角度。
关键词:C语言;程序设计;教学内容;教学角度
中图分类号:G64 文献标识码:A
1教学现状
在高等学校的本科教育中,“C语言程序设计”几乎成了所有专业的必开课程,从计算机科学与技术、软件工程、网络工程等相关专业,到电子信息类理工科各专业,乃至理工科院校的所有非计算机专业,有的是专业基础课,有的是公共必修基础课,有的是“非计算机专业的计算机基础课”。只是课程名稍有差异,常见的有“C语言程序设计”、“高级语言程序设计”、“C语言”、“C程序设计”、“结构化程序设计”等。无论叫什么样的课程名,也无论是哪类专业,其课程的教学要求和教材选用却无太大差别,只是课时分配差异较大。
从网络调查的16所不同类型高校的“C语言程序设计”教学大纲看,普遍都包含“通过本课程的学习,使学生了解有关程序设计的基本概念、术语及C语言的特点,掌握C语言基本数据类型、语法规则、程序控制结构、常用的标准库函数,培养学生的程序设计技能,初步积累编程经验”的教学基本要求;约百分之八十左右的“C语言程序设计”课程都选用由谭浩强主编、清华大学出版社出版的“C程序设计”作为主教材;课时分配从30~108课时不等,其中80课时以上的多为应用型本科院校的计算机相关专业以及综合性大学的非计算机专业,理论课时与实验课时的比例一般为1:1到1:1.2。与此同时,其他专业基础课(如计算机组成原理、操作系统、数据结构等)的课时一般为54课时,最多不超过72学时。相比之下,“C语言程序设计”所占课时是其他专业基础课的1.5倍至2倍。
从教学目的看,非计算机专业的“C语言程序设计”课程主要目的是“掌握语法规则和程序结构,具备一定的程序设计能力”,而计算机相关专业的“C语言程序设计”课的教学目的则要分为三个层次,一是使学生全面理解计算机程序设计语言的基本内容和结构;二是通过算法掌握程序设计的基本方法和步骤,并具备一定的程序设计能力;三是为后续课程的算法描述和其他程序设计语言的学习奠定基础。
2教学误区
从以上的教学现状(特别是课时分配)看,长期以来,“C语言程序设计”的课程教学存在“教学内容背离教学要求和教学目的”的误区,主要表现在教材误区、讲授误区和考核误区三个方面。
2.1教材误区
国内高校的“C语言程序设计”课大多选用谭浩强主编、清华大学出版社出版的“C程序设计”[1]为主教材,目前使用的是2005年7月修订出版的第三版,教材共363页,主体内容分为14章,其中,第3章的数据类型与表达式占用30页,第4章的格式输入输出占用12页,前9章共占用218页,后5章共占用145页。占用如此大篇幅的原因是教材中除了介绍相关语法格式外,还增加了相当多“特殊格式”和“特殊情况”的解释和说明,因此,该教材的最大优点就是“内容详尽、解释清晰”。然而,对于初学者来说,学习计算机程序设计语言就是为了“为计算机描述求解问题的过程”,过于详细但又远离现实问题的“特殊格式”和“特殊情况”的解释,使得学习内容复杂化,增加了程序设计语言学习的难度,误导了学习者的学习重点,由此也赋予了该教材无法掩饰的缺点,那就是教材编写的指导思想和教材内容的组织脱离了高校各专业“C语言程序设计”课程的教学目标,过分强调语法细节而忽略了程序设计语言的“正向表达能力”的应用,过分强调“语言的灵活性”而导致教材主体内容的“复杂化”,从而误导“C语言程序设计”课程的教学内容朝着“重语法学习、轻算法描述”的“语言研究”方向发展。
2.2讲授误区
由于教材内容的“复杂”,课堂讲授自然需要较多课时,教学重点当然也放在了“语法研究”上。从网上下载的“C程序设计(第三版)”的配套教学课件以及有关院校的“C语言程序设计”教学课件的内容组织上可以清楚的给出以上判断。“语法研究”型的课堂讲授,更加放大了教材对“C语言程序设计”课程内容的“扭曲”程度,给学生提供了错误的程序设计语言学习方法,把简单问题复杂化,更为严重的是,挫伤了学生学习计算机程序设计语言的兴趣和积极性,把本应“主动学习”的课程成引入了“被动学习”的歧途,直接导致“懂语法、会做题,但不会编程序”的教学后果。
2.3考核误区
多年来,“C语言程序设计”的主体考试内容就是“语法”,无论是选择题、填空题还是程序阅读题,大多都无法逃脱“语法”的束缚。考试方式以笔试为主。这在某种程度上肯定了“语言研究”的教学角度,促使“C语言程序设计”的教学重点更向“语法研究”的方向倾斜,最终误入“增加课时,强化语法,还是不会编程序”的怪圈。
3应有的教学角度
按照网上调查的各专业教学大纲中“培养具有一定程序设计能力”的教学目的,“C语言程序设计”课程的教学落脚点应该更确切的理解为培养“能用程序设计语言描述求解问题过程”的一般程序设计者,而不是造就“全面掌握程序设计语言语法、能设计高效、难懂程序”的程序设计语言方面的“作家”。因此,“C语言程序设计”课程教学相当于自然语言中的“基本语言能力”教学,而不是“语言研究”或“高级写作”能力培养。
3.1自然语言与计算机程序设计语言
计算机程序设计语言是用人和计算机都能识别的方式描述计算机求解问题过程的过程描述语言,它具有和人所使用的自然语言相同或相似的组成和结构特点,对于已经掌握了至少一门自然语言(比如汉语或英语)并具备一定文化程度的人来说,学习一种计算机程序设计语言并非难事。自然语言的基本组成包括符号集合、字、词、句、数据及其运算规则等基本要素,学习过程包括认识符号、发音、识字、组词、学语法并造句、学文法并写短文、练习写文章等基本阶段,在具备了基本的语言能力之后,扩充词汇量和提高写作能力将成为终身学习的基本内容。按照自然语言的基本组成和学习过程,也可将计算机程序设计语言的基本组成归纳为字符集、标识符(常量、变量、保留字等)、数据类型、运算符、表达式、语句、程序格式等基本要素,其中,字符集和数据类型是定义程序设计语言的基础,字符按一定规则组成标识符,用来充当常量名、变量名或其他标识,在自然语言中被人们公认的特殊标识符被赋予特定的语言含义,专门为语言系统所用(用户不得再次定义其意义),称为保留字;字符集中的特殊符号(如+、-、*、/)被赋予特定的运算意义(如加、减、乘、除)称为运算符;不同数据类型的常量、变量用运算符按一定规则连接起来组成的式子就构成表达式;将特定的保留字与表达式等语言要素按照语法规则组合起来就形成相应的语句;将语句按照要描述的求解问题的逻辑顺序排列起来,就构成了某种程序设计语言求解特定问题的一段程序。
3.2C语言的特殊性
一方面,C语言是程序设计语言的一种,具备一般程序设计语言的基本组成要素和结构特点。另一方面,C语言能成为面向过程的结构化程序设计语言的代表,也有其自身的特殊性。首先,C语言的数据类型极为丰富。除了基本数据类型外,还有构造类型、指针类型、空类型和用户自定义类型,其中,构造类型包括数组、结构体(struct)、共用体(union)和枚举类型(enum)等四种数据结构。其次,C语言具有位操作能力。除了能够对各类变量进行操作外,C语言还具备“按位”进行逻辑“与”、“或”、“非”、“异或”运算和“左”、“右”移位运算,这使得C语言具备了更强的系统开发能力。第三,C语言具有显著的结构化程序设计能力,并通过完整的函数定义来实现。第四,C语言的最大特点就是“语法限制不严,解释灵活”。第五,C语言允许直接访问物理地址,可直接对硬件端口进行操作。第六,C语言没有输入/输出语句,信息输入/输出功能由标准函数库中相应的I/O函数来完成。
C语言的这些特殊性,决定了C语言的教、学过程不同于其他程序设计语言的教学过程。
3.3C语言的教学角度
根据一般程序设计语言的基本组成与结构特点,结合C语言的特殊性,“C语言程序设计”课程的教学角度应该是:从介绍程序设计语言的基本概念入手,重点介绍语言的“正
向”设计功能而非“特殊格式”或“特殊语法”说明,侧重学生的程序阅读和程序设计能力培养,从教学内容的广度和深度两个方面,恰当把握教学角度。
“C语言程序设计”课程的内容可分为三个基本模块,教学过程从第一个模块切入,逐渐扩展到第二和第三个模块。第一个模块可称为“程序设计语言公共模块”,主要包括程序设计语言的基本概念、程序设计语言的基本要素(字符集、标识符、常量变量以及保留字、基本数据类型、运算符、表达式、语句与控制结构、程序结构以及程序书写规范等)以及输入/输出格式等内容;第二个模块是C语言的主体,主要包括函数、数组、指针、文件等;第三个模块是高级编程内容,主要包括结构体(struct)、共用体(union)、枚举类型(enum)以及用户自定义类型等。
在教学深度方面,各模块的教学重点应放在“规范的语法描述和直观易懂而且正确的语义表述上”,避免涉及各种过细的“不符合人类阅读习惯”的语义描述,暂时避开“特殊格式”或“特殊情况”的纠缠,摆脱“研究语法”的错误向导。在此基础上,第一模块的教学可与自然语言相比对,通过学生已有的自然语言学习经验和语言要素,使学生快速建立程序设计语言的基本概念,正确理解程序设计语言的基本要素及其关系,掌握基本语法和程序基本控制结构(顺序、选择、循环),并通过算法归纳求解问题的过程,正确理解算法不同描述方式(自然语言、传统流程图、N-S流程图、伪代码、程序设计语言)的作用和差异,特别是从“问题”到“程序”的渐进转化过程,从而培养学生的基本程序设计能力。通过第二模块的教学,使学生明确函数、数组、指针、文件等概念和作用,掌握它们的定义和引用方法,能进行相应数据类型的编程,进而掌握用函数定义的结构化模块程序设计的方法;通过第三个模块的教学,将程序的数据处理能力扩展到结构体、共用体、枚举类型以及用户自定义类型等复杂数据类型的处理上来,通过恰当的例子应用这些数据类型,向学生展示C语言强有力的数据表示和处理能力。
另外,可以将C语言中的“语法灵活性”和不同部分的各种“特殊情况”分类总结,归纳整理成“语言参考手册”等形式,以附录的形式提供给学生,以便需要时“备查”。这样既可节省教学课时,又可向学生提供学习语言的主动权。
3.4教学策略和方法
“C语言程序设计”属语言类课程,教学过程充满了逐步完善和熟练的基本特点,因此,从教学安排的策略上要分重点、分阶段逐步进行,每个阶段的教学方法应该采用建立在一定基础上的有重点的“部分教学法”,以核心内容为基础,向外逐渐延伸,部分学习,渐进掌握。尽可能避免不分主次、不论难易、不顾急缓,盲目一次性扫清各类知识点的“地毯式”教授方法或学习方法,同时强调自学和上机验证,强化在特定环境下(如Turbo C++ 3.0)的程序设计训练,做到“精讲多练[2]”,从小程序练起,逐渐过渡到求解较大或实际问题的程序设计上来。
4结束语
从目前的教学现状看,无论是计算机相关专业,还是理工科的电子信息类专业,乃至综合性大学的非计算机专业,“C语言程序设计”的课程教学均占有重要的教学地位,在全面提高教学质量和教学效率的今天,不同类型专业结合自身优势和程序设计语言类课程的特点,选择合适的角度组织和实施“C语言程序设计”课程的教学活动非常重要,而且很有必要。笔者的教学实践证明,避开“语法研究”的程序设计教学不仅可减少课时,更可提高学生利用程序设计语言“表述求解问题过程”的能力。
参 考 文 献
结构程序化设计方法如下:
结构化程序设计方法是按照模块划分原则以提高程序可读性和易维护性、可调性和可扩充性为目标的一种程序设计方法。在结构化的程序设计中,只允许三种基本的程序结构形式,它们是顺序结构、分支结构、(包括多分支结构)和循环结构,这三种基本结构的共同特点是只允许有一个流动入口和一个出口,仅有这三种基本结构组成的程序称为结构化程序。结构化程序设计适用于程序规模较大的情况,对于规模较小程序也可采用非结构化程序设计方法。
(来源:文章屋网 )
关键词: 循环结构 C语言 程序设计
引言
顺序、选择、循环是结构化程序设计的三种基本结构,所以在高级语言程序设计课程中,掌握这三种结构是学好程序设计的基础。循环结构是这三者中最复杂的一种,几乎所有的程序都离不开循环,因此,熟练掌握循环结构是程序设计的最基本的要求。在C语言中,循环结构主要是由for和while、do-while语句实现的,其中for语句的应用更为普遍一些。for语句的用法对于有程序设计经验的学生来说轻而易举,但是对于那些没有经验的初学者来说难度却不小。本文从初学者的角度,阐述了C语言中循环结构几种典型应用的实现方法。
一、用循环结构实现几何图形
输出简单的几何图形,是循环结构的典型应用之一。对于这一类型的题目,初学者往往直接采用一条或若干条输出语句printf完成,这样虽然可以完成题目要求,但是很显然缺乏灵活性,不符合程序设计的思想。按照正常的程序设计思想,应该先分析图形的构成,找出其中的规律:如图1中的实心三角形,每一行由若干个空格、星号和一个回车换行符构成,将行号、空格数和星号数分别设为i、m和n,则可形成表1:
*
***
*****
*******
*********
由表1可以得出,行号i与空格数m、星号数n有如下的数学关系:
m=5-i,n=2×i-1
则实心三角形的构成规律可以描述为:第i行由(5-i)个空格和(2×i-1)个星号和一个回车符构成。把行号i作为for语句的循环变量,则此程序中的循环部分如下:
for(i=1;i<=5;i++)
{
/*输出(5-i)个空格;*/
for(m=1;m<=5-i;m++)
printf(“”);
/*输出(2*i-1)个星号;*/
for(n=1;n<=2*i-1;n++)
printf(“*”);
/*输出回车符;*/
printf(“\n”);
}
采用上面的方法,可以使学生很容易编写出类似的程序,其中关键在于让学生找出图形中行号与每一行的空格数及星号数的关系。
二、循环结构在数组中的应用
在C语言中,for语句经常与数组相结合,用于实现数组元素的赋值、输入和输出。对于初学者来说,更习惯于用顺序结构的语句来实现(如图2左)。我们将图2左的几条语句作比较,可以看出在这5条语句中,不同的只有数组下标,那么就可以将这5条语句合并成一条for语句,将数组下标换成for语句的循环变量i,而i的值从0增加到4。按照for语句的基本语法规则可以很容易写出图2右的for语句。
同样,对于下面这个输出二维数组元素的例子,也可以用上述方法实现,不过转换过程比上例要复杂一些:经过对比图3左侧方框中顺序结构的12条语句,可以发现也是只有数组下标在变化,但是由于是二维数组,行下标和列下标同时都在变化,很显然不能直接用一条简单的for语句来实现。但是我们可以把这12条语句细分一下,3条语句为一组,而在同一组中的语句只有列下标在变化,这时可以采用上例中的方法,将列下标都用循环变量j来代替,得到图3右上的形式。再次对比图3右上的4条for语句,不同的是行下标,同样用新的循环变量i来代替,合并后得到图3右下最终二重for循环的语句。
三、循环结构中的效率问题
程序设计的初学者往往以完成题目要求的功能为目的,程序的执行效率是最容易忽略的一个问题。在循环结构中,具体表现为循环体的执行次数。例如,一个经典的素数判定问题。在数学中素数的定义为:素数即指那些大于1,且除了1和它本身外,不能被其它任何数整除的数。根据这一定义,初学者很容易编写出如下所示的程序段:
int isprime(int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0)return 0;
return 1;
}
上面的程序,完全可以实现题目要求的功能,初学者往往满足于此。但是当对for循环的执行次数进行分析时,我们发现:当n不是素数时,没有任何问题;而当n是素数时,循环体就要执行(n-2)次,而实际上是不需要这么多次的。根据数学的知识,可以将次数降为n/2或n的算术平方根,这样可以大大减少循环体的执行次数,提高程序的效率。
程序的执行效率是编程中时刻需要考虑的问题,也是程序设计中的基本要求。这需要许多算法方面的知识,对于初学者来说,要求可能过高,但是我们在讲授过程中要注意向学生灌输这种思想,从学习之初就要打下良好的基础,尤其是类似上面例子中这样显而易见的情况,可以提醒学生在编制完一道程序以后,检验一下,是否还有可优化的地方,这对以后进一步学习高级编程都是必要的。
如何让一名初学者尽快摆脱日常的思维定式,更加透彻地理解和掌握程序设计中的基本思想,领会程序设计的精髓,是高级语言程序设计这门课程的讲授过程中应该时刻注意的问题。希望本文能在这方面起到一点作用。
参考文献:
关键字:程序设计语言教学改革
中图分类号:G642 文献标识码:A 文章编号:1672-3791(2012)02(c)-0000-00
1 概述
计算机程序设计语言,通常简称为编程语言,是一组用来定义计算机程序的语法规则。它是一种被标准化的交流技巧,用来向计算机发出指令。
当今计算机程序设计语言种类繁多、共性大、更新速度快,同时软件工程和项目管理的蓬勃发展使得计算机软件开发从业人员的职业分工更为明确。从人力资源与社会保障部颁布的“计算机程序设计员国家职业标准”上看,除了要求从业者必须要有扎实的基本功外,还要具备解决问题的综合能力。因此计算机程序设计员专业的学生在计算机程序设计语言的知识和技能的学习中,不能再仅仅孤立地教授几门编程语言、几门相关的专业课程而已,而是要教会学生掌握通过计算机程序设计来解决实际问题的知识和技能,成为一名合格的“软件蓝领”。这就要求我们不能延续传统的学历教育方法,计算机程序设计语言教学需要改革,需要一种全新的教学理念和模式。
当前的教学改革更多的体现在教学方法和内容上,“学习领域”、“任务驱动”、“职业岗位导向”、“面向工作”等各种课程设计方法层出不穷。然而,纵观大部分课程改革,我们发现其教学改革更多体现在独立的课程中,并没有在课程与课程的衔接上下功夫。大部分院校均先后开设VB、C、C++、JAVA等多门程序设计语言和数据结构、数据库管理系统等专业课程,学生虽然学习了多门程序设计语言,然而每一门语言都只学了皮毛,每一门课程都学了基础,只能完成课堂和课后的作业和练习,而对于能解决什么问题,怎么解决问题,如何综合解决问题一筹莫展,碰到问题时往往觉得无从下手。
2 程序设计语言教学探索与改革:C语言学习三部曲
C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点,同时很多新型的语言都是衍生自C语言,,掌握了C语言,经过简单的再学习,就可以用其他新型的语言去进行程序开发了。因此,在计算机专业的课程中,只要把C语言学扎实了、学透了,就可以说掌握了计算机程序设计语言的精粹。在课程设计中,我们以C语言为主线,以一脉相承的C语言、C++语言、C#语言为基本知识内容,配合上数据结构、UML、数据库等相关知识点,提出语言知识入门、语言能力提高、语言技能应用三个阶段和应用层次的“C语言学习三部曲”的课程改革方案。
第一阶段:语言知识入门――C语言与数据结构整合
1、课程知识要求:
1) 掌握C语言的基本语法,如数据类型,3种语句结构,数组,指针等。
2) 掌握数据基本结构形式和操作,如线性结构,树形结构,图形结构,以及数据结点的查找、添加、删除、排序等操作。
3) 掌握“自顶先下、逐步细化”的结构化程序设计方法。
2、课程技能要求:
掌握如何用计算机解决日常问题,特别是数据的表现形式和动作行为的表现形式。
3、课程设计要点:
将C语言和数据结构进行有机整合,特别是在讲解C语言的数据类型时溶入数据结构知识,在讲解C语言的语法结构时溶入数据结构的数据操作知识。
4、课程目的:
通过该课程的学习,要求学生掌握基本程序设计思想和理论,学会数据及数据处理由现实世界向计算机世界的转换方法和过程,学会用计算机程序设计语言描述和解决日常生活中问题。
第二阶段:语言能力提高――C++语言与UML工具整合
1、课程知识要求:
1) 掌握C++语言的高级语法知识以及面向对象的概念和形式,如面向对象的三大特征:封装、继承、多态,以及模板等概念。
2) 掌握UML知识,掌握利用UML工具(如ROSE)来进行面向对象的分析和建模的方法和过程。
3) 掌握以“抽象与分类”为关键的面向对象的程序设计方法。
2、课程技能要求:
掌握如何用计算机解决日常问题,特别是以面向对象的方法来分析和解决问题。该课程要求学生在第一阶段掌握了结构化的设计方法后,进一步了解面向对象程序设计方法。
3、课程设计要点:
把C++语言和UML进行有机的整合。将UML作为面向对象程序设计的分析和设计的工具,而将C++语言作为进行面向对象程序设计的编程和实现工具。
4、课程目的:
通过该课程的学习,要求学生掌握面向对象理论,学会面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程(OOP)方法和工具。
第三阶段:语言技能应用――C#语言与数据库操作整合
1、课程知识要求:
1) 掌握C#语言的高级语法知识和软件架构知识,如集合、委托、托管、、C/S与B/S架构开发方法等。
2) 掌握数据库操作知识,如SQL语法、、XML等。
2、课程技能要求:
掌握多层架构的数据库应用系统开发方法。,该课程要求学生在复习第二阶段的面向对象的设计方法后,掌握开发.Net应用系统的方法,掌握将数据存储在数据库中的方法,以及掌握对数据库进行查询、添加、删除等操作的方法和步骤。
3、课程设计要点:
将C#语言与数据库操作知识进行有机整合,在讲解用C#语言开发基于.Net的多层架构应用系统中,通过讲解与LINQ将SQL溶入C#语言。
4、课程目的:
通过该课程的学习,要求学生掌握C#语言和数据库操作,掌握通用的企业级应用系统的开发方法和过程。
3 结语
教育部部长周济在2008年度职业教育会议上说到:“以改革创新为强大动力,推动职业教育又好又快发展”。职业教育的生存和发展,离不开教学改革和创新。在进行计算机程序设计语言教学探索与研究中,我们通过走进企业,与企业软件开发人员的进行密切联系与沟通,了解市场发展与需求等一系列调研后,提出了改革方案并付诸实施。实践证明我们的改革思路是正确的,课程改革是卓有成效的。
参考文献
[1] 谭浩强,“C程序设计”[M],清华大学出版社
关键词:Visual Basic;必修课;选修课;区别
中图分类号:TP311 文献标识码:A 文章编号:1674-7712 (2013) 06-0204-01
一、简介
随着计算机科学和技术的发展,大学计算机课程的设置有了很大变化。大学计算机教学不再以基础操作为主,而变为基本操作、应用软件、程序设计、计算机原理等知识的综合。为此本校在开设了Visual Basic(以下简称VB)程序设计课程。但是,由于专业特点,某些班级无法开设过多的计算机课程。为此,经过与学校教务、学院、系等部门多次商定,本校的VB程序设计分为两个层次。必修层次课时为54,包含28课时讲授和26课时上机操作。选修课为36课时,包含讲授和上机操作各18课时。
二、教材与知识结构分析
我校选择的教材为高等教育出版社的《Visual Basic程序设计教程》(第3版)。选用该教材的原因是其内容条理性好,适合非工科专业学习。有可能在短时间内帮助学生建立起程序设计的基本概念,并能快速的解决实际问题。从目录看,该教材教学内容条理清晰,从基础开始由浅入深。其内容分为10章,如表1。
从历年的教学经验看,对该教材的教学内容分析如下。第1章作为与计算机文化基础课程的衔接,介绍了VisualBasic6.0集成开发环境的使用。第2章介绍了面向对象编程的基本概念:类-对象,属性-事件-方法等。第3章介绍了VB语言的基本语法。一般认为,这三章是该门课程的基础性内容,可以采用与文化基础类似的教学手段,使用讲授和验证性实验结合,帮助学生快速的学会集成开发环境的使用,并按照程序设计的五个步骤,完成并熟悉简单VB程序设计。
本书的第4章到第6章是核心内容,具体讲授了VB程序设计。其中第4章讲授了顺序、分支、循环三种基本的程序设计方法。第5章介绍了数组这一最基本的数据结构。第6章则介绍了过程与函数,将VB程序划分为更细致的结构。第7、8两章的内容相对独立,可以认为是对前面学习的总结。第7章介绍了界面设计,第8章介绍了VB的基本输入输出。本书的最后两章介绍了VB在图形和数据库两方面的应用。
三、授课计划分析
对于涉及的8章教学内容制定授课计划如下。第1章,首先回顾计算机文化基础课程中关于二进制、编码等知识。这些知识有助于学生进一步认识计算机中信息处理的方式,即所有信息数字化的方式。这样充分利用基础知识,可以帮助学生快速的熟悉环境,降低进一步学习的难度。第2章介绍面向对象程序设计的基本概念,并利用最常见对象的属性、时间和方法,给出了验证性的实验。通过简单的编程操作,完成输入、输出等任务。第3章讲授表达式的书写。通过量(包括变量和常量)、运算符和函数,将实际问题转换为表达式,然后由计算机求解。
接下来的4、5、6三章,是本课程的核心内容。第4章的内容被分为三部分,按照顺序结构、分支结构和循环结构组织,在三次讲授中分别介绍具体内容。在顺序结构中,介绍赋值语句、输入/输出语句。选择结构则以If和Select语句为主,介绍了最基本的二分支结构程序设计和由此演变而来的单分支、多分支。这一部分着重提示学生,尽管程序书写顺序仍旧为从上到下,但是并不是每条语句都会执行。通过动画演示程序根据不同的输入,计算分段函数值。循环结构则结合第5章的数组进行介绍。指出“循环变量控制数组下标”这一经典组合可以解决大量的实际问题。对于第4、5章剩余的部分则单独利用课时,讲解组合框控件、程序调试等知识。因自定义类型与数据库相关,因此删去不讲。第6章则介绍过程与函数的概念,帮助学生建立对复杂问题“分而治之”的原则,化简问题方便求解。
在本课程的最后以“温故而知新”的方式,帮助学生一边回顾已有知识,一边丰富现有的程序。从软件的界面的美化,到添加菜单、对话框等功能模块,再到计算和处理问题结果的保存。学生此时对以往知识进行总结,结合较为简单的内容,进一步丰富和巩固程序设计的知识和技巧。
在选修层次的教学中,因学生选课时,已经要求有一定的程序设计学习经验。经过调查显示,大部分学生是在自学了C/VB等语言后才来参加学习,加之学生已经对计算机基础知识有一定的了解和掌握,因此在必修课程教学计划的基础上,删除了对第1章和第2、3章部分内容的讲授。由于选修课课时分配为每周3课时,因此这一部分内容,在第1次讲课时完成,并在第1次上机课加以操作验证。从历年经验看,效果尚可。接下来的三个单元,与必修课要求一致,分别介绍程序设计的三大结构。剩余的两个单元则针对学生对阅读程序、解决问题的实际需求,加重讲授第6章的内容,并在最后读取、演示大量的实际程序,帮助学生理解他人编写的程序,并能从其中取长补短,提高自己程序设计的水平。
2、线性表的定义:线性表的顺序存储结构及其插入与删除运算。栈和队列的定义;栈和队列的顺序存储结构及其基本运算。线性单链表、双向链表与循环链表的结构及其基本运算。
3、树的基本概念:二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。
4、程序设计基础:程序设计方法与风格。结构化程序设计。面向对象的程序设计方法,对象,方法,属性及继承与多态性。
5、软件工程基础:软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。结构化分析方法,数据流图,数据字典,软件需求规格说明书。结构化设计方法,总体设计与详细设计。
6、软件测试的方法:白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。程序的调试,静态调试与报考调试。
7、数据库设计基础:数据库的基本概念:数据库,数据库管理系统,数据库系统。数据模型,实体联系模型及 E-R 图,从 E-R 图导出关系数据模型。
关键词:C语言;程序设计;学习方法;学习兴趣
中图分类号:TP312.1-4
《C语言程序设计》是计算机专业的一门核心专业基础课程,是专升本、考研和等级水平考试的必考科目,也是学生学习中感到比较吃力的一门课。那么,如何学习《C语言程序设计》这门课程呢?现根据自己多年在教学中的体会,谈一些粗浅的认识。
1 为什么要学习《C语言程序设计》
《C语言程序设计》是用C语言来编写程序的,每个程序员在他们的编程生涯中都应该学习C语言,因为它有太多难以忽视的好处了。除了它会给你提供更多的工作机会之外,C语言还会教给你更多的关于计算机的知识。它的好处如下:
1.1 C语言是一种计算机程序设计语言
它既具有高级语言的特点,又具有汇编语言的特点,既可以用来编写系统软件,又可以用来编写应用软件。它不仅具有绘图能力强,还具备很强的数据处理能力,因此也适于编写三维,二维图形和动画。
1.2 C语言具有功能强大、使用灵活、丰富的数据类型和运算符、结构化的控制语句、目标代码运行效率高、适用范围大、可移植性好等优点。
1.3 C语言是各大操作系统的基础,Unix、Linux、Windows其内核都清一色是C语言开发的,(某些地方是和汇编语言混合开发的),还有各种语言的编译器,包括java虚拟机,各种嵌入式设备,如手机、PDA等都是C语言开发的。
1.4 C语言是基础,如果你学习过C语言,你就能学习现在任何的高级编程语言
因为所有的高级语言都是以C语言为基础的(像JAVA,C++,C#等等)。C语言学好了,将来想学其他的语言,就比较好入门了。
2 如何学习《C语言程序设计》
2.1 克服畏难心理,充满自信的学习《C语言程序设计》
大多数学生一看到《C语言程序设计》课程的教材,就有畏难的情绪,觉得C语言难学,学不会,因为他们对计算机语言不了解,另外有些英语差的同学,看到计算机编程是用英语编写的,就未学先弃了。其实学习语言并没有他们想象的那么难,英语差也对学习计算机语言影响不大,比如学C语言,真正要记的关键字不多,语法也不复杂,只要大家不带着畏难的心理,充满自信,一定能学好的。
2.2 要明确《C语言程序设计》的学习目的
通过《C语言程序设计》课程的学习,掌握C语言基本知识,掌握程序设计的基本方法并逐步形成正确的程序设计思想,能够熟练运用基本程序结构解决简单问题,理解模块化程序设计原则并能熟练使用C语言进行程序设计,具备调试程序的能力,为后继课程及其他程序设计课程的学习和应用打下基础。
2.3 要明白《C语言程序设计》与一般的计算机操作课程有所不同
《C语言程序设计》是计算机的一门软件编程课程,是用C语言来编写程序的,它具有难度性、抽象性、连续性和逻辑严密性。如果你第一次课来听了,第二次课没来,第三次课很可能就听不懂了。比如,第一次课讲的是数字1,2,3,4……,第二次课讲的是运算符号+,-,*,/,第三次课老师让你算1+2=?,如果你前两次课都来听了,那么你就能算出它的结果,否则你就算不出它的结果。因此,如果要想学好《C语言程序设计》,必须坚持每次课都来,如果那天确实不能来,就应在家自学,不懂的地方应及时向老师请教,一定不能落课。
2.4 要整体把握《C语言程序设计》
C语言是一种通用的程序设计语言,在开发系统软件和应用软件中得到广泛的应用,已成为当今计算机世界最流行的语言之一。C语言是一个整体,各个方面是有机联系的,要从总体上把握它,不要把它割裂成互不关联的部件。它包括C语言概述、数据类型(整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等)、运算符和表达式、流程控制语句、函数、数组、字符与字符串、指针、结构体、文件等。通过《C语言程序设计》的学习,掌握程序设计的基本概念、基本思想、基本方法和基本技能,进而学会利用C语言解决实际问题,培养计算机程序设计的能力和素质,以及思维方法,为以后学习其它计算机程序语言和后续的专业课程打下基础。
简单的C程序是由主函数和函数体两大部分组成。它的基本框架如下:
main()
{
}
其中main表示“主函数”。每一个C程序都必须有一个main函数,而且只能有一个main函数,它表示程序从这里开始执行。由花括号“{ }”括起的部分是函数体。其中函数体又包括定义变量、变量赋值、函数调用、输出打印等。
例:一个简单的求和程序
main() /*主函数*/
{
int a,b,sum; /*定义变量*/
a=123;b=456; /*变量赋值*/
sum=a+b; /*求两数之和*/
printf(“sum is %d\n”,sum); /*输出和值*/
}
这是一个简单的求和程序。/*...*/表示注释部分,只给人看的,对编译和运行不起作用。第3行是声明部分,定义变量a、b、sum,指定a、b、sum为整型(int)变量。第4行是两个赋值语句,使a和b的值分别为123和456。第5行使sum的值为a+b,第6行中“%d”是输入输出的“格式字符串”,用来指定输入输出时的数据类型和格式,“%d”表示“以十进制整数形式输出”。Printf函数中括弧内最右端sum是要输出的变量,现在它的值为579(即123+456之值)。因此输出一行信息为:
sum is 579
从这个例子可以看出,想要把《C语言程序设计》这门课学好,不仅要知道《C语言程序设计》的基本框架,还要学好函数体中的内容(变量类型、定义变量、变量赋值、输入输出格式字符串、输入输出函数格式、调用函数等)。另外还要学好C语言的运算符、运算顺序 、四种程序结构(顺序结构、分支结构、循环结构、模块化程序结构 )、掌握一些简单的算法等。
2.5 熟练C程序的上机步骤
在编好一个C源程序后,如何上机运行呢?要经过编辑、编译、连接和运行四个步骤。
(1)编辑源文件。在编辑(Edit)状态下输入或修改源程序。
(2)编译源程序。选择“C编译”菜单并选择“编译到OBJ”,进行编译,得到一个后缀为.obj的目标程序。
(3)然后再选择菜单“L连接EXE文件”,进行连接操作,可得到一个后缀为.exe的可执行文件。
(4) 运行程序。在“RUN”菜单中选择“R运行程序”项,或直接按Ctr+F9键,系统就会运行已编译好的可执行目标文件。此时,TC集成环境窗口消失,屏幕上显示出程序运行的结果。如果程序需要输入数据,则应在此时,从键盘输入所需数据,然后程序会接着执行,输出结果。
2.6 要加强编程训练
《C语言程序设计》是实践性非常强的课程,要求学员要理论联系实际,在掌握C语言的基本语法和基本知识后,重点应放在提高编程能力的训练上。根据学生学习的认知特点,我认为主要应从以下几个方面进行强化训练:
(1)吃透课本例子。每学完一次新课,让学生对课本例子先分析任务、再仔细阅读程序,然后按书上的源代码敲出来,编译执行输出结果,如果结果跟书上一致就算完成,如果不一致,就要仔细找原因。再后不看书自己编写代码与课本对照,找出自己的不足,然后改进。最后在此例的基础上自己加以改造,举一反三,变为其它的例子,如此反复练习,不仅培养了学生动脑思考的习惯,而且养成了遇事三思、认真、周密的作风。
(2)精选上机题目,要求调试通过。每章找出一个或两个综合性的具有代表性的应用题目,如编写一个程序,计算一个整数的名位数字之和;用选择法对数组中10个整数,按由小到大的顺序进行排序等,要求用C语言编写可执行的源程序,上机调试。这样不仅锻炼了学生解决实际问题的能力,更重要的是激发了学生学习课程的兴趣,抽象变具体 ,理论变实践,对这门课有了更深的认识。
(3)阅读填空法。找一些经典程序,配上必要的说明,适当去掉语句或表达式,让学生通过阅读填补空白,训练学生的程序设计能力。例编写一个程序,输入月份号,输出月的英文月名,还有求和、排序、报号等。
(4)准备一个经验本,记下C语言重要的语法和知识点,还有自己出错的解决方法及老师讲解的其他同学出现的常见错误,抽空常翻看,逐步积累经验,加深印象,使以后避免。
(5)带着作业去上机。每次理论课结束后,老师都会给学生布置一些作业(如习题)让学生做,那么学生一定要认认真真的把作业完成好,先把程序编写在作业本上,上机时再把这些程序敲到计算机上,进行修改、调试、运行,最后输出结果。如果学生不带作业去上机,第一次老师警告下次一定带作业上机,如果第二次还没带作业,不准学生进机房,让学生到教室把作业做完后再到机房上机调试。有人说学生可以直接在机器上编写程序,固然没错,但对于初学者来说,如果在机器上边思考边编写,也就是说想一句编一句,再想一句再编一句,这样太浪费时间,一节课说不定连一个程序都编不好,所以老师一定要求学生在课下把程序编好,上机只需把程序敲出来进行修改、调试、运行,这样能节约大量的时间,学生上机时间本身都是有限的。
上述方法在教学实践中证明是行之有效的,学生对问题分析、程序设计的自觉性和能动性得到提高,动手能力加强,对后继课如《C++》、《面向对象程序设计》等,学习起来倍感轻松,较好地完成了该门课程的学习目标。总之,实践出真知,多学、多练、多思、多交流,勤奋好学才能学成。
参考文献:
[1]严桂兰.C语言程序设计与应用教程[M].福建:厦门大学出版社,2001.
[2]谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2005.
[3]陈东.计算机多媒体教学改革的一些尝试[J].福建师范大学学报(自然版),2004,20(3):98.
[4]王兰.学好《C程序设计》的几点建议[J].科技信息,2007(9).