南昌大学C++实验报告 ch4
南昌大学C++实验4数组

南昌大学实验报告学生姓名:王维学号:6100212202 专业班级:网工121 实验类型:□验证□综合□√设计□创新实验日期:实验成绩:一、实验名称实验4 数组二、实验目的1.掌握数组的基本概念,包括:数组的定义、数组的类型、数组的初始化、数组的赋值、数组元素下标的范围、数组元素的正确以及引用数组元素的输入/输出。
2.掌握字符数组与字符串的使用方法。
理解字符数组与其它数组的区别、理解字符串及其特点。
掌握常用的字符串处理库函数的用法并清楚对字符串的简单处理。
3.掌握与数组相关的算法,包括排序算法和查找算法等。
三、实验内容有关数组的程序设计四、实验环境PC微机DOS操作系统或Windows 操作系统visual c++程序集成环境五、实验步骤1.编程实现:对任意一个一维数组,从中找出数组元素的最大值和最小值。
要求:(1)数组为整型数组(10个元素)。
(2)使用scanf函数实现数组元素的输入。
在输入前给出必要的提示。
(3)输出时给出必要的说明,首先输出原始的10个元素,换行后输出最大值以及最大值在数组中的位置、最小值以及最小值在数组中的位置。
(4)如果现改为20个元素的数组,怎样修改程序?2.编程实现:在给定的字符串中查找满足条件的第一个字符。
要求:(1)字符串采用初始化的方式处理。
(2)通过scanf函数读入一个任意字符。
(3)在字符串中查找该字符,如果存在该字符,输出该字符在字符串中的位置以及相应的说明。
如果不存在该字符,则要给出相应的信息。
3.编程实现:首先任意输入一个大于2且小于10的整数n,再输入一个由n决定的二维整型数组(n ⨯n),形成n ⨯n阶矩阵,将矩阵中最大元素所在的行和最小元素所在的行对调后,再输出该矩阵(注意:数组不允许动态定义)。
例如:原始数据:n=4 结果数据:1 2 3 4 8 11 14 163 5 9 10 3 5 9 108 11 14 16 1 2 3 415 2 7 6 15 2 7 6要求:(1)本题中所涉及到的循环都采用for语句。
南昌大学计算机数值分析实验报告

