西南交大c语言实验

2024-06-24

西南交大c语言实验(精选14篇)

1.西南交大c语言实验 篇一

C语言实验

实验一:C语言程序调试基础

一、实验目的

1.掌握C语言源程序的编写方法和调试方法

2.学会使用VC6开发工具及调试过程的查错纠错能力。

二、任务

调试课本例子:例2.19、例3.5、例5.9

三、实验过程及结果

1.鼠标左键双击VC,打开程序;单击打开的New的页面中,单击

键,选择键,选择,在新,最后单击键,就可以建立一个新的页面。

2.在界面中输入例2.19的内容,单击

键进行调试,底下的对话框出现

一句话时,说明我们编写的程序无错,就可以单击键,来运行程序。运行结果及编写程序内容如图:

4.关闭这两个窗口,再单击

实验二:顺序程序设计

一、实验目的:

1.掌握顺序程序的设计方法;

键,选择

2.掌握输入输出控制语句。

二、实验任务与要求

1.第3章课后习题T2 2.第3章课后习题T7

三、实验过程及结果

实验三:分支程序设计

一、目的

1.掌握分支程序控制语句的语法格式及纷争程序设计方法。2.了解分支程序的条件表达式及运算规则; 3.掌握分支程序控制语句的嵌套使用方法。

二、任务

1.第4章课后习题T6 2.第4章课后习题T8 3.第4章课后习题T12

三、实验过程及结果

实验四:循环程序设计

一、目的

1.掌握循环程序的控制语句的语法规则;

2.掌握循环程序的编写方法;

3.掌握循环程序的嵌套与退出控制方法。

二、任务

1.求100~200间的全部素数。2.第5章课后习题T8 3.第5章课后习题T10

三、实验过程及结果

实验五:数组

一、目的

1.掌握数组的定义及使用方法 2.掌握字符数组的相关操作函数。

二、任务

1.用数组求Fibonacci数列的钱40项,每5个一行。2.将一个3行8列的数组A转置为数组B。3.已知字符串str1=”abcde”,str2=”hijklm”,比阿尼写程序分别实现str1与str2的连接、求长度、比较等操作。

三、实验过程及结果

实验六:函数

一、目的

1.掌握函数的定义与调用方法。2.掌握函数参数的专递方式。

3.掌握函数的嵌套调用和递归调用方法。

二、任务

1.编写一函数,用冒泡排序法实现对数组A的排序。2.编写一函数,用选择排序法实现对数组A的排序。3.编写一函数,实现对给定年year是不是闰年。4.编写一函数,实现对给定整数m是不是素数。

5.利用递归算法,编写一函数,求Fibonacci数列的第n项。

三、实验过程及结果

实验七:变量作用域

一、目的

1.了解变量的存储类型及生命周期、作用域的性质。2.准确使用局部变量和全局变量。

二、任务

1.根据变量作用域知识,分析下列程序的运行效果。2.调试程序,分析个变量的作用范围和生命期。

#include int i=5;void fun1(){ int i=5;static int j=20;i+=5;j=j-3;printf(“i=%d.j=%dn”,i,j);} void main(){

Printf(“i=%dn”,i);

int i=40;

printf(“i=%dn”,i);

fun1();

fun1();}

三、实验过程及结果

实验八:结构体

一、目的

1.掌握结构体的定义方法和使用。

二、任务

定义一日期(年、月、日)结构体,编程实现日期的输入、日期的输出、日期加上一个整型天数、两个日期数据相减等功能。

三、实验过程及结果

2.西南交大c语言实验 篇二

1 基于层次分析法的评价指标体系构建

科学的评价指标体系是进行C语言实验课程评价的依据[3]。层次分析法适用于处理多层次、目标, 难以完全定量分析的复杂问题, 能够将主观判断用定量的方法进行表达和处理。根据教学目标, 确定C语言实验课程评价的主体内容, 选取相应的评价因素, 寻找因素的关系隶属和关联, 聚合构成评价指标体系, 并定性、定量分析, 计算底层评价指标对目标层的权重。与C语言实验课程教学中的专家、教师、学生进行沟通、调研、需求分析, 得出相关评价指标, 使用图1所示的层次分析法流程构建评价指标体系。依据C语言实验课程的教学目标和过程, 分析得出表1所示的10个准则层评价指标。按层次分析流程图, 进行计算和检验, 获得评价指标的权重。

指标使用Ui进行编号, 对于的权重用ai来表示, 如表1所示。首先是构建判断矩阵R:对准则层的各评价指标对于目标层的重要性两两进行比较, 得出评价指标间的重要程度, 邀请专家填写。根据判断矩阵R计算评价指标Ui对于目标层的重要性次序的权值, 即将R的列归一化后对行求和, 再次归一化后得到最大特征向量W。RW=λmaxW, 其中λmax是R的最大特征根。最后对R检验一致性, 即CI= (λmax-n) / (n-1) 。CI=0表示具有完全一致性, CI越大则一致性越低。引入CR=CI/RI表示一致性比例, 令RI=1.49。当CR<0.10时, 则判断矩阵R符合一致性检验, 确定准则层指标的单排序权值, 否则需要专家重新调整和构建判断矩阵, 再进行计算和检验。分别对10个指标进行权重计算和检验, 得出表1所示的C语言实验教学指标评价体系。

2 C语言实验课程评价模式

由表1 C语言实验教学评价指标得出评价因素集U= (U1, U2, U3, U4, U5, U6, U7, U8, U9, U10) , 对应的权重A= (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) 。设立C语言实验课程评价集V={V1, V2, V3, V4, V5}={优, 良, 中, 合格, 不合格}。并把等级进行量化, 用等级赋值法给出评价集V= (95, 85, 75, 65, 55) 。

将C语言教学的评价因素Ui按初始模型进行综合, 用模糊矩阵Ri表示Ui到Vi的模糊关系, R= (rij) m×n。, rij表示C语言教学中的评价因素ui对第j级评价的Vj的隶属度, 得到综合评价Vi。

选取10位C语言教学骨干教师组成评定小组, 根据设定的指标评价体系, 对我校13级某学生进行C语言成绩评价, 得到评价矩阵U, 按照人数对应换算得到矩阵R。

由隶属度矩阵R和权重集A, 通过模糊矩阵合成运算B=A·R= (b1, b2, …, bm) , 得出该学生成绩的模糊综合评价集, B= (0.814, 0.179, 0.007, 0, 0) 。其中b1最大, 隶属于V1, 所以最终该生的评价成绩是优, 与原始评分结果相符合。具体评价分数为V分数=B·V=93.07。

C语言实验课程评价模式中, 采用形成性和总结性相结合, 过程和结果并重, 能够调动学习过程中的积极性, 能够引导和监控学习过程, 调整学习行为, 促进学生的编程实践能力, C语言实验课程评价模式优势分析如表2所示。

3 总结

发挥信息技术的优势, 建立客观有效的C语言实验课程的评价模式, 进行评价和反馈, 把握C语言学习的影响因素, 提高C语言的教学水平和学生求解问题的能力。通过层次分析法和模糊综合评价的应用, 将定量判断与定性判断相结合, 实现定性评价转化为定量评价, 构建C语言实验教学评价模式。在后续研究中, 还需进一步收集C语言实验教学相关数据, 围绕教学目标, 综合考虑更多相关因素, 优化和完善C语言实验教学评价模式。

参考文献

[1]肖捷, 肖海容.C语言程序设计实践教学方案研究与设计[J].东莞理工学院学报, 2012, 19 (5) :105-109.

[2]黄成, 李太君.层次分析模型在网络课程评价系统中的应用研究[J].海南师范大学学报:自然科学版, 2010, 23 (3) :351-354.

3.C语言实验课教学设计 篇三

关键词:C语言实验教学;教学改革;教学设计;教学流程

中图分类号:G642.0 文献标识码:A

一、引言

C程序编写能力是要靠大量的练习学会的,只有让学生多多动手,他们才会对程序设计语言感兴趣。因此在C语言课程教学中应该重视实验课。但是,目前C语言实验课的教学存在着以下弊端:第一,在教学理念上重视理论教学,轻视实验课的练习。第二,在实验课教学过程中教师往往放任学生自由上机,学生只能被动地编写教师提供的程序清单对编程知识缺少深入思考。第三,在实验课的教学过程中,学生之间缺少交流。而在实际的程序开发行业中所有开发人员是需要相互合作的。基于以上因素需要对C语言实验课的教学过程进行改进。

