当前位置:文档之家› 用鼠标划线c 实验报告

用鼠标划线c 实验报告

用鼠标划线c  实验报告
用鼠标划线c  实验报告

青岛理工大学

C++面向对象课程设计报告

院(系):计算机工程学院

专业: _计算机科学与技术

学生姓名:

班级:_计算123 __学号: 201207097 题目:鼠标绘制曲线 __ 起迄日期:____2014.6.23~2013.7.5 设计地点: __计算机学院机房

指导教师: ____刘淑霞

完成日期: 2014 年7月 5 日

目录

第一章绪论 (1)

1.1课题背景 (1)

1.2国内外研究情况 (1)

第二章需求分析 (3)

2.1 功能需求 (3)

2.2 数据需求 (3)

第三章总体分析 (5)

3.1 系统总体结构框图 (5)

第四章详细设计 (6)

4.1 类的关系图 (6)

4.3 主要功能代码说明 (7)

第五章系统使用说明书 (11)

第六章结论 (15)

第七章参考文献 (16)

第一章绪论

1.1课题背景、内容

绘图是现代人学习、工作中的不可缺少的一项,人们在工作学习中常常需要绘制一些图形,虽然在一些文档工具中可以实现图形绘制,但往往比较麻烦,并且不易学习,一般没学过相关知识的人是不会运用文档工具中的功能去实现简单图形绘制的,这样人们在工作、学习中往往会陷入困境。简单的绘图工具可以给人们工作带来很大的方便。利用绘图工具实现简单绘图,不仅简单易学,而且方便简洁。

本课题主要应用c++编程实现用鼠标能过绘制图形,并且实现存储简单图形的功能,在绘图过程中可以应用对话框进行简单的线型、宽度、色彩的换用。

1.2国内外研究情况

微软公司计算机系统自带的画图工具

Adobe Photoshop CS8.01绿色版精简版软件语言:Photoshop是著名的图象处理软件, 为美国ADOBE公司出品。在修饰和处理摄影作品和绘画作品时,具有非常强大的功能

Adobe Illustrator CS v11 Adobe Illustrator是一套被设计用来作输出及网页制作双方面用途、功能强大且完善的绘图软件包,这个专业的绘图程序整合了功能强大的向量绘图工具、完整的PostScript输出,并和Photoshop或其它Adobe家族的软件紧密地结合。第10版增加了诸如Arc、矩型网格线(Rectangular Grid)以及坐标网格线(Polar Grid)工具等新的绘图及自动化优点;增加编辑的灵活度以及标志(编辑主要的对象或图像复制)。你可以运用笔刷及其它如合并、数据驱动坐标等在工具列上的创造工具,帮助你建立联结到数据库的样版。新的Illustrator还提供更多的网络生产功能,包括裁切图像并支持可变动向量绘图档(SVG)增强。

Fireworks MX 2004

AutoCAD 设计

Corel DRAW

三维动画软件 3D Studio(3DS)。它的全称是 3-Dimension Studio,译成中文应该是“三维影像制作室”。 3D Studio MAX(以下简称 MAX)是以 3DS 4.x 为基础的升级版本,它以全新的 Windows界面及更强大的功能展示在我们面前。用MAX来制作三维动画就像是当一个大导演——一切的角色、道具、灯光、摄像机、场景(包括如云、雾、雪、闪电等特效场面)及配音、镜头的剪辑合成等等都任你来安排处理。如果你是一位设计家,用MAX来设计产品模型的感觉就像是雕塑家和魔术师,复杂的模型几乎是在瞬间就奇迹般地建立起来了。而用MAX 修改创建的模型更是轻而易举的事,完全可以把宝贵的时间和精力集中用在使设计更加完美更加理想上。无论是出于何种目的使用 MAX,一定会充分体会到用计算机工作时的那种“工作就是玩,玩就是工作”的快感。

可以毫不夸张地说,哪里需要三维设计、哪里需要三维动画,哪里就需要MAX。MAX适合于从事下列任何一种职业的专家或业余爱好者:电影特技、立体和影视动画广告设计、工业设计、建筑和室内装潢设计、包装与装潢设计、三维游戏开发、软件开发程序员(制作软件片头)、教学多媒体演示制作、军事科学研究和物理、化学或生物化学研究以及所有对三维动画和立体造型感兴趣的广大电脑玩家等。

MAYA因其强大的功能在3D动画界造成巨大的影响,已经渗入到电影、广播电视、公司演示、游戏可视化等各个领域,且成为三维动画软件中的佼佼者。《星球大战前传》、《透明人》、《黑客帝国》、《角斗士》、《完美风暴》、《恐龙》等到很多大片中的电脑特技镜头都是应用MAYA完成的。逼真的角色动画、丰富的画笔,接近完美的毛发、衣服效果,不仅是影视广告公司对MAYA情有独钟,许多喜爱三维动画制作,并有志向影视电脑特技方向发展的朋友也为MAYA的强大功能所吸引。

第二章需求分析

2.1功能分析

本课题主要应用c++编程实现用鼠标能过绘制图形,并且实现存储简单图形的功能,在绘图过程中可以应用对话框进行简单的线型、宽度、色彩的换用。

2.2数据分析

(1)组成曲线的点的数目和组成曲线网络中曲线的数目事先无法确定,利用集合类来存放,可以动态改变集合的大小;

(2)我们需要把曲线网络的信息写到磁盘文件中,或需要从磁盘文件中读取曲线文件,集合类是个很好的选择,因为他们都是派生于CObject类,具有Serialize的特性;

(3)同时集合类又是模板类,所以在使用时需要指定具体的成员类型。在使用CArray类时,指定其成员类型为CPoint类。在使用CTypedPtrList类时,指定其基类为CObList,成员类型为CCurve*,其中CCurve将在下面详细说明。

曲线类定义

(1)类名称CCurve,头文件Curve.h,实现文件Curve.cpp。

