北京理工大学珠海学院实验报告
BEIJING INSTITUTE OF TECHNOLOGY, ZHUHAI
班级机械八班学号110401081012 姓名谭健指导教师成绩
实验题目数据类型.运算符和表达式以及顺序结构程序设计实验时间 2012/10/19
一.实验目的:
1. 掌握C 语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法
2.掌握不同的数据类型之间赋值的规律;
3.学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加和自减运算符的使
用
4.进一步熟悉C 程序的编辑、编译、连接和运行的过程。
二.实验内容:
A.1.输入并运行以下程序
#include
int main( )
{
char c1,c2 ;
c1=97 ;
c2=98;
printf("%c%c\n",c1,c2);
return 0;
}
在程序上显示的是
ab
2.在此基础上增加一条语句:printf(“%d%d\n”,c1,c2);在运行,并分析结果。
运行时在程序上显示
ab
Press any key to continue
此结果与未加语句前的结果一样。
3将第二行改为:int c1,c2;再使其运行,并观察结果。
运行时在程序上显示
ab
其结果与未改前是一样的。
4.将第3、4行改为:c1=a;c2=b;使其运行,并观察结果。
运行时出现错误,无法执行。
列表中显示
Compiling...
a.cpp
C:\Windows\System32\a.cpp(5) : error C2065: 'a' : undeclared identifier
C:\Windows\System32\a.cpp(6) : error C2065: 'b' : undeclared identifier
执行 cl.exe 时出错.
a.obj - 1 error(s), 0 warning(s)
5.将3.4行改为:c1=“a”;c2=“b”;再使其运行,分析其结果。
程序依然出现错误,无法运行。
在列表中显示
Compiling...
a.cpp
C:\Windows\System32\a.cpp(5) : error C2440: '=' : cannot convert from 'char [2]' to 'char'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast C:\Windows\System32\a.cpp(6) : error C2440: '=' : cannot convert from 'char [2]' to 'char'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast 执行 cl.exe 时出错.- 1 error(s), 0 warning(s)
6.将3.4行改为:c1=280; c2=350; /*用大于255 的整数*/再使其运行,分析其运行的结果。
显示结果为
^
B.输入以下程序;
#include
int main( )
{
int i,j,m,n ;
i=8 ;
j=10 ;
m=++i ;
n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
return 0;
}
1.运行程序得:
9,11,9,10。
2.将第三行中的m,n的值改为:m=i++; n=++j;在运行。
程序出现错误,错误列表中显示:
Compiling...
a.cpp
C:\Windows\System32\a.cpp(4) : error C2065: 'm' : undeclared identifier
C:\Windows\System32\a.cpp(4) : error C2065: 'i' : undeclared identifier
C:\Windows\System32\a.cpp(4) : error C2065: 'n' : undeclared identifier
C:\Windows\System32\a.cpp(4) : error C2065: 'j' : undeclared identifier
执行 cl.exe 时出错.
a.obj - 1 error(s), 0 warning(s)
3.将程序改为:
#include
int main( )
{
int i, j;
i=8; j=10;
printf(“%d,%d”, i++, j++);
return 0;
}
运行并分析结果。
8,10。
其结果与原来输入的数相同。
4.在上面的基础上,将printf语句改为:printf(“%d,%d”, ++i, ++j);运行并分析结果。9,11 。
其结果与原来的数相比都增加了1.说明运行的新语句使结果加一。
5.将程序改为:
#include
int main( )
{
int i,j,m=0,n=0 ;
j=10 ;
i=8 ;
m+=i++;
n-=--j ;
printf("i=%d, j=%d, m=%d, n=%d",i,j,m,n);
return 0;
}
运行并分析结果:
其结果为
i=9, j=9, m=8, n=-9。其程序使m=i , i=i+1,j=j-1,n=j.
C语言程序设计 实训报告 题目:红外避障机器人 院(系):信息工程系 专业:通信工程 学生姓名:韦嘉宝 学号: 24 指导教师:朱震周斌王旬全刘辉 2016 年10月8 日 目录 摘要 (1) 设计要求 (2) 设计步骤 (3) 代码编写 (4) 心得体会 (5) 参考文献 (6)
许多机器人使用雷达(RADAR)或者声纳(SONAR)来探测物体而不需要同物体接触。本文的方法是使用红外光来照射机器人前进的路线,然后确定何时有光线从被探测目标反射回来,通过检测反射回来的红外光就可以确定前方是否有物体。由于红外遥控技术的发展,现在红外线发射器和接收器已经很普及并且价格很便宜。 随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器、并行和串行接口、看门狗、前置放大器、A/D转换器、D/A转换器等多种电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。这种技术促使机器人技术也有了突飞猛进的发展,目前人们已经完全可以设计并制造出具有某些特殊功能的简易智能小车。 机器人使用红外线二极管LED 作为前灯,如图6-1 所示。红外线二极管发射红外光线,如果机器人前面有障碍物,红外线从物体反射回来,相当于机器人眼睛的红外检测(接收)器,检测到反射回的红外光线,并发出信号来表明检测到从物体反射回红外线。机器人的大脑——单片机A T89S52 基于这个传感器的输入控制伺服电机。红外线(IR)接收/检测器有内置的光滤波器,除了需要检测的980 nm 波长的红外线外,它几乎不允许其他光通过。红外检测器还有一个电子滤波器,它只允许大约38.5 kHz 的电信号通过。换句话说,检测器只寻找每秒闪烁38500 次的红外光。这就防止了普通光源像太阳光和室内光对IR 的干涉。太阳光是直流干涉(0Hz)源,而室内光依赖于所在区域的主电源,闪烁频率接近100 Hz 或120 Hz。由于120 Hz 在电子滤波器的38.5 kHz 通带频率之外,它完全被IR 探测器忽略。 本任务将搭建并测试红外线发射和检测器对。本讲需要用到的新部件如下: 元件清单 (1)红外检测器,2 个。 (2)IR LED(带套筒),2 个。 (3)470? 电阻,2 个。 (4)连接线,若干。 二、设计要求 (1)小车能够完成前进、后退、左转、右转等动作。 (2)机器人能够读出传感器电平变化,并作相应的动作变化。 (3)利用机器人所装配的两个探测器,探测和避开障碍物。 三、设计步骤
东华理工大学C语言课程设计报告 学院:国际教育学院学院专业:电子信息工程 班级:1420606 学号:201420060638 姓名:钟天运
一、课程设计题目:游戏2048 二、课程设计要求: a)使用C语言编写2048这款游戏 b)能够正常运行,拥有游戏界面。 c)能正常进行游戏从开始到结束。 d)用户操作方便 三、设计思路: a)游戏介绍: i.2048是一款简单的数字类游戏,界面是一个 4*4的方形格子。每个格子里可以为空或者有 一个2^n的数值。 ii.用户可以输入4种指令,分别是:上下左右,游戏会根据用户的指定的方向,将格子中 的数值向对应方向进行移动,直至移动到最边 上的格子或者有其他数值占用,如果碰到等大 数值,将会进行合并。此外,成功移动后,会 在一个空格子随机生成一个2或者4 iii.游戏目标是合成2048这个数值或者更大的数值。 b)实现思路: i.可以使用二维数组来保存4*4格子中的数值 ii.指令,可以通过输入字符函数,读取用户
在键盘上的方向键,进行判断执行对应的代 码。 iii.游戏界面,可以使用简单的特殊制表符,来实现,并通过清屏函数来进行反复同位置打 印界面。 iv.需要判断游戏结束的函数,以及记录游戏分数和步骤的变量 v.当游戏结束时,能够询问用户是否重新开始。 vi.随机生成一个新数,可以调用随机函数,使用时间做种子。 c)实现难点: i.打印游戏界面,要实现灵活能根据棋盘数组里 面的数据灵活打印。 ii.执行操作时,数值的移动和合并。
四、流程图
五、C语言源代码 // 游戏2048.c #include "windows.h" #include "time.h" #include "stdio.h" #include "conio.h" #include "string.h" //宏定义常量方向键值 //const int LEFT = 75, UP = 72, RIGHT = 77, DOWN = 80; #define LEFT 75 #define UP 72 #define RIGHT 77 #define DOWN 80 const char error_str[] = "您上次输入的指令无法识别,请重新输入。"; struct board { int place[4][4]; long int stepn; long int num; //存储游戏分数 long int time; int dtk; //direction key 记录方向键,及操作方向 int over; int zeronum; }; //该函数为游戏运行函数,当只是玩游戏的时候。进入该函数,游戏控制函数。int main() { //place数组为棋盘,其中为零代表空,-1代表不能合并的牌,其他2的倍数值为本身含义,初始化为全0。 struct board board1, board_backup; int newgame(struct board *, int), show(struct board *), operate(struct board *); char str[100] = "首次运行游戏"; //用于记录系统返回给用户的信息,例如:上一步执行向左合并,按键有误等 newgame(&board1, 0); //调用函数为新局初始化,第二个
河南理工大学万方科技学院 C语言课程设计报告题目简单计算器编程 姓名何美美 学号072130026 专业07通信 班级一班 指导教师董玉杰 2008年09 月05日
目录 一、设计目的 (1) 二、本组课题及本人任务 (2) 三、主体内容 (3) (1)流程图 (2)源程序 (3)上机调试 (4)实验结果 四、设计体会 (6)
设计目的 1 复习、巩固C语言的基础知识,进一步加深对C语言的理解和掌握; 2 课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力; 3 培养学生在项目开发中团队合作精神、创新意识及能力 本组课题及本人任务 1 设计一个简单计算器能完成基本的加、减、乘、除计算,尽量模仿Windows计算器。系统界面不做强制要求。 2在本次设计中,由何永美、刘艳玲、贺清隆三人共同完成,由于知识掌握不牢,因此每一步都要共同商量,其中源程序由我们参考大量资料而成。 3本人负责程序调试及其他有关工作。
流程图主要内容 简单计算器
程序代码如下: /*代码文件名:E4_6.C*/ /*计算器的模拟*/ #include
C语言实习报告(用链表实现学生学籍管理)
绪言 C语言使国内外广泛使用的一种计算机语言。C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好。既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合编写系统软件。 在经过一整个学期的C语言理论学习,我们已经能够掌握其基本语法,但是缺乏一定的实际运用的能力。为了让我们更好的理解和运用其解决实际问题,并且对结构化程序有更进一步的认识,学校组织了这一次C语言实习。 实习中,我们将按要求完成一个较为复杂的程序编写——学生学籍管理程序。 实习基本内容和要求: 1、总体功能要求 (1)链表的建立:每个节点包括:学号、姓名、性别、语文、数学、英语、总分; (2)节点的插入:按学号的顺序插入; (3)删除链表中的节点:按学号或者姓名; (4)链表的输出:按学号排序、按总分排序。 2、性能的要求: (1)各个功能分别用函数实现;
(2)节点信息让用户通过键盘输入 (3)总分通过计算获得; (4)有简单的操作界面; 尽可能考虑程序的容错性、可操作性。 教材和主要参考书目: (1)教材:《C程序设计》,谭浩强编著,清华大学出版社(2)主要参考书目: ①《C程序设计教程》,谭浩强编著,清华大学出版社; ②《C语言程序设计——习题与实验指导》,谭浩强编著,清华大学出版社。实习过程: 我们将有5天的时间完成一个程序和一份实习报告。 1、我们要根据题目的要求进行需求分析和资料整理;(1天) 2、我们利用资料、教材和寻求他人帮助完成详细设计;(注: 关键部分解释说明)(3天) 3、完成一份对自己程序详细描述与解释的报告。(1天)
篇一:《C语言上机实验心得》 C语言上机实验心得 在科技高度发展的今天,计算机在人们之中的作用越来越突出。而C语言作为一种计算机的语言,学习它将有助于我们更好的了解计算机,与计算机进行交流,因此,我们一定要学好C语言,这对我们以后的发展是十分重要的。 说到这,上机实验当然就是一个必不可少的环节了,C语言灵活、简洁的特点,只有通过编程实践才能真正了解,真正说懂。为了更好地学习语法规定、掌握程序设计方法、提高程序开发能力,我们必须实际上机、编写程序。 通过实验我也发现了自己不少的问题,这都是只看书上的程序而没有自己亲身上机编写程序而无法得知的,假如我们只因看熟书上的程序就以为自己已经掌握了C语言那就大错特错了。 我主要存在以下的这些缺点 1、学习耐心与细心不足,如scanf(“%d”,&n);中的“&”有时候会忘了。而在最后
输出时又错写成printf(“%d”,&n);从而错误得输出了地址而不是我原来想要的答案。 2、编程思想不够发散,看着题目有时想不出解答的方法,更不用说编写程序来解 题了。 3、 4、基本功不够,有些函数的表达不太精通,需要看书来核实,以致耗时较多。知识不够广,有些内容没有学好,不能要用到时及时反映出来,认识程度不够 深刻。 5、 6、有时候不够精简,有一点用处不大或者说没有也可以的文字存在。英语水平较差,对错误的地方虽然电脑有说,但由于是英文,理解上还是存在
一点问题。 为了能更好地学好C语言,在今后学习中我要更多的动脑,综合运用所学,多看相关东西,多上机练习,提高电脑水平,增强自学能力,把已会的东西掌握好。 实验中我深刻意识到完成程序的编写,决不意味着万事大吉。认为万无一失的程序,实际上机运行时可能会出现很多意想不到的问题。有时编译程序检测出一大堆错误,有时程序能够顺利运行,但是运行结果并不是你预期中想要的。因为开发环境所提供的编译系统无法发现程序逻辑错误,或者是你原来所设计时的理论错误,这就只能靠自己的上机经验来分析判断错误的所在了。所以程序的调试是一个技巧性很强的工作,它可能比编一个程序耗时更 多。由此可看出上机实践的重要性。 通过本次C语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了一定的体验。编程的时候有因为顺利编出程序而开心过、有因为做得比人家慢而郁闷过、有因为不知从何入手而无奈过、有因为不知错出在哪而彷徨过但随着练习的增多,我对C语言比以前熟了很多,不再只是纸上谈兵,我都有能力独立做出一些程序,可能对于一些“高手来说这不算什么,或者他们早就会了,但我依然觉得很开心,因为我跟我自己比是进步了。
实验报告 一、问题陈述及其需求分析 (一)问题陈述 学生信息管理系统是对学生信息的基本管理,其中包括以下及模块: (1)增加一个学生的信息(需输入要增加学生的所有信息); (2)统计本班学生总人数及男女生人数。 (3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。 (4)按学号对所有学生信息排序,并输出结果; (5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。( 二) 功能需求分析 学生信息管理系统设计 学生信息包括:学号,姓名,性别,出生年月,电话 使之提供以下功能: 1、系统以菜单方式工作 2、建立链表并显示 3、插入新的学生信息 4、删除某学号的学生信息 5、查找某学号的学生信息 6、对学生信息排序 7、统计学生人数 8、输出学生信息 二总体设计 (一)模块 依据程序的数据结构,描述该程序的层次结构,如下图:
1、建立链表并显示 void createlist(struct stucode **r); 2、插入新的学生信息 void insert(struct stucode **r); 3、删除某学号的学生信息 void del(struct stucode **r); 4、查找某学号的学生信息 void search1(struct stucode *r); 5、对学生信息排序 void sort(struct stucode **r); 6、统计学生人数 void search2(struct stucode *r); 7、输出学生信息 void out(struct stucode *r); 1 建立链表并显示 2 添加学生信息 3 删除学生信息 息 4 按学号查找学生信 5 对学生信息排序 6统计学生人数 7输出学员信息 8 学生信息写入文件 0退出 main() 菜单函数
C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。
3算法描述流程图
4源程序 #include
for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="forever",s2[50]="more"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。
设计报告 一,实验目的: 通过上机实习,熟练掌握循环语句、选择语句、指针以及结构体的运用技巧。在实习中通过 实际操作,编写程序,发现问题,最后解决问题,提升对c语言实用性的理解,在实践中巩固各知 识点。 C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点,上 机实习可以帮助我们更好地理解这种结构式的 中级语言以及其各式各样的数据类型和高效率 的运算程序,为我们进一步学习C++打下坚实基 础。 同时,在实习过程中,通过互相发现问题,共同解决问题,不仅锻炼了我们的合作能力,而 且也让我们发现了一些自己的个人误区以及其 他人容易犯的错误,从而在今后的学习中更加谨 慎,达到事半功倍的效果;通过询问老师,也让 我们养成了不耻下问的好习惯,这将很有利于以 后的学习。 闲乐-一个人闲。不如大家一块儿乐https://www.wendangku.net/doc/8f14411089.html,
二,总体设计: 1,学生成绩排名 1,流程图: <通过冒泡法对数组进行排序> <测试时由于循环语句循环次数的错误导致部分数据没有排序,修改FOR语言中的条件即可调试成功>