二、C语言实验课教学目标的确定

教学目标就是教学的一个标准,教学目标规定了教学要达到的程度,它是教师教学和学生学习的依据,教学目标的制定可以克服教学的盲目性,在教学过程中占有重要的地位。因此,C语言实验课教学首先要确定教学目标。

C语言实验课教学目标的制订要从认知领域、动作技能领域和情感领域这三个方面来确定。例如对于C语言课程中的“控制结构”这部分的实验内容其实验目标确定如下:在认知领域方面,学生要理解基本的解决问题的技巧,理解计数控制循环和标记控制循环;在动作技能领域方面,学生能够熟练掌握自顶向下逐步求精算法设计,能够熟练应用if语句,if/else语句和switch语句来实现选择结构,能够应用while语句,do/while语句和for语句实现程序循环结构,学生可以使用++、--、赋值和逻辑运算操作符,在循环语句中能够应用break语句和continue语句来控制程序的结构;在情感領域方面,要培养学生认真学习、严谨求实、实事求是和勇于探索的科学精神和态度。

三、确定C语言实验课的操作流程

为了上好C语言实验课,并且能够完成制订好的教学目标,需要根据C语言实验课的具体题目可以将实验课教学过程分为三大部分进行:课前部分、课中部分和课后部分。其具体的操作流程如下图所示:

C语言实验课操作流程图

在上图中,课前教学部分、课中教学部分和课后教学部分都要按照实验教学目标来制定。课前教学部分是在课堂讲授课程完毕之后并且在实验课进行之前进行的,在这部分中主要是要对所讲授课程的知识点进行巩固,并对实验课涉及的知识进行预习。教师在设计实验题目时要设计好学习环境,利用良好的环境调动学生学习的积极性。在实验课学生现场自主编程中,可以发现C语言的语法错误和逻辑错误,提高学生自己分析和解决问题的能力。在这个过程中,教师要给予学生必要的指导和帮助。在协助学习实验题目过程中,教师要确定协作小组让学生共同完成学习目标并将个人习得成果转化为大家习得成果,并且教师要对不同的学习任务进行选择,要设计好实验课程的协作环境,保证实验课程的顺利实施,最后要对实验教学效果进行评价,以此来刺激教学的进行。

四、结论

在C语言实验课的教学中,要充分尊重学生学习活动的主体性地位。所以在大学C语言程序设计这门课程的实验教学中采用了以学为主的教学设计方案,这样可以促进学生独立分析问题的能力,充分调动学生学习的兴趣和主动参与意识。

参考文献:

[1]吴文虎.计算机程序设计基础课程改革[J].中国大学教学,2004(02).

[2]乌美娜.教学设计[M].北京:高等教育出版社,1994.

[3]孙可平.现代教学设计纲要[M].西安:陕西人民教育出版社,1998.

4.c语言实验报告 篇四

2、求圆环的面积。(函数的嵌套调用;定义求圆的面积和圆环面积实现)#include #define PI 3.1415926 float area_ring(float x,float y);float area(float r);void main(){ float r,r1;printf(“input two figures:n”);scanf(“%f,%f”,&r,&r1);printf(“area_ring is %fn”,area_ring(r,r1));

} float area_ring(float x,float y){ float c;c=fabs(area(x)-area(y));return(c);} float area(float r){ return(PI*r*r);}

3、设计求n!的函数(分别使用连乘和递归法)再调用函数求x!-y!+z!。递归

#include int fac(int n){ int i,t=1;for(i=1;i<=n;i++)