(2)基类CObject,即类CCurve必须派生自CObject,使CCurve具有Serialize 特征,为此类的声明文件(头文件)中必须有DECLARE_SERIAL宏,类的执行函数里必须有IMPLEMENT_SERIAL 宏。

(3)设置构造函数,首先必须定义一个缺省的构造函数,即无参数的构造函数CCurve(),为什么?因为若一个类来自文件,MFC必须先动态生成它的对象,而且在没有任何参数的情况下调用其构造函数,然后才从文档中读出对象信息。另外,根据需要,可以添加其他形式的构造函数。在这里,除了缺省的构造函数外,也添加了一个新的构造函数,其形式为CCurve(int nStyle,int nWidth,COLORREF crColor),其中第一个参数为曲线的线型,曲线的线型主要有实线、短划线、点线、点划线和点点划线等,第二个参数为曲线的宽度,第三个参数为曲线的颜色,即通过这个构造函数设置曲线的线型、宽度和颜色。

(4)曲线文件的保存和打开。在这里需要把一条曲改写文档类的虚拟函数

Serialize,线的信息写入文件中或从文件中读取一个曲线的信息并显示。写入或读取的曲线信息主要有线型、宽度、颜色和节点序列,这四种信息的写入和读取的顺序要相同。由于节点序列是存放在CArrray类型的数组中,而该类型的数组本身具有序列化的特点,所以在写入或读取节点序列时,再调用CArrray的Serialize函数,完成一次性的写入或读取节点序列。

(5)曲线的绘制。曲线的绘制分三步进行,第一步,根据曲线属性定义画笔,画笔的属性主要有:线型、宽度和颜色,这些属性都可以通过对话框由用户选择;第二步把定义好的画笔选入设备环境中;第三步即可用定义好的画笔在具体的设备环境中画线。

(6)添加新的节点函数AddNewPoint。鼠标每移动一下,都要调用该函数,把当前鼠标位置坐标添加到曲线类CCurve的节点序列中。

文档类

(1)曲线网络的定义m_curveList,采用模板链表类CTypedPtrList,该类的基类为CObList,即链表中的成员为CObject类对象,类型为CCurve*,为指向CCurve类的指针。

(2)曲线文件的读写Serialize,分三步进行:第一步,由于CTypedPtrList 派生自CObject,所以该类对象也具有序列化的特征,所以曲线文件的读写即完成该类对象的序列化操作就行了,即在文档类的Serialize函数直接调用CTypedPtrList类的Serialize函数;第二步,由于CTypedPtrList类的成员是CCurve类,所以需要继续调用CCurve类的Serialize函数,来完成各条曲线的序列化操作,即依次完成每条曲线的属性(包括线型、宽度和颜色)和节点序列的写入或读取;第三步,由于每条曲线的节点序列存放在CArray数组中,于是接着调用CArray类的Serialize函数完成节点序列的序列化操作。

(3)创建一条新的曲线函数NewCurve。该函数实现创建一条新的曲线,并添加到曲线网络中,在这里利用new运算符创建一个CCurve类对象,即调用该类的带参数的构造函数,对象创建完毕,添加到曲线网络链表中。

(4)删除文档函数DeleteContents。在打开新的文档,创建新的文档和程序结束时都要调用该函数,删除文档的内容,以释放已被占用的内存。

第三章总体设计

开始

用鼠标画线

改变线型、宽度、颜色,用鼠标画线

应用对话框修改选择

数据后,用鼠标画线

保存图形,打开存储文件

结束

第四章详细设计4.1

4.2

//鼠标左键摁下

void CDrawLineView::OnLButtonDown(UINT nFlags, CPoint point)

{

n_pstroke= (GetDocument()->NewCurve());

n_pstroke->n_pointArray.Add(point); //保存左键摁下后的点

n_atOrigin=point;

n_change=TRUE;

CView::OnLButtonDown(nFlags, point);

}

//左键摁下后鼠标移动

void CDrawLineView::OnMouseMove(UINT nFlags, CPoint point)

{

// TODO: Add your message handler code here and/or call default CClientDC dc(this);

CPen pen(PS_SOLID,1,RGB(0,0,0));//PS_DASH PS_DOT

CPen *poldpen=dc.SelectObject(&pen); //选择当前画笔

if(n_change==TRUE) //判断左键是否摁下

{ dc.MoveTo(n_atOrigin);

dc.LineTo(point);

n_atOrigin=point;

n_pstroke->n_pointArray.Add(point); //保存鼠标移动过程中的点

}

dc.SelectObject(poldpen);

CView::OnMouseMove(nFlags, point);

}

//左键松开

void CDrawLineView::OnLButtonUp(UINT nFlags, CPoint point) {

n_change=FALSE;

n_pstroke->n_pointArray.Add(point);//保存终止点

CView::OnLButtonUp(nFlags, point);

}

这三部实现啦画线

class CCurve : public CObject

{

public:

CCurve();

virtual ~CCurve();

public:

CArray n_pointArray;//记录数组里的点

void DrawStroke(CDC*pDC);

public:

virtual void Serialize(CArchive& ar);

DECLARE_SERIAL(CCurve)

};

void CDrawLineView::OnDraw(CDC* pDC)

{

CDrawLineDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

POSITION pos = pDoc->n_strokeList.GetHeadPosition();

while (pos !=NULL)

{

CCurve *pStroke = pDoc->n_strokeList.GetNext(pos);

pStroke->DrawStroke(pDC);

n_pstroke->DrawStroke(pDC);

}

CCurve* CDrawLineDoc::NewCurve()

{

CCurve *pStroke = new CCurve;

n_strokeList.AddTail(pStroke);

SetModifiedFlag();

return pStroke;

}

线条设置代码

void CCurveView::OnSeting() //设置画笔的属性{

Seting dlg;

dlg.m_nLineWidth=m_nLineWidth;

dlg.m_nLineStyle=m_nLineStyle;

dlg.m_color=m_clr;

if(IDOK==dlg.DoModal())

{

m_nLineWidth=dlg.m_nLineWidth;

m_nLineStyle=dlg.m_nLineStyle;

m_clr=dlg.m_color;

}

}