实验报告实验课程:数值分析学生姓名:郑俊学号:6100410235专业班级:计算机科学与技术103班2012年 06 月 6日目录一、用样条插值法差值的方法生成字体T的轮廓 (3)二、用样条插值法差值的方法生成字体5的轮廓 (10)三、用最小二乘法估计原子弹爆炸的能量 (14)南昌大学实验报告一姓名: 郑俊 学 号: 6100410235 专业班级:计算机科学与技术103班 实验类型:□验证 □ 综合■设计 □创新 实验日期:2012-5 实验成绩:一、 实验目的1:用样条插值的方法生成字体T 的轮廓 2:C 语言用Bezier 曲线生成并编写程序二、 实验基本原理和内容P 0x P 0y P 1x P 1y P 2x P 2y P 3x P 3y 237 620 237 620 237 120 237 120 237 120 237 35 226 24 143 19 143 19 143 19 143 0 143 0 143 0 143 0 435 0 435 0 435 0 435 0 435 19 435 19 435 19 353 23 339 36 339 109 339 109 339 108 339 620 339 620 339 620 507 620 529 602 552 492 552 492 552 492 576 492 576 492 576 492 576 492 570 662 570 662 570 662 570 662 6 662 6 662 6 662 6 662 0 492 0 492 0 492 0 492 24 492 24 492 24 492 48 662 71 620 183 620 183620183620237620237620Bezier 曲线生成:1、确定曲线的阶次; 2 计算Bernstein 基函数的表达式:2、生成字体T 共分成15段,每段用了三次的代数方程,用Bezier 曲线生成:当n=3时303333,3212233,2221133,1330033,0)1()()1(3)1()()1(3)1()()1()1()(t t t C t B t t t t C t B t t t t C t B t t t C t B =-=-=-=-=-=-=-=nk t t t k n k n t t C t B kn k k n kk n n k ,,1,0]1,0[)1()!(!!)1()(, =∈--=-=--其中]1,0[∈t)()()()()(3,333,223,113,00t B P t B P t B P t B P t P +++=3、 把Bezier 曲线中的Pk 写成分量坐标的形式4 、确定一合适的步长;控制t 从0到1变化,求出一系列(x,y)坐标点;将其用小线段顺序连接起来。
(完整版)c实验报告

(完整版)c实验报告实验名称: C语言实验报告实验内容:本次实验主要针对C语言编程进行实验。
通过实验的设计和完成,检验和加深对C语言的理解和应用能力。
实验步骤:1. 实验准备在开始实验之前,需要准备好以下必要的工具和材料:- 计算机- C语言编译器(比如GCC、Clang等)- 文本编辑器(比如Notepad++、Sublime Text等)2. 实验环境搭建在计算机上安装C语言编译器,并配置好相应的环境变量。
这样可以在终端或命令提示符中执行相关的C程序。
3. 编写实验代码根据实验要求,使用文本编辑器编写C语言代码。
根据实验的要求和功能需求,合理设计和组织代码结构,包括头文件的引用、变量的定义、函数的声明和定义等。
4. 编译和运行代码在命令行或终端中使用编译器对编写好的C语言代码进行编译,并生成可执行文件。
编译命令的具体格式根据不同的编译器而有所差异,但一般形式如下:```gcc -o output_file input_file.c```其中,"output_file"表示生成的可执行文件名,"input_file.c"表示待编译的C源代码文件名。
编译成功后,通过命令行或终端执行生成的可执行文件,检查程序的运行结果是否符合预期。
5. 实验结果分析根据实际运行结果,对实验数据进行分析和归纳。
可以通过输出结果、打印特定信息或观察程序的行为来判断程序是否正确地实现了预期的功能。
6. 实验总结在实验报告中对本次实验的过程、方法、结果进行总结,并提出实验中遇到的问题和解决方法。
同时,对所学习的C语言相关知识点进行总结和归纳,以加深对相关知识的理解和记忆。
实验结果:通过本次实验的设计和实现,我成功完成了对C语言编程的实验,达到了预期的目标。
通过编写实际的代码,我巩固了对C语言语法和基本概念的理解。
在实验过程中,我遇到了一些问题,通过查阅资料和与同学的讨论,我成功解决了这些问题。
南昌大学试验报告范文-南昌大学网络教学平台

南昌大学试验报告范文-南昌大学网络教学平台实验项目名称:_______膨胀计法测定聚合物的玻璃化转变温度______________学生姓名:____________学号:___________专业班级:______________实验类别:基础专业实验要求:必修选修一、实验目的1.了解膨胀计测量聚合物玻璃化温度的方法2.深入理解自由体积概念在高分子学科中的重要性。
二、实验基本原理在玻璃态下,由于链段运动被冻结,自由体积也被冻结,聚合物随温度升高而发生的膨胀只是由于正常的分子膨胀过程造成的,而在Tg以上,除了正常的分子膨胀过程外,还有自由体积的膨胀,因此高弹态的膨胀系数比玻璃态的膨胀系数来得大。
若以比容对温度作图,在Tg就要发生斜率的变化。
三、主要仪器设备及耗材膨胀计、水浴及加热器、颗粒状尼龙6、丙三醇。
四、实验步骤1.洗净膨胀计,烘干。
装入尼龙6颗粒至比重瓶的4/5体积。
2.在膨胀管内加入丙三醇作为介质,用玻璃棒搅动(或抽气)使膨胀管内没有气泡。
3.再加入丙三醇至比重瓶口,插入毛细管,使丙三醇的液面在毛细管下部,磨口接头用弹簧固定,如果管内发现有气泡要重装。
4.将装好的膨胀计浸入水浴中,于30C恒定20min后,设置最高温度为60C,控制水浴升温速率约为1.25C/min。
5.读取水浴温度和毛细管内丙三醇液面的高度,从30~55C每升高1C读数一实验类型:验证综合设计创新实验日期:___________实验成绩:________次(升温速率控制为0.5C/min),到55C为止。
6.毛细管内液面高度对温度作图。
从直线外延点求得升温速度1.25C/min下尼龙6的Tg。
五、实验数据及处理结果4.03.93.8h/mm3.73.63.53.43.3354045o5055Tamperature/C升温速度1.25C/min下尼龙6的Tg为44C。
六、思考讨论题或体会或对改进实验的建议略1.何平笙,杨海洋,朱平平,瞿保均.高分子物理实验.合肥:中国科学技术大学出版社,20022.陈义旺.高分子物理实验补充讲义.南昌大学,2006南昌大学实验报告实验项目名称:______________聚合物的温度-形变曲线__________________学生姓名:____________学号:___________专业班级:______________实验类别:基础专业实验要求:必修选修一、实验目的1.正确理解聚合物的三个力学状态和二个转变。
甲烷化学燃烧实验报告

一、实验目的1. 通过实验观察甲烷燃烧的现象,了解甲烷燃烧的火焰颜色、温度和产物。
2. 验证甲烷燃烧的化学反应,证明甲烷燃烧生成二氧化碳和水。
3. 掌握甲烷燃烧实验的基本操作和注意事项。
二、实验原理甲烷(CH4)是一种无色、无味的可燃气体,它在空气中燃烧时,与氧气(O2)发生化学反应,生成二氧化碳(CO2)和水(H2O),同时释放出大量的热能。
反应方程式如下:CH4 + 2O2 → CO2 + 2H2O + 能量三、实验用品1. 实验室设备:酒精灯、试管夹、燃烧匙、石棉网、铁架台、集气瓶、烧杯、滴管、水槽。
2. 实验试剂:甲烷、氧气、澄清石灰水。
四、实验步骤1. 准备工作:将集气瓶充满氧气,确保集气瓶内的氧气浓度达到实验要求。
2. 点燃酒精灯,将燃烧匙放入集气瓶中,待燃烧匙燃烧稳定后,用滴管向燃烧匙上滴加少量甲烷。
3. 观察甲烷燃烧现象,记录火焰颜色、温度和产物。
4. 将蘸有澄清石灰水的小烧杯罩在燃烧匙上方,观察石灰水的变化。
5. 将燃烧匙从集气瓶中取出,观察集气瓶内壁是否有水珠生成。
五、实验现象1. 甲烷燃烧时,火焰呈淡蓝色,燃烧温度较高。
2. 燃烧过程中,集气瓶内壁出现水珠,证明甲烷燃烧生成了水。
3. 澄清石灰水变浑浊,证明甲烷燃烧生成了二氧化碳。
六、实验结论1. 甲烷燃烧时,火焰呈淡蓝色,燃烧温度较高。
2. 甲烷燃烧生成二氧化碳和水,符合化学反应方程式:CH4 + 2O2 → CO2 + 2H2O + 能量。
3. 实验结果表明,甲烷是一种可燃气体,燃烧过程中会释放出大量的热能。
七、实验讨论1. 甲烷燃烧实验中,氧气浓度对燃烧效果有何影响?答:氧气浓度越高,燃烧效果越好,火焰颜色越蓝,燃烧温度越高。
2. 甲烷燃烧实验中,如何防止实验事故的发生?答:实验过程中,应严格按照操作规程进行,注意防火、防爆。
同时,实验操作应在通风良好的环境中进行,避免有害气体积聚。
3. 甲烷燃烧实验中,如何提高实验效果?答:提高实验效果的方法有:使用高质量的甲烷、确保氧气浓度适宜、控制实验温度等。
C-ch4

字符输入\输出函数 字符输入 输出函数 格式输入\输出函数 格式输入 输出函数
2010-5-7
11
数据输入输出的概念及在C语言中 § 4.3 数据输入输出的概念及在 语言中 的实现
在使用系统库函数时,要用预编译命令"#include" 在使用系统库函数时,要用预编译命令"#include" 将有关的"头文件"包括到用户源文件中. 将有关的"头文件"包括到用户源文件中. 例如:在调用标准输入输出库函数时, 例如:在调用标准输入输出库函数时,文件开头 应该有: 应该有: stdio.h" #include "stdio.h" 头文件 或: #include <stdio.h>
最小编译单位 C程序 源程序文件1 源程序文件1 1.c 1.c 连接 *.exe 说明部分 语句) 执行部分 (语句) 1.obj … 源程序文件2 … 源程序文件n 源程序文件n 源程序文件2 2.c 2.c 2.obj n.c 函数n 函数n n.obj 数据声明
预编译命令
函数1 函数1 …
库函数, 库函数,头文件
1.控制语句 控制语句
控制语句的作用在于控制程序的走向(流程 . 控制语句的作用在于控制程序的走向 流程). 流程 ( 1)选择结构控制语句 ) if( )~else~, switch( )~ ~ ~ ~ (2)循环结构控制语句 ) do~ while( ), for( )~ , while( )~ , break, ~ ~ ~ continue (3)其它控制语句 ) 2010-5-7 goto, return
2010-5-7
21
南昌大学数据结构C++实验报告(任燕)