t*=i;return t;} void main(){ { unsigned int n;printf(“input a unsignded interger number:n”);scanf(“%d”,&n);printf(“%d!=%10ldn”,n,fac(n));} {

5.c语言上机实验报告 篇五

2160500146 计算机66马俊松

在本学期,共进行了大约五次上机,完成了数十道编程题,现将在完成作业过程中所遇到的问题以及解决过程进行如下几点总结,并提出几点建议。

1.在刚开始那几次做编程作业时,经常因为只是输出时的格式不符合moodle上的要求而的零分,因而不断修改,浪费大量时间,希望今后moodle网站能在这一点上做出改进(如果过程正确而只是输出格式错误,可以不必给零分)。比如下面几个题:

2.在做6.1题(找出一句话中最长的子字符串)的过程中,因为字符数组的知识未掌握牢固,在以下几个方面卡了比较久:

①:字符串在输入时,若用scanf(”%s”,a),则只会得到第一个单词;若用for(i=1;i<=n;i++)scanf(“%c”,a[i]),则循环会一直持续知道输入n个字符;若希望将整句话输入,应用gets(a);

②:将”n”,””,” “几个概念搞混淆,因而在条件判断时出现混乱,导致错误。

3.在做7.1题(用函数实现学生的信息录入及排序)时,遇到了以下几个问题并卡了比较久的时间:

①:运用了错误的输入方式,导致未能的到完整的输入信息或输入过程中直接中断(如下图);

②:刚开始时为采用指针的思想,导致在设计程序时比较繁琐;但应注意在使用完指针p++后,应重新给指针p赋回初值;

6.C语言实验报告模版 篇六

指导教师曾宪华实验时间: 2010 年10月日 学院通信与信息工程专业通信类

班级0101105学号2011210150姓名陈环宇 实验室s313

实验目的及要求:

(1)掌握选择结构程序设计,学会if语句嵌套的应用。

(2)以此程序掌握使用断点调试程序的方法。

实验题目:

实验内容及步骤:源程序(已修正)

操作步骤

a.打开C++,新建文件,输源程序。

b.进行编译和连接时,没有出现错误或者警告。

c.单击Go,输入a,b,c的值后,程序执行到断点①处,输入变量a,b,c,查看a,b,c的值。此时,变量的值与输入的值一致。

d.单击Go,程序运行到断点②处,运行显示d为49.81,此时方程有实根。

e.单击Go,运行到最后一个断点处,运行显示x1=-0.44,x2=-3.80,符合题目要求。f.单击Stop Debugging,调试完成。

运行结果示例

心得体会:

7.西南交大c语言实验 篇七

随着科技的不断进步, 计算机基础教学已不再局限于围绕Windows操作系统及几种常见办公软件而进行, 更需要对程序设计能力进行培养。目前计算机程序设计语言教学主要涉及C语言、Visual Basic、Visual FoxPro等, 其中C语言作为C++、C#、Java等功能强大的主流语言的前身, 尤其适合用来作为对计算机编程要求较高的一些专业计算机程序设计启蒙语言。C语言是一种高度过程化的语言, 语法灵活, 逻辑性非常强。对于C语言的学习, 必须依赖大量的上机实践来巩固理论教学内容, 强化对编程思维的理解, 掌握C语言的精髓。所以, 在C语言程序设计教学中, 实验的设置显得尤为重要, 实验方案设置是否合理直接影响到学生对C语言的理解和掌握。

1计算思维

计算思维是目前的一个研究热点, 自2006年被提出以来, 国内外许多著名的计算机科学家和计算机教育家都不遗余力地对它的内涵和外延进行了卓有成效的研究和应用, “计算思维”一经问世, 就散发着超强的魔力, 引领着计算机科学界尤其是计算机教育界的发展方向。

1.1计算思维内涵

2006年3月, 美国卡内基 · 梅隆大学计算机科学系主任周以真教授[1,2]首次在权威杂志Communications of the ACM上提出了“计算思维” (Computational Thinking) 概念:计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解的思维活动。按照周以真教授的解释, 计算思维建立在计算过程的基础上, 但是又超越了计算机本身。计算思维现今已不仅仅运用在计算机学科上, 也广泛应用在其它自然学科甚至是人文学科中, 它是一种思维方式, 是一种解决问题的思考过程, 从现实角度来说, 计算思维就是将问题引入、归纳、求解、引申的过程, 也就是将未知问题归纳成若干已知问题从而求解的过程。计算思维不是一个单独的、与其它思维方法毫无关联的孤立方法。计算思维产生于计算机科学, 而与计算机科学联系最紧密的思维方法是数学思维、逻辑思维和工程思维。可以将计算思维看作是计算机科学与数学思维、 逻辑思维和工程思维的交集, 而它们也代表了计算思维的不同层次要求[3]。在计算机课程教学中引入和培养学生的计算思维, 进而让计算思维影响学生的一生, 帮助学生以计算思维的方式来分析、解决各类科学及社会问题。

1.2计算思维在C语言实验中的体现

C语言作为一种结构化的程序设计语言, 它的学习过程必然是理论与实践相结合, 在实验中逐渐进步的过程。 同任何计算机编程语言一样, C语言编程能力的提高必须依靠一个又一个上机实验, 在不断的 “思考—编程—调试—运行—反思”过程中逐步提高。同Visual Basic、Vis- ual FoxPro等面向对象的计算机编程语言不同, C语言是高度过程化的, 结构非常严谨, 并不像其它语言那样松散和随意, 这就需要格外注意其语法和语义的准确性和完整性, 而编程者的这些良好习惯和注意度都需要在大量的上机实践中培养。

C语言是一种过程化的语言, 它是以时间轴驱动的, 用C编写的程序执行过程, 类似于我们处理日常问题的一般过程:先做什么, 再做什么;如果发生了什么, 就做什么;必须要做了什么, 才能再去做什么, 等等。从宏观上看, C语言采用的是自顶向下、逐步求精、模块化的设计思路, 而计算思维就是将问题引入、归纳、分解、进而求解的过程。可以在C语言实验中引入计算思维的思想, 帮助我们对实验进行分析和总体设计;反过来, 也可以在C语言实验中培养学生的计算思维。

2引入计算思维的C语言综合实验设计

2.1问题描述

设计一个万年历, 要求实现以下功能:1能显示某一具体日期的星期数;2能显示任一日期所在月的月历;3具备翻页功能, 能利用键盘上的左右方向键进行月份的切换, 上下方向键进行年度的切换[4]。

说明:以1582年10月15日 (星期五) 为起始日期 (历史上多次修改历法, 其中最后一次修改是1582年10月15日, 在此之前的星期数是不准确的) 。

2.2问题分析与分解

计算思维的方法就是分解、归纳、化未知为已知的过程。首先对问题进行分解, 要完成这个实验, 需要解决3个问题:

(1) 确定某一输入日期的星期数。按问题描述, 输入任一日期后, 首先要求出它的星期数。问题描述中已经给出了初始日期1582年10月15日为星期五, 那么只要先求出输入日期与1582年10月15日之间相差的天数day, 就可用公式 (day%7+5) %7求出该日期的星期数。

在求解这个问题时, 又需要考虑一个子问题:怎样解决闰年的问题。闰年的2月有29天, 其规则是年份数字能够整除4但不能整除100, 或者能够整除400。因此, 可以用#define Year (x) (x%4==0&&x%100!=0||x% 400==0) ?1:0这条参数宏来表示是否闰年。

(2) 如何显示该日期所在月的月历。根据第一个问题的结果, 已经知道该日期的星期数, 接下来的事情是只要在该日期的基础上向前递减、向后递推就能知道该月每一天的星期数, 这个问题又可分成两个子问题:1确定月历的样式、设计格式;2分析并确定该月份中每一个日期在月历中的位置。在求解这个子问题时, 需要考虑星期的排列以及日期的换行问题, 可以用循环语句加以控制。

(3) 翻页功能设计。根据上两步的结果, 接下来增加翻页功能, 这里需要从4个方面进行设计:1向左按钮:如果当前月份为2~12月, 则年份不变, 月份-1;如果当前月份为1月, 则年份-1, 月份改为12月;2向右按钮:如果当前月份为1~11月, 则年份不变, 月份+1;如果当前月份为12月, 则年份+1, 月份改为1月;3向上按钮:月份不变, 年份-1;4向下按钮:月份不变, 年份+1。

从以上分析可以得出该实验的问题分解情况, 如图1所示。

2.3问题归纳与引导

根据以上分析, 将问题分解成若干子问题, 每个子问题再进一步细化, 最后分解成已知问题, 例如闰年的求法、 输出格式的设置、月份的加减等问题。计算思维的魅力正在于此。通过对问题的分解、归纳, 最终变换成已知问题。 在这一实验过程中, 为了达到培养学生计算思维的目的, 需要特别注意问题的归纳与引导, 计算思维强调的是从未知到已知的求解过程, 是一种自然归纳、推导、总结的过程, 教师在实验指导过程中, 不能直接给出答案和源程序代码, 而要根据结构化程序设计自顶向下、逐步求精的思想, 并以“问题归纳—分解—求解—引申”的模式逐渐引导学生一步一步走向解决问题的彼岸。

3结语

C程序设计语言的教学离不开上机实践, 上机实践过程中实验方案的好坏和教师的实验指导直接决定着学生的学习效果, 如要在有效的上机实验课时内达到最好的学习效果, 就必须让学生尽早掌握计算思维的能力。计算思维自2006年被提出并被明确定义以来, 逐渐成为计算机科学领域和计算机教育界最先进、最流行的思想之一。在C语言程序设计实验方案设计中, 时刻注意学生计算思维能力的培养, 有着非常重要的积极作用。这种能力的掌握, 不仅对学生本身编程能力和计算机能力的提高大有裨益, 而且对学生今后更全面、更有效、更科学地处理各类问题也具有帮助作用。

参考文献

[1]WING J M.Computational thinking[J].Communications of the ACM, 2006, 49 (3) :33-35.

[2]周以真.计算思维[J].中国计算机学会通讯, 2007, 3 (11) :83-85.

[3]陆汉权, 何钦铭, 徐镜春.基于计算思维的大学计算机基础课程教学内容设计[J].中国大学教育, 2012 (9) :55-58.

8.西南交大c语言实验 篇八

[摘要]文章探讨了在C语言程序设计课程教学中引入机器人实验的必要性、意义及创新点,并讨论了在C语言课程教学中开展机器人实验应注意的几个问题。

[关键词]C语言课程 教育机器人 实验 教学改革

[作者简介]尹华(1975- ),女,赣南师范学院数学与计算机科学学院,讲师,主要从事计算机教学与应用研究;肖随贵(1956- ),男,赣南师范学院数学与计算机科学学院,教授,主要从事计算机教学与应用研究。(江西赣州341000)

[课题项目]本文系赣南师范学院质量工程项目课题“基于可编程控制机器人比赛的C语言系列课程创新实验项目”的研究成果。

[中图分类号]G424.21 [文献标识码]A [文章编号]1004-3985(2009)33-0182-02

一、“C语言程序设计”课程实验现状

目前,我国大部分高校的理工科专业都开设了“C语言程序设计”课程,而计算机科学与技术、网络工程等专业还开设了“C语言课程设计”“面向对象程序设计(C++)”等课程。通过系统地学习“C语言程序设计”课程,学生掌握了如何使用计算机语言进行程序设计,以及程序设计的基本思想、基本方法和技巧,达到通过学习相关课程使学生能够利用C语言解决实际问题的教学目标,并为后继课程打下坚实的基础。

“C语言程序设计”是一门实践性很强的课程,实验课时比重很大。例如,赣南师范学院的2008人才培养方案中C语言的实验课时增至32学时,占总学时的1/2。在进行实验教学中,大部分是验证性实验,最后是综合性实验。由于C语言的实验环境是在字符方式下进行的,实验过程比较枯燥,实验结果的表示单调,学生学习兴趣不高,学习效果不佳,导致学生的综合应用能力不高,甚至影响到后继课程的学习。因此,应该采取哪些措施,通过实验提高学生的学习兴趣,提高学生的动手能力和解决实际问题的能力,是实验教学改革的一项重要任务。为此,我们设计了一套能调动学生学习积极性、提高学生综合应用能力的实验项目。

二、在C语言教学实验中引入教育机器人

近年来,可编程控制机器人和可编程控制机器人学发展非常迅速。教育机器人是将机器人应用于教育领域,是由生产厂商专门开发的以激发学生学习兴趣、培养学生综合能力为目标的机器人成品、套装或散件。它除了机器人机体本身之外,还有相应的控制软件和教学课本等。

从教育机器人的发展情况来看,硬件技术方面已经非常成熟,设备的可靠性、灵活性、耐用性等性能都已得到社会的广泛认可。教育机器人的硬件配件多样,技术支持能力强,价格也相对便宜。控制操纵机器人的关键问题之一是软件设计,主要是通过C语言或VC++等程序设计语言进行程序设计,通过编程对机器人进行控制。这就给计算机专业的学生提供了广阔的开发平台,通过编程对机器人进行操纵,使其完成各种任务,培养了学生的综合应用能力。

用于实验创新的教育机器人种类繁多,依据可编程控制机器人可以设计出各种机器人,创造空间巨大,例如使用AS-ROBEI机器人工程创新套件就能设计一百万种机器人,如投球机器人、救火机器人、追光机器人等。

教育机器人已引起了国内很多学校的关注和重视,在教学活动中纷纷引入教育机器人并取得了良好的效果。

三、在C语言教学实验中引入教育机器人的意义及创新之处

“机器人是一种能够通过程序控制,自主完成某类任务的机器系统”,在“C语言程序设计”教学中通过“程序控制”与机器人动作紧密联系起来,应用各种程序使机器人完成各种动作(如搬运、灭火等),使教学与实验“动起来”“活起来”,提高了学生的学习兴趣、综合应用能力和创新能力,从而提高了教学质量。

在C语言教学中引入机器人实验有如下几点创新之处:(1)教育理念创新。通过引入可编程控制机器人,改变了传统的实验教学理念。一是实验中,教师引导学生自己设计与控制机器人,学生体验到学习的快乐;二是精心设计机器人实验,对学生实行个性化教育;三是通过教育机器人的实验,发展学生的多种能力,如分析能力、创造能力和实践能力等。(2)实验手段创新。创建可编程控制机器人实验室,构造开放的实验平台。(3)实验内容创新。在可编程控制机器人的开发平台上,充分发挥学生的想象力,设计制造各种各样的机器人,提高学生的创新能力。

在C语言教学活动中,通过引入机器人编程,并将其贯彻到整个教学与实验过程中,能够获得非常好的效果,具体表现为:(1)可以促进对C语言系列课程(如“C语言程序设计”“C课程设计”“C++”等)的改革创新,设计与开发创新性实验项目;(2)趣味性机器人实验,寓教于乐,激发学生学习热情;(3)构建创新实验跨越多个平台,帮助学生学习各种相关知识,锻炼学生的动手能力;(4)利用第二课堂培养学生实践能力和创新精神,组织学生参加各种机器人赛事,使学生的各种能力得到提高。

四、C语言课程开展机器人实验应注意的几个问题

在C语言教学中引进机器人实验是对传统教学与实验的深化与改革。在具体实施过程中,需要注意以下几方面的问题:

1.教育机器人的选型。在教学实验活动中,应根据专业特点、培养目标、实验经费选择合适的机器人机型,以保证实验的顺利进行。目前,国内教育机器人的生产厂商及品牌有很多,可供选择的空间较大。在选择机器人时应注意的是:首先,硬件要结构紧凑,简洁实用,软件使用C语言编程,提供字符界面或图形化界面编程,纠错能力强,功能强大;其次,结构要牢固,抗压抗摔,有较好的碰撞能力,功能较大;再次,所选机器人能满足教学和竞赛的需要;第四,有良好的售后服务体系,配套教学资源丰富。

2.实验室的设计。传统的计算机实验室环境较为较严肃、生硬和呆板。实验室的设计应该从教学和比赛的多个角度进行综合考虑,设计应遵循以下原则:(1)以人为本,营造一个有创新氛围的全新学习空间;(2)课桌四周有充分的活动空间和比赛空间;(3)力求体现学校特色,提升学校形象。

在机房空间较大的情况下可将机房与场地连在一起,便于管理;当机房面积较小时可将机房和场地分开,但距离不宜太远。场地建设依据活动的需要,因地制宜。一般来说,对于非比赛需要的场地,可以采用简易材料搭建,可让学生参与搭建过程。搭建过程应考虑搭建的场地是否适合机器人行进的路线,以及编程设计能否满足要求。学生参与搭建的过程中,分析、设计能力以及解决实际问题的能力都得到了提升。若是竞赛场地,则需要按竞赛规则和标准进行建设。

实验室建成后,应满足学生的系统化训练。学生可以利用该平台,动手组装和调试机器人,搭建检测电路,编写控制软件,获得全方位的、系统化的基础工程训练。针对计算机专业的高年级学生能进行创新训练。学生可以利用该平台,进行一些较深入的学习和研究,可以在该平台进行如人工智能,图像处理,语音识别,机器人自主导航,面向对象编程,软件工程,遗传算法等方面的研究及验证。

3.实验教学计划与实验项目的设计与制定。在设计制定相关实验项目时,应充分考虑人才培养目标、学生的特点以及学生的要求等因素,实验项目应紧密结合“C语言程序设计”等课程的知识点(如顺序、分支、循环、数据与函数等),将教学要求与机器人实验有机的结合在一起,使学生能够通过实验熟练地掌握相关知识和技能,并能激发学生的学习兴趣。

实验教学计划与实验项目的制定拟分四个阶段逐步进行。

第一阶段:以典型的智能机器人为对象,掌握基本程序的编制,电机的控制方法,以及最简系统的组装、编程、调试的方法,能够实现基本系统的各种控制,实现机器人的自主漫游等一些经典控制项目,从而使学生对机构设计、软件编制以及优化有一定的认识。

第二阶段:在第一阶段的基础上增加标准传感器,学生可以通过对典型传感器的学习,熟练掌握完整智能控制系统的编程与应用方法,为其他各种传感器与功能模块的应用打下基础。

第三阶段:在前两个阶段的基础上增加各种扩展传感器、创新模块套件及执行机构,学生熟练应用不同传感器,独立设计方案以及试验环境来实现不同功能。通过这个环节,一方面学生可以进一步了解不同传感器及执行机构的工作原理与应用方法,另一方面通过设计实验来培养学生解决实际问题的能力。

第四阶段:通过对智能小机器人的学习发展到可以使用其他各种高级机器人,以点带面,举一反三地推广到其他各种高级机器人控制系统的应用,并且逐渐增加难度,体现由浅入深、层层深入的原则。

4.教师角色转变及培训。教师必须熟练掌握机器人实验的要领,指导学生进行实验。教师应在教育观念上进行转变,教师不是教学的控制者,不是知识的灌输者,而应成为学生学习的引导者、帮助者,充分发挥学生学习的积极性、主动性,培养学生的创新思维。教师应在指导学生实验的过程中,引导学生领会与掌握机器人实验中所涉及的机械、电子、计算机等多种学科的知识,引导学生主动对知识进行学习与探索,不断提高自己的各种能力。以情驱“动”、任务驱“动”、协作互“动”都是为发展学生的教学目标服务。

5.虚拟机器人与实体机器人并用。虚拟机器人其实是厂商提供的一套仿真系统软件,用以模拟机器人运行。它是一个虚拟机器人的程序编辑平台和运行平台的集成环境。在实验经费和实验机器不足的情况下,使用虚拟机器人进行前期的教学和演示,能收到较好的教学效果,并且有助于学生学习编程语言、感官系统、仿真技术等知识。

在机器人仿真系统中检验程序的效果直观,容易分析程序设计中出现的问题。先通过仿真软件发现问题,问题解决后再到机器人上实践,这种做法有时候比直接利用机器人实践的效果要好。

目前,很多机器人仿真系统都支持C语言编程,如VJC仿真软件、NSTRSS 3D仿真系统、AI-CODE仿真系统等。下面以AI-CODE仿真系统为例,作一简要介绍。系统总体架构如图所示。

这套系统主要用于算法与程序设计,它是一个通用平台,支持多种语言(如C,C++,Java等),可以满足教学多样性的需要。它分为初级、中级和高级三个阶段,既可以通过图形化编方式(流程图式的编程方式)进行程序设计,也可以利用代码编辑器(CodeCanvas)转换到C、C++、java 等常用语言下的代码编程。所有设计的代码都可以在AIRobot 环境下以虚拟机器人的形式进行竞技、演示等各种交互,仿真能力很强。在仿真系统调试通过以后,再移植于实体机器人中运行,让机器人在真实环境中工作,以检验实际效果。

[参考文献]

[1](美)Robin R.Murphy.人工智能机器人学导论[M]. 杜军平,等,译.北京:电子工业出版社,2004.

[2]杨丽,李伟.机器人创新设计开放实验教学模式的构建[J].中国科教创新导刊,2009(5).

[3]彭绍东.论机器人教育(上)[J].电化教育研究,2002(6).

9.大一c语言数组实验心得 篇九

“; fori1;i10;i {printf“a[d]“,i; scanf“d“, } printf“

“; printf“原数据为

“; fori1;i10;i printf“5d“,a[i]; printf“

“; fori1;i9;i {mini; forji1;ja[j] minj; sa[i]; a[i]a[min]; a[min]s; }printf“排好序的数组为

“; fori1;i10;i printf“5d“,a[i]; printf“

10.西南交大c语言实验 篇十

一、教材名称:<>

二、课程总学时:108学时 [理论: 72 学时;实验与上机:36学时]

三、适用专业和开课学期:软件技术专业,第2学期。

四、实验的目的与任务:

《C程序设计》是一门实践性很强的课程。通过实验使学生加深对课堂讲授的概念、语法、算法、编程技术的理解;熟悉C程序设计的开发环境;掌握程序设计和调试的基本技能。并通过实践激发学生进一步学习的积极性,培养学生的学习兴趣和创新思维。通过8个实验,使学生经过一定数量的上机训练,了解和掌握C程序设计的环境、程序的数据表示、程序的执行流程控制、程序的整体结构等C程序设计的基本概念和应用技术。

五、主要仪器设备及台(套)数

安装Windowsxp,TC2.0等软件的计算机,每生一台。

六、主要实验教材(指导书)及参考用书:

谭浩强主编,《C程序设计题解与上机指导》,清华大学出版社。

七、成绩考核方式及评分标准

实验占课程总课时1/3,每项实验按该实验说明要求规定的评分标准积分,学期末合计的实验成绩占课程总成绩的18%。

八、实验开出率:100%

九、实验项目与要求

实验一:C程序的运行环境和运行一个C程序的方法(2学时)

实验性质:验证性实验

一、实验目的

1.了解所用的计算机系统的基本操作方法,学会独立使用该系统。2.了解在该系统上如何编辑、编译、连接和运行一个C程序。3.通过运行简单的C程序,初步了解C源程序的特点。

二、实验内容

1.调用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的?

2.输入并运行教材第一章中例1.2。

3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。

实验二 数据类型、运算符和表达式(2学时)

实验性质:验证性实验

一、实验目的

1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。

2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。

3.进一步熟悉C程序的编辑、编译、连接和运行的过程。

二、实验内容

1.输入并运行教材第三章例3.6.即: #include void main(){char c1,c2; c1=97; c2=98;

printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); } 在此基础上 ①将第二行改为: int c1,c2;再使之运行,分析结果。②再将第三行、第四行改为: c1=300;c2=400;再使之运行,分析其运行结果。