第五章系统使用说明书运行程序后摁住左键画线

通过修改数据让线条变成红色,宽度变为10

线条为点线

存储线条

打开文件

打开后

第六章结论

通过这次课程设计,让我第一次认识啦c++的语言的强大简洁,第一次接触mfc,对制作一个画图软件感觉无从下手,看啦很多的视频教程后,还是觉得对MFC不了解,他把每部分分开,有时候找个变量都觉得很困难,在询问拉同学和通过网络搜索后,通过一步步的修改,最终还是把程序做出来啦,程序还有很多弊端。

最初,做出来的程序只能画出一条线,无论你画多少条,再最小化以后都是一条,最后通过百度后终于知道自己定义变量不对,然后就是线段无法保存,当保存完后打开总是空的,原来在保存程序中忘记加保存点,颜色值为红、绿、蓝三色的混合,最小值为0,即黑色,RGB(0,0,0),最大值为16777215,RGB(255,255,255),即白色,可以通过颜色对话框选择。最后就是对话框,我搜索啦好久也没找到一个教程,找同学帮忙后总算做出来啦,但是还是不能打开。只能通过在程序里改cpen来修改啦。还有就是点线和虚线在保存时都会变为实线。还有一个小问题是点线和虚线只能用线宽1时才能画出。

这个程序还是能够实现画图和保存图的功能的。

这次课程设计让我学到啦很多,也对MFC有啦初步的认识,在以后的学习中我一定能把上面的问题一个一个解决的。

第七章参考文献

【1】李兰 C++面向对象课程设计西安电子科技大学出版社 2010

【2】李兰 C++面向对象课程设计实验指导西安电子科技大学出版社 2010 【4】孙鑫 MFC视频教学搜狐视频

大一上期C语言实验报告1熟悉实验环境

成都工业学院·计算机工程学院 《程序设计基础》实验报告 1.实验目的 (1)熟悉C语言运行环境,了解和使用Visual6.0++集成开发环境(2)熟悉Visual6.0++环境的功能键和常用的功能菜单命令 (3)掌握C语言程序的书写格式和C语言程序的结构 (4)掌握C语言上机步骤,以及编辑、编译和运行一个C语言程序的方法 (5)熟悉Visual6.0++环境下的程序调试方法 2.实验内容 (1)按照实验步骤编辑、编译、运行第一个”Hello World”程序(2)利用实验指导中的第二个程序熟悉调试工具,在已知x,y值的情况下,计算出x和y的和、差、积、商,并显示出来(3)编写一个程序,输入a、b、c三个值,输出它们的和与平均值c 3.源程序 (1)#include void main() {printf(”Hello World”);} (2)#include void main() {int x=5,y=2; int s,d,p,q; s=x+y; d=x-y; p=x*y; q=x/y; printf(“和:%d差:%d积%d商:%d“,s,d,p,q);}

(3)#include void main() {int a,b,c.sum; float ave; Printf(“Please enter the a,b,c:”); scanf(“%d%d%d”,&a,&b,&c); sum=a+b+c; ave=(float)sum/3; printf(“sum=%d,ave=%f\n”,sum,ave);} 4.运行结果 (1) (2) (3)输入18、46、69测试得出答案如下

平板边界层实验报告

流体力学实验 平板边界层实验报告 班级 姓名 实验日期 指导教师 北京航空航天大学流体力学研究所

流体力学实验 平板边界层实验报告 一、实验目的 测定平板边界层内的流速分布,并比较层流边界层及紊流边界层的速度分布的差别。 二、实验设备 本实验使用的是一个二维开路闭口低速风洞,在该风洞实验段中装有两块平板,以分别测量层流及紊流边界层的速度分布。为测量速度分布,在平板板面上安装有总压排管及静压管。这些测压管分别用橡皮管连接到多管压力计上,通过测量多管压力计液柱高度推算出速度来,具体原理见后。为测出实验段风速,在实验段侧壁上装有风速管,风速管的总压孔及静压孔也分别用橡皮管连接于多管压力计上,装备情况见图1。 图1 三、实验原理 当气流流过平板时由于粘性作用使紧贴平板表面处的流速为零,离开板面速度就逐渐增大,最后达到相当于无粘时的气流速度。对平板来说,就等于来流速度了。由于空气粘性很小,只要来流速度不是很小时,流速变化大的区域只局限在靠近板面很薄的一层气流

内,这一薄层气流通常叫作边界层。人为地规定,自板面起,沿着它的法线方向,至达到99%无粘时的速度处的距离,称为边界层厚度δ。 不可压流场中,每一点处的总压P 0,等于该点处的静压和动压 1 2 2ρv 之和。 p p v 021 2=+ ρ 则 v p p = -20() ρ (1) 因此只需测出边界层内各点处的静压p ,总压p 0,就可计算出各点的速度来。但考虑到垂直平板方向的静压梯度等于零(即??p y /=0),我们只需在平板表面开一静压孔,所测的静压就等于该点所在的平板法线方向上各点的静压。要测边界层内的速度分布就只要测出沿平板法线上各点的总压即可。 p i 0──为各测点的总压。 p i ──为各测点的静压。 v i ──为各测点的速度。 γ ──为多管压力计所使用的液体重度(公斤/米3)。 ?h i ──为各测点总压管与静压管的液柱高度差。 ρ ──为空气的密度,实验时可依据当时室温及大气压强由表查出。 φ ──为多管压力计的倾斜角。 根据(1)式,边界层内各测点处的速度为 v h i i = 2 ρ γφ?sin (2) 通常边界层内的速度分布用无量纲的形式表示为 v v f y i i 1=()δ y i 为各测点至板面的高度,δ 为边界层厚度,v 1为边界层外边界上的速度,对平板 来说即为来流速度。 v 1可通过风速管的静压管和总压管在多管压力计上的液柱高度差?h 1,由下式算出: v h 112 =ρ γφ?sin (3) 由(2)式和(3)式,可得 v v h h i i 1 1 =?? (4)

