vc实验报告六

合集下载

快速排序算法c语言实验报告

快速排序算法c语言实验报告

快速排序算法c语言实验报告冒泡法和选择法排序C程序实验报告实验六:冒泡法排序物理学416班赵增月F12 2011412194日期:2013年10月31日一·实验目的 1.熟练掌握程序编写步骤;2.学习使用冒泡法和选择法排序;3.熟练掌握数组的定义和输入输出方法。

二·实验器材1.电子计算机;2.VC6.0三·实验内容与流程1.流程图(1)冒泡法(2)选择法 2.输入程序如下:(1)冒泡法#includestdio.h void main() { int a[10]; int i,j,t; printf(请输入10个数字:\n); for(i=0;i10;i++)scanf(%d,&a[i]); printf(\n); for(j=0;j9;j++)for(i=0;i9-j;i++) if(a[i]a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } printf(排序后如下:\n); for(i=0;i10;i++) printf(%d,a[i]); printf(\n); }(2)选择法#includestdio.h void main() { int a[10]; int i,j,t,k; printf(请输入10个数字:\n); for(i=0;i10;i++)scanf(%d,&a[i]);printf(\n); for(i=0;i9;i++) {k=i;for(j=i+1;j10;j++) if (a[k]a[j])k=j;t=a[i];a[i]=a[k];a[k]=t; }printf(排序后如下:\n); for(i=0;i10;i++)printf(%d,a[i]); printf(\n); }四.输出结果(1冒泡法)请输入10个数字:135****2468排序后如下:12345678910 (2)选择法输出结果请输入10个数字:135****6810排序后如下:12345678910五.实验反思与总结1.冒泡法和选择法是一种数组排序的方法,包含两层循环,写循环时,要注意循环变量的变化范围。

综合分析实验:实验3:果蔬中维生素C测定(实验报告)

综合分析实验:实验3:果蔬中维生素C测定(实验报告)

实验果蔬中维生素C含量的测定
学院/专业/班级:______________________________ 姓名:
合作者:________________ 实验日期______年__月__日教师评定:______________ 【实验目的】
【实验原理】
【仪器及试剂】
【简单实验步骤】
【数据记录及处理】
Vc质量: g ;西红柿质量: g ;橙子质量: g
实验中你与合作者配制的公用试液有(详细记录称取量及配制过程):
(1)分光光度法:标准曲线及待测样品吸光度的测定
表1. 标准系列及待测果蔬吸光度的测定
以Vc含量为横坐标,吸光度为纵坐标,绘制标准曲线:
图1. 标准曲线(图打印成适当大小,贴在此处)
计算原待测试样西红柿及橙子中Vc的含量(利用拟合方程求算,注意稀释倍数,以mg/100g表示)
(2)荧光法:标准曲线及待测样品荧光光度的测定
表2. 标准系列及待测果蔬荧光强度的测定
图2. 标准曲线(图打印成适当大小,贴在此处)
计算原待测试样西红柿及橙子中Vc的含量(利用拟合方程求算,注意稀释倍数,以mg/100g表示)
【实验评价及问题讨论】。

VC和CG实验报告:球体的Phong模型绘制

VC和CG实验报告:球体的Phong模型绘制