实验报告实验课程:数据结构C++语言的描述学生姓名:学号:专业班级:年月日目录实验一顺序表 (2)实验二非循环单链表 (17)实验三链队 (33)实验四排序 (43)南昌大学实验报告---(1)顺序表学生姓名:学号:专业班级:实验类型:□验证□综合■设计□创新实验日期:实验成绩:一. 实验目的掌握顺序表的逻辑结构、存储结构、操作,并通过C++编程实现。
二. 问题描述线性表是由n(n≥0)个元素(结点)a1, a2, …, a n组成的有限序列,其中a i中的i称为该数据元素的位置(序号),n为数据元素的个数(表的长度),当n等于0时称为空表。
按逻辑次序依次把数据元素存放在一组连续的地址存储单元里的线性表称为顺序表。
在这里,我们通过C++中的动态数组来实现顺序表的存放,并通过建立顺序表类实现它的各种操作。
三. 实验要求实现顺序表的三个框架操作:随机生成,用已有顺序表初始化另一个顺序表,输入顺序表。
以及十个基本操作:在第i个元素之前插入元素,判断是否为空,求元素个数,取第i个元素,查找第一个与e满足compare()关系的元素,返回元素的前驱,返回后继,删除第i个元素,把一个顺序表赋值给另一个顺序表,置空顺序表。
四. 实验环境PC微机,Windows操作系统,Visual Studio 2010。
五.实验代码基类:SqList.h//myhead.h包含自己设定的一些常量和类型#ifndef MYHEAD_H#define MYHEAD_H//#include"D:\数据结构C++\实验2\myhead.h"#include"D:\Users\fclz\Documents\Visual Studio 2010\Projects\数据结构C++\实验2\myhead.h"#endif//顺序表的一些常量说明#define LIST_MAX_SIZE 100#define LISTINCERMENT 10//随机数生成必须#define _CRT_RAND_S#include<stdlib.h>#include<stdio.h>#include<limits.h>//顺序表数据结构的C++类的声明(基类)template <typename ElemType>class SqList{protected:ElemType *elem;int listSize;int n;public://构造函数,析构函数,拷贝构造函数的声明SqList();virtual ~SqList();SqList(const SqList<ElemType>& otherL);//顺序表的方法//有序顺序表的折半查找int bin_Search(ElemType key);//把顺序表置空void clear();//删除第i个元素Status deleteElem(int i,ElemType& e);//取第i个元素int getElem(int i,ElemType& e);//求顺序表中元素的个数int getLength();//求顺序表存储空间的大小int getListSize();//在第i个元素之前插入一个元素Status insert(int i,ElemType e);//判断顺序表是否为空bool isEmpty();//查找第1个与e满足compare关系的元素的序号int locateElem(ElemType e,Status(*compare)(ElemType,ElemType));//返回某个元素的后继Status nextElem(ElemType e,ElemType& next_e);//重载复制运算符SqList<ElemType> operator =(SqList<ElemType> rightL);//返回某个元素的前驱Status priorElem(ElemType e,ElemType& prior_e);//在顺序表中顺序查找某个元素、int sequentialSearch(ElemType e);};//顺序表的方法//有序顺序表的折半查找template <typename ElemType>int SqList<ElemType>::bin_Search(ElemType key){int low,mid,high;//查找区域的起始、中间以及最后一个元素的下标low=0,high= n-1;while(low<=high){mid=(low+high)/2;if(elem[mid]==key)return mid+1;else if(elem[mid]<key)low=mid+1;else high=mid-1;}return 0;}//把顺序表置空template <typename ElemType>void SqList<ElemType>::clear(){n=0;}//删除第i个元素template <typename ElemType>Status SqList<ElemType>::deleteElem(int i,ElemType& e){if(i<1||i>n) return ERROR;e=elem[i-1];for(int j=i+1;j<=n;++j)elem[j-2]=elem[j-1];--n;return OK;}//取第i个元素template <typename ElemType>Status SqList<ElemType>::getElem(int i,ElemType& e){if(i<1||i>n) return ERROR;e=elem[i-1];return OK;}//求顺序表中元素的个数template <typename ElemType>int SqList<ElemType>::getLength(){return n;}//取顺序表存储空间的大小template <typename ElemType>int SqList<ElemType>::getListSize(){return listSize;}//在第i元素之前插入一个元素template <typename ElemType>Status SqList<ElemType>::insert(int i,ElemType e){ElemType *newbase;if(i<1||i>n+1)return ERROR;if(n>=listSize){newbase =new ElemType[listSize+LISTINCERMENT];assert(newbase!=0);for(int j=1;j<n;++j)newbase[j-1]=elem[j-1];delete[] elem;elem = newbase;listSize+=LISTINCERMENT;}for(int j=n;j>=i;--j)elem[j]=elem[j-1];elem[i-1]=e;++n;return OK;}//判断顺序表是否为空template <typename ElemType>bool SqList<ElemType>::isEmpty(){return n?false:true;}//查找第1个与某元素e满足compare()关系元素template <typename ElemType>int SqList<ElemType>::locateElem(ElemType e,Status(*compare)(ElemType,ElemType)){int i;for(i=1;i<=n&&!(*compare)(elem[i-1],e);++i);if(i<=n)return i;elsereturn 0;}//返回某个元素的后继template <typename ElemType>Status SqList<ElemType>::nextElem(ElemType e,ElemType& next_e){int i=locateElem(e,equal);if(i<1||i==n)return ERROR;elsegetElem(i+1,next_e);return OK;}//重载运算符的定义template <typename ElemType>SqList<ElemType> SqList<ElemType>::operator=(SqList<ElemType>rightL) {if(this!=&rightL){if(listSize<rightL.listSize){delete[] elem;elem=new ElemType[rightL.listSize];assert(elem!=0);listSize=rightL.listSize;}n=rightL.n;for(int i=1;i<=n;++i)elem[i-1]=rightL.elem[i-1];}return *this;}//返回某个元素的前驱template <typename ElemType>Status SqList<ElemType>::priorElem(ElemType e,ElemType& prior_e) {int i=locateElem(e,equal);if(i<=1)return ERROR;elsegetElem(i-1,prior_e);return OK;}//在顺序表中顺序查找某个元素template <typename ElemType>int SqList<ElemType>::sequentialSearch(ElemType key){for(int i=1;i<n&& key!=elem[i-1];i++);if(i<=n)return i;elsereturn 0;}//构造函数的实现template <typename ElemType>SqList<ElemType>::SqList(){elem =new ElemType[LIST_MAX_SIZE];assert(elem!=0);listSize=LIST_MAX_SIZE;n=0;}//析构函数的实现template <typename ElemType>SqList<ElemType>::~SqList(){delete[] elem;}//拷贝构造函数的实现template <typename ElemType>SqList<ElemType>::SqList(const SqList<ElemType>& otherL){elem=new ElemType[otherL.listSize];assert(elem!=0);listSize=otherL.listSize;n=otherL.n;for(int i=1;i<=n;i++)elem[i-1]=otherL.elem[i-1];}派生类MySqList.h#ifndef SQLIST_H#define SQLIST_H#include"SqList.h"#endif#include<iosfwd>template <typename ElemType>class MySqList:public SqList<ElemType>{public://读输入数据void read(istream& in);//显示数据void display(ostream& out)const;//生成随机顺序表Status randSql(int n,MySqList<ElemType>& otherS); };//派生类的实现//输入template <typename ElemType>void MySqList<ElemType>::read(istream& in){cout<<"请输入要建立的顺序表的元素个数:";cin>>n;for(int i=0;i<n;i++){//cout<<n<<endl;cout<<"请输入顺序表的第"<<i+1<<"个元素:";in>>elem[i];//n++;}cout<<endl;}template <typename ElemType>istream& operator >>(istream& in,MySqList<ElemType>& iL) {iL.read(in);return in;}//输出template <typename ElemType>void MySqList<ElemType>::display(ostream& out) const{for(int i=0;i<n;i++)out<<"["<<i+1<<"]"<<"\t";out<<endl;for(int i=0;i<n;i++)out<<elem[i]<<"\t";out<<endl<<endl;}template <typename ElemType>ostream& /*MySqList<ElemType>::*/operator <<(ostream& out,constMySqList<ElemType>& oL){oL.display(out);return out;}//生成随机数顺序表template <typename ElemType>Status MySqList<ElemType>::randSql(int n,MySqList<ElemType>& otherS){errno_t err;unsigned int number;int max=100;if(n<1||n>otherS.listSize) return ERROR;else{for(int i=0;i<n;i++){err = rand_s(&number);if (err != 0){printf_s("The rand_s function failed!\n");}otherS.elem[i]=(unsigned int)((double)number /((double) UINT_MAX + 1 ) * 100.0) + 1;}otherS.n=n;}return OK;}六. 运行结果程序开始界面框架操作:1.随机生成顺序表(元素值为0到99之间的整数)2. 用已有的顺序表初始化另一个顺序表3. 输入顺序表基本操作:1.在第i个元素之前插入一个元素2. 判断顺序表是否为空3. 求顺序表中元素的个数4. 取第i个元素5. 查找第一个与之满足compare()关系的元素序号6. 返回某元素的前驱7. 返回某元素的后继8. 删除第i个元素9. 把一个顺序表复制给另一个顺序表10. 把顺序表置空11.顺序表的运用七.实验小结熟悉最基本的数据类型——顺序表,同时我们让我们熟练C++的基本操作,模板的使用,以及模块化的设计思想。
甲烷的制法与性质实验报告