C语言实验报告《指针》.doc

C语言实验报告《指针》 学号:__________ 姓名:__________ 班级:__________ 日期:__________ 指导教师:__________ 成绩:__________ 实验五指针 一、实验目的 1、掌握指针的概念、会定义和使用指针变量 2、掌握指向数组的指针变量 3、掌握字符串指针的使用 二、实验内容2、写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。(习题10.6)#include #include long fun(char *p) { 填写程序 } void main() { char s[6]; long n; printf( enter a string:n gets(s); n=fun(s); printf( %ldn ,n); }

一、三、实验步骤与过程 四、程序调试记录 C语言实验报告《综合实验》 学号:__________ 姓名:__________ 班级:__________ 日期:__________ 指导教师:__________ 成绩:__________ 实验六综合实验 一、实验目的 1、掌握C语言中的变量、数组、函数、指针、结构体等主要知识点。 2、掌握C程序的结构化程序设计方法,能使用C语言开发简单的应用程序。 3、掌握C程序的运行、调试方法等。 二、实验内容 编写一个学生信息排序程序。要求:

1、程序运行时可输入n个学生的信息和成绩(n预先定义)。 2、学生信息包括:学号、英文姓名、年龄;学生成绩包括:语文、数学、计算机。 3、给出一个排序选择列表,能够按照上述所列信息(学号、姓名、年龄、语文、数学、计算机)中的至少一个字段进行排序,并显示其结果。 1、使用函数方法定义各个模块。 三、实验步骤与过程 物理实验报告·化学实验报告·生物实验报告·实验报告格式·实验报告模板 四、程序调试记录

微生物学实验报告

2012级制药专业 工业微生物学实验报告 姓名: 刘甜甜学号: 2012304090 班级: 制药12-2班指导老师:王健 日期:2014.6.11

一、实验目的 1、抑制或杀死微生物的一些物理、化学及生物的因素抑菌、杀菌的原理。 2、掌握物理、化学及生物的因素抑菌、杀菌的试验方法。 3、了解细菌的形态特征、染色特点。 4、了解细菌在普通培养基、选择培养基、血平板上的菌落特征。 5、掌握细菌分离划线培养的方法。 6、掌握细菌的初步生化反应。 7、掌握细菌密集划线法,掌握细菌K-B药敏纸片法。 二、实验内容 1 细菌Gram’s stain染色,镜检,观察记录细菌形态和特色特征 1.1 实验原理:染色原理:G+菌与Gˉ菌细胞壁不同,G+菌比Gˉ菌细胞内核糖核酸镁盐含量高,G+菌比Gˉ等电点低。 1.2 实验步骤: 1.2.1.制片:○1涂片:取半滴生理盐水置一洁净玻片上,以无菌操作技术自平板上去菌落少许,与生理盐水混匀,均匀涂布约1cm2大小,自然干燥; ②固定:取含菌膜的玻片与酒精灯火焰上来回三次,使菌膜牢固附于玻片表面; 1.2.2染色:①初染:取结晶紫一到两滴覆盖于菌膜表面,轻微摇动,维持30〃~40〃,细流水冲洗,切勿直接冲洗涂片区域; ②媒染:取卢氏碘液1~2滴覆盖菌膜表面,轻微摇动,维持30〃~40〃,用上法细流水冲洗; ③脱色:取95%酒精2~3滴于菌膜表面,轻微摇动,局部接近无色即可, 用上法细流水冲洗; ④复染:取1:10稀释石炭酸复红覆盖涂片区域,轻微摇动,用上法细流水冲洗; ⑤吸水纸初步吸干玻片水分,然后自然干燥; 1.2.3 镜检:于涂片区域加半滴香波油,油镜(100倍目镜)下。 图1:Gram’s stain(1000×)图2:染色试验 三、分离培养 1实验原理:四区划线法是把混杂着在一起的微生物或同一微生物群体的不同细胞用接种环在平板培养基表面通过分区划线稀释而得到较多独立分布的单个细胞,经培养繁殖后生成个菌落。有时这些单菌落并非由单个细胞繁殖而来,故必须反复分离多次才能得到纯种。其原理是微生物样品在固体培养基表面多次作“由点到线”稀释而达到分离的目的。

C语言实验报告参考答案 原

C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.编写程序: (1) a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 (2)a=160,b=46,c=18,d=170, 编写求(a+b)/(b-c)*(c-d)的程序。 答案: (1) #include main() {

int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } (2) #include main() { int a,b,c,d; float x; a=160; b=46; c=18;

d=170; x=(a+b)/(b-c)*(c-d); printf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b 时,将0赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 2、(1) 编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7

matlab求解平板边界层问题

《粘性流体力学》程序 平板边界层问题求解