实验三球体的Phong模型绘制一、实验目的:1.实验目的:通过实际动手编程, 掌握DLL的生成方法和使用DLL中导出函数的方法;2.通过实际动手编程, 使用Phong简单光照明模型完成对一个球体的绘制.二、编译环境:Visual C++ 6.0三、程序代码:#include "math.h"#define X 500#define Y 250#define R 150#define Iar 10#define Iag 0#define Iab 10#define Ipr 200#define Ipg 200#define Ipb 200#define Kdr 0.5#define Kdg 0.5#define Kdb 0.5#define Ksr 0.6#define Ksg 0.6#define Ksb 0.6#define N 10struct COLOR{int r,g,b;};void CModelView::OnDraw(CDC* pDC){CModelDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereint i,j;for(i=0;i<R;i++)for (j=0;j<R;j++){if (sqrt(i*i+j*j)>R)continue;pDC->SetPixel(X+i,Y+j,RGB(Color(sqrt(i*i+j*j)).r, Color(sqrt(i*i+j*j)).g,Color(sqrt(i*i+j*j)).b));pDC->SetPixel(X+i,Y-j,RGB(Color(sqrt(i*i+j*j)).r,C olor(sqrt(i*i+j*j)).g,Color(sqrt(i*i+j*j)).b));pDC->SetPixel(X-i,Y+j,RGB(Color(sqrt(i*i+j*j)).r,C olor(sqrt(i*i+j*j)).g,Color(sqrt(i*i+j*j)).b));pDC->SetPixel(X-i,Y-j,RGB(Color(sqrt(i*i+j*j)).r,C olor(sqrt(i*i+j*j)).g,Color(sqrt(i*i+j*j)).b));}}extern float powd(float a, int n);COLOR CModelView::Color(float i){COLOR t;float sind=i/R;float cosd=sqrt(1-sind*sind);float coss=powd(cosd,N);t.r=(Iar+Ipr*Kdr*cosd+Ipr*Ksr*coss);t.g=(Iag+Ipg*Kdg*cosd+Ipg*Ksg*coss);t.b=(Iab+Ipb*Kdb*cosd+Ipb*Ksb*coss);if(t.r>255)t.r=255;if(t.g>255)t.g=255;if(t.b>255)t.b=255;return t;}运行结果:四、实验总结:这次实验总体来说比前两次要难,虽然算法不是很难理解,但是要把算法用代码实现还是费了一番周折。

c语言实验报告 (2)

c语言实验报告 (2)

C语言实验报告说明1,所有程序均用VC6。

0编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不是按照日期先后排列的。

2,为了使截图清晰,手动将运行窗口由“黑底白字"改为了“白底黑字”.实验2 数据类型、运算符和表达式一、实验目的:(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法。