点燃甲烷的制备与性质一、实验教学目标1.掌握实验室制备CH 4及其性质的操作。
2.初步学会CH 4实验的演示教学方法。
二、实验原理CH 3COOH+NaOH=Na 2CO 3+CH 4CH 4+2O 2=2H 2O+CO 2CH 4的物理性质:无色无味的气体,极难溶于水,密度比空气小。
CH 4的化学性质:通常情况下,CH 4的性质稳定,不易与强酸、强碱、卤素单质的水溶液和强氧化剂反应,空气中燃烧产生浅蓝色火焰,CH 4中混入氧气或空气遇明火会发生爆炸(CH 4的爆炸极限体积比例为5% -15%) 三、仪器、材料与试剂仪器:铁架台、酒精灯、托盘天平、研钵、水槽、药匙、玻璃棒、火柴、集气瓶、毛玻璃片、大试管、小试管、导气管。
试剂:无水CH 3COONa 、NaOH 、CaO 、KMnO 4、溴水、澄清石灰水、30%H 2O 2 、 MnO 2。
四、实验内容1.CH 4的制取与收集 实验装置如图1所示:图1 CH 4制取装置(1)称取无水CH 3COONa 约7.5 g ,CaO 约2 g ,NaOH 约2 g 。
在研钵中分别研细,用玻璃棒混合均匀,装进试管中。
(2)查装置气密性:将硬质大试管、120o 玻璃弯管、橡皮软管、30o 玻璃弯管依次连结起来,将30o 玻璃弯管伸入装有适量水的水槽中。
用手捂着试管底部片刻,发现有气泡冒出,松开手,有水进入弯管并形成一段水柱,表明装置的气密性良好。
点燃(3)将之前混匀的药品送进试管中,注意平铺在试管底部。
(4)将装置按图1搭好。
先均匀预热,再集中火力由管前向管尾加热。
(5)待气泡均匀连续冒出后,用排水法收集一试管的CH 4气体,大拇指按住管口。
放在酒精灯的火焰上,松开手指,发出“嘭”的低沉的声音,表明气体很纯。
(若是发出刺耳的爆鸣声,则证明气体不纯,需重新收集)2.CH 4的性质(1)CH 4与高锰酸钾溶液反应。
操作方法:将30o 玻璃弯管换成直的尖嘴导管。
南昌大学数字图像处理实验报告参考模板

实验报告实验课程:数字图像处理学生姓名:涂汉江学号:6100410181专业班级:数媒101班2013年 06月 08日南昌大学实验报告---(1)数据图像显示的Vc程序设计学生姓名:涂汉江学号:6100410181 专业班级:数媒101班实验类型:□验证■综合□设计□创新实验日期:2013.06.01 实验成绩:一.实验目的位图图片显示的C语言实现。
二.实验要求用C语言编写简单的程序用来打开位图文件。
三.实验环境PC机VC6.0四.实验原理无五.实验代码及结果//主要代码部分void CCOpenImageDoc::OnFileOpen(){// TODO: Add your command handler code hereCFileDialog dlg(TRUE,0,0,OFN_HIDEREADONLY, _T("位图文件|*.bmp|所有文件|*.*||"));if(dlg.DoModal()==IDOK){FileName=dlg.GetPathName();if(fileheader) delete fileheader;if(infoheader) delete infoheader;if(pal) delete pal;if(BMPData) delete BMPData;if(flag) flag=false;if(!file.Open(FileName,CFile::modeRead)) return;fileheader=new BITMAPFILEHEADER[1];infoheader=new BITMAPINFOHEADER[1];file.Read(fileheader,sizeof(BITMAPFILEHEADER));if(fileheader->bfType!=0x4D42) return;file.Read(infoheader,sizeof(BITMAPINFOHEADER));if(infoheader->biCompression!=0) return;linebytes=WIDTHBYTES(infoheader->biBitCount*infoheader->biWidth);if(infoheader->biBitCount==8){pal=new RGBQUAD[256];BMPData=new BYTE[linebytes*infoheader->biHeight];file.Read(pal,256*4);file.Read(BMPData,linebytes*infoheader->biHeight);flag=true;}else if(infoheader->biBitCount==24){BMPData=newBYTE[linebytes*infoheader->biHeight];file.Read(BMPData,linebytes*infoheader->biHeight);flag=true;}else return;file.Close();UpdateAllViews(NULL);}}//结果截图六.实验小结BMP文件格式比一开始做的DAT文件复杂,有一个文件头来记录相关的图片信息,而且文件里图片的存储方式是和正常的扫描顺序相反的,也就是说输出的时候要倒过来输出,所以也需要注意。
南昌大学C++实验报告

南昌大学实验报告1.熟悉VC的上机环境1)实验目的1.初步了解C++程序的翻译、连接、和运行的过程。
2.掌握和理解C++程序的结构。
2)实验要求1.使用VC++6.02.运行一个简单的C++程序3)实验内容源程序:#include<iostream.h>#include<stdio.h>void main(){cout<<"C++上机实验"<<endl;}运行结果:南昌大学实验报告2.构造函数与析构函数1)实验目的1.理解类与对象的区别。
2.学习掌握定义构造函数和析构函数的方法。
3.学习把握默认构造函数的意义。
4.了解类成员初始化,掌握构造与析构类成员的方式2)实验内容源程序:#include<iostream>#include<string>using namespace std;class Student{public:Student(int n,string nam,char s){num=n;name=nam;sex=s;}~Student(){cout<<"The information of "<<num<<" studnet has been collected."<<endl;}void display(){cout<<"num: "<<num<<endl;cout<<"name: "<<name<<endl;cout<<"sex: "<<sex<<endl<<endl;}private:int num;string name;char sex;};int main(){Student stud1(1001,"Jake",'m');stud1.display();Student stud2(1002,"Nancy",'f');stud2.display();return 0;}运行结果:南昌大学实验报告3.常类型与类型转换1)实验目的1.学习定义常对象、常指针、常引用、常成员函数、常数据成员。
甲烷的性质实验报告(3篇)

