实训专题报告
题目:贪吃蛇游戏控制台应用及proteus 仿真的实现
实训名称:专业技能实训
班级:
学号:
学生姓名:
指导教师:
哈尔滨工程大学
2016年02月10日
哈尔滨工程大学本科生专业技能实训专题报告
摘要
随着计算机及通讯技术的迅猛发展,人们对小游戏的追求也越来越频繁,所以就有了本文的产生:编写C语言程序实现贪吃蛇游戏。
贪吃蛇游戏是一个深受人们喜爱的游戏,一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过按键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被蛇吃掉,这时蛇的身体长一节,同时计10分,接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体游戏结束。
作为一个完整的程序,必须考虑人机交流与用户体验。游戏的界面不能太丑,更不能连个简单的界面都没有。游戏应该有个比较漂亮的界面,在有必要硬件支持和软件的支持下,游戏开发者必须最大限度的使游戏美观。游戏的美观是一方面,游戏的内在素质是另一方面。一个游戏的优劣,最终由玩家决定。在游戏与玩家见面之前,游戏开发者要设计一种让玩家投入的游戏模式,并且在一定的游戏规则下进行。
在实现C语言部分的设计后,我们也完成了在proteus的环境中实现仿真,将程序进行迁移扩展,来达到通过仿真也能实现在单片机模拟环境中进行游戏。使得游戏更具有趣味性和新鲜感。
关键词:贪吃蛇;C语言;proteus仿真
哈尔滨工程大学本科生专业技能实训专题报告
1系统设计与算法分析
1.1需求分析与系统总体设计
根据课题所在项目的要求,需要开发出一款贪吃蛇小游戏,既能实现在控制台进行操作,同时也能将代码迁移到指定环境(protues仿真)中并实现相应的功能。这个游戏是人们生活中不可或缺的,从小到大,真正伴随我们成长的东西,游戏占有着很重要的地位.不论是一个玩具,还是一个能和伙伴一起开心的小游戏,都是能给我们留下很多美好的回忆.所以不论是什么样的游戏,只要它能迎合人们内心的某种需求,它的市场总会是好的,而贪吃蛇就是这样一个深受人们喜爱的游戏。一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过按键上的四个光标键控制向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇身体长一节,同时计10分,接着又会随机的出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体则游戏结束。结合以上分析,我们可以得到整个游戏的系统流程图,如图1.1。
1
哈尔滨工程大学本科生专业技能实训专题报告
2
图1.1 系统流程图
根据系统流程图,我们大致将游戏分为六个模块:开始界面模块、创建地图边界模块、创建食物模块、创建蛇模块、蛇移动控制模块和游戏结束模块。下面会分别进行说明。
1.2 游戏开始与结束模块设计
该模块为附加模块,不是主要模块,主要是为了增加游戏趣味性而设计。这一部分是由一个组员提出的设想,由于不是很难,所以很快就完成了。在该模块我主要是参与了控制台游戏开始和结束界面的编写,而仿真部分的界面则是由另一组员完成的。
控制台部分的开机界面比较简单,就是以默认创建好的地图为开机界面,而关机界面,我设计成了一个哭脸,在游戏失败后显示,并完成退回到主界面的操作。
protues 仿真部分的开机关机界面也很简单。开机动画我们仿照了3D 贪吃蛇的开机
哈尔滨工程大学本科生专业技能实训专题报告
3
界面,是一个萌萌的蛇头慢慢出现,吃掉“snake ”的字符,由此引导玩家进入游戏界面,如下图1.2.1;关机界面则在蛇头撞到边界或蛇头位置与蛇身重合时,游戏结束并弹出结束界面“游戏结束,别气馁 再来一次”。由于单片机程序不同于控制台,故结束界面结束后会重新进入游戏。如下图1.2.2所示。由于控制台部分不是本次实训的重点,故而不做重点讲解。
图1.2.1 仿真部分开机截图
哈尔滨工程大学本科生专业技能实训专题报告
图1.2.2仿真部分关机截图
1.3 食物与蛇的创建模块
基于以上需求分析,也可以将核心拆解为两个部分:也就是食物与蛇。为了便于理解,定义两个结构体:Food与snake。
表示食物和蛇的矩形都设计为10 X 10个像素单位,食物的基本数据域为它所出现的位置,用X和y 坐标表示,则矩形块用函数rectangle(x,y,x+10,y+10)或rectangle(x,y,x+10,y-10)可以画出。由于每次只出现一个食物,而食物被吃掉后,才出现下一个食物,所以设定yes 表示是否要出现一个食物的变量。
蛇的一节身体为一个矩形块,这样表示每个矩形块只需起点坐标x和y。身体是不断增长的,所以用数组存放每一节的坐标,最大设定为N=200 ,node表示当前节数。另外还需要保存蛇移动方向的变量direction 和表示生命的变量 life ,一但life 为1,则蛇死,游戏结束。所以程序功能的实现就是数组的操作。
第一部分是Food结构体的创建:
#define N 200
struct Food
{
int x; /* 食物的横坐标 */
int y; /* 食物的纵坐标 */
int yes; /* 判断是否出现食物的变量 */ } food; /* 食物的结构体 */
4
哈尔滨工程大学本科生专业技能实训专题报告
第二部分是snake结构体的创建:
struct snake
{
int x[N]; /* 蛇的横坐标 */
int y[N]; /* 蛇的纵坐标 */
int node; /* 蛇的节数 */
int direction; /* 蛇移动方向 */
int life; /* 蛇生命,0活着,1死亡 */ }snake;
1.4创建地图边界模块
游戏界面:用点表示墙壁边界,利用void write_dat(unsigned char dat)函数及void set_xy(unsigned char x,unsigned char y)函数和数组的结合对游戏边界进行初始化,并利用void write_hanzi(unsigned char x,unsigned char y,unsigned char code *dat)函数及void write_shuzi(unsigned char x,unsigned char y,unsigned char code *dat)函数对屏幕右侧得分、等级进行显示;
由于这个模块我没有直接参与,所以不做过多的介绍。
1.5蛇移动控制模块
用LCD屏右侧的四个开关LEFT、RIGHT、UP、DOWN控制蛇移动的方向, PAUSE开关控制游戏的暂停。游戏初始等级为低级,随着分数的增加等级会升至中级、高级,根据等级给定相关食物的分数,每吃到一个食物加上相应分数,并在显示屏右侧显示得分和等级。如下图1.5.1。
这一部分,我只负责蛇死亡的判定部分,在这里不做详细说明,详情在下面才测试
5
哈尔滨工程大学本科生专业技能实训专题报告
部分再提及。
图1.5.1 蛇移动算法流程图
2 系统实现与测试
整个系统是在我们小组四个人的共同努力下完成的,所以下文的介绍也有所侧重,主要针对我个人完成的部分进行介绍。
2.1游戏功能的实现
在这部分,我分别从主要功能、界面功能、操作功能三方面进行介绍。
2.1.1主要功能
6
哈尔滨工程大学本科生专业技能实训专题报告
(1)进入游戏界面,在游戏过程随着蛇吃到食物的数量增加,游戏难度随之加大即蛇的行进速度变快。
(2)当游戏难度加大时,玩家等级增加,同时吃到食物的分值增加,显示器右侧的显示玩家得分和游戏等级情况。
2.1.2界面功能
(1)在游戏界面有一个显示当前等级情况的窗口,方便用户来了解自己的等级。
(2)在游戏界面有一个显示当前得分情况的窗口,方便用户来了解自己的战绩。
2.1.3操作功能
游戏的主要操作是UP、DOWN、LEFT、RINGT、PAUSE五个按钮,分别表示向上、下、左、右移动和游戏暂停。
2.2蛇移动模块的实现
该模块主要以判定为主,首先要先判断,在蛇前进的四个方向上有没有食物,以向上为例:
if (status == w)
{
nexthead->x = head->x;
nexthead->y = head->y - 1;
if (nexthead->x == food->x && nexthead->y == food->y)//如果下一个有食物//
eatFood(nexthead);
else //如果没有食物//
noFood(nexthead);
}
7
哈尔滨工程大学本科生专业技能实训专题报告
这样在四个方向分别进行判断后即可确定蛇的移动方向。
2.3蛇死亡方式的实现
蛇的死亡方式分为两种:一种为咬到自身儿死亡;一种为撞到游戏边界(墙)而死亡。下面分别进行介绍。
首先为咬到自身死亡,我设置为函数dead1():
int dead1() //咬到自身死亡
{
snake * s0;
s0 = head->next;
while (s0 != NULL)
{
if (s0->x == head->x && s0->y == head->y)
{
return 1;
}
s0 = s0->next;
}
return 0;
}
然后是第二种死亡方式,撞墙而死,我设置为函数dead2():
void dead2() //撞墙而死
{
if (head->x == 0 || head->x == length || head->y == 0 || head->y == height) {
gameOver = 1;
end();
}
}
2.4等级模块的实现
为了增加游戏的趣味性,我们给游戏设计了自带加速功能,每五个食物点为一个等级,依次设置低级、中级、高级的等级,每上升一个等级,贪吃蛇的行进速度就会加快,得到的分值也会有相应的递增(低级每吃到一个食物得1分,中级3分,高级6分),使用户享受更加刺激的体验。这部分不是我一个人完成的,还有小组另一个人,我们两个共
8
哈尔滨工程大学本科生专业技能实训专题报告
9
同完成的。最后实现的界面如下图2.4.1。
图2.4.1 游戏低、中、高等级截图
3 结论
两周的实训时间真的过得很快,在这么短的时间内,我的C 语言知识得到了温习,编程能力得到了很大幅度的提高,我觉得这次实习真的很重要,而且是恰逢其时,当然通过自己编程的过程,也有了一些心得:编程要的是正确的结果,体会的是艰辛的过程,收获的是好心情。
首先编程的时候你不能觉得这是一个繁琐的过程,在遇到出错的时候要有信心解决,不要害怕出错,不能忽略细节,尤其是对标点以及输入输出函数,要正确使用。其次,编程要有一个扎实的知识储备,没把课本看好,没把例题看好,不会编出正确的程
哈尔滨工程大学本科生专业技能实训专题报告
序,同时,如果不多看程序,不断吸收别人的编程思想,就不会编出精彩的程序;当然也不能忽略与别人讨论与请教,在这过程中,我们可以相互交流编程想法,找到解决问题的最佳路径,这种团结协作的精神也是必须要有的。两周很短,编程的过程却很漫长,思考,编程,改错,运行,这就是编程的感觉。在这次实训中,我对C语言有了一个更深的了解认识,也对这个学期学的知识得到巩固,还尝试运行编程,每次运行程序成功,让我对下面的项目就充满信心。通过自己与同学合作编写程序,最终把最初的理论知识转化基本技能。这次的实训,使我对C语言的学习产生浓厚的兴趣。
贪吃蛇的这个项目,第一部分考察了我们C语言部分编码的熟练程度,第二部分仿真的部分,则需要我们在短时间内掌握一项之前没有接触过的单片机部分的技术,这不仅考验我们的知识的学习,更重要的是一种知识的迁移能力,我相信这对我们在今后的学习生活中,也会起到非常重大的作用,让我们终身受益。
10
哈尔滨工程大学本科生专业技能实训专题报告
参考文献
[1]【美】霍顿.C语言入门经典.计算机科学, 2013,37(11):300-301,306P.
[2]【美】普拉塔.C Primer Plus.计算机工程与科学,2005,32(2):114-117P.
[3]詹晓丽.AMPIRE128X64显示器. 计算机工程, 2005 ,12(5):255-257P.
[4]彭伟.C语言程序设计Protues. 计算机工程, 2009 ,11(5):255-257P.
[5]李伟.LCD12864液晶的使用. 计算机工程, 2001 ,10(5):255-257P.
11
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)利用机器人所装配的两个探测器,探测和避开障碍物。 三、设计步骤
实 验 报 告 二级学院:信息与工程学院 系别:计算机科学与技术系 专业:信息管理与信息系统 课程名称:高级语言程序设计 班级:姓名: 实验名称: 电话订餐信息处理 实验目的: 题目要求: 一个小饭馆的生意非常红火,要想用餐必须提前一天打电话预订,假设我们是饭馆负责接受电话预订的服务员,我们需要做些什么呢?首先,需要准备一张大小适当的白纸,等待顾客的电话。李红最先打进了电话,她预约第2天中午12点用餐,用餐人数5人,服务员在纸上做了如下记录:“李红 12点 5人”;接着,刘娜、汪涵、孙杰和赵君分别来了电话,服务员根据他们的要求做了记录,此时纸上记录的内容是: 李红 12点 5人 刘娜 11点 2人 汪涵 11点20分 3人 孙杰 10点30分 5人 赵君 13点20分 6人 孙杰随后又来电话,将用餐时间推后一个小时,那么记录的内容也应该做相应的修改。刘娜来用餐以后,可以将其信息从纸上划去 编写程序处理电话订餐的情况
实验步骤: 首先建立结构体类型,然后函数声明,编写主函数,定义函数,调用函数。完成后,对程序进行调试,确定所编写的程序是否能够运行。 实验内容: #include<> #include<> #define max 30 struct guest { intnum; char name[40]; char time[20]; int sum; }guestlink[max]; void insert(int *p); void inquire(int); void change(int); void dele(int *p); void show(int); void main() { inti; int count=0; do {0 printf("1.......插入\n"); printf("2.......查询\n"); printf("3.......修改\n"); printf("4.......删除\n"); printf("5.......显示\n"); printf("6.......退出\n"); scanf("%d",&i); switch(i) { case 1: insert(&count);break; case 2: inquire(count);break; case 3: change(count);break; case 4: dele(&count);break; case 5: show(count);break; case 6:break; default:printf("输入错误!");break; } }while(i!=6); }
单片机实训报告范文精选5篇 实训报告是展示自身实训收获成长的重要报告,那么实训报告该如何写呢?小编精选了一些关于实训报告的优秀范例,一起来看看吧。 单片机课程设计心得体会 在学校学习期间我有幸的参加了学校的单片机学习小组,在小组里我了解了什么是单片机,单片机有哪些用途,利用单片机可以实现哪些功能来方便人们的生活如交通灯,时钟,还有手机中,电子玩具等等,它们里面都有单片机的存在来实现某种功能。通过在单片机小组里的学习我简单总结了几点心得和体会: 第一:万事开头难,要勇敢的迈出第一步,不要总找借口说没有学习过就总推脱。凡事都有第一步可以先可简单的来,然后可以逐步的向深层次学习。可以从建项目开始,然后可以找一个简单的小程序先把它敲进单片机内然他运行起来,感觉一下单片机的运行,让自己了解单片机整个运行。 第二:对于知识点,学过的要掌握牢固,对于没有学的和暂时用不到的先不用学习。比如:小灯得点亮就没有用到中断可以先不用看。这样可以避免知识过多记不住的麻烦。对于程序这里的知识点不能只停留在理论层次上,一定要结合着程序进行学习这样才能掌握的很牢靠,当用到哪里的知识点不记得了可以去看书,对于用不到的可以不去看。 第三:程序不要只是看别人得,一定要自己写过才是自己的。开始
不懂可以参考别人的,看看每一句代表着什么意思,能够实现什么现象。明白之后自己再重新写一遍,你会发现看别人的能懂到自己写的时候很困难。当你自己能写出来的时候说明你真懂了。 第四:一定要学会程序调试的方法。有时候把程序写完了然后运行时不能实现理想的现象。这时有人就晕了不知该怎么办,然后就去问别人。当别人找出问题出在哪里时就会恍然大悟。其实当遇到问题一定要自己尝试着解决,不能遇到问题就去问别人。自己一定要掌握解决问的方法和思路。 第五:在学习初期看别人的代码,学习别人的思路这个很有用。通过看别人的代码特别是有多年编程经验的人的程序,可以迅速提高自己的编程水平。也可以结合着别人的手法,与自己的想法结合在一起写出更好的程序。但是切记将学习变成抄袭,不能认为抄袭别人的你就学会了,这样只能使你退步。第六:面对一个新项目时,自己一定要多想想,不要急着去看别人是怎么写的。有的人看到新项目时就去找别人的然后抄一小段,自己在写几句,放在一起完成任务,虽然省时间但不利你的学习。当你遇到一新项目时你应该先想一下程序的构架,想想如何来完成。然后自己动手去写,当你遇到实在是没办法解决的问题时再去请教别人,看他是怎么处理的,学习他的方法。这样起码你自己想过了,有自己的思路不会受到别人的影响,这样更容易提高自己。 在单片机的学习开始时感觉很吃力,在不断的学习过程中慢慢的对
篇一:《C语言上机实验心得》 C语言上机实验心得 在科技高度发展的今天,计算机在人们之中的作用越来越突出。而C语言作为一种计算机的语言,学习它将有助于我们更好的了解计算机,与计算机进行交流,因此,我们一定要学好C语言,这对我们以后的发展是十分重要的。 说到这,上机实验当然就是一个必不可少的环节了,C语言灵活、简洁的特点,只有通过编程实践才能真正了解,真正说懂。为了更好地学习语法规定、掌握程序设计方法、提高程序开发能力,我们必须实际上机、编写程序。 通过实验我也发现了自己不少的问题,这都是只看书上的程序而没有自己亲身上机编写程序而无法得知的,假如我们只因看熟书上的程序就以为自己已经掌握了C语言那就大错特错了。 我主要存在以下的这些缺点 1、学习耐心与细心不足,如scanf(“%d”,&n);中的“&”有时候会忘了。而在最后
输出时又错写成printf(“%d”,&n);从而错误得输出了地址而不是我原来想要的答案。 2、编程思想不够发散,看着题目有时想不出解答的方法,更不用说编写程序来解 题了。 3、 4、基本功不够,有些函数的表达不太精通,需要看书来核实,以致耗时较多。知识不够广,有些内容没有学好,不能要用到时及时反映出来,认识程度不够 深刻。 5、 6、有时候不够精简,有一点用处不大或者说没有也可以的文字存在。英语水平较差,对错误的地方虽然电脑有说,但由于是英文,理解上还是存在
一点问题。 为了能更好地学好C语言,在今后学习中我要更多的动脑,综合运用所学,多看相关东西,多上机练习,提高电脑水平,增强自学能力,把已会的东西掌握好。 实验中我深刻意识到完成程序的编写,决不意味着万事大吉。认为万无一失的程序,实际上机运行时可能会出现很多意想不到的问题。有时编译程序检测出一大堆错误,有时程序能够顺利运行,但是运行结果并不是你预期中想要的。因为开发环境所提供的编译系统无法发现程序逻辑错误,或者是你原来所设计时的理论错误,这就只能靠自己的上机经验来分析判断错误的所在了。所以程序的调试是一个技巧性很强的工作,它可能比编一个程序耗时更 多。由此可看出上机实践的重要性。 通过本次C语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了一定的体验。编程的时候有因为顺利编出程序而开心过、有因为做得比人家慢而郁闷过、有因为不知从何入手而无奈过、有因为不知错出在哪而彷徨过但随着练习的增多,我对C语言比以前熟了很多,不再只是纸上谈兵,我都有能力独立做出一些程序,可能对于一些“高手来说这不算什么,或者他们早就会了,但我依然觉得很开心,因为我跟我自己比是进步了。
单片机实训报告 一周的实训,让我们从另一个角度去发现单片机。期间我学会了很多宝贵的知识和经验,在这次单片机实训中我们巩固了我们平时所学的内容;加深了对各种调试和仿真软件的使用技能;掌握了单片机应用电路的设计和调试方法。 首先,我们要从所给定的元器件中设计出6个不同的电路,并编写程序实现相关任务要求。我们小组设计出的电路主有: (1)数码管轮流显示百十个位的数。要求:数据来源于拨码开关;个位显示完毕停留的时间稍微长些。 (2)定时计数器实现对外部脉冲计数5次后,流水灯的状态由亮点左流动转化成闪烁5次,然后回到初始状态。 (3)单键改变流水灯状态。按键一旦按下,流水灯状态由暗点右流动转化成闪烁8次,然后回到初始状态。 (4)双键改变流水灯状态。按键K0(连接INT0)按下,流水灯状态由亮点左流动,转化成闪烁5次,然后回到初始状态;按键K1(连接INT1)按下,流水灯状态由亮点左流动,转化成暗点右流动至最右端,然后回到初始状态;并且按键K1级别高于K0。 (5)串口输出数据,实现在2个数码管上显示60秒计数器。 (6)在集成的8位数码管上动态显示出:1——8的效果。
其次,我们要对我们所设计的电路进行电路布局、连线,检查电路是否出现错误或者遗漏。 然后,学会用KEIL软件调试程序,并用该软件菜单的各项调试工具和窗口。再结合硬件和软件,进行整体调试。 最后,当我们根据相关要求从所给定的元器件中设计出6个不同的电路、编写程序、线路布局,调试成功,我们的设计就完成了。 在这实训期间我深刻的认识到了理论知识和实践操作必须是相结合的,也许在实训时会有很多各种软、硬件等故障。 在编程时我们就出现了很大的障碍, 本来还以为编程会很简单的,等到实际操作起来才知道它的复杂性,没有想像中的那么得心应手, 最后不得不求出其他小组,原来本身程序的思维是正确的,只是步骤中有点小错误,所以导致整个程序的结果很乱。 我们在做双键改变流水灯状态的电路时又发现了一个头痛的问题,发光二极管不亮、开关不管用,刚开始的时候,我们检查了好几遍就是没有发现问题,快要失去耐心是发现少两连接了两根线,这是个好现象让我们有了继续往下的勇气,终于在反复的检查研究中,我们发现发光二极管不亮的正负方向反了,开关接错了位置,这才导致连接线路期间的错误不断。结果是可喜的,在我们小组竭尽全力,同学老师的帮忙下,我们的电路很成功。
报告编号:YT-FS-4244-21 C语言程序设计实验报告 (完整版) After Completing The T ask According To The Original Plan, A Report Will Be Formed T o Reflect The Basic Situation Encountered, Reveal The Existing Problems And Put Forward Future Ideas. 互惠互利共同繁荣 Mutual Benefit And Common Prosperity
C语言程序设计实验报告(完整版) 备注:该报告书文本主要按照原定计划完成任务后形成报告,并反映遇到的基本情况、实际取得的成功和过程中取得的经验教训、揭露存在的问题以及提出今后设想。文档可根据实际情况进行修改和使用。 实验名称计算出1000以内10个素数之和 实验目的 1、熟练掌握if、if…else、if…else if语句和 witch语句格式及使用方法,掌握if语句中的嵌套关 系和匹配原则,利用if语句和switch语句实现分支 选择结构。 2、熟练掌握while语句、do…while语句和for 语句格式及使用方法,掌握三种循环控制语句的循环 过程以及循环结构的嵌套,利用循环语句实现循环结 构。 3、掌握简单、常用的算法,并在编程过程中体验 各种算法的编程技巧。进一步学习调试程序,掌握语 法错误和逻辑错误的检查方法。
实验内容 计算并输出1000以内的10个素数以及它们的和。 要求: 在程序内部加必要的注释。 由于偶数不是素数,可以不考虑对偶数的处理。 虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。 输出形式为:素数1+素数2+素数3+…+素数10=总和值。 算法描述流程图 Main函数: 判断素数: 源程序 #include #include int sushu(int n)/* 判断素数的函数 */ { int t,i;
设计报告 一,实验目的: 通过上机实习,熟练掌握循环语句、选择语句、指针以及结构体的运用技巧。在实习中通过 实际操作,编写程序,发现问题,最后解决问题,提升对c语言实用性的理解,在实践中巩固各知 识点。 C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点,上 机实习可以帮助我们更好地理解这种结构式的 中级语言以及其各式各样的数据类型和高效率 的运算程序,为我们进一步学习C++打下坚实基 础。 同时,在实习过程中,通过互相发现问题,共同解决问题,不仅锻炼了我们的合作能力,而 且也让我们发现了一些自己的个人误区以及其 他人容易犯的错误,从而在今后的学习中更加谨 慎,达到事半功倍的效果;通过询问老师,也让 我们养成了不耻下问的好习惯,这将很有利于以 后的学习。 闲乐-一个人闲。不如大家一块儿乐https://www.sodocs.net/doc/2d18606077.html,
二,总体设计: 1,学生成绩排名 1,流程图: <通过冒泡法对数组进行排序> <测试时由于循环语句循环次数的错误导致部分数据没有排序,修改FOR语言中的条件即可调试成功>