1.1编程思路 平面边界层问题可以归结为在已知边界层条件下解一个高阶微分方程,即解0 f。Matlab提供了解微分方程的方法,运用换+ff '''= 5.0 '' 元法将高阶微分方程降阶,然后运用“ode45”函数进行求解。函数其难点在于如何将边界条件中1 η运用好,由四阶龙格-库塔方 →f ,→ ' ∞ 法知其核心是换元试算匹配,故在运用函数时通过二分法实现 η是可行的。 ∞ →f ,→ ' 1 1.2m函数 function dy = rigid(x,y) dy = zeros(3,1); dy(1) = y(2); dy(2) = y(3); dy(3) = -0.5*y(1)*y(3); %main程序 [X, Y] = ode45('rigid',[0 5],[0 0 0]); plot(X, Y(:,1),'-',X, Y(:,2),'*',X, Y(:,3),'+') %二分法试算f’’的初始值以满足f’趋向无穷时的边界条件,图像上可以清晰看出f’无穷时的结果 >> [X, Y] = ode45('rigid',[0 5],[0 0 1]); plot(X, Y(:,1),'-',X, Y(:,2),'*',X, Y(:,3),'+') >> [X, Y] = ode45('rigid',[0 5],[0 0 0.5]); plot(X, Y(:,1),'-',X, Y(:,2),'*',X, Y(:,3),'+') >> [X, Y] = ode45('rigid',[0 5],[0 0 0.25]); plot(X, Y(:,1),'-',X, Y(:,2),'*',X, Y(:,3),'+') >> [X, Y] = ode45('rigid',[0 5],[0 0 0.375]); plot(X, Y(:,1),'-',X, Y(:,2),'*',X, Y(:,3),'+') >> grid on >> [X, Y] = ode45('rigid',[0 5],[0 0 0.3125]); plot(X, Y(:,1),'-',X, Y(:,2),'*',X, Y(:,3),'+') >> grid on >> [X, Y] = ode45('rigid',[0 5],[0 0 0.34375]); plot(X, Y(:,1),'-',X, Y(:,2),'*',X, Y(:,3),'+') grid on >> [X, Y] = ode45('rigid',[0 5],[0 0 0.328125]); plot(X, Y(:,1),'-',X, Y(:,2),'*',X, Y(:,3),'+') grid on

c语言实验报告6 指针

实验6 指针1.实验目的和要求 (1)掌握指针的概念、指针变量定义格式和引用。 (2)掌握指针的运算方法。 (3)掌握数组的指针和指向数组的指针变量。 (4)掌握指针与函数的关系。 (5)能正确使用字符串的指针和指向字符串的指针变量。(6)了解指向函数的指针。 (7)了解指向指针变量的指针。 2.实验内容:实验指导书中的实验九。 3.实验步骤 9.1 调试程序,找出程序的错误。 改正后的程序代码(贴图): 运行结果(帖图): 9.2 运行程序:

运行结果:; 9.3 修改程序错误,并运行。 改正后程序代码: 运行结果(帖图): 9.4. 程序填空:

运行结果(请帖图):9.5. 程序填空:

程序填空: #include main() { int a[5][5]={0},*p[5],i,j; for(i=0; i<5; i++) p[i]= &a[i][0] ; for(i=0; i<5; i++) { *(p[i]+ i )=1; *(p[i]+5- (i+1) )=1; } for(i=0; i<5; i++) { for(j=0; j<5; j++) printf("%2d", p[i][j]); Printf("\n") ; } } 运行结果(请帖图):

9.6 编程(选作) #include main() { int *p,a[20],i,k,m,n; p=a; printf("请输入人数n:"); scanf("%d",&n); for(i=0;i

C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include <> main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include<> main() { int a,b,c,x,y; a=150; b=20; c=45;

x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。 问题2 改printf("%c,%c,%d\n",a,b,c);这条语句

流体力学平板边界层内的流速分布实验报告电子版

平板边界层内的流速分布实验 实验日期 2011-5-21 小组成员:李超,郭静文(93班)等 报告人 周楠 能动95 09031125 实验目的 1) 测量离平板前缘任意截面边界层内的速度分布; 2) 根据速度分布确定边界层厚度; 3) 了解风洞结构及测量仪器。 仪器设备 吸入式风洞、大气压强计、温度计、微压计、U 型测压管、平板模型、总压探针及三维坐标架。 其中仪器的重要参数包括: (1)吸入式低速风洞P max =P a , 工作截面尺寸300mm ×300mm; (2)风洞的气体流速u max <25m/s, M<0.3,所以风洞内气体流动可以看成二维不可压缩流动即ρ=ρa (3)平板尺寸325mm ×200mm (4)总压探针头部直径:d=0.9mm 实验原理 1 流体在大雷诺数下绕物体流动时,由于流体粘性的作用,与物体表面接触的流体速度为零,然后沿法向很快增至主流速度,这层贴近物体表面,沿着法向有很大速度梯度的流动薄层,称为边界层; 2 在边界层内,速度梯度很大,不能忽略流体的粘性,因此流动作实际流动u x 和p o 都在变化且u x

C语言指针实验报告

C语言程序设计实验报告 1实验目的 (1)掌握指针的概念,会定义和使用指针变量; (2)能正确使用变量的指针和指向变量的指针变量; (3)能正确使用数组的指针和指向数组的指针变量; (4)能正确使用字符串的指针和指向字符串的指针变量; 2实验内容 将一个任意整数插入到已排序的整形数组中,插入后,数组中的数仍然保持有序;要求: (1)整形数组直接由赋值的方式初始化,要插入的整数有scanf()函数数入;(2)算法实现过程采用指针进行处理; (3)输入原始数据以及插入整数后的数据,并加以说明;

3算法描述流程图

4源程序 #include main() { int a[100],m,i,*p,n,w; printf("请输入要输入的数组的元素个数:\n"); scanf("%d",&n); printf("请输入已排好序的数组:\n"); for(i=0;i=w;i--) { a[i+1]=a[i]; } a[i+1]=m; for(i=0;i<=n;i++) { printf("%-4d",a[i]); } printf("\n"); } 5测试数据 “1,3,5,7,9,11,13,15,17,19······10” 6运行结果 7出现问题及解决方法 在编写过程中,

for(i=n-1;a[i]>=w;i--) { a[i+1]=a[i]; } a[i+1]=m; 这一步没有注意a[i++]=m和a[i+1]=m中i++和i+1不同,a[i++]=m是先将的值赋给a[i],然后在执行自增;而在实验过程中忽略了这一点,造成了不必要的麻烦; 8实验心得 通过这次指针实验掌握了指针的概念,会定义和使用指针变量,并且能利用指针来简单化一些问题,给以后的编程带来了很大的便利;

实验方案的格式

实验方案 一.【实验题目】: 土壤中细菌的分离纯化实验 二.【实验设计思想】: 细菌是具有很高实用价值的一类微生物, 世界各国对其研究与资源开发极为重视. 目前, 国内有关细菌的区系调查及资源开发虽然有一些报道, 但对不同作物根际细菌的研究很少. 甘肃天水麦积山海拔1742m , 属黄土高原潮湿区, 植物生长土壤区有机质含量丰富,本次实验将以该地区的落叶松、马尾松、白岩松、野豌豆等作物生长地区的土壤为材料, 分离鉴定其中的细菌, 探讨不同作物根际土壤中细菌分布数量及种类的差异, 并且分析每一种菌种在植物生长过程中所起的作用,最后以此为依据来推断麦积山大片地区内土壤中微生物的分布丰富情况和它们对植物生长作出的巨大贡献. 三.【实验目的】: 1.学会培养基最基本的制备方法。 2.学会最基本的微生物灭菌、接种等基本操作过程。 2.掌握最基本的分离、纯化微生物的一系列操作操作。 四.【试验方法】: 取天水麦积山不同植物根部的土壤作为土样,通过对其土壤中微生物的一系列培养、分离、筛选最终分离出细菌得菌株,并稀释平板菌落计数法进行数量测定四.实验原理: 1.菌种来源:由于各种细菌对营养物质需求不同,在不同地方采样对选取所要的细菌含量和其它杂菌含量的多少直接有关,所以选择微生物含量有可能丰富的土壤(天水麦积山植物根区)中采样。 2.培养基的选取:为了使所要的细菌能很好的生长,其它微生物生长受到一定的抑制,要用选择培养基。还要把细菌与其他微生物相区别,还要用鉴别培养基。为了达到既是选择培养基又是鉴别培养基,选取牛肉膏蛋白胨培养基。 3.培养及分离纯化:通过涂布培养法、平板划线法等方法达到分离纯化的目的。 4.保藏:通过分离纯化得到的菌种,接种与斜面培养基上,到一定时间后进行传代培养保藏,使其不死亡、减少突变所引起的生物学性状的改变。

2010C语言实验报告参考答案

2010C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y);

x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a;

平板边界层速度剖面的测定讲义2

2009年04月20~22日平板附面层速度剖面与厚度的测定 一、实验目的: 1.熟悉附面层速度分布和厚度的测量方法。 2.具体测定平板附面层层流与湍流附面层的速度分布及其厚度。 3.把实验结果与理论计算结果进行比较,分析其差异产生的原因。 二、实验原理: 粘性匀质不可压缩流体,测量边界层内的速度,仍利用风速管(皮托管)测风速的原理,即测出某点的总压P0和静压P后再换算成该点的速度,因为边界层很薄,其厚度往往只有几mm到十几mm,因而只能用极细的探针去探测边界层内的压力。 由于在边界层内部满足?(P)/?(Y)=0,即静压P沿着平板的法线方向不变,因此,可以用壁面上的静压P来表示边界层内法线上所有不同高度的静压。于是,本实验将一根微总压管装在一标架上,使微总压管以很小的间距上下移动,测出不同高度处的总压P0(y)后,即可算出法线上离壁面y处的速度。 实验时,把总压管由壁面逐步往上移动,则测出的总压越来越大。当移动到某一高度以后,再继续往上移动几个间距,这时所测到的总压已不再随高度的变化而变化。记录下数据,经软件分析后可得速度边界层厚度和速度剖面,并与理论曲线对照。 理论分析中总是假定从平板(或物体)的前缘(或驻点)就开始形成层流或湍流边界层。实际上绕流体的运动常常是组合边界层问题,即在物体的前部分首先形成层流边界层,在它的后部分形成湍流边界层,在它们之间还有一个过渡段。 过渡段从层流的失稳点(层流不稳定点)开始直到流动成为完全湍流之点(湍流过渡点)结束。性质介于两者之间。 为了读出压力的微小变化,本实验采用压力传感器,采用总压和静压之差,将其采集的压力信号转换成电信号,再通过放大器进行信号放大后,输入A/D转换器,由计算机直接计算出速度值。 由于速度剖面是以无量纲形式画成的,因此,不需要计算一点的速度,只要计算出速度的相对值就可以了。计算各高度上的u y/v和y/δ的值,以y/δ为纵

哈工大(威海)c语言实验报告册答案

实验1简单判定性问题求解 一、实验学时 完成本实验需4学时。 二、实验目的 1、阅读程序题 (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法; (2)掌握不同的类型数据之间赋值的规律; (3)掌握数据在内存中的存储方式; (4)学会输入、输出函数的基本格式和使用方法; (5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。 2、编程题 (1)如何运用if-else判定性结构进行程序设计; (2)如何运用switch判定性结构进行程序设计。 3、调试题 (1)熟悉C程序的编辑、编译、连接和运行的过程。 三、实验指导 为了达到最佳的实验效果,以下提供几条适于编程的指导意见,可供参考。 1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察数据在内存中的存储方式、含不同种运算符表达式的输出结果。 2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。要注意简单判定性问题的结构选择。 3、调试题应明确程序的调试、测试是一项非常烦琐的工作,也是非常重要的工作。对于初学者来说应该建立良好的习惯,在调试程序的时候,应该尽可能考虑到程序运行时各种可能情况。

四、实验内容 1、阅读程序题 (1)main( ) { /*定义字符型变量*/ char c1,c2; /*向字符变量赋以整数*/ c1=97; c2=98; printf("%c %c\n",c1,c2); /*以字符形式输出*/ printf("%d %d\n",c1,c2); /*以整数形式输出*/ } 思考:可否改成int c1,c2;输出结果是?相同 (2)main() { int a=7,b=5; printf("%d\n",b=b/a); } 思考:若将printf语句中%d变为%f,可否输出分式的值?可以(3)main() { int a=9; a+=a-=a+a; /*包含复合的赋值运算符的赋值表达式*/ printf("%d\n",a); } 思考:赋值表达式a+=a-=a+a的求解步骤? 第一步:a=a-(a+a)=-9 第二步a=a+a=18 (4)main() { int k=-1; printf("%d,%u\n",k,k);

C语言指针实验报告

C语言程序设计实验报告 1实验目得 (1)掌握指针得概念,会定义与使用指针变量; (2)能正确使用变量得指针与指向变量得指针变量; (3)能正确使用数组得指针与指向数组得指针变量; (4)能正确使用字符串得指针与指向字符串得指针变量; 2实验内容 将一个任意整数插入到已排序得整形数组中,插入后,数组中得数仍然保持有序; 要求: (1)整形数组直接由赋值得方式初始化,要插入得整数有scanf()函数数入; (2)算法实现过程采用指针进行处理; (3)输入原始数据以及插入整数后得数据,并加以说明;

3算法描述流程图

4源程序 #include main() { int a[100],m,i,*p,n,w; printf("请输入要输入得数组得元素个数:\n"); scanf("%d",&n); printf("请输入已排好序得数组:\n"); for(i=0;i=w;i--) { a[i+1]=a[i]; } a[i+1]=m; for(i=0;i<=n;i++) { printf("%-4d",a[i]); } printf("\n"); } 5测试数据 “1,3,5,7,9,11,13,15,17,19······10” 6运行结果 7出现问题及解决方法 在编写过程中,

for(i=n-1;a[i]>=w;i--) { a[i+1]=a[i]; } a[i+1]=m; 这一步没有注意a[i++]=m与a[i+1]=m中i++与i+1不同,a[i++]=m就是先将得值赋给a[i],然后在执行自增;而在实验过程中忽略了这一点,造成了不必要得麻烦; 8实验心得 通过这次指针实验掌握了指针得概念,会定义与使用指针变量,并且能利用指针来简单化一些问题,给以后得编程带来了很大得便利;

大肠杆菌微生物培养实验报告及评价标准

实验1 微生物的分离、培养及计数 实验原理 纯化分离:人为提供适宜的菌落生长的条件(包括营养、温度、Ph等)。用平板划线法,通过接种环在琼脂固体培养基表面连续划线的操作,将聚集的菌种逐步稀释分散到培养基的表面。在数次划线后培养,可以分离到由一个细胞繁殖而来的肉眼可见的子细胞菌落。 筛选:转基因大肠杆菌有抗氨苄青霉素基因,所以在含有氨苄青霉素的LB培养基中可以正常繁殖长成菌落。而普通的大肠杆菌没有抗氨苄青霉素基因,咋含有氨苄青霉素的LB培养基中不能繁殖。由此可进行大肠杆菌的筛选。 梯度稀释并计数:通过浓度梯度稀释把液体培养基培养的大肠杆菌稀释到一定浓度,用稀释涂布平板法,然后将不同稀释度的菌液分别涂布到琼脂固体培养基的表面进行培养。在稀释度足够高的菌液里,聚集在一起的微生物将被分散成单个细胞,从而能在培养基表面形成单个的菌落。由此可计数计算大肠杆菌的数量。 实验目的 1.通过制备LB固体培养基,对平板进行划线等,学会使用固体LB 平板。 2.通过用液体培养基,学会对微生物进行扩大培养。 3.通过稀释,学会用计数器对微生物进行计数。

实验材料和药品 待分离的大肠杆菌菌液、高压蒸汽灭菌锅、LB 固体培养基、LB 液体培养基、接种环、玻璃涂布器、培养皿、恒温培养箱、摇床、酒精灯、无菌水、移液枪、EP 管 实验步骤(用简单的流程图表示) 实验数据的记录与分析(如照片、表格等)

稀释倍数104105 大肠杆菌单个菌落个 837799111812数 平均数 浓度×107×107 实验结果与讨论 结果:稀释了105计算出来的结果约为×107ml/cm^3

C语言实验报告参考源代码

实验5三种基本结构的综合应用 4.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的个数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=100;i<=999;i++) {for(j=2;j=i) /*三位数是素数时*/ {k=i%100; /*去掉百位数字*/ if(k>=10) /*十位数字不是0时*/ {for(m=2;m=k) /*两位数是素数时*/ {p=i%10; /*p为个位数字*/ for(q=2;q=p)n++;}}}} printf("%d\n",n);} Key:57 5.求[2,400]中相差为10的相邻素数对的对数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=2;i<=400;i++) {for(j=2;j=i) /*i是素数时*/ {for(k=i+1;k=k)break;} /*k是素数时终止if语句的外层循环*/ if(k>=i+10) /*[i+1,i+9]不是素数时*/ {for(q=2;q

流体力学——平板边界层编程

对于本次编程编程作业,小组运用matlab 和c++两种程序对平板边界层问题和绕过楔形体边界层流动问题进行分析研究。以下是运用matlab 解决问题的过程。 一、 平板边界层问题 该问题可以归结为在已知边界层条件下解一个高阶微分方程,即解0''5.0'''=+ff f 。Matlab 提供了解微分方程的方法,运用换元法将高阶微分方程降阶,然后运用“ode45”函数进行求解。函数其难点在于如何将边界条件中1',→∞→f η运用好,由四阶龙格-库塔方法知其核心是换元试算匹配,故在运用函数时通过二分法实现1',→∞→f η是可行的。程序如下: 第一问m 函数 function dy = rigid(t,y) dy = zeros(3,1); dy(1) = y(2); dy(2) = y(3); dy(3) = -0.5*y(1)*y(3); %第一问main 程序 [T,Y] = ode45('rigid',[0 5],[0 0 0]); plot(T,Y(:,1),'-',T,Y(:,2),'*',T,Y(:,3),'+') %二分法试算f ’’的初始值以满足f ’趋向无穷时的边界条件,图像上可以清晰看出f ’无穷时的结果 >> [T,Y] = ode45('rigid',[0 5],[0 0 1]); plot(T,Y(:,1),'-',T,Y(:,2),'*',T,Y(:,3),'+') >> [T,Y] = ode45('rigid',[0 5],[0 0 0.5]); plot(T,Y(:,1),'-',T,Y(:,2),'*',T,Y(:,3),'+') >> [T,Y] = ode45('rigid',[0 5],[0 0 0.25]); plot(T,Y(:,1),'-',T,Y(:,2),'*',T,Y(:,3),'+') >> [T,Y] = ode45('rigid',[0 5],[0 0 0.375]); plot(T,Y(:,1),'-',T,Y(:,2),'*',T,Y(:,3),'+') >> grid on >> [T,Y] = ode45('rigid',[0 5],[0 0 0.3125]); plot(T,Y(:,1),'-',T,Y(:,2),'*',T,Y(:,3),'+') >> grid on >> [T,Y] = ode45('rigid',[0 5],[0 0 0.34375]); plot(T,Y(:,1),'-',T,Y(:,2),'*',T,Y(:,3),'+') grid on >> [T,Y] = ode45('rigid',[0 5],[0 0 0.328125]); plot(T,Y(:,1),'-',T,Y(:,2),'*',T,Y(:,3),'+') grid on >> [T,Y] = ode45('rigid',[0 10],[0 0 0.328125]);%当f ’’为0.328125时,逼近结果已经很好,在0到5的变化范围内已经非常接近精确解 plot(T,Y(:,1),'-',T,Y(:,2),'*',T,Y(:,3),'+') grid on >> [T,Y] = ode45('rigid',[0 5],[0 0 0.335975]); plot(T,Y(:,1),'-',T,Y(:,2),'*',T,Y(:,3),'+') grid on