第1篇一、实验目的1. 了解甲烷的物理性质和化学性质。
2. 掌握甲烷的实验室制取方法。
3. 通过实验,加深对甲烷性质的理解。
二、实验原理甲烷(CH4)是一种无色、无味的可燃气体,化学性质稳定。
在实验室中,常用无水乙酸钠与氢氧化钠混合加热制备甲烷。
甲烷的物理性质主要包括熔点、沸点、密度等,化学性质主要包括燃烧、与卤素单质反应等。
三、实验用品1. 仪器:酒精灯、铁架台、铁夹、试管、集气瓶、导管、玻璃片、水槽、镊子、药匙、石棉网、烧杯、试管夹等。
2. 试剂:无水乙酸钠、氢氧化钠、氯水、溴水、碘水、澄清石灰水、稀硫酸、无水硫酸铜、无水氯化钙等。
四、实验步骤1. 甲烷的制取:取1g无水乙酸钠和1g氢氧化钠,混合均匀后放入试管中。
用酒精灯加热至沸,导管插入集气瓶底部,收集甲烷气体。
2. 甲烷的物理性质:(1)观察甲烷气体的颜色、气味;(2)测量甲烷气体的密度;(3)测量甲烷气体的熔点和沸点。
3. 甲烷的化学性质:(1)燃烧实验:点燃甲烷气体,观察火焰颜色、气味,并收集燃烧产物;(2)与卤素单质反应实验:将甲烷气体分别通入氯水、溴水、碘水中,观察反应现象;(3)检验二氧化碳和水:将甲烷气体燃烧产物通入澄清石灰水中,观察是否变浑浊;将燃烧产物通入无水氯化钙中,观察是否变蓝。
五、实验现象1. 甲烷气体为无色、无味气体,密度小于空气,熔点约为-182.5℃,沸点约为-161.5℃。
2. 甲烷燃烧时,火焰呈蓝色,产生大量热量,燃烧产物为二氧化碳和水。
3. 甲烷与氯水、溴水、碘水反应,分别生成氯甲烷、溴甲烷、碘甲烷。
4. 甲烷燃烧产物通入澄清石灰水中,石灰水变浑浊,证明有二氧化碳生成;通入无水氯化钙中,氯化钙变蓝,证明有水生成。
六、实验结论1. 甲烷为无色、无味气体,密度小于空气,熔点约为-182.5℃,沸点约为-161.5℃。
2. 甲烷具有可燃性,燃烧时产生大量热量,燃烧产物为二氧化碳和水。
3. 甲烷能与卤素单质反应,生成相应的卤代甲烷。
甲烷取代反应实验报告(3篇)

第1篇一、实验目的1. 了解甲烷取代反应的基本原理和实验方法。
2. 掌握光照条件下甲烷与氯气发生取代反应的实验步骤和现象。
3. 熟悉实验操作技能,培养观察、分析、总结的能力。
二、实验原理甲烷(CH4)在光照条件下与氯气(Cl2)发生取代反应,生成氯代甲烷(CH3Cl)和氯化氢(HCl)。
反应方程式如下:CH4 + Cl2 → CH3Cl + HCl反应过程中,甲烷分子中的氢原子逐步被氯原子取代,生成不同程度取代的氯代甲烷。
三、实验仪器与试剂1. 仪器:大试管、酒精灯、高压汞灯、量筒、滴管、试管夹、集气瓶、镊子、水槽、饱和食盐水、NaOH溶液、AgNO3溶液。
2. 试剂:甲烷、氯气、NaOH溶液、AgNO3溶液。
四、实验步骤1. 准备实验装置:将大试管倒置于盛有饱和食盐水的槽中,用滴管将甲烷和氯气分别收集在集气瓶中,然后通过镊子将集气瓶中的气体导入大试管中。
2. 光照反应:将大试管置于高压汞灯下照射,观察反应现象。
3. 观察现象:在光照条件下,甲烷与氯气发生取代反应,试管内液面上升,混合气体的颜色变浅直至消失,试管内壁有油状液滴附着。
4. 验证产物:将反应后的混合气体分别加入NaOH溶液和AgNO3溶液中,观察现象。
a. 加入NaOH溶液:反应生成氯化钠(NaCl),溶液变浑浊。
b. 加入AgNO3溶液:反应生成氯化银(AgCl)白色沉淀。
五、实验结果与分析1. 反应现象:在光照条件下,甲烷与氯气发生取代反应,生成氯代甲烷和氯化氢。
反应过程中,试管内液面上升,混合气体的颜色变浅直至消失,试管内壁有油状液滴附着。
2. 验证产物:反应后的混合气体加入NaOH溶液和AgNO3溶液,分别生成氯化钠和氯化银,证明实验成功。
六、实验结论1. 甲烷在光照条件下可以与氯气发生取代反应,生成氯代甲烷和氯化氢。
2. 通过观察实验现象和验证产物,可以判断实验成功。
七、实验讨论1. 实验过程中,为什么试管内液面会上升?解答:氯气密度大于空气,反应过程中,氯气被消耗,导致试管内压强减小,液面上升。
制备甲烷的实验报告

一、实验目的1. 熟悉甲烷的制备方法;2. 掌握实验室制备甲烷的实验步骤;3. 了解甲烷的物理性质和化学性质。
二、实验原理甲烷(CH4)是一种无色、无味、易燃的气体,是天然气的主要成分。
实验室制备甲烷的方法有:水解法、酸碱中和法、热分解法等。
本实验采用酸碱中和法,即利用醋酸钠和盐酸反应生成甲烷。
反应方程式:CH3COONa + HCl → CH4↑ + NaCl + H2O三、实验仪器与试剂1. 仪器:锥形瓶、导管、集气瓶、酒精灯、铁架台、胶头滴管、试管等。
2. 试剂:醋酸钠、盐酸、石灰水。
四、实验步骤1. 准备实验器材:锥形瓶、导管、集气瓶、酒精灯、铁架台、胶头滴管、试管等。
2. 在锥形瓶中加入适量的醋酸钠固体。
3. 用胶头滴管向锥形瓶中加入适量的盐酸,观察反应现象。
4. 当锥形瓶内产生气泡时,用导管将气体导入集气瓶中。
5. 收集满集气瓶的甲烷气体,用石灰水检验。
6. 观察甲烷气体的物理性质和化学性质。
五、实验现象与结果1. 当醋酸钠与盐酸反应时,锥形瓶内产生大量气泡,说明有气体生成。
2. 导管将气体导入集气瓶中,集气瓶内气体体积逐渐增大,说明收集到了甲烷气体。
3. 用石灰水检验收集到的气体,石灰水变浑浊,说明气体中含有二氧化碳。
4. 甲烷气体无色、无味、易燃,燃烧时火焰呈蓝色。
六、实验讨论1. 实验过程中,醋酸钠与盐酸反应速率较快,需要控制反应速率,以免产生过多气泡。
2. 导管插入集气瓶的深度要适中,避免气体泄漏。
3. 实验过程中,应注意安全,避免气体泄漏引起火灾。
七、实验结论通过本次实验,我们成功制备了甲烷气体,并观察到了甲烷的物理性质和化学性质。
实验过程中,我们掌握了实验室制备甲烷的方法和步骤,提高了实验操作技能。
八、实验拓展1. 尝试使用其他方法制备甲烷,如水解法、热分解法等。
2. 研究甲烷在工业生产中的应用,如用作燃料、化工原料等。
3. 探讨甲烷的环保问题,研究如何减少甲烷的排放。
制作甲烷的实验报告