2.输入并运行教材第三章习题3.6,在上机前先用人工分析程序写出应得结果,上机后将二者对照。

3.输入并运行习题3.10。即: #include void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf(“%d,%d,%d,%d”,i,j,m,n);} 分别作以下改动并运行: ①将第4行改为: m=i++;n=++j;②程序改为: #include void main(){int i,j;i=8;j=10;printf(“%d,%d”,i++,j++);} ③在②的基础上,将printf语句改为: printf(“%d,%d”,++i,++j);④再将printf语句改为:

printf(“%d,%d,%d,%d”,i,j, i++,j++);⑤程序改为: main(){int i,j,m=0,n=0;;i=8;j=10;m+=i++;n-=--j;printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);}

实验三 最简单的C程序设计(2学时)

实验性质:验证性实验

一、实验目的

1.掌握C语言中使用最多的一种语句—赋值语句的使用。2.掌握数据的输入输出的方法,能正确使用各种格式转换符。

二、实验内容

1.输入并运行以下程序:

#include

void main(){int a,b; float d,e; char c1,c2; double f,g; long m,n;

unsigned int p,q; a=61;b=62; c1=’a’;c2=’b’; d=3.56;e=-6.87;

f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000;

printf(“a=%d,b=%dn c1=%c,c2=%cnd=%6.2f,e=%6.2fn”,a,b,c1,c2,d,e); printf(“f=%15.6f,g=%15.12fnm=%ld,n=%ldnp=%u,q=%un”,f,g,m,m,p,q); } 在此基础上,做以下改动: ① 将程序第8-13行改为: a=61;b=62; c1=a;c2=b;