平板划线法

平板划线法操作步骤 1.操作前准备: 将接种环2支,酒精灯2个,打火机2个,无菌平板两包,酒精棉球2瓶,镊子2个,洁净烧杯2个置于超净工作台,打开紫外灯,灭菌30分钟。取待纯化菌种2支放入超净工作台。操作者直立坐于操作台前,打开操作台玻璃,高度可供双手顺利出入即可。 2.擦拭: 用镊子取酒精棉球擦拭双手,在超净工作台门口处,并将台面擦出与肩同宽的正方形区域,此区域即为操作区域。将用毕的棉球放入烧杯中。 3.物品摆放: 将酒精灯放于擦拭区域的中心,将接种环放于酒精灯的右侧,将菌种放于酒精灯的左侧,将无菌平板的包装除去,包装置于操作区外,无菌平板置于酒精灯左侧。 4.点燃酒精灯: 打开酒精灯盖,将盖扣于离开操作区的台面上,点燃酒精灯,酒精灯周围3-5cm之内即为无菌区。 5.灼烧接种环: 右手持接种环,将接种环的金属丝直立于酒精灯外焰处,灼烧至红透,然后略倾斜接种环,灼烧金属杆,注意灼烧时要将金属丝与金属杆的连接部分充分灼烧。 6.取菌种: 左手持斜面的底部,将管口置于火焰的无菌区,右手小指打开试管塞,将接种环的接种丝放于外焰处再次灼烧至红透,然后将其深入试管内部,稍微凉一下,轻轻取一环,勿划破培养基,将接种环从试管中取出,注意取时勿碰触试管壁。将试管塞灼烧一圈,塞于试管上。因试管口一直在火焰的外焰处,故其温度较高,塞试管塞时注意勿烫手。 7.接种: 左手取无菌平板一个,用拇指和食指控制皿盖,其余几指控制皿底,打开皿盖,使开口角小于30°,将接种环上的菌种按图示进行划线,一区法要求连续划线,且线的边缘应划至培养皿的内缘,线要紧密但不相连。三区或四区法要求每划完一区,都应灼烧接种环,后一区要求与前一区首尾相连,但不得与其他区域搭在一起。 8.培养:

C语言实验报告参考答案

《C语言程序设计》 实 验 手 册

《C语言程序设计》实验课程简介 课程名称:C语言程序设计实验 课程性质:专业必修课 课程属性:专业必修课 学时学分:学时32 学分1 开课实验室:软件实验室 面向专业:网络工程、软件工程、计算机科学与技术 一、课程的任务和基本要求 C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C语言程序设计》课程而开设的实验性教育环节。本课程的主要任务是让学生充分掌握C 语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。 二、实验项目 【实验一】最简单的C程序---顺序程序设计 【实验二】逻辑运算和判断选取控制 【实验三】循环结构程序设计(一) 【实验四】循环结构程序设计(二) 【实验五】函数 【实验六】数组(一) 【实验七】数组(二) 【实验八】指针 【实验九】结构体、共用体和文件 【实验十】C程序综合性实验 三、有关说明 1、与其它课程和教学环节的联系: 先修课程:计算机文化 后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程 2、教材和主要参考书目: (1)教材: 《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。(2)主要参考书目: 《C语言程序设计》谭浩强主编,清华大学出版社,2003年。

三、实验内容 实验一最简单的C程序---顺序程序设计 (验证性实验 2学时) (一)、实验目的 1.熟悉win-tc程序运行环境 2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法 3.掌握C语言中使用最多的一种语句——赋值语句 4.掌握数据的输入输出方法,能正确使用各种格式控制符 (二)、实验内容 1.写出下列程序的运行结果 (1)#include void main() { printf(“*****************\n”); printf(“This is a c program. \n”); printf(“****************\n”); } 运行结果及分析:运行结果为: Printf函数语句表示输出引号内的字符串,最后的\n表示换行, 将程序中的\n去掉后,运行结果及分析:运行结果为: 去掉\n后不换行连续显示 (2)#include void main() { int a=100,b=20,sum,sb; sum=a+b; sb=a/b; printf("sum=%d,sb=%d",sum,sb); } 运行结果及分析: sum=100+20=120;sb=100/20=5. (3)#include void main( )

相关主题
文本预览
相关文档 最新文档