一、实验目的1. 了解甲烷的制备方法及其化学反应原理。
2. 掌握实验室制备甲烷的操作步骤。
3. 学习如何检测甲烷气体的产生和纯度。
二、实验原理甲烷(CH4)是一种无色、无味的可燃气体,是天然气、沼气的主要成分。
实验室制备甲烷的方法通常采用酸碱反应,即用浓盐酸与碳酸钙(石灰石)反应生成二氧化碳气体,然后二氧化碳与氢氧化钠反应生成甲烷。
反应方程式如下:CaCO3 + 2HCl → CaCl2 + H2O + CO2↑CO2 + 2NaOH → Na2CO3 + H2OCO2 + NaOH → NaHCO32NaHCO3 → Na2CO3 + H2O + CO2↑CO2 + 2H2 → CH4 + H2O三、实验器材1. 100 mL 锥形瓶2. 100 mL 烧杯3. 玻璃棒4. 铁架台5. 导气管6. 橡皮塞7. 氢氧化钠溶液8. 碳酸钙(石灰石)9. 浓盐酸10. 火柴11. 气球12. 碱石灰13. 集气瓶四、实验步骤1. 准备工作:将氢氧化钠溶液倒入锥形瓶中,加入适量的碳酸钙,搅拌均匀。
2. 连接装置:将锥形瓶放在铁架台上,插入导气管,导气管的另一端连接到橡皮塞,橡皮塞的另一端连接到集气瓶。
3. 加热:用酒精灯对锥形瓶进行加热,使碳酸钙与浓盐酸反应,产生二氧化碳气体。
4. 检测气体:将集气瓶倒置在水槽中,观察气体是否进入集气瓶。
当集气瓶内充满气体时,用碱石灰检验气体纯度。
5. 收集甲烷:当气体纯度达到要求时,将气球套在导气管上,收集甲烷气体。
6. 检验甲烷:将收集到的甲烷气体点燃,观察火焰颜色。
甲烷燃烧时火焰呈蓝色。
五、实验结果与分析1. 实验结果:通过实验,成功制备出甲烷气体,并检验了其纯度。
2. 分析:实验过程中,碳酸钙与浓盐酸反应生成二氧化碳气体,二氧化碳与氢氧化钠反应生成甲烷。
通过加热反应,可以观察到气体产生和纯度的变化。
实验结果表明,甲烷气体的制备成功。
六、实验总结1. 本实验成功制备了甲烷气体,并检验了其纯度。
测试甲烷含量实验报告

一、实验目的1. 了解甲烷的性质和制取方法。
2. 掌握甲烷含量的测定方法。
3. 培养实验操作技能和数据处理能力。
二、实验原理甲烷(CH4)是一种无色、无味、易燃的气体,是天然气、沼气等的主要成分。
本实验采用排水法测定甲烷含量,通过测定收集到的甲烷气体体积,计算甲烷在混合气体中的比例。
三、实验仪器与试剂1. 仪器:集气瓶、酒精灯、铁架台、锥形瓶、水槽、玻璃棒、量筒、胶头滴管、试管、锥形瓶塞、塞子、酒精灯、铁夹、石棉网等。
2. 试剂:无水乙酸钠、生石灰、NaOH、Fe2O3、KMnO4、MnO2、溴水、澄清石灰水、浓硫酸等。
四、实验步骤1. 制取甲烷:将无水乙酸钠、生石灰、NaOH、Fe2O3按一定比例混合,装入锥形瓶中,用塞子密封。
点燃酒精灯,加热锥形瓶,待气体产生后,用排水法收集甲烷气体。
2. 水蒸气检验:将收集到的甲烷气体通入装有浓硫酸的锥形瓶中,观察气体是否被吸收,以检验气体中是否含有水蒸气。
3. 二氧化碳检验:将收集到的甲烷气体通入装有澄清石灰水的锥形瓶中,观察石灰水是否变浑浊,以检验气体中是否含有二氧化碳。
4. 甲烷含量测定:将收集到的甲烷气体通入装有KMnO4溶液的锥形瓶中,观察KMnO4溶液颜色变化,以确定甲烷含量。
五、实验数据记录与处理1. 甲烷气体体积:V(L)2. KMnO4溶液颜色变化:由紫色变为无色根据实验数据,计算甲烷含量:甲烷含量 = V(L)/总体积(L)六、实验结果与分析1. 实验结果:甲烷气体体积为V(L),KMnO4溶液颜色变化由紫色变为无色。
2. 分析:根据实验数据,计算甲烷含量。
如果甲烷含量接近理论值,则说明实验结果准确。
七、实验总结1. 本实验通过制取甲烷气体,并测定其含量,了解了甲烷的性质和制取方法。
2. 在实验过程中,掌握了甲烷含量测定的方法,提高了实验操作技能和数据处理能力。
3. 实验结果表明,甲烷在混合气体中的含量与理论值相符,说明实验结果准确。
4. 在实验过程中,应注意以下几点:(1)控制加热温度,防止甲烷气体泄漏。
研究甲烷组成实验报告

一、实验目的1. 掌握甲烷的实验室制法;2. 了解甲烷的物理性质和化学性质;3. 通过实验验证甲烷的组成元素,证明其由碳和氢元素组成。
二、实验原理甲烷(CH4)是一种无色、无味、易燃的气体,广泛存在于天然气、沼气等自然界中。
根据化学反应前后元素种类不变的原则,通过燃烧甲烷,观察其燃烧产物,可以验证甲烷的组成元素。
三、实验材料1. 实验用品:酒精灯、火柴、集气瓶、光洁干燥的小烧杯、澄清石灰水、盛有甲烷的贮气瓶、玻璃棒、镊子、药匙等。
2. 实验试剂:无水乙酸钠、生石灰、NaOH、Fe2O3、KMnO4、MnO2、溴水等。
四、实验步骤1. 实验前准备:a. 将无水乙酸钠、生石灰、NaOH、Fe2O3等试剂分别进行预处理,如灼烧、研磨等。
b. 组装实验装置,检查气密性。
2. 甲烷的制取:a. 称取1.5g处理过的乙酸钠和0.4g CaO、0.4g NaOH,混匀后装入试管。
b. 将仪器如图装好,先均匀预热,再集中火力由管前向管尾加热。
c. 产生气体先验纯后收集或点燃。
3. 甲烷的燃烧实验:a. 点燃甲烷,观察火焰颜色。
b. 将光洁干燥的小烧杯罩在甲烷燃烧的火焰上方,观察烧杯内壁是否有水珠生成。
c. 迅速取下烧杯,将蘸有澄清石灰水的小烧杯罩在甲烷燃烧的火焰上方,观察石灰水是否变浑浊。
4. 实验现象记录与分析:a. 观察甲烷燃烧时火焰的颜色,记录火焰颜色。
b. 观察烧杯内壁是否有水珠生成,记录现象。
c. 观察石灰水是否变浑浊,记录现象。
五、实验结果与分析1. 实验现象:a. 甲烷燃烧时火焰呈蓝色。
b. 烧杯内壁出现水珠。
c. 澄清石灰水变浑浊。
2. 分析与结论:a. 甲烷燃烧时火焰呈蓝色,说明其燃烧温度较高。
b. 烧杯内壁出现水珠,证明甲烷中含有氢元素。
c. 澄清石灰水变浑浊,证明甲烷中含有碳元素。
六、实验总结通过本次实验,我们掌握了甲烷的实验室制法,了解了甲烷的物理性质和化学性质。
实验结果表明,甲烷由碳和氢元素组成,燃烧产物为二氧化碳和水。
甲烷反应实验报告结论

