编程实验报告
Ⅰ c++学习过程的实验报告
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{ int n=0,s=0,x,i,max,min,a[11];
cin>>x;
while(x>=0)
{ a[n]=x;
s+=x;
if(n++==0)max=min=x;
else if(x>max)max=x;
else if(x<min)min=x;
cin>>x;
}
for(i=0; i<n; i++)
cout<<a[i]<<", ";
cout<<" 学生的人数:"<<n;
cout<<" 学生的总分是:"<<s;
cout<<" 学生的平均分是:"<<(double)s/n;
cout<<" 学生的最高分是:"<<max;
cout<<" 学生的最低分是:"<<min<<endl;
system("pause");
return 0;
}
Ⅱ 计算机程序设计基础的实验报告怎么写
1
实验要求
:
1.
实验前按实验报告格式要求,写出预实验报告,注意留出记录结果的空间。
2.
认真实验
,
注意记录
3.
撰写实验报告
.
按时上交
.
实验报告格式:
实验
*
***** ***** *****
一、
实验目的
照抄实验指导的内容。
二、
实验步骤和内容
包括:
1
.实验题目要求。
2
.源程序清单
3
.预期结果
3
.上机执行或调试结果:包括原始数据、相应的运行结果和必要的说明
三、
实验体会
调试中遇到的问题及解决办法;若最终未完成调试,要试着分析原因;调试程
序的心得与体会;其他算法的存在与实践;对课程及实验的建议等。
Ⅲ 咋写c语言实验报告
c(c++)上机实验报告格式:
⒈ 实验目的
(1) 了解在具体的语言环境下如何编辑、编译、连接和运行一个 C 程序。
⑵ 通过运行简单的 C 程序,初步了解 C 源程序的特点。
⑶ 掌握 C 语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。
⑷ 掌握不同的类型数据之间赋值的规律。
⑸ 学会使用 C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
2.实验内容和步骤
⑴ 检查所用的计算机系统是否已安装了 C 编译系统并确定他所在的子目录。
⑵ 进入所用的集成环境。
⑶ 熟悉集成环境的界面和有关菜单的使用方法。
⑷ 输入并运行一个简单的、正确的程序。
⒊ 实验题目
⑴ 输入下面的程序
# include “stdio.h” void main()
{ printf(“This is a c program. ”); }
Ⅳ 有谁能够告诉我c语言的实验报告怎么写
实验题目:
编程实现:二叉树采用二叉链表存储,要求建立一棵二叉树,并输出要求的树状形式与结点编号。
结点结构为:
lchied Data num rchied
其中二叉树的num编号域为整数类型,data数据域为字符类型,
要求生成二叉树中编号,从1开始进行连续编号,每个结点的编号大于其左右子树中孩子的编号,同一个结点的左右孩子中,其左孩子的编号小于其右孩子的编号,
请给出对二叉树中结点的实现如上要求编号并按如下树状形式打印出相应点编号的程序。
测试数据:输入 AB∪D∪∪CE∪F∪∪∪ (其中符号“∪”表示空格(space)字符)
实验分析:
本题的考察点:二叉树遍历应用。本题主要涉及到对二叉树的创建,二叉树的打印,以及在遍历的时候顺便给每个节点编号,这样打印的时候顺便就把节点的序号也打印出来了。下面分别给出三个算法。
二叉树的创建算法:
二叉树的打印算法:
给结点的编号算法:
另外在这里也阐明一下二叉树的结构:
结合上面的四个算法,这个问题自然也就迎刃而解了,这样也就能得到这个问题的完整程序。
完整程序如下:
#include<stdio.h>
#include<stdlib.h>
typedef struct BiTNode
{
int num;
char data;
struct BiTNode *LChild,*RChild;
}BiTNode,*BiTree;
void CreateBiTree(BiTree *BT)
{
char ch;
ch=getchar();
if (ch==' ') (*BT)=NULL; /* #代表空指针*/
else
{
(*BT)=(BiTree) malloc(sizeof(BiTNode));/*申请结点 */
(*BT)->data=ch; /*生成根结点 */
CreateBiTree(&((*BT)->LChild)); /*构造左子树 */
CreateBiTree(&((*BT)->RChild)); /*构造右子树 */
}
}
void print(BiTree root,int nlayer)
{
int i;
if(root==NULL)return;
print(root->RChild,nlayer+4);
for(i=0;i<nlayer;i++)
printf(" ");
printf("%c%d\n",root->data,root->num);
print(root->LChild,nlayer+4);
}
void num(BiTree bt)
{
static int i=1; //定义静态全局变量
if(bt!=NULL)
{
num(bt->LChild);
num(bt->RChild);
bt->num=i;
i++;
}
}
int main()
{
BiTree bt;
printf("请输入相关字符以创建一个二叉树:\n");
CreateBiTree(&bt);
num(bt);
print(bt,1);
return 0;
}
程序的测试结果:
实验总结:
在解决具体的实验问题时,我们要分析问题,将一个大的问题细分为一个个小的问题,再去分析解决一个个小的问题,这样就能很好的解决问题了。在平时的实验过程中,要注重培养自己的分析问题及解决问题的能力。
大致一个流程和格式是这样的,具体的可以自己添加。。。。
Ⅳ 2021大学生计算机实验总结报告
实验相对于每个人来说都有着特殊的意义,一般意义上来说他肯定是都会有不一样的 心得体会 ,对于那些学习过实验后的人来说记录下这些心得体会是十分重要的,写一份实验心得体会他不仅仅能抒发自己的情感,与此同时我们还能学会做人,下面就让我带你去看看大学生计算机实验 总结 报告 范文 5篇1,望能帮助到大家!
更多的计算机实验总结请点击下方↓↓↓
★计算机实训总结范文5篇★
★大学生计算机实习总结报告★
★计算机实训报告范文精选5篇★
★大学生计算机实习报告总结3000字★
计算机实验报告1
一、实验目的
1.掌握Word文档的创建、并按指定路径、指定文件名保存文件。
2.掌握文档中文字的快速输入并设置:文字的字号、字体、字颜色、行间距、字间距等格式。
3.掌握文档中段落的分栏、首字下沉、底纹、边框、页眉页脚等的设置 方法 。
4.掌握文档中插入艺术字、剪贴画、图片及公式的方法、并设置其版式及图片文字说明。 5.掌握规则、非规则表格的设计。
5.掌握使用Word软件对论文、科技 文章 进行排版。
6.掌握文档中页面设置、文字的字体字号、颜色、行间距、字间距的设置。 8.掌握分页、分节要点,按不同章节的要求,设置不同的页眉、页脚。
7.掌握正文及三级标题的设置,并自动生成目录(或有修改后同步该目录)。 10.掌握论文封面的设计。
二、实验内容
1.单文档图文混排。
2.长文档排版。
三、实验过程及结果
计算机系统由计算机系统赖以工作的实体。后者是各种程序和文件,用于指挥全系统按指定的要求进行工作。
通常所说的计算机均指数字计算机,其运算处理的数据,是用离散数字量表示的。而模拟计算机运算处理的数据是用连续模拟量表示的。模拟机和数字机相比较,其速度快、与物理设备接口简单,但精度低、使用困难、稳定性和可靠性差、价格昂贵。故模拟机已趋淘汰,仅在要求响应速度快,但精度低的场合尚有应用。把二者优点巧妙结合而构成的混合型计算机,尚有一定的生命力。
硬件和软件两部分组成。硬件包括中央处理机、存储器和外部设备等;软件是计算机的运行程序和相应的文档。计算机系统具有接收和存储信息、按程序快速计算和判断并输出处理计算机系统由硬件(子)系统和软件(子)系统组成。前者是借助电、磁、光、机械等原理构成的各种物理部件的有机组合,是电子计算机分数字和模拟两类。
计算机实验报告2
计算机网络课程的实验不同于以前做过的C语言上机实验和数据结构上机实验,后两者都是编程的,要求的是个人对基础知识的掌握和熟练的应用,简单地说就是一个人的战场。而计算机网络课程则是一门操作性很强的课程,很多时候它更要求我们注重团队之间的交流与配合,而不是独自完成。
第一次实验是双绞线的制作,通过这个实验让我学到了如何制作双绞线,也是我大学期间第一次做操作性这么强的实验。以前的实验都是编程,而这一次的实验却是完完全全地让我们自己动手。剥皮->排序->理直->剪齐->插入->压线,虽然实验过去了有一段时间,但是还是能清楚地记得做法。虽然最后我们的实验没有成功,但是这并不代表我们没有收获。
第二次的实验是Linu__的使用与DNS服务器的配置与管理。在课堂上,由于机子的问题,Linu__不能成功打开。于是就学习了一下DNS服务器的配置和管理。通过学习,我知道了如何添加DNSZone,如何添加主要区域,正向搜索和反向搜索,添加DNSDomain,如何设置DNS服务器的动态更新,如何修改区域传输的通知列表等等。关于Linu__,下课后仍然不死心,自己在网上下了个Linu__ 操作系统 ,然后在同学的指导下一步步地装好了。虽然说最后没怎么用,自己也不会用。但是当打开操作系统的那一瞬间,那个华丽丽的界面还是让我深深地震撼了一把。不得不感叹Linu__真的好高级。我相信,不久之后,我一定可以熟练操作Linu__系统的。
第三次试验是有关聊天软件和点歌软件的配置和运用。在这个实验里,我们开始有了更明确的分工,一个同学做客户端,一个同学做服务端,在做这些之前,要首先修改我们的IP。但是后来我想,其实根本没必要修改IP,实验课程里面要求我们修改IP,不过是让我们对此更熟悉而已。在这次的实验中,我扮演的是服务端的角色,按照实验要求一步一步地操作,我们成功地用RT__软件语音聊天。也成功地用DJ点歌服务为对方点歌。其实这次实验给我的感觉,有点像运营商与用户的关系,运营商通过相关设置,让用户可以访问其客户端进行相关的操作。这次的实验为之后的模拟网站发布奠定了一定的基础。
随后的几周,我们又进行了网站发布,模拟小型局域网的实验。通过这些实验,让我们对身边的计算机网络有了更为客观、形象、具体的认识。而不是仅仅限于书本上的文字表达,或者是思维中模糊的想象。这门实验课程,不仅是对理论课程的巩固,更是对理论课程的扩充。除此之外,在实验过程了,我们学会了相互合作,相互帮助,了解了团队合作的重要性,也知道了怎么样和团队成员之间协调。要想实验成功,必须要确保每一个环节,每一个团队成员负责的版块都没有出错,合起来,整个实验的最终目标才可以实现。
计算机实验报告3
课程:大学计算机基础 班级 : __________ 学号:____ 姓名:______组别: 同组者姓名: 仪器编号: 实验日期:
实验 windows 2000 操作[实验目的]1. 掌握windows 2000的启动和退出。熟悉windows 2000的桌面环境,掌握“回收站”、任务栏、帮助菜单的使用。2. 掌握windows 2000的窗口、菜单以及对话框的操作。掌握“资源管理器”和“我的电脑”的使用。3. 掌握文件与文件夹的创建、移动、复制等基本操作。4. 掌握应用程序的安装与删除、移动与退出,快捷方式的创建与删除。5. 掌握windows 2000系统的设置,了解windows2000 附件的使用。[实验环境]硬件:pentium 以上的计算机。软件:windows2000 操作系统。[实验内容]
见附件[实验结果]1.建立了如下图所示目录树:d: user new1.cod a user2 b bbb new2.docbbb2.完成了“计算机”快捷方式的创建。3.完成了控制面板中显示、区域选项等属性的设置。 实验指导教师(签名) 实验成绩 实验报告批改日期: 实验内容:2.(1)打开b文件夹 选中bbb 单击右键后选择“复制”命令 打开user文件夹 在空白处单击右键后选择“粘贴”命令。 (2)打开user文件夹 选中b 单击右键后选择“剪切”命令 打开a文件夹 在空白处单击右键后选择“粘贴”命令。 (3)打开user文件夹 选中c 单击右键后选择“删除”命令。3.(1)单击“开始”按钮后选择“搜索/文件或文件夹”命令 在搜索对话框的文件名栏中输入“calc.e__e” 单击“搜索”按钮 选中找到的程序 单击右键选择“发送到桌面快捷方式”。 (2)选中桌面上的“calc.e__e”快捷图标 右键单击后选择“重命名” 输入“计算器”。(3)选中桌面“计算器”快捷图标 按鼠标左键拖动到“开始”菜单的“程序”选项中。(4)选中桌面上的“计算器”快捷图标 按鼠标左键拖动到“回收站”图标上 在确认对话框中单击“是”。4.(1)打开“控制面板”窗口 双击 显示器 图标 单击“屏幕保护程序”选项卡 在“屏幕保护程序”下拉列表框中选择“滚动字幕” 单击设置按钮 出现的对话框分别做相应的设置 单击“应用”按钮 单击“确定”按钮。 (2)打开“控制面板”窗口 双击显示器图标 单击“图案”按钮 在图案列表框中选择“clouds” 在“显示图片”列表框中选择“居中” 单击“应用” 单击“确定”。 (3)打开“控制面板”窗口 双击“区域选项”图标 单击“货币”选项卡 在“货币符号”下拉列表框中选择“$” 在“货币正数格式”下拉列表框中选择“¥1.1” 在“货币负数格式”下拉列表框中选择“-¥1.1” 单击“应用”按钮 单击“确定”按钮。(4)打开“控制面板”窗口 双击“区域选项”图标 单击“数字”选项卡 在“小数点后面的位数”下拉列表框中选择“2” 在“数字分组符号”下拉列表框中选择“,” 在“组中数字个数”下拉列表框中选择“123,456,789” 单击“应用”按钮 单击“确定”按钮。(5)打开“控制面板”窗口 双击“区域选项”图标 单击“日期”选项卡 在“短日期格式”下拉列表框中选择“yy-mm-dd” 单击“应用”按钮 单击“确定”按钮。(6) 单击“时间”选项卡 在“时间格式”下拉列表框中选择“hh:mm:ss” 在“上午格式”下拉列表框中选择“am” 在“下午格式”下拉列表框中选择“pm” 单击“应用”按钮 单击“确定”按钮。(7)打开“控制面板”窗口 双击“任务栏和开始菜单”图标 在“自动隐藏任务栏”单选按钮前打钩 去掉“显示时钟”单选按钮前的钩 单击“应用”按钮 单击“确定”按钮。5.(1)单击“开始”菜单 选择“程序/附件/画图”打开画图程序 按要求画一副风景图。 (2)在“画图”窗口中单击“a”按钮 输入文字“这是我的家”(3)单击“文件/保存”菜单 在“文件名”文本框中输入“我的家 ”存盘 (4)打开一副图片 按[alt]+[print screen] 打开“画图”程序 单击“文件/新建”菜单 在图纸的空白出单击右键选择“粘贴” 单击“文件/保存”菜单 在“文件名”文本框中输入“截图 ”存盘。
计算机实验报告4
计算机网络课程实训已经结束几天了.实训期间,让我学到了很多东西,不仅使我在理论上对网络有了全新的认识,在实践能力上也得到了提高,真正地做到了学以致用,更学到了很多做人的道理,对我来说受益非浅。除此以外,我还学会了如何更好地与别人沟通,如何更好地去陈述自己的观点,如何说服别人认同自己的观点。第一次亲身感受到理论与实际的相结合,让我大开眼界。也是对以前所学知识的一个初审吧!这次实训对于我以后学习、找工作也真是受益菲浅,在短短的几天中相信这些宝贵的 经验 会成为我今后成功的重要的基石。
作为一名大一的学生,经过差不多一年的在校学习,对网络有了理性的认识和理解。所以在实训之前,网络对我来说是比较抽象的,在这次实训中,是一次比较真实的接触网络。让我们亲身体会了什么是网络,以及计算机软件、硬件等等。这次实训也让我深刻了解到,不管在工作中还是在生活中要和老师,同学保持良好的关系是很重要的。三人行必有我师,其实同学也是我们的老师不懂可以相互问。在这几天的实训中可以说是我们上大学以来学的最多有关专业的知识,比如说:虚拟机VMwareWorkstation、局域网联网实践、WindowsServer2003基础、Linu__网络操作系统、网络操作系统综合实训、网络操作系统综合实训等等。这次实训我们真正的学到了技术,这些知识基础而富有内涵有助于我们专业知识的入门,更有助于我们未来的发展。
这次实训我们收获很大,对于刚入门的我们一切都是那么的陌生。
在此期间老师给我们点起了一盏灯指引我们走向光明,这样的情况下我们也会面对许许多多的困难,这个时候我们感受到了集体力量的伟大,我们互帮互助共同完成了实训工作。我们在虚拟机上装系统进行双机互联,我们一起装系统一起互 相学 习,我们一起感受成功的快乐,这一刻我们共同成长。
俗话说:走过去前面依然是片蓝天,每天的太阳都是新的。相反,瞻前顾后,畏首畏尾,往往会导致自我封闭错失良机,最终会导致止步不前一事无成。“只有相信自己,别人才能相信你,才能给你机会。”绝对是至理 名言 。
在做调研的时候也是一样,我们拥有了自信去敲门并从我们的行动中表现出来,当别人从我们身上眼里看到这种自信时候,他们也就相信了我们自身的能力,就会给我们机会,也就会配合我们要做的事情,并乐意去做的更好;反之如果你表现的畏首畏尾的话,让他们看不到我们自身的能力,给他们一瓶子不满半瓶子逛荡的感觉,而且还显得那么幼稚那么的不稳重,所以就会对我们的请求不屑一顾或者随便找个借口把你打发走,而这正是我们做事情所不愿意看到的。所以当一个人拥有自信的时候一切都再不那么遥远!
所以说无论做什么事我们都要充满自信地去探索去摸索敢于尝试,真诚合作!
计算机实验报告5
一、《软件技术基础》上机实验内容
1.顺序表的建立、插入、删除。
2.带头结点的单链表的建立(用尾插法)、插入、删除。
二、提交到个人10m硬盘空间的内容及截止时间
1.分别建立二个文件夹,取名为顺序表和单链表。
2.在这二个文件夹中,分别存放上述二个实验的相关文件。每个文件夹中应有三个文件(.c文件、.obj文件和.e__e文件)。
3. 截止时间:12月28日(18周周日)晚上关机时为止,届时服务器将关闭。
三、实验报告要求及上交时间(用a4纸打印)
1.格式:
《计算机软件技术基础》上机实验报告
用户名se________ 学号姓名 学院
①实验名称:
②实验目的:
③算法描述(可用文字描述,也可用流程图):
④源代码:(.c的文件)
⑤用户屏幕(即程序运行时出现在机器上的画面):
2.对c文件的要求:
程序应具有以下特点:a可读性:有注释。
b交互性:有输入提示。
c结构化程序设计风格:分层缩进、隔行书写。
3. 上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。 请注意:过时不候哟!
四、实验报告内容
0.顺序表的插入。
1. 顺序表的删除。
2.带头结点的单链表的插入。
3. 带头结点的单链表的删除。
注意:1. 每个人只需在实验报告中完成上述4个项目中的一个,具体安排为:将自己的序号对4求余,得到的数即为应完成的项目的序号。
例如:序号为85的同学,85%4=1,即在实验报告中应完成顺序表的删除。
2. 实验报告中的源代码应是通过编译链接即可运行的。
3. 提交到个人空间中的内容应是上机实验中的全部内容。
大学生计算机实验 总结报告 相关文章:
★ 计算机实训总结范文5篇
★ 大学生计算机实训心得体会
★ 大学生计算机专业实习报告范文5篇
★ 计算机实训报告范文精选5篇
★ 计算机网络个人实习总结
★ 计算机实践报告范文3000字3篇
★ 大学生计算机实习报告总结3000字
★ 计算机实习报告范文5篇
★ 大学生计算机实习报告总结3000字(3)
★ 大学生计算机实训心得体会(2)
var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm..com/hm.js?"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();Ⅵ c语言实验报告总结怎么写
c语言实验报告总结这样写:
在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。
为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:
1、加深对课堂讲授内容的'理解
课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。
通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。
通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去"掩盖"程序中的错误,而不是尽可能多地发现程序中存在的问题。
自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。
2、熟悉程序开发环境、学习计算机系统的操作方法
一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓"环境"就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。
通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。
3、学习上机调试程序
完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。
开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。
通过这次为数不多的几天计算机实践学习,我们了解了一些关于c语言的知识,理解巩固了我们c语言的理论知识,着对我们将来到社会工作将会有莫大的帮助。同时它让我知道,只要你努力,任何东西都不会太难!
Ⅶ C++实验报告怎么写
实验要求:把题目抄进去。。实验原理:把代码抄进去。。实验材料:计算机一台,VC++6.0。。实验调试:把编程过程中的错误抄进去。。没错误你删个分号让它出错。。实验结果:把程序运行结果抄进去。。心得体会:C++真是好东西啊。。
Ⅷ c语言实验报告心得
c语言实验心得:
1、只有频繁用到或对运算速度要求很高的变量才放到data区内,如for循环中的计数值。
2、其他不频繁调用到和对运算速度要求不高的变量都放到xdata区。
3、常量放到code区,如字库、修正系数。
4、逻辑标志变量可以定义到bdata中。
在51系列芯片中有16个字节位寻址区bdata,其中可以定义8*16=128个逻辑变量。这样可以大大降低内存占用空间。定义方法是: bdata bit LedState;但位类型不能用在数组和结构体中。
5、data区内最好放局部变量。
因为局部变量的空间是可以覆盖的(某个函数的局部变量空间在退出该函数是就释放,由别的函数的局部变量覆盖),可以提高内存利用率。当然静态局部变量除外,其内存使用方式与全局变量相同;
6、确保程序中没有未调用的函数。
在Keil C里遇到未调用函数,编译器就将其认为可能是中断函数。函数里用的局部变量的空间是不释放,也就是同全局变量一样处理。这一点Keil做得很愚蠢,但也没办法。
7、如果想节省data空间就必须用large模式。
将未定义内存位置的变量全放到xdata区。当然最好对所有变量都要指定内存类型。
8、使用指针时,要指定指针指向的内存类型。
在C51中未定义指向内存类型的通用指针占用3个字节;而指定指向data区的指针只占1个字节;指定指向xdata区的指针占2个字节。如指针p是指向data区,则应定义为: char data *p;。还可指定指针本身的存放内存类型,如:char data * xdata p;。其含义是指针p指向data区变量,而其本身存放在xdata区。
以前没搞过C51,大学时代跟单片机老师的时候也是捣鼓下汇编,现在重新搞单片机,因为手头资料不多,找到一些C51的程序,发现里面有这些关键字,不甚明了,没办法只好找了下,发现如下描述:
从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率(此问题将在后面专门讲述)。与ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各种不同的模式对应不同的实际硬件系统,也将有不同的编译结果。
在51系列中data,idata,xdata,pdata的区别
data:固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。
idata:固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。idata是用类似C中的指针方式访问的。汇编中的语句为:mox ACC,@Rx.(不重要的补充:c中idata做指针式的访问效果很好)
xdata:外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。
pdata:外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movx ACC,@Rx读写。这个比较特殊,而且C51好象有对此BUG,建议少用。但也有他的优点,具体用法属于中级问题,这里不提。
三、有关单片机ALE引脚的问题
"单片机不访问外部锁存器时ALE端有正脉冲信号输出,此频率约为时钟振荡频率的1/6.每当访问
外部数据存储器是,在两个机器周期中ALE只出现一次,即丢失一个ALE脉冲."这句话是不是有毛
病.我觉得按这种说法,应该丢失3个ALE脉冲才对,我一直想不通是怎么回事,希望大虾们帮帮我.
小弟感激涕零.
答:
其他所有指令每6个机器周期发出一个ALE,而MOVX指令占用12个机器周期只发出一个ALE
四、如何将一个INT型数据转换成2个CHAR型数据?
经keil优化后,char1=int1/256,char2=int1%256或char1=int1>>8,char2=int1&0x00ff效率是一样的。
五、在KEIL C51上仿真完了,怎样生成HEX文件去烧写??
右键点项目中Target 1,选第二个,在OUTPUT中选中CREAT HEX
六、typedef 和 #define 有何不同??
typedef 和 #define 有何不同》》》 如
typedef unsigned char UCHAR ;
#define unsigned char UCHAR ;
typedef命名一个新的数据类型,但实际上这个新的数据类型是已经存在的,只不过是定义了
一个新的名字.
#define只是一个标号的定义.
你举的例子两者没有区别,但是#define还可以这样用
#define MAX 100
#define FUN(x) 100-(x)
#define LABEL
等等,这些情况下是不能用typedef定义的
七、请问如何设定KELC51的仿真工作频(时钟)
用右键点击左边的的target 1,然后在xtal一栏输入
八、不同模块怎样共享sbit变量,extern不行?
把SBIT定义单独放到一个.H中,每个模块都包含这个.h文件
九、C51中对于Px.x的访问必须自己定义吗?
是的。
如sbit P17 = 0x97;即可定义对P1.7的访问
十、SWITCH( )语句中表达式不可以是位变量对吗?
可以用位变量:
#include
#include
void main()
{
bit flag;
flag=0;
switch(flag)
{
case '0':{printf("0\n");break;}
case '1':{printf("1\n");break;}
default:break;
}
}
bit 变量只有两种状态,if 语句足够啦,!!!
十一、const常数声明占不占内存???
const 只是用来定义“常量”,所占用空间与你的定义有关,如:
const code cstStr[] = {"abc"};
占用代码空间;而如:
const char data cstStr[] = {"abc"};
当然占用内存空间。
另外,#define 之定义似乎不占用空间。
十二、philips的单片机P89C51RD+的扩展RAM在C51中如何使用?
试一试将auxr.1清0,然后在c语言中直接声明xdata类型的变量
十三、BUG of Keil C51
程序中用如下语句:
const unsigned char strArr[] = {"数学"};
结果发现strArr[] 内容为 {0xCA,0xD1,0xA7},真奇怪!
凡是有0xfd,则会通通不见了,所以只能手工输入内码了,例如 uchar strArr[]=
{0xCA,0xfd,0xd1,0xa7}(用Ultraedit会很方便)。
十四、Keil C51中如何实现代码优化?
菜单Project下Option for target "Simulator"的C51.
看到Code optimization了吗?
十五、请教c的!和 ~ 符号有甚区别??
!是逻辑取反,~是按位取反。
十六、c51编程,读端口,还要不要先输出1?
我怎么看到有的要,有的不要,请高手给讲讲,到底咋回事?谢了
要输出1的,除非你能保证之前已经是1,而中间没有输出过其他值。
十七、当定时器1(T1)用于产生波特率时,P3^5还是否可以用作正常的I/O口呢?
p3.5完全可以当普通的io使用
十八、C51中 INT 转换为 2个CHAR?
各位高手:
C51中 INT 转换为 CHAR 如何转换诸如:
X = LOW(Z);
Y = HIGH(Z);
答:
x=(char)z;
y=(char)(z>>8);
十九、如果我想使2EH的第7位置1的话,用位操作可以吗?
现在对位操作指令我一些不太明白请各位多多指教:
如 SETB 07H 表示的是20H.7置1,对吗?(我在一本书上是这么看到的)
那么如果我想使2EH的第7位置1的话,象我举的这个例子怎么表示呢?谢谢!
SETB 77H
setb (2eh-20h)*8+7
20h-2fh每字节有8个可位操作(00h-7fh),其它RAM不可位直接操作
二十、char *addr=0xc000 和char xdata *addr=0xc000有何区别?
char *addr=0xc000;
char xdata *addr=0xc000;
除了在内存中占用的字节不同外,还有别的区别吗?
char *addr=0xc000; 是通用定义,指针变量 addr 可指向任何内存空间的值;
char xdata *addr=0xc000; 指定该指针变量只能指向 xdata 中的值;
后一种定义中该指针变量(addr)将少占用一个存储字节。
uchar xdata *addr=0xc000;指针指向外ram;
如果:data uchar xdata *addr=0xc000;指针指向外ram但指针本身存在于内ram(data)
中
以此类推可以idata uchar xdata *addr=0xc000;pdata uchar xdata *addr=0xc000;
data uchar idata *addr=0xa0;.........
二十一、while(p1_0)的执行时间?
假设,P1_0为单片机P1口的第一脚,请问,
while(P1_0)
{
P1_0=0;
}
while(!P1_0)
{
P1_0=1;
}
以上代码,在KEIL C中,需要多长时间,执行完。能具体说明while(P1_0)的执行时间吗?
仿真运行看看就知道了,
我仿真了试了一下,约14个周期
二十二、怎样编写C51的watchdog程序?
各位大虾,我用KEIL C51 编写了一个带外部开门狗的程序,可程序无法运行起来,经过查
找,发现程序在经过C51编译后,在MAIN()函数的前部增加了一端初始化程序,等到进入
主程序设置开门狗时,开门狗已经时间到,将我的程序复位了,请问我怎样才能修改这一端
初始花程序,使他一运行,就设置开门狗?
可以在startup.a51中加入看门狗刷新指令,当然用汇编,然后重新编译startup.a51
,将他和你的程序连接即可。新的startup.a51会自动代替系统默认的启动模块。
二十三、keil C51 怎样把修改的startup.a51 加到工程文件中
直接加入即可
注意不要改动?STACK,?C_START,?C_STARTUP等符号。startup.a51直接加入项目,不用修改也可。可在内面自己修改汇编的一些限制或堆栈指针。
二十四、关于波特率的设置
我在设定串口波特率时发现一个问题:在晶体震荡器为11.0592MHz时,若设9600BPS的话,
TH1=0XFD,TL1=0XFD,而要设19200BPS的话,TH1、TL1有否变化,如果没变,为什么?
如果变了,又为什么?(因为我看书上俩个是一样的),希望大家点拨。
答:
当电源控制寄存器(PCON)第BIT7(SMOD)为1时波特率加倍。
TH1和TL1的值不变.
二十五、如何在C中声明保留这部分RAM区不被C使用?
我不知道在C源程序中怎么控制这个,但在汇编程序中加入下面一段就行:
DSEG AT 20H
AA: DS 10
这样C51就不会占用20H--29H了
或者在c51里这样定义:
uchar data asm_buff[10] _at_ 0x20;
二十六、问浮点运算问题
我在用C51时发现它对传递浮点参数的个数有限制,请问:
1)参数是以全局变量的形式传递的,请问以全局变量的形式传递的参数也有限制吗?
2)这种传递浮点参数的限制有多少呢?
3)float*float的结果是float类型还是double类型?能否直接赋值给float类型的变量?
答:
由于KEIL C51的参数传递是通过R0-R7来传递的,所以会有限制。
不过KEIL提供了一个编译参数,可以支持更多参数的传递。具体
的内容见KEIL的PDF文档。
我建议你把多个要传递的参数定义到指针或结构体中去,传递参
数通过指针或结构进行,这样好一些。
第3个问题回答是YES,你自己试试不就知道了。
二十七、如何在某一个地址定义ram
用_at_ 命令,这样可以定位灵活一点的地址
uchar xdata dis_buff[16] _at_ 0x6020 ;//定位RAM
将dis_buff[16]定位在0x6020开始的16个字节
二十八、keil c中,用什么函数可以得到奇偶校验位?
例如32位数据,将四个字节相互异或后检查P即可,若耽心P被改变,可用内嵌汇编。
#include
unsigned char parity(unsigned char x){
x^=x;
if(P)return(1);
else return(0);
}
unsigned char parity2(unsigned int x){
#pragma asm
mov a,r7
xrl ar6,a
#pragma endasm
if(P)return(1);
else return(0);
}
Ⅸ c++程序设计实习报告怎么写
C/C++程序设计
课程设计报告[注意:文件名的格式为:
学号_中文姓名_版本_时间.doc
不符合文件名要求的实验报告为不合格报告!
如:学号为200800800999的李一同学上交的第一版的文件名为:
200800800999_姓名_1_20100719.doc
注意:
(1)连字符是下划线
(2)日期的格式为YYYYMMDD
(3)上传的文件必须是Word2003版的,不可以是其他类型或Word其他版本的文件。文件后缀名不可以是“.doc.doc”
本文中所有批注内容,在课程设计报告上交时必须删除!!!]
专 业:
班 级: 班
学 号:
姓 名:
版本号:
时 间:2010-xx-xx
目 录
1 概述 2
1.1 目的 2
1.2 计划 2
2 课程设计过程及结果 2
2.1 编程环境及工具 2
2.2 排序与简单分析 2
2.3 综合设计 2
2.3.1 功能实现 2
2.3.2 程序异常处理 2
2.3.3 特色功能 2
3 课程设计总结 2
3.1 课程设计计划执行情况 2
3.2 我理解的C++ 3
3.3 改进设想 3
附录 关键代码 3
原创声明:本课程设计报告及相应的软件程序的全部内容均为本人独立完成,如有抄袭,愿承担相应后果。[完全独立完成(参考API及与同学讨论是可以的,需要自己一点一点录入并调试代码、编写报告)的同学,仅声明此一句即可。删除下面的非原创说明。
本文中所有批注内容,在课程设计报告上交时必须删除!!!]
非原创说明:[非独立完成的同学,上传上面的原创声明,并详细描述自己所做部分和拷贝同学部分。
本文中所有批注内容,在课程设计报告上交时必须删除!!!]
本课程设计本人完成的内容包括:
1、
2、
3、
拷贝同学的内容包括:
1、
2、
3、
本人独立完成部分约占总工作量的百分比为:___________
声明人:_______________________
学 号:_______________________
概述
目的
计划
课程设计过程及结果
编程环境及工具
排序与简单分析
综合设计
功能实现
文件读入
数据录入
信息显示
……[可自行扩展标题,以将实验报告材料组织得有条理为目标
本文中所有批注内容,在课程设计报告上交时需删除!!!]
程序异常处理
特色功能
课程设计总结
课程设计计划执行情况
我理解的C++
改进设想
附录 关键代码
Ⅹ C语言程序设计实验报告怎么写啊
只是个例子,不可照抄。
实验内容与要求:
[实验内容]
1、 通过本试验初步培养计算机逻辑解题能力。熟练掌握赋值语句和if语句的应用;掌握switch多路分支语句和if嵌套语句的使用
2、 将前期所学习到的基本数据类型、运算符和表达式等程序设计基础知识运用于具体的程序设计。
3、 进一步熟练掌握输入输出函数scanf, printf和getchar的使用,熟悉math.h中常用数学函数的使用方法
4、 掌握循环语句的应用方法。
5、 了解随机数生成函数。
[实验要求]
在规定期限独立完成实验内容
1、 提交实验报告(电子版)
2、 提交相应源程序文件(文件名 EX6_x姓名.c, 如EX6_1彭健.c)
3、 要求从简单到复杂,后面的要求均在前面的基础上进行修改,前六题,每题均需要保留各自的程序,六题以后,每题均在前一题基础上修改,保留最后一个程序即可(如做到第九题,则保留EX6_9姓名.c,做到第11题,则保留ex6_11姓名.c)
二、实验原理和设计方案:
1、函数头的选则,while循环语句,switch(case)语句,条件表达式,if else条件语句,自增运算符,设置复杂变量,输出随机操作数。
2、 变量要有分数变量和等级变量,要有选择算法题数的变量和计算正确与否的变量,要有随机输出的两个操作数变量和自己按运算符号输入结果的变量,最后还有判断是否要进行的变量字符。中间结果有选择运算符的switch()和分数等级的switch()和错题对题的自增和选择运算符计算的自增。
3、 问题的分析方法:先考虑设置整形变量和字符变量,考虑到要不断循环计算,选择用while语句来循环。在循环体中,将前面的输出提示运算符,和自行选择运算符、答案及输出随机操作数完成。再用switch语句对选择的运算符进行判断,并用变量进行自增运算,计算出错题于对题个数和选择了那种运算符号。在循环体最后用if else语句来判断是否继续执行还是跳出循环。最后根据自增计算的结果和公式进行分数计算,并用switch语句来是想等级的制定。
三、源代码
#include
#include
#include
void main()
{
..........
}
四、试验结果和启发
因为输入y要继续循环,所以选择用while语句。在while语句中要结合前面的按提示计算,并嵌套switch语句并用条件表达式,来计算结果正确与否,计算的题型是什么。最后再用switch语句来完成分数等级的判断。
五、实验体会:
描述自己在编程或程序编译运行中遇到的难点和问题及解决的办法。