f=3157.890121;g=0.123456789; d=f;e=g;

p=a=m=50000;q=b=n=-60000; 运行程序,分析结果。

② 在①的基础上将printf语句改为:

printf(“a=%d,b=%dn c1=%c,c2=%cnd=%15.6f,e=%15.12fn”,a,b,c1,c2,d,e);

printf(“f=%f,g=%fn m=%ld,n=%ldn p=%d,q=%dn”,f,g,m,n,p,q); 运行程序。

2.编写程序,用getchar函数读入两个字符c1、c2,然后分别用putchar函数和printf函数输出这两个字符。

上机运行程序,比较用printf和putchar函数输出字符的特点。

实验四 选择结构程序设计(2学时)

实验性质:设计性实验

一、实验目的

1.了解C语言表示逻辑量的方法(以0代表“假”,以1代表“真”); 2.学会正确使用逻辑运算符和逻辑表达式; 3.熟练掌握if语句和switch语句。

二、实验内容

先编程序,解决以下问题,然后上机调试运行程序。1.有一个函数 xy2x13x11x11x10 x10用scanf函数输入x的值(分别为x<1、1~

10、≥10三种情况),求y值。2.给出一个百分制成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。

实验五 循环控制(4学时)

实验性质:设计性实验

一、实验目的

1.熟悉用while语句,do-while语句和for语句实现循环的方法。2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。

二、实验内容

编程序并上机调试运行。

1.输入两个正整数,求其中最大公约数和最小公倍数。2.用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。

实验六 数组(4学时)

实验性质:设计性实验

一、实验目的

1.掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2.掌握字符数组和字符串函数的使用。3.掌握与数组有关的算法(特别是排序算法)。

二、实验内容

编程序并上机调试运行。

1.用选择法对10个整数排序。10个整数用scanf函数输入。2.将两个字符串连接起来,不要用strcat函数。实验七 函数(4学时)

实验性质:设计性实验

一、实验目的

1.掌握定义函数的方法;

2.掌握函数实参与形参的对应关系,以及“值传递”的方式; 3.掌握函数的嵌套调用和递归调用的方法;

4.掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法。

二、实验内容

编程序并上机调试运行。

1.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。2.求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数。用另一函数根据求出的最大公约数求最小公倍数。

(1)用全局变量的方法。将两个整数的最大公约数、最小公倍数都设为全局变量。

(2)不用全局变量,两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。

实验八 预处理命令(2学时)

实验性质:设计性实验

一、实验目的

1.掌握宏定义的方法; 2.掌握文件包含处理方法; 3.掌握条件编译的方法。

二、实验内容

编程序并上机调试运行。

1.定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。

说明:在程序主函数使用宏时只能用两个实参,如SWAP(a,b),不能用三个参数。2.用条件编译方法实现以下功能:

输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下字母(如‘a’变成‘b’,„,‘z’变成‘a’。其它字符不变)。用#define命令来控制是否要译成密码。例如: #define CHANGE 1 则输出密码。若 #define CHANGE 0 则不译成密码,按原码输出。用条件编译方法来处理。

实验九 指针(4学时)

实验性质:设计性实验

一、实验目的

1.掌握指针的概念,会定义和使用指针变量; 2.学会使用数组的指针和指向数组的指针变量; 3.学会使用字符串的指针和指向字符串的指针变量; 4.学会使用指向函数的指针变量;

二、实验内容

编程序并上机调试运行程序(都要求用指针处理)。1.输入三个整数,按由小到大的顺序输出。