一、实验目的本实验旨在通过甲烷的燃烧反应,验证甲烷中含有碳、氢元素,并探究其燃烧产物的性质。
二、实验原理甲烷(CH4)在氧气(O2)存在下燃烧,生成二氧化碳(CO2)和水(H2O)。
根据质量守恒定律,反应前后元素种类不变,因此,若能证明燃烧产物中含有二氧化碳和水,则可证明甲烷中含有碳、氢元素。
反应方程式如下:CH4 + 2O2 → CO2 + 2H2O三、实验用品1. 甲烷气瓶2. 火柴3. 干燥的烧杯4. 澄清石灰水5. 氧气瓶6. 气压计7. 计时器四、实验步骤1. 将甲烷气瓶打开,用气压计测量甲烷气压,记录数据。
2. 用火柴点燃甲烷,观察火焰颜色和燃烧情况。
3. 将干燥的烧杯罩在甲烷燃烧的火焰上方,观察烧杯内壁是否有水珠出现。
4. 将蘸有澄清石灰水的小烧杯罩在甲烷燃烧的火焰上方,观察石灰水是否变浑浊。
5. 记录实验现象,分析甲烷燃烧产物的性质。
五、实验现象1. 点燃甲烷时,火焰呈蓝色,燃烧情况稳定。
2. 将干燥的烧杯罩在甲烷燃烧的火焰上方,烧杯内壁出现水珠。
3. 将蘸有澄清石灰水的小烧杯罩在甲烷燃烧的火焰上方,石灰水变浑浊。
六、实验结论1. 甲烷燃烧时,火焰呈蓝色,说明甲烷燃烧反应放出大量热量。
2. 将干燥的烧杯罩在甲烷燃烧的火焰上方,烧杯内壁出现水珠,证明甲烷中含有氢元素。
3. 将蘸有澄清石灰水的小烧杯罩在甲烷燃烧的火焰上方,石灰水变浑浊,证明甲烷中含有碳元素。
4. 根据实验现象,甲烷燃烧生成二氧化碳和水,符合反应方程式:CH4 + 2O2 → CO2 + 2H2O。
七、实验讨论1. 甲烷燃烧反应为放热反应,放出的热量可用于供暖、发电等。
2. 甲烷燃烧生成的二氧化碳和水是温室气体,过量排放会导致全球气候变暖。
3. 在实验过程中,注意安全操作,避免甲烷泄漏和火灾事故。
八、实验总结本实验通过甲烷燃烧反应,成功验证了甲烷中含有碳、氢元素,并探究了其燃烧产物的性质。
实验结果表明,甲烷燃烧生成二氧化碳和水,符合质量守恒定律。
甲烷的制取_实验报告

一、实验目的1. 掌握甲烷的实验室制法。
2. 了解甲烷的性质。
3. 熟悉实验室安全操作规范。
二、实验原理甲烷(CH4)是一种无色、无味、易燃的气体,是天然气的主要成分。
实验室中常用无水乙酸钠(CH3COONa)与氢氧化钠(NaOH)反应制备甲烷。
反应方程式如下:\[ \text{CH}_3\text{COONa} + \text{NaOH} \rightarrow \text{CH}_4 +\text{Na}_2\text{CO}_3 \]三、实验材料与仪器1. 无水乙酸钠(CH3COONa)2. 氢氧化钠(NaOH)3. 碱石灰4. 铁架台5. 酒精灯6. 试管7. 烧杯8. 导管9. 集气瓶10. 澄清石灰水11. 玻璃片12. 滤纸13. 秒表四、实验步骤1. 准备实验装置,将碱石灰填入干燥的试管中。
2. 称取1.5g无水乙酸钠和0.4g氢氧化钠,混合均匀。
3. 将混合好的试剂装入试管中,用玻璃片封口。
4. 将试管倒置于盛有碱石灰的烧杯中。
5. 点燃酒精灯,均匀预热试管,然后集中火力加热试管底部。
6. 观察反应过程中产生的气体,待气体充满集气瓶后,用玻璃片封口。
7. 将集气瓶倒置,用湿润的滤纸包裹,以防止水蒸气进入集气瓶。
8. 将集气瓶中的甲烷气体点燃,观察燃烧现象。
五、实验现象1. 反应过程中,试管中产生气泡,气体充满集气瓶。
2. 甲烷气体点燃后,产生明亮的蓝色火焰,火焰上方有少量水雾产生。
六、实验结论1. 通过实验,成功制取了甲烷气体。
2. 甲烷是一种无色、无味、易燃的气体,燃烧时产生明亮的蓝色火焰。
3. 实验过程中严格遵守实验室安全操作规范,未发生安全事故。
七、注意事项1. 实验过程中,应注意防止火灾和爆炸事故的发生。
2. 加热试管时,应均匀预热,避免局部过热。
3. 实验结束后,应将实验装置清理干净,并妥善处理废弃物。
八、实验讨论1. 实验中使用的无水乙酸钠和氢氧化钠为何能制取甲烷?2. 实验过程中,如何防止火灾和爆炸事故的发生?3. 甲烷的燃烧对环境有何影响?九、实验总结本次实验成功制取了甲烷气体,并观察到了甲烷的燃烧现象。
甲烷制备化学实验报告