(2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。

(3)掌握C语言的输入和输出函数的使用(4)进一步熟悉C程序的编辑、编译、连接和运行的过程.三、程序调试与问题解决:(1)输人并运行下面的程序#include<stdio.h>void main(){char c1,c2;c1='a’;c2=’b';printf(”%c %c\n”,c1,c2);}错误!运行此程序.错误!在上面printf语句的下面再增加一个printf语句。

printf(”%d%d\n",c1,c2);再运行,并分析结果。

输出结果如图,编译成功,无错误.错误!将第3行改为int c1,c2;再运行,并分析结果。

错误!再将第4、5行改为c1=a;c2=b;再运行,并分析结果。

a,b没有定义,编译报错。

错误!再将第4、5行改为c1=‘’a‘’;c2=‘’b‘’;再运行,并分析结果。

○6再将第4、5行改为c1=300;c2=400;再运行,并分析结果.以字符型输出时,输出的将是300,400对应的字符.(2)输人并运行教材第3章习题3. 6给出的程序#include〈stdio.h〉main (){char c1=’a’,c2=’b’,c3=’c',c4=’\101’,c5=’\116';printf("a%c b%c\tc%c\tabc\n",c1,c2,c3);printf(”\t\b%c %c\n”,c4,c5);}#include<stdio.h>void main(){int a,b;unsigned c,d;long e,f;a=100;b=-100;e=50000;f=32767;c=a;d=b;printf("%d,%d\n",a,b);printf(”%u,%u\n",a,b);printf("%u,%u\n",c,d);c=a=e; d=b=f;printf(”%d,%d\n",a,b);printf("%u,%u\n”,c,d);}请对照程序和运行结果分析:①将一个负整数斌给一个无符号的变t,会得到什么结果.画出它们在内存中的表示形式。

程序设计基础实验报告

程序设计基础实验报告

实验一 用C 语言编写简单程序一、实验目的1. 熟悉VC6.0的编程环境,掌握运行C 程序的基本步骤。

2. 了解C 程序的基本框架,模仿例题编写简单的C 语言程序。

3. 正确书写算术表达式、赋值表达式和关系表达式。

4. 掌握基本输入输出函数的使用,正确调用C 语言提供的数学库函数。

5. 掌握简单的单步调试方法。

二、实验环境Windows XP ;Visual C++ 6.0。

三、实验内容1.在屏幕上显示一个句子“What is a computer?”。

2.求华氏温度150F 对应的摄氏温度。

计算公式如下:其中,c 表示摄氏温度;f 表示华氏温度。

3.输入x ,计算下列分段函数的值(保留2位小数),请调用sqrt 函数求平方根,调用pow 函数求幂。

4. 输入一个正整数m (0100)m ≤≤,求100i m i =∑。

四、实验要求1. 将上机验证正确的源代码写到实验报告上。

2.根据自己的真实感受,认真填写实验分析和实验心得以及问题和建议。

3.按时提交实验报告。

553299c f =⨯-⨯21(1)2 x<02()0x x f x ⎧+++⎪=≥一、实验目的1.熟练掌握关系表达式的使用。

2.熟练掌握使用else-if 语句实现多分支结构程序设计。

二、实验环境Windows XP ;Visual C++ 6.0。

三、实验内容1.输入x ,计算并输出下列分段函数sign(x)的值。

2.输入月薪salary ,输出应交的个人所得税tax (保留2位小数)。

按照2011年开始实行的新的个人所得税法,计算公式为:tax = rate*(salary-3500)-deduction 。

当salary≤3500时,rate=0、deduction=0当3500<salary≤5000时,rate=3%、deduction=0当5000<salary≤8000时,rate=10%、deduction=105当8000<salary≤12500时,rate=20%、deduction=555当12500<salary≤38500时,rate=25%、deduction=1005当38500<salary≤58500时,rate=30%、deduction=2775当83500<salary 时,rate=45%、deduction=135053.输入一个正整数n ,再输入n 个学生的百分制成绩,统计各等级成绩的个数。

c++实验报告【范本模板】

c++实验报告【范本模板】

面向对象程序设计(C++)实验报告指导老师:***学生:吴健班级:软131学号:*********目录实验一、VC6.0环境入门与简单程序设计实验报告 (3)实验二、函数的应用实验报告 (7)实验三、类与对象实验报告 (14)实验四、C++程序结构实验报告 (22)实验五、数组、指针与字符串实验报告 (26)实验六、继承和派生实验报告 (33)实验七、多态性实验报告 (42)实验八、面向对象综合实验实验报告 (48)实验一、VC6.0环境入门与简单程序设计实验报告系软件工程班级 131 学号 139074164 姓名吴健同组者指导教师柯栋梁一、实验目的:1、熟悉VC++6.0开了环境并编写简单的C++程序。

3、使用C++语言编写简单的输入输出程序。

4、使用VC++6.0的DEBUG调试功能:单步执行、设置断点、观察变量值。

二、实验内容:1、使用VC++建立一个标准C++程序,编译、运行如下程序:#include<iostream〉Int main(){Cout〈<”Hello World!\n";Cout<<”Welcome to C++!\n";}2、编程计算图形的面积。

程序可计算圆形、长方形、正方形等的面积,运行时首先提示用户选择图形类型,然后根据不同图形类型,输入相关参数计算其面积,并将其显示出来.3、使用DEBUG功能观察任务2程序运行中变量值的变化情况.三、实验要求:1、任务1要求熟悉VC++开发环境,并能够使用其建立第一个C++程序.2、实验前要做好充分准备,包括程序清单、调试步骤、调试方法,以及对程序结果的分析等。

四、实验报告:1.程序运行截图2.面积计算1、程序说明。

用if -else语句进行选择程序功能,while语句实现功能的循环实现程序如下:#include〈iostream>#include〈cmath〉using namespace std;int main(){cout〈<”1计算圆面积”<〈endl〈<"2计算矩形面积"<〈endl〈<"3计算正方形面积”〈〈endl<<"4退出"〈〈endl<<"请选择相应功能代码:”;int x; //x对应编号cin〉>x;double area;while(x!=4){if(x==1){double r;cout〈〈"半径:";cin〉>r;area=3。

c语言实验报告

《高级语言程序设计》实验指导学院:信息科学与技术学院专业:信息管理与信息系统学期:2010~2011学年第二学期教师:目录实验1 熟悉C语言程序开发环境 (1)1.1 实验目的 (1)1.2 实验预习 (1)1.3 实验任务 (1)实验2 数据描述 (6)2.1 实验目的 (6)2.2 实验预习 (6)2.3 实验任务 (6)实验3 顺序结构程序设计 (10)3.1 实验目的 (10)3.2 实验预习 (10)3.3 实验任务 (10)实验4 选择结构程序设计 (13)4.1 实验目的 (13)4.2 实验预习 (13)4.3 实验任务 (13)实验5 循环结构程序设计 (16)5.1 实验目的 (16)5.2 实验预习 (16)5.3 实验任务 (16)实验6 函数与编译预处理 (22)6.1 实验目的 (22)6.2 实验预习 (22)6.3 实验任务 (22)实验7 数组 (28)7.1 实验目的 (28)7.2 实验预习 (28)7.3 实验任务 (28)实验8综合实验 (33)8.1 实验目的 (33)8.2 实验预习 (33)8.3 实验任务 (33)实验9 指针 (36)9.1 实验目的 (36)9.2 实验预习 (36)9.3 实验任务 (36)实验10 结构体数据类型与链表 (40)10.1 实验目的 (40)10.2 实验预习 (40)10.3 实验任务 (40)实验11 共用体数据类型 (43)11.1 实验目的 (43)11.2 实验预习 (43)11.3 实验任务 (43)实验12 文件 (45)12.1 实验目的 (45)12.2 实验预习 (45)12.3 实验任务 (45)实验13 综合实验 (48)13.1 实验目的 (48)13.2 实验预习 (48)13.3 实验任务 (48)实验1 熟悉C语言程序开发环境院(系):信息科学与技术学院课程名称:高级语言程序设计教师签名:1.1 实验目的1.了解和掌握C语言的主要特点。

VC6.0下bmp位图的读取与显示

昆明理工大学(数字图像处理)实验报告实验名称:VC6.0下bmp位图的读取与显示专业:电子信息科学与技术姓名:学号:成绩:[实验目的]掌握windows BMP格式位图文件的基本格式。

会使用VC++读取图像数据并显示。

[实验内容]1、在VC6.0环境下,生成MFC应用程序框架。

2、在已生成的应用程序中,加BMP位图读取与显示的代码,从已有文件中读取bmp格式文件并在视图中显示。

[实验原理]1 、 BMP 文件组成BMP 文件由文件头、位图信息头、颜色信息和图像数据四部分组成。

位图结构如下所示:2 、 BMP 文件头BMP 文件头数据结构含有BMP 文件的类型、文件大小和位图起始位置等信息。

其结构定义如下:•typedef struct tagBITMAPFILEHEADER{•WORD bfType; //文件类型,必须是字符串”BM”•DWORD bfSize; //指定文件大小•WORD bfReserved1; //保留字,不考虑•WORD bfReserved2; //保留字,不考虑•DWORD bfOffBits; //从文件头到位图数据的偏移字节数•} BITMAPFILEHEADER3 、位图信息头typedef struct tagBITMAPINFOHEADER{DWORD biSize; //该结构的长度,40个字节LONG biWidth; //图像的宽度,单位是像素LONG biHeight; //图像的高度,单位是像素WORD biPlanes; //必须是1WORD biBitCount //颜色位数,如1,4,8,24DWORD biCompression; //压缩类型,如BI_RGB,BI_RLE4DWORD biSizeImage; //实际位图数据占用的字节数LONG biXPelsPerMeter; //水平分辨率LONG biYPelsPerMeter; //垂直分辨率DWORD biClrUsed; //实际使用的颜色数DWORD biClrImportant; //重要的颜色数} BITMAPINFOHEADER;4、调色板typedef struct tagRGBQUAD {BYTE rgbBlue;BYTE rgbGreen;BYTE rgbRed;BYTE rgbReserved;} RGBQUAD;用于存放图像的颜色。

实验报告模版

实验4 派生类的实现姓名张识翼班级电信3班学号14132201576一、实验目的通过vc开发环境下派生类和对象的设计与实现,了解单继承和多继承的基本方法,掌握派生类的基本设计和编程方法。

二、实验主要内容1、采用单一继承实现学生和毕业生两个类,设计相关的数据成员和函数,编程测试继承情况。

2、单位员工类(时薪工、计件工、经理、佣金工)设计,其中时薪工每周超过50小时后算加班,加班薪水为原薪水的200%;佣金工每周得到保底薪水,再此基础上按比例从该周内销售额中提成;经理则拿固定的周薪。

3、设计研究生类,该类派生自学生类和教师类。

三、实验程序#include<iostream.h>#include<string.h>class Student // 定义基类vehicle{public: // 公有函数成员Student(int n,char *na,int g):number(n),grade(g){strcpy(name,na);}int getNumber(){return number;}char * getName(){return name;}int getGrade(){return grade;}void display(){cout<<"学号:"<<number<<endl<<"姓名:"<<name<<endl<<"年级:"<<grade<<endl;}private: // 私有数据成员int number; // 学号char name[20]; // 姓名int grade; // 年级};class Graduate:public Student //定义毕业生类{char designSubject[20];public:Graduate(int n,char *na,char * deSub,int g=4):Student(n,na,g){strcpy(designSubject,deSub);}void display(){Student::display();cout<<"设计题目:"<<designSubject<<endl;}};void main() //创建对象{Student li(2,"Li Ming",3);Graduate zhang(3,"Zhang Gang","学生成绩管理系统"); // 显示对象的相关信息li.display(); cout << endl<<"-----------------------------------" <<endl;zhang.display();}#include <iostream.h>#include <string.h>class Person{protected:char m_strName[10];int m_nSex;int m_nAge;public:Person(char *name,int age,char sex){strcpy(m_strName, name);m_nSex= (sex=='m'?0:1 );m_nAge = age;}void setName(char *name){strcpy(m_strName, name);}void setSex(int sex){m_nSex= (sex=='m'?0:1 );}void setAge(int age){m_nAge = age;}char * getName(){return m_strName;}int getAge(){return m_nAge;}int getSex(){return m_nSex;}void ShowMe(){cout<<" 姓名:"<<m_strName<<endl;cout<<" 性别:"<<(m_nSex==0?"男":"女")<<endl;cout<<" 年龄:"<<m_nAge<<endl;}};class Teacher : public Person{char m_strDept[20];int m_fSalary;public:Teacher(char *name,int age,char sex,char *dept,int salary):Person(name,age,sex){strcpy(m_strDept, dept);m_fSalary = salary;}void ShowMe(){Person::ShowMe();cout<<" 工作单位:"<<m_strDept<<endl;cout<<" 月薪:"<<m_fSalary<<endl;}void setSalary(int salary){m_fSalary = salary;}char * getDept(){return m_strDept;}int getSalary(){return m_fSalary;}};class Student : public Person{char m_strID[12];char m_strClass[12];public:Student(char *name,int age,char sex,char *ID,char *Class) :Person(name,age,sex){strcpy(m_strID, ID);strcpy(m_strClass, Class);}void ShowMe(){ cout<<" 学号:"<<m_strID<<endl;Person::ShowMe();cout<<" 班级:"<<m_strClass<<"\n";}void setID(char * ID){strcpy(m_strID, ID);}void setClass(char *Class){strcpy(m_strClass, Class);}char* getID(){return m_strID;}char* getClass(){return m_strClass;}};class Master:public Student, public Teacher{public:Master(char *name,int age,char sex,char *ID,char *Class,char *dept,int salary) :Student(name,age,sex,ID,Class),Teacher(name, age, sex, dept, salary){}void ShowMe(){Student::ShowMe();cout<<" 工作单位:"<<getDept()<<endl;cout<<" 月薪:"<<getSalary()<<endl;}};void main(){ // 定义三个不同类的对象Teacher teacher1("刘馨",38,'m',"计算机系",3800);Student std1("刘丽",20,'f',"03016003","计算机03");Master master("张鑫",25,'f',"003","机械052","机械系",1000);//显示各类人员的属性teacher1.ShowMe();cout<<"--------------------"<<endl;std1.ShowMe();cout<<"--------------------"<<endl; master.ShowMe();}#include<iostream>#include<string.h>using namespace std;class employee //员工类{protected:char name[20]; //员工名字char id[20]; //员工号double salary; //员工薪水public:employee(){};employee(char* emp_name,char* emp_id) //建立员工基本信息{strcpy(name,emp_name);strcpy(id,emp_id);}char* get_name() //获取名字{return name;}char* get_id() //获取职工号{return id;}double get_salary() //应得薪水{return salary;}};class hourlyworker:public employee //时薪工类{protected:int hours;double hourpay;public:hourlyworker(){};hourlyworker(char* hour_name,char* hour_id,int hour,double pay):employee(hour_name,hour_id){hours=hour; hourpay=pay;}char *get_name(){return employee::get_name ();}char *id(){return employee::get_id ();}int get_hours() //获取工作时间{return hours;}double get_hourpay() //获取小时工资{return hourpay;}double get_salary() //时薪工工资计算{if(hours<=50)salary=hourpay*hours;elsesalary=hourpay*50+2*hourpay*(hours-50);return salary;}};class pieceworker:public employee //计件工类{protected:int pieces; //工件数double piecepay; //每个工件赢得的工资public:pieceworker(){};pieceworker(char* piece_name,char* piece_id,int piece,double piece_pay): employee(piece_name,piece_id){pieces=piece; piecepay=piece_pay;}char *get_name(){return employee::get_name ();}char *id(){return employee::get_id ();}int get_pieces() //获取工件数{return pieces;}double get_pay() //每件的工资{return piecepay;double piece_salary() //计件工工资{salary=pieces*piecepay;return salary;}};class manager:public employee{public:manager(char* man_name,char* man_id):employee(man_name,man_id){}char *get_name(){return employee::get_name ();}char *id(){return employee::get_id ();}double manager_salary() //经理工资{return salary=3000;}};class commissionworker:public employee //佣金工类{protected:double basesalary; //保底新书double total; //一周内的销售总额double percent; //提成的额度public:commissionworker(){};commissionworker(char* com_name,char* com_id,double com_basesalary,double com_total,double com_percent): employee(com_name,com_id){basesalary=com_basesalary;total=com_total;percent=com_percent;}char *get_name(){return employee::get_name ();char *id(){return employee::get_id ();}double get_base_pay() //保底薪水{return basesalary;}double get_com_total() //销售总额{return total;}double get_com_percent() //销售额中提成{return percent;}double com_salary() //佣金工的工资{salary=basesalary+total*percent;return salary;}};void main(){cout<<"输出“时薪工”的相关信息:"<<"\n";hourlyworker hworker("John","000001",65,20.5);cout<<" hourlyworker'名字: "<<hworker.get_name ()<<"\n";cout<<" hourlyworker'职工号: "<<hworker.get_id ()<<"\n";cout<<" hourlyworker'工作小时数:"<<hworker.get_hours ()<<"\n";cout<<" hourlyworker'每小时金额:"<<hworker.get_hourpay ()<<"\n";cout<<" hourlyworker'总工资: "<<hworker.get_salary ()<<"\n";cout<<"**********************************************"<<"\n";cout<<"输出“计件工”的相关信息:"<<"\n";pieceworker pworker("Tom","000002",100,25.5);cout<<" pieceworker'名字: "<<pworker.get_name ()<<"\n";cout<<" pieceworker'职工号: "<<pworker.get_id ()<<"\n";cout<<" pieceworker'工件数: "<<pworker.get_pieces ()<<"\n";cout<<" pieceworker'每件的金额:"<<pworker.get_pay ()<<"\n";cout<<" pieceworker'总工资: "<<pworker.piece_salary ()<<"\n";cout<<"**********************************************"<<"\n";cout<<"输出“经理”的相关信息:"<<"\n"; manager manag("Jack","000003");cout<<" manager'名字: "<<manag.get_name ()<<"\n";cout<<" manager'职工号:"<<manag.get_id ()<<"\n";cout<<" manager'总工资:"<<manag.manager_salary ()<<"\n";cout<<"**********************************************"<<"\n";cout<<"输出“佣金工”的相关信息:"<<"\n";commissionworker cworker("Jim","000004",500,234.6,0.01);cout<<" commissionworker'名字: "<<cworker.get_name ()<<"\n";cout<<" commissionworker'职工号: "<<cworker.get_id ()<<"\n";cout<<" commissionworker'保底工资:"<<cworker.get_base_pay ()<<"\n";cout<<" commissionworker'销售额: "<<cworker.get_com_total ()<<"\n";cout<<" commissionworker'提成额度:"<<cworker.get_com_percent ()<<"\n";cout<<" commissionworker'总工资: "<<_salary ()<<"\n";cout<<"**********************************************"<<"\n";}四、实验结果五、实验总结实验四比较贴近生活的实际问题,在我写这些程序时候参考了书上的例子。

紫外吸收光谱法测定维生素C片剂中Vc的含量


YANGTZE NORMAL UNIVERSITY
维生素C的结构式
YANGTZE NORMAL UNIVERSITY
【实验步骤】
• 1.配制标准系列溶液 • 分别移取抗坏血酸标准溶液0.50、1.00、
1.50、2.00、2.50mL于5只25mL比色管中, 用水稀释至刻度,摇匀。 • 2.扫描吸收光谱 • 用石英比色皿,以水为参比,在400- 200nm范围扫描抗坏血酸标准系列溶液的吸 收光谱,并确定λmax 。
也可采用碘量法。试对紫外吸收光 谱法和碘量法两种定量方法进行比 较。
YANGTZE NORMAL UNIVERSITY
1.0
A
0.8
5
0.6
4
3
0.4
2
0.2
1
0.0
200
250
300
λ /nm
维生素C的紫外光谱图(λmax=264nm)
维C:100μg/mL(0.5,1.0,1.5,2.0,2.5mL)
0.5
1.0

样品
样品
3
4
5
1 2 34
平均 值
5 (μg
mg RSD /支 %
/mL)
1.5
2.0
2.5 1.0 1.0 1.0nmA
c(μg/mL) 2.0 4.0 6.0 8.0 10.0
含量为标示量的90.0%~110.0%范围 均属允许范围。
YANGTZE NORMAL UNIVERSITY 1.0
0.8
A
0.6

0.4
A = 0.0003893 + 0.09222c
0.2
r = 0.9999
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验七 MFC 定时器编程实验
一、实验目的
(1)掌握Visual Studio 开发环境调试程序的方法;
(2)熟练使用类向导进行消息映射;
(3)掌握MFC 编程模式中定时器的使用方法.
二、实验内容
设计一个窗口,在窗口中间位置绘制一个红色粗实线的矩形,并用交替使用三种不同样式的画刷填充矩形的内部,每次刷新的时间间隔为1.0 秒。

单击鼠标左键启动定时器,单击鼠标右键停止定时器。

三、程序清单
在头文件中:
#include "afxwin.h"
class CDemoWnd:public CFrameWnd
{
public:
CDemoWnd();
~CDemoWnd();
public:
LRESULT OnTimer(WPARAM wParam,LPARAM lParam); //定时器的消息映射函数
LRESULT OnPaint(WPARAM wParam,LPARAM lParam);
LRESULT OnLButtonDown(WPARAM wParam,LPARAM lParam);
LRESULT OnRButtonDown(WPARAM wParam,LPARAM lParam);
DECLARE_MESSAGE_MAP()
};
class CDemoApp:public CWinApp
{
public:
BOOL InitInstance();
};
CDemoApp thisApp;
在源文件文件中:
#include "Demo.h"
CDemoWnd::CDemoWnd()
{
}
CDemoWnd::~CDemoWnd()
{
}
BEGIN_MESSAGE_MAP(CDemoWnd,CFrameWnd)
ON_MESSAGE(WM_LBUTTONDOWN,OnLButtonDown)
ON_MESSAGE(WM_RBUTTONDOWN,OnRButtonDown)
ON_MESSAGE(WM_PAINT,OnPaint)
ON_MESSAGE(WM_TIMER,OnTimer)
END_MESSAGE_MAP()
LRESULT CDemoWnd::OnLButtonDown(WPARAM wParam,LPARAM lParam) {
// CClientDC dc(this);
SetTimer(1,1000,NULL);
return TRUE;
}
LRESULT CDemoWnd::OnRButtonDown(WPARAM wParam,LPARAM lParam) {
// CClientDC dc(this);
KillTimer(1);
return TRUE;
}
LRESULT CDemoWnd::OnTimer(WPARAM wParam,LPARAM lParam)
{
CClientDC dc(this);
CBrush Brush,*pOldBrush;
static int a=0;
switch (a)
{
case 0:
Brush.CreateSolidBrush(RGB(255,0,0));
pOldBrush=dc.SelectObject(&Brush);
a++;
break;
case 1:
Brush.CreateSolidBrush(RGB(0,255,0));
pOldBrush=dc.SelectObject(&Brush);
a++;
break;
case 2:
Brush.CreateSolidBrush(RGB(0,0,255));
pOldBrush=dc.SelectObject(&Brush);
a=0;
break;
}
dc.Rectangle(50,50,600,300);
dc.SelectObject(pOldBrush);
return TRUE;
}
LRESULT CDemoWnd::OnPaint(WPARAM wParam,LPARAM lParam)
{
CPaintDC dc(this);
CPen Pen,*pOldPen;
Pen.CreatePen(PS_SOLID,3,RGB(0,0,0));
pOldPen=dc.SelectObject(&Pen);
dc.Rectangle(50,50,600,300);
dc.SelectObject(pOldPen);
return TRUE;
}
BOOL CDemoApp::InitInstance()
{
CDemoWnd *pMainWnd = new CDemoWnd();
pMainWnd->Create(NULL,"Demo Mini-MFC");
pMainWnd->ShowWindow(m_nCmdShow);
pMainWnd->UpdateWindow();
m_pMainWnd = pMainWnd;
return TRUE;
}
四、实验总结
通过本次实验,我学习了定时器消息编程的步骤:在MFC中和定时器相关的有两个函数:SetTimer, KillTimer;SetTimer用来定义一个定时器的属性,如定时器的ID,刷新时间,处理函数。

OnTimer实际时系统定义消息用来响应WM_TIMER消息,KillTimer用来结束一个定时器。

定时器的编程,首先是set定时器,用的是SetTimer函数,通过该函数决定定时器发出WM_TIMER消息的时间频率,同时还必须定义定时器的标号,方便之后对定时器的删除。

然后是把定时器删除,用KillTimer函数。

总的来说,本次实验比较成功。

相关文档
最新文档