2.将一个3*3的矩阵转置,用一函数实现之。在主函数中用scanf函数输入以下矩阵元素:

1 7133915511 19将数组名作为函数实参。函数调用后在主函数中输出已转置的矩阵。3.用一个函数实现两个字符串的比较,即自己写一个strcmp函数: strcmp(s1,s2)如果s1=s2,则函数返回值为0;如果s1≠s2,返回它们二者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如s1

两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数输出。

实验十 结构体和共用体(4学时)

实验性质:设计性实验

一、实验目的

1.掌握结构体类型变量的定义和使用; 2.掌握结构体类型数组的概念和应用; 3.掌握共用体的概念与使用。

二、实验内容

编程序,然后上机调试运行。

1.有5个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入5个学生数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、三门课的成绩、平均分数)。

要求用一个input函数输入5个学生数据;用一个average函数求总平均分;用max函数找出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出。

2.输入和运行以下程序:

#include

union data {int i[2]; float a; long b; char c[4]; };

void main(){union data u;

scanf(“%d,%d”,&u.i[0],&u.i[1]); printf(“i[0]=%d,i[1]=%dna=%fnb=%ldnc[0]=%c,c[1]=%c,c[2]=%c,c[3]=%cn”,u.i[0],u.i[1],u.a,u.b,u.c[0],u.c[1],u.c[2],u.c[3]);} 输入两个整数10000、20000给u.i[0]和u.i[1]。分析运行结果。

然后将scanf语句改为: scanf(“%ld”,&u.b);

输入60000给b。分析运行结果。

实验十一 位运算(1学时)

实验性质:设计性实验

一、实验目的

1.掌握位运算的概念和方法,学会使用位运算符; 2.学会通过位运算实现对某些位的操作。

二、实验内容

编写程序,上机调试并运行。

1.设计一个函数,使给出一个数的原码,能得到该数的补码,用八进制形式输入和输出。

实验十二 文件(1学时)

实验性质:设计性实验

一、实验目的

1.掌握文件以及缓冲文件系统、文件指针的概念; 2.学会使用文件打开、关闭、读、写等文件操作函数。3.学会用缓冲文件系统对文件进行简单的操作。

二、实验内容

1.从键盘输入一个字符,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符以“!”结束。实验十三 学生成绩管理(4学时)

实验性质:综合性设计性实验

一、实验目的

1.综合运用C程序设计知识,解决实际问题。

二、实验内容

1.有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。

2.将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件“stu-sort”中。

3.将上题已排序的学生成绩文件进行插入处理。插入一个学生的三门课成绩。程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。

学生的原有数据为:

91101 Wang 89,98,67.5 91103 Li 60,80,90 91106 Fun 75.5,91.5,99 91110 Ling 100,50,62.5 91113 Yuan 58,68,71 要插入的学生数据为:

91108 Xin 90,95,60

制 订:程世辉 教研室:软件教研室 执笔人:程世辉 审定人:

11.西南交大c语言实验 篇十一

C语言作为一种优秀的结构化程序设计语言, 其功能丰富、目标程序效率高、可移植性好[1,2], 既适于编写系统软件, 又便于用来编写应用软件[3]。它已经成为国内各高校广泛开设的教学课程[4,5,6,7]。C语言的教学目标是让学生掌握基本的编程思想、技能和一些典型算法, 培养学生熟练使用C语言分析和解决实际问题的能力[8], 但是在实际教学中普遍存在重理论轻实践的现象, 不能达到理想的教学效果[9], 只有注重实验教学, 才能真正培养学生的实际应用能力。

目前高校C语言实验教学现状存在很多问题:如理论与实践不能相辅相成, 学生没有认识到该课程的重要性, 学习兴趣不高, 缺乏主动性[10], 因此, 本课题组开发出功能强大的C语言虚拟实验系统, 实现了虚拟实验的交互性与娱乐性, 旨在变复杂、枯燥的编程学习为直观生动、有趣的娱乐学习。为C语言实验教学提供了一个较好的辅助教学模式。

1 虚拟实验相关技术

虚拟实验是一种基于虚拟现实技术的实验教学手段, 它利用多媒体、仿真和虚拟现实等技术在计算机上营造可辅助及可部分替代传统实验各个操作环节的相关软硬件操作环境, 所取得的实验效果基本等同于在真实环境中所取得的效果[11,12,13,14]。目前较为常用的实现虚拟实验的技术有VRML、Active X、QuickTime VR和Flash等[15]。相比较而言, 采用Flash技术便捷高效。因此, 本课题组利用简单易用的Flash和Action Script技术, 开发了仿真度高、交互功能强的C语言虚拟实验系统。

2 系统功能模块

系统主要包括5大模块:循环控制、排序、基本结构、数据操作、函数。其中循环控制模块包括Break语句和Continue语句实验, 排序模块包括冒泡排序和选择排序实验, 基本结构模块包括折半查找、指定求和、绘制图形等实验, 数据操作模块包括顺序表插入、顺序表删除和链表删除实验, 函数模块包括递归函数、嵌套函数和字符串函数实验。具体系统功能模块如图1所示。

3 系统的实现

本系统采用Flash CS6作为开发环境, 采用面向对象的脚本语言Action Script 3.0实现虚拟形象的交互设计软件的开发, Action Script 3.0实现了代码和设计分离, 所有程序代码都写在时间轴或扩展名为as的脚本文件里面。本系统共包含24个脚本文件。

本系统共由22个帧组成, 从第7帧到第22帧分别用来实现相应的虚拟实验。本文以冒泡排序实验为例, 详细介绍其实现过程。冒泡排序实验界面如图2所示。

该帧的核心程序如下:

该帧中包含一个“冒泡排序”影片剪辑元件, 且该元件与冒泡排序.as文件关联。

冒泡排序实验的操作方法:

(1) 点击初始化按钮, 在in输入框中输入要排序的字符串, 设字符串为“abcdef”,

然后点击开始按钮, 则会发现界面中开始按钮消失, 相应位置出现下一步按钮。并且界面中会出现相应的提示信息, 如图3所示。

(2) 依次点击下一步按钮, 最后运行结果如图4所示。

冒泡排序.as文件的核心程序如下:

4 C语言虚拟实验的特性

C语言虚拟实验具有以下几个重要的特性:

(1) 开放性。所生成的SWF文件可以跨平台使用[16], 且还可以内嵌于网页之中, 用户不受时间、地点及平台的限制, 通过任意一台计算机通过互联网均可进行虚拟实验的操作。

(2) 交互性。用户必须按照实验中提示信息, 点击相应的按钮, 输入正确的参数, 才能进行操作, 且在实验过程中, 系统会出现相应的文字提示, 当操作步骤符合要求时, 才能切换到下一步, 否则本步的实验需要重新来做, 要求非常科学严谨。

(3) 动态性。充分利用Flash的特点, 在实验过程中动态出现相应的实验结果, 便于学生深入理解算法的核心思想, 提高学生对编程的兴趣。

5 结语

12.C语言程序设计实验指导及报告 篇十二

C语言程序设计课程 实验报告

专业班级

指导教师

C语言程序设计 实验指导及报告

实验说明:

1、共4次实验,每次实验完成1个内容。

2、实验报告命名统一为:C语言_专业班级_学号_姓名

3、自备U盘,在实验前认真阅读实验要求,在实验中及时记录保存实验结果和调试过程,并填写到实验报告对应位置,实验结束后将该实验报告电子版在指定时间内提交给各班学习委员。

实验一

C语言开发工具VC6.0和顺序结构程序设计

1、实验目的:熟练掌握VC6.0开发工具进行程序设计及调试,能编写简单的C程序并完成调试。

2、实验内容1:结合课堂讲授学习VC6.0开发工具及调试方法。

单文件编辑运行方法:

打开VC++6.0,如图1所示

(图1)

选择“文件”→“新建”,打开如图2所示

(图2)

选择“文件”项,如图3所示

(图3)

选择“C++ Source File”项,并在“文件名”项目下输入“sum.c”如图4所示

(图4)

单击“确定”,打开如图5所示

(图5)

输入如上源代码,如图6所示

(图6)

选择“组建”→“编译”(或按Ctrl+F7组合键),打开如图7所示

(图7)