一、实验目的1. 学习甲烷的制备方法。
2. 掌握实验室制备甲烷的实验步骤和操作技能。
3. 了解甲烷的性质及其在化学工业中的应用。
二、实验原理甲烷是一种无色、无味的气体,化学式为CH4。
实验室制备甲烷的方法有多种,其中一种常见的方法是利用无水醋酸钠和碱石灰在加热条件下反应生成。
反应方程式如下:CH3COONa + NaOH → CH4↑ + Na2CO3本实验采用固体加热法制备甲烷,通过加热使反应物发生反应,生成甲烷气体。
三、实验仪器与试剂1. 仪器:酒精灯、铁架台、集气瓶、导管、橡胶塞、试管、镊子、滤纸等。
2. 试剂:无水醋酸钠、碱石灰。
四、实验步骤1. 准备实验装置:将集气瓶放在铁架台上,导管插入集气瓶中,橡胶塞塞紧。
2. 称取无水醋酸钠和碱石灰,按比例混合均匀。
3. 将混合好的固体装入试管中,用镊子轻轻压实。
4. 将试管放入铁架台上,点燃酒精灯,加热试管。
5. 观察集气瓶中的气体收集情况,当集气瓶内气体充满时,熄灭酒精灯。
6. 用滤纸擦去导管口的水珠,防止水蒸气进入集气瓶。
7. 将导管从集气瓶中取出,观察甲烷气体的性质。
五、实验现象与结果1. 实验过程中,观察到试管内固体逐渐减少,气体产生并进入集气瓶。
2. 集气瓶内气体逐渐充满,气体密度比空气小,不溶于水。
3. 甲烷气体燃烧时,火焰呈蓝色,并伴有少量黑烟。
六、实验讨论1. 甲烷的制备过程中,固体加热是关键步骤,加热温度和时间会影响甲烷的产量。
2. 实验过程中,注意安全操作,防止试管破裂或烫伤。
3. 甲烷在化学工业中具有广泛的应用,如作为燃料、化工原料等。
七、实验总结通过本次实验,我们掌握了实验室制备甲烷的方法和操作技能,了解了甲烷的性质及其在化学工业中的应用。
在实验过程中,我们学会了安全操作,提高了实验技能。
在今后的学习中,我们将继续努力,不断提高自己的实验能力和科学素养。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南昌大学实验报告课程名称:C++语言程序设计姓名:学号:班级:实验类型:□验证■综合■设计□创新实验日期:实验成绩:一、实验名称:第四章类与对象二、实验要求:1、测试在构造函数体重新定义私有数据成员会怎样影响程序2、测试例4-4,,认识构造函数,拷贝构造函数及析构函数的调用方式3、前向引用声明的测试与运用4、借鉴4-7,实现100个员工的信息录入5、实现习题4-96、实现习题4-10三、实验方法:函数模板的编写。
四、主要仪器设备及耗材:PC。
五、实验步骤:1.编写程序;2.调试程序;3.运行程序。
六、实验数据及处理结果1. 上机习题的程序代码如下:#include<iostream>#include<iomanip>#include<cmath>#include<limits>#include"employee.h"using namespace std;class Clock{public:void SetTime(int NewH=0,int NewM=0,int NewS=0);void ShowTime();private:int Hour,Minute,Second;};void Clock::SetTime(int NewH,int NewM,int NewS){int Hour,Minute,Second;Hour=NewH;Minute=NewM;Second=NewS;}void Clock::ShowTime(){cout<<Hour<<':'<<Minute<<':'<<Second<<endl;}void ex4_1(){Clock myclock;myclock.SetTime(8,30,30);myclock.ShowTime();getchar();}class Point{public:Point(int xx=0,int yy=0){X=xx;Y=yy;}Point(Point &p);int GetX(){return X;}int GetY(){return Y;}~Point(){ cout<<"x="<<X<<"y="<<Y;cout<<" Good Bye!"<<endl;}private:int X,Y;};Point::Point(Point &p){X=p.X;Y=p.Y;cout<<"Point拷贝构造函数被调用"<<"X="<<X<<" Y="<<Y<<endl; }//类的组合class Line{public:Line(Point xp1,Point xp2);Line(Line &L);double GetLen(){return len;}~Line(){ cout<<"Good Bye!"<<endl;}private:Point p1,p2;double len;};//组合类的构造函数Line::Line(Point xp1,Point xp2):p1(xp1),p2(xp2){cout<<"Line构造函数被调用"<<endl;double x=double(p1.GetX()-p2.GetX());double y=double(p1.GetY()-p2.GetY());len=sqrt(x*x+y*y);}//组合类的拷贝构造函数Line::Line(Line &L):p1(L.p1),p2(L.p2){cout<<"Line拷贝构造函数被调用"<<endl;len=L.len;}void ex4_2(){Point myp1(4,5),myp2(1,1);cout<<"11111"<<endl;Line line(myp1,myp2);cout<<"22222"<<endl;Line line2(line);cout<<"The length of the line is :";cout<<line.GetLen()<<endl;cout<<"The length of the line2 is:";cout<<line2.GetLen()<<endl;getchar();}class Fred;class Barney{public:void method();private:Fred *x;};class Fred{public:void yabbaDabbaDo(){cout<<"OK"<<endl;};private:Barney *y;};void Barney::method(){x->yabbaDabbaDo();}void ex4_3(){ Barney B;B.method();getchar();}void ex4_4(){int n ,m=0,i=1;employee a[100];for(n=1;n<=100;n++){cout<<"请输入第";cout<<n<<"个雇员的月薪:";float pa;cin>>pa;m++;a[i].IncreaseEmpNo(m);cout<<"请输入该雇员的等级:";int increment;cin>>increment;a[i].promote(increment);a[i].SetaccumPay(pa);cout<<"编号"<<a[i].GetindividualEmpNo()<<"级别为"<<a[i].Getgrade()<<"级,本月工资"<<a[i].GetaccumPay()<<endl;i++;}}class Point1{public:Point1(int xx=0,int yy=0){X=xx;Y=yy;};Point1(Point1 &p);int GetX(){return X;}int GetY(){return Y;}private:int X,Y;};Point1::Point1(Point1 &p){X=p.X;Y=p.Y;}class Rectangle{public:Rectangle(Point1 xp1,Point1 xp2);int Area(){return area;}private:Point1 p1,p2;int area;};Rectangle::Rectangle(Point1 xp1,Point1 xp2):p1(xp1),p2(xp2){int x=int(p2.GetX()-p1.GetX());int y=int(p2.GetY()-p1.GetY());x=abs(x);y=abs(y);area=x*y;}void ex4_5(){int i,j,m,n;cout<<"请输入长方形左下角的点的横坐标:";cin>>i;cout<<endl<<"请输入长方形左下角的点的纵坐标:";cin>>j;cout<<endl<<"请输入长方形右上角的点的横坐标:";cin>>m;cout<<endl<<"请输入长方形右上角的点的纵坐标:";cin>>n;Point1 p1(i,j);Point1 p2(m,n);Rectangle R1(p1,p2);cout<<"该长方形的面积是:"<<R1.Area()<<endl;getchar();getchar();getchar();getchar();getchar();}class Date{public:Date(int year=0,int month=0,int day=0){Year=year;Month=month;Day=day;}//内联函数Date(Date &d);void SetDate(int year,int month,int day);void Getdate();private:int Year,Month,Day;};Date::Date(Date &d)//拷贝构造函数{Year=d.Year;Month=d.Month;Day=d.Day;}void Date::Getdate(){cout<<Year<<'/'<<Month<<'/'<<Day<<endl;}void Date::SetDate(int year,int month,int day){Year=year;Month=month;Day=day;}class people{public:people(Date B);//构造函数~people(){};//析构函数void Increase(int step=1);//带默认形参值的成员函数void Sex(char );void ID( long);void SetDate(int i,int j,int k);int GetNo();char GetSex();void GetDate();int GetID();private:Date B1;long id;char a;int No;};people::people(Date B):B1(){No=1000;id=0;a='M';B1.SetDate(0,0,0);}//析构函数为空void people::Increase(int step){No+=step;}void people::Sex(char b){a=b;}void people::SetDate(int i,int j,int k) {B1.SetDate(i,j,k);}void people::ID( long a){id=a;}int people::GetNo(){return No;}void people::GetDate(){B1.Getdate();}char people::GetSex(){return a;}int people::GetID(){return id;}void ex4_6 (){Date birthday;people p1(birthday);p1.Increase();cout<<"请输入员工的性别,若为女,输入w,若为男,输入m:";char a=' ';int i,j,k;cin>>a;p1.Sex(a);cout<<"请输入该员工的出生日期,"<<"年:";cin>>i;cout<<"月:";cin>>j;cout<<"日:";cin>>k;p1.SetDate(i,j,k);cout<<endl<<"请输入该员工的身份证号:";long b;cin>>b;p1.ID(b);cout<<endl<<"当前员工的编号是:"<<p1.GetNo()<<endl;cout<<endl<<"性别是:";if(p1.GetSex()=='w')cout<<"女";else cout<<"男"<<endl;cout<<"出生日期是:";p1.GetDate();cout<<"身份证号是:"<<p1.GetID()<<endl;getchar();getchar();getchar();}void main(){int y=1;while(y==1){cout<<"共6个实验:"<<endl;cout<<"1.在成员函数里面重新定义私有数据成员"<<endl;cout<<"2.拷贝构造函数的调用方式"<<endl;cout<<"3.向前引用声明"<<endl;cout<<"4.100个员工"<<endl;cout<<"5.Rectangle 类,求面积"<<endl;cout<<"6.人员类,实现人员属性的录入和显示"<<endl;cout<<"请输入您的选择:";int choose;cin>>choose;system("cls");switch(choose){case 1: ex4_1();break;case 2: ex4_2();break;case 3: ex4_3();break;case 4: ex4_4();break;case 5: ex4_5();break;case 6: ex4_6();break;}cout<<"继续请输入1,结束请输入0"<<endl;cin>>y;system("cls");}}2. 运行结果七、上机体会或对改进教学、实验的建议这一章做实验比之前做实验熟练很多,还是需要熟练各种函数的用法,多写实验。