在下端的输出窗口会有错误和警告的提示,如果没有错误选择“组建”→“执行”(或按Ctrl+F5组合键)即可出现运行结果,如图8所示

(图8)

程序调试常用方法:

检查错误:

用鼠标单击调试信息窗口中右侧的向上箭头,可以看到出错的位置和性质, 进行改错时, 双击调试信息窗口中的报错行, 这时在程序窗口中出现一个粗箭头指向被报错的程序行,一般在箭头的当前行或上一行,可以找到出错语句。

修改错误后必须重新进行编译链接。从第一个错误开始修改,每修改一个错误就重新进行编译链接。

设置断点、单步跟踪、查看变量等,详细使用方法见下:

按快捷键F5或点击以下图片上标记的图标进入调试模式。

打开调试工具条,一般情况下当你按F5键后会自动弹出,如果没有弹出的话,右击工具栏空白处,会弹出下图,选中调试,就会出现调试工具条。

接下来,在监视窗口中添加你要监视数据变化的变量。

按F11逐语句的调试代码,如果某一语句是一函数,你不希望进入该函数时,F10逐过程来查看,在代码的调试过程中,通过监视窗口查看变量值的变化,从而确定代码是否有问题。

如果希望跳出某一函数时,按快捷键Shift+F11,或者直接点击调试工具条上的按钮就可以跳出该函数了。

如果只是希望调试某一部分代码的话,可以设置断点来调试,调试方法如上,只是在要调试的代码之间用断点来分开。设置断点时,光标放在你要设置断点的那行,按F9或点击编译微型条上面的类似手状的按钮即可。

3、实验内容2:以下程序有错误,请调试改正错误,使之能正常运行。

程序:

/* 登陆密码三次验证程序*/ #include void mian(void){ int nPwd=0;

/* 用于保存输入的密码*/ int i;

/*循环控制变量*/ int nFlag=1

/*密码匹配成功的标志*/

for(i=0;((nFlag=(87569!= nPwd))&& i<3);++i)

{ /* 默认设定密码为87569,可以根据需要进行设定*/

printf(“please input the password:”);

scanf(“%d”,&nPwd);}

if(nFlag=0)

printf(“the password is right!n”);

else

printf(“over the times and the password you input is error!n ”);}

修改程序及运行结果:#include void main(void){ int nPwd=0;

/* 用于保存输入的密码*/ int i;

/*循环控制变量*/ int nFlag=1;

/*密码匹配成功的标志*/

for(i=0;((nFlag=(87569!= nPwd))&& i<3);++i)

{ /* 默认设定密码为87569,可以根据需要进行设定*/

printf(“please input the password:”);

scanf(“%d”,&nPwd);}

if(nFlag=0)

printf(“the password is right!n”);else

printf(“over the times and the password you input is error!n ”);}

4、实验内容3:习题第三章第1题:假如国民生产总值的年增长率为9%,计算10年后国民生产总值与现在相比增长多少百分比,计算公式为

p(1r)n

r为年增长率,n为年数,p为与现在相比的倍数。源程序及运行

5、实验总结

实验二

选择结构和循环结构

1、实验目的:理解和掌握选择结构和循环结构的语法知识,理解自顶向下、逐步细化的结构化程序设计思想,并能熟练应用。

2、实验内容1:习题第四章第4题:有3个整数a,b,c,由键盘输入,输出其中最大的数。源程序及运行结果:

3、实验内容2:习题第五章第8题:输出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各数字立方和等于该数本身。如:153是一个水仙花数153=13+53+33。源程序及运行结果

4、附加内容(非必做,供学有余力的同学):习题第五章第17题:两个乒乓球队进行比赛,各出3人,甲队为A,B,C,乙队为X,Y,Z。已抽签决定比赛名单,有人向队员打听比赛名单,A说他不和X比,C说他不和X,Z比,请编程找出比赛名单。源程序及运行结果:

5、实验总结

实验三

数组和函数

1、实验目的:理解和掌握数组和函数的语法知识,理解模块化编程思想,并能熟练应用。

2、实验内容1:习题第六章第3题:求一个3  3的整型矩阵对角线元素之和。源程序及运行结果:

3、实验内容2:习题第七章第3题:写一个判断素数的函数,在主函数中输入一个整数,输出是否为素数的信息。源程序及运行结果:

4、附加内容(非必做,供学有余力的同学):习题第六章第2题:用选择法对10个整数排序。

源程序及运行结果:

5、实验总结

实验四

指针和结构体

1、实验目的:理解和掌握指针和结构体的语法知识,并能熟练应用。

2、实验内容1:习题第八章第1题:输入3个整数,按由小到大的顺序输出。源程序及运行结果:

3、实验内容2:习题第九章第5题:有10个学生,每个学生的数据包括学号,姓名,3门课程的成绩,从键盘输入10个学生的数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号,姓名,3门课程成绩,平均分数)。源程序及运行#include #include #define SIZE 10

struct student{ char id[20];char name[20];int score[3];float average;} stud[SIZE];

void input()/* 输入学生的信息 */ { int i;

for(i=0;i

{

printf(“第%d个学生的信息:n”,i+1);scanf(“%s%s%d%d%d”,stud[i].id,stud[i].name,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);stud[i].average=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/3.0;} }

void output()/* 输出学生的信息 */ { int i;

printf(“n”);for(i=0;i

void sortput()/* 排序输出最高分的学生信息 */ { int i,j;struct student temp;

for(i=0;i

void main(){ input();

output();sortput();} 结果:

4、附加内容(非必做,供学有余力的同学):习题第八章第6题:写一个函数,求一个字符串的长度,在主函数中输入字符串,并输出长度。源程序及运行结果:

13.实验三_LINUX的C语言编程 篇十三

要求:

1、请查阅资料,掌握vi编辑器的基本使用,包括两种不同模式的区别,如何在两种模式之间切换,以及常用的编辑命令等;

2、使用vi编写一个c程序,要求该程序通过命令行接收用户的输入,其输入参数为FreeBSD系统中的任意文本文件,接收输入后,c程序读取该文件内容,并打印在屏幕上。编辑好后,存为.c文件(如a.c),使用gcc编译该文件,运行结果文件。

3、详细记录学习的内容和实验的整个过程,包括用到的vi命令,c程序源代码,gcc命令,以及执行结果文件的命令等;

4、对整个实验过程进行分析总结,给出详细步骤;

一:vi编辑器的使用

vi 的两种命令模式;

Command(命令)模式,用于输入命令; Insert(插入)模式,用于插入文本;

Visual(可视)模式,用于视化的的高亮并选定正文;

Command 模式是vi或vim的默认模式,如果我们处于其它命令模式时,要通过ESC键切换过来。

当我们按ESC键后,接着再输入:号时,vi会在屏幕的最下方等待我们输入命令; 文件的保存和退出 :w 保存;

:w filename 另存为filename; :wq!保存退出;

:wq!filename 注:以filename为文件名保存后退出; :q!不保存退出;

:x 应该是保存并退出,功能和:wq!相同 光标移动

j 向下移动一行; k 向上移动一行; h 向左移动一个字符; l 向右移动一个字符;

插入模式(文本的插入)i 在光标之前插入; a 在光标之后插入;

I 在光标所在行的行首插入; A 在光标所在行的行末插入;

o 在光标所在的行的上面插入一行; O 在光标所在的行的下面插入一行;

s 删除光标后的一个字符,然后进入插入模式; S 删除光标所在的行,然后进入插入模式; 文本内容的删除操作 x 一个字符;

#x 删除几个字符,#表示数字,比如3x; dw 删除一个单词;

#dw 删除几个单词,#用数字表示,比如3dw表示删除三个单词; dd 删除一行;

#dd 删除多个行,#代表数字,比如3dd 表示删除光标行及光标的下两行; 恢复修改及恢复删除操作; u 撤消修改或删除操作;

查找

/SEARCH 注:正向查找,按n键把光标移动到下一个符合条件的地方; ?SEARCH 注:反向查找,按shift+n 键,把光标移动到下一个符合条件的 替换

:s /SEARCH/REPLACE/g 注:把当前光标所处的行中的SEARCH单词,替换成REPLACE,并把所有SEARCH高亮显示;

:%s /SEARCH/REPLACE 注:把文档中所有SEARCH替换成REPLACE;

:#,# s /SEARCH/REPLACE/g 注:#号表示数字,表示从多少行到多少行,把SEARCH替换成REPLACE;

二:编写程序和编译程序

先在home文件夹下建立test文件夹,用于自己的程序开发。

根据题目要求编写相应程序:

编写完程序后保存。

使用gcc命令编译时发现如下问题:

后来上网查找后发现FreeBSD默认不再使用GCC构建,使用Clang/LIVM替代GCC作为默认的C/C++编译器。

于是使用clang命令进行编译如下:

得到输出文件后,再新建一个test.txt文件用于测试。然后执行可执行文件:./a.out

由上可以看出,在执行编译命令后我并没有指定输出文件的类型和名称,a.out为默认输出的名称和类型,可以使用clang a.c –o test来生成不同类型和名称的输出文件。另外看到提示是输入文件的路径,如果是当前文件下的文件,则可以只输入文件的相对路径,如果在别的文件夹下则需要输入文件的绝对路径。如使用#cp /home/test/test.txt /home/test2.txt复制一个文件到别的目录后读取。测试如下:

三:程序源代码

#include int main(){ FILE *file;//定义文件指针

char path[20];//文件路径字符串

char msg[100];//读入数据缓存区

printf(“please enter the path of your filern”);//输出提示

scanf(“%s”,path);//获取文件路径

file = fopen(path);//打开文件

while(fgets(msg,sizeof(masg)-1,file)!=NULL)//逐行读取文件 直到文件末 { printf(“%s”,msg);//输出读取到的文件内容 } fclose(file);//关闭文件 return 0;//返回 } 四:实验总结和分析

本次实验首次使用vi编辑器编写了一段代码,并成功的编译并运行。首先说一下vi编辑器的使用感受,和window不太一样,它有不同的模式,只有在特定的模式下才能执行相应的命令或者操作。而且我发现了另一个很好用的ee编辑器,使用这个编辑器可以很方便的进行文件的操作,主要是它有很丰富的提示。但是为什么vi编辑器是大家常谈的呢?主要是vi编辑器体积小巧,功能强大,虽然在大的系统工程方面不太好用,但是正常的使用来说还是足够的,几乎所有的类似操作系统都会装有这一编辑器,学会vi编辑器的使用可以使自己在没有别的编辑器的情况下还能进行文件的编辑和系统的配置。这样对于日后的开发有很大的好处。另外在发现FreeBSD中没有安装gcc时,我尝试过给器安装一个gcc编辑器,但是却失败了,截图如下(图1),希望通过后面的学习安装上去。

图1:安装gcc编译器失败

14.西南交大c语言实验 篇十四

C语言是大学的一门公共基础课, 更是计算机专业的学生学习其他课程如数据结构、面向对象程序设计的入门课程。在这门课程学习的初期, 教师会给学生介绍一些新的概念和语法, 学生可能会感觉C语言的学习是一个枯燥、乏味的过程。所以在学习了一定的理论基础知识后, 在适当的时候, 应该为学生安排上机实验课。C语言实验课的目的是使学生在学习理论知识的基础上, 通过实际的上机操作运用所学理论知识解决相应的实际问题。这样既可以巩固所学理论知识, 又能培养学生的实际动手能力和学习兴趣。理论需要在实践中进行验证, 因此, 必须抓好上机实验环节, 通过上机实验环节, 使学生建立严密的逻辑思维能力, 能够独立的编写和调试程序, 通过计算机执行运行出正确结果。这样更能激发学生学习《C语言程序设计》课的兴趣。

2、加强学生自主学习能力的培养

2.1 按照知识模块及每个模块所包含的知识点进行有目的地上机实验

在上机实验前, 教师应为学生事先安排好实验题目, 实验题目要分为基础题和有一点难度的题, 这样既可以让学生根据自己对知识的掌握程度, 选择上机实验要做的题目。学生应在上机实验前先按照自己的思路编写好程序, 在上机实验市将程序录入, 并进行调试。为了使上机实验课能达到更加理想的效果, 最好是教师规定学生在上机实验前必须写上机实验报告, 并认真检查, 这样学生进行上机实验的时候就能有的放矢, 从而达到事半功倍的效果。因为上机实验课的时间是有限的, 学生应提高上机实验课的晓率。如果在上机实验前没做好充分的准备, 让学生盲目地进行实践。对于初学者来说, C语言的入门需要一个过程, 初学者一般都是照着书本上的例子, 将程序录入, 长此以往, 学生就只会人云亦云了。应该在课程初期, 就应该鼓励学生构建自己的编程思想, 并将自己的思想用C语言来实现。这样有利于学生认识和肯定自我学习能力, 激发学生的学习热情。反之, 可能会助长学生的厌学情绪, 学生甚至会对这门课的学习产生恐惧心理, 进而怀疑自己的学习能力, 这是每一个教师都不希望看到的。

2.2 认真、耐心地指导学生进行上机实验

在第一次上机实验课的时候, 应该培养学生熟悉上机实验环境。这一时期较之前一阶段学生对C语言的学习会表现出浓厚的学习兴趣, 因为第一次接触上机实验环境, 学生会觉得很新鲜。所以在之后的上机实验课中, 教师要趁热打铁, 进一步激发学生的学习兴趣, 要帮助学生建立自信心。实验课的主要目的是培养学生自己调试程序的能力, 也就是培养学生发现问题和解决问题的能力。在指导学生时, 应该指导学生如何判断错误类型及如何改正相应的错误。错误分为编译错误和逻辑错误两类。编译错误, 即在调试程序时, 编译环境帮助编程者找出的错误, 通常称这类错误为"语法错误", 对于这类错误, 教师应指导学生理解错误提示信息的含义, 并改正相应的错误。另一类错误是"逻辑错误", 即编译环境不能帮助编程者找出的错误, 对于这类错误, 应该先让学生自己调试程序, 寻找问题之所在, 学生经过调试还不能解决的问题, 应该在教师的引导下, 通过学生自己的努力来解决问题, 这样能充分调动学生学习的积极性, 学生会有很大的收获, 以后再遇到这样的问题就会迎刃而解了, 而且这样可以更好地培养学生独立解决问题的能力。只有通过学生自己不断地上机调试程序, 不断地发现错误和改正错误, 才能切实地提高学生的编程水平。

2.3 每次实验课结束后, 安排学生进行编程思想的交流

教师在对学生的上机实验指导过程中, 会发现一些非常巧妙的编程思想, 俗话说得好, 青出于蓝胜于蓝, 集体的智慧是无穷的, 教师可以在以后的教学过程中, 借鉴这些巧妙的编程思想, 这样就会促进教学方法不断改进, 虽然基本知识点是不变的, 但我们的编程思想却是可以改进的。每个学生都有自己的编程风格, 组织学生在一起交流, 学生可以在不断地交流中, 不断地完善自己的编程思想。在交流过程中学生们可以各抒己见, 例如学生可以提出自己在编程过程中遇到的问题或提出自己的编程思想, 然后通过教师和学生共同讨论找出较好的解决问题的方法或较好的编程思想。学生会对编程产生更加浓厚的兴趣, 真正地达到教与学相长的目的。通过交流, 教师可以进一步了解学生的编程思想, 在以后的教学中可以更好地“因材施教”。通过思考学生提出的问题, 教师可以在以后的教学中进一步改进自己的教学方法。

C语言实验课的目的是使学生运用已掌握的基础理论知识来解决实际问题, 需要学生有很强的动手操作能力, 所以在最初开始C语言实验课的时候, 有些学生会有畏难情绪。在每次实验课的时候, 教师应使学生了解实验目的, 并出合理的教学实验内容, 及时、认真、耐心地指导学生上机实验, 并能在每次实验课后及时地组织学生进行交流。把握以上这些环节, 相信会充分调动学生的积极性, C语言实验课将会更加精彩。

参考文献

[1]左桂兰.计算机教学的实践与创新.辽宁教育行政学院学报, 2008 (2) .

[2]掌明.C语言教学改革与培养学生动手能力的研究与思考[J].科教平台, 2006 (28) .

上一篇:污水管道疏通总体方案下一篇:张东致辞