VC++综合实训报告

合集下载

实验报告范文(VC)2

实验报告范文(VC)2

实验报告范文(VC)2实验一:框架接口、文档模板和文档视图的使用实验目的:1、熟练掌握框架窗口的使用2、熟练掌握文档模板的使用3、基本掌握使用多个文档类型4、基本掌握文档视图结构实验内容:1、框架窗口的使用2、文档模板的使用3、使用多个文档类型4、文档视图结构的使用实验步骤:在向导中修改窗口风格:MFCAppWizard的项目类型,指定项目工作文件夹位置,输入项目名E 某_SDI2单击“确定”按钮。

2、在向导的第一步,将应用程序类型选为“单个文档”。

3、单击“下一个”按钮,出现向导的第二步对话框,在这里用户可以选择程序中是否假如数据库的支持。

4、单击“下一个”按钮,出现向导第三步对话框,允许用户在程序中加入符合文档、自动化、Active某控件的支持。

5、单击“下一个”按钮,出现向导第四步对话框,对话框的前几项依次确定对浮动工具条、打印与预览以及通信网络等特性的支持。

对话框的最后两项是最近文件列表数目的设置和一个“高级”按钮。

6、在第四步对话框中,单击“高级”按钮,分别用于文档模板字串资源内容和窗口风格的修改。

7、单击“关闭”按钮回到向导对话框,单击“下一个”按钮,。

在这里用户可选择:应用程序的主窗口是MFC标准风格还是窗口左边有切分窗口的浏览器风格,在源文件中是否加入注释来引导用户编写程序代码,是只用动态链接库还是静态链接库。

8、单击“下一个”按钮,在这里,用户可以对MFCAppWizard提供的默认类名、基类名、各个源文件名进行修改。

实验二:常用控件的使用实验目的:1、熟练掌握创建和使用静态控件和按钮2、熟练掌握创建和使用编辑框和按钮控件3、熟练掌握创建和使用列表框4、熟练掌握创建和使用组合框5、基本掌握创建和使用进展条、滚动条和滑动条6、基本掌握创建和使用图像列表、列表和树控件实验内容:1、创建和使用静态控件和按钮2、创建和使用编辑框和按钮控件3、创建和使用列表框4、创建和使用组合框5、创建和使用进展条、滚动条和滑动条6、创建和使用图像列表、列表和树控件实验步骤:1)控件的创建方法:一种是在对话框模板中用编辑器指定控件,另一种是编程方式,即调②③④⑤⑥MFCAppWizard(e某e)的项目类型,在工程框中输入项目名E某_DlgCtrl。

如何写vc实验报告【精品】

如何写vc实验报告【精品】

篇一:VC++实验报告 (2)VC++实验报告班号:0904101学号:090410123姓名:仲维祎实验一VC++开发环境的熟悉和C++基础知识实验一、实验目的1. 掌握C++语言的特点。

2. 掌握C++的各种数据类型及基本运算。

3. 掌握C++各种控制结构及使用技巧。

4. 掌握C++的函数、数组、指针的相关概念和使用方法。

5. 灵活运用C++相关基础知识进行综合程序设计。

6. 回顾面向过程程序设计方法。

7. 熟悉Visual C++的开发环境8.掌握用应用程序向导创建一个控制台应用项目的方法。

9.掌握源代码文件的新建、打开、保存和关闭等基本操作。

10.掌握Visual C++项目的编译、连接和执行。

11.掌握代码简单语法错误修正和调试的一般过程。

二、实验知识点概念注意C++中同C的不同之处,包括数据类型,输入输出等相关的差异。

三、实验题目1. 采用插入排序法,输入10个整数按升序排序后输出。

要求编写一个通用的插入排序函数,它带有三个参数,第一个参数是含有n个元素的数组,这n个元素已按升序排序;第二个参数给出当前数组中元素个数;第三个参数是要插入的整数。

该函数的功能是将一个整数插入到数组中,然后进行排序。

另外还需要一个用于输出数组元素的函数,要求每一行输出5个元素。

2. 有5个学生,每个学生的数据结构包括学号、姓名、年龄、C++成绩,数学成绩和英语成绩、总平均分,从键盘输入5个学生的学号、姓名、3门课的成绩,计算3门课的总平均分,最后将5个学生的数据输出。

要求各个功能用函数实现。

3. 对程序加入断点简单调试。

四、程序思路五、程序源代码1:代码如下#includeusing namespace std;void (char iArray,int nCount,int nNumber){int i=nCount-1,j=0;char *iArray2;iArray2=iArray;*(iArray2+nCount)=nNumber;//多分配一个空间给传入数据 for(i;i>=0;i--){if(nCount==1)*iArray=nNumber;if (*(iArray2+i)<*(iArray+i+1)){j=*(iArray2+i);iArray2[i]=iArray2[i+1];iArray2[i+1]=j;}}cout<<"the array is ";for(i=0;i<nCount;i++){cout<<a[i]<<" ";}}int main{char a[80]={0},i,sArray=0;for(i=0;i<10;i++){cout<<"please type into numbers"<<endl; cin>>a[i];if (a[i]<=999999&&a[i]>=0){(a,sArray+1,a[i]);sArray++;}}return 1;}2:代码如下:#includeusing namespace std; class InfStud{public:int id;char name[20];int age;int cpp;int math;int eng;void print;int all;};int InfStud::all {int all;all=math+cpp+eng; return all;};void InfStud::print{cout<<"the id is "<<" "<<id<<" "<<"the name is"<<" "<<name<<" "<<"the age is "<<" "<<age<<" "<<"the cpp is"<<" "<<cpp<<" "<<"the eng is"<<" "<<eng<<" "<<"the math is"<<" "<<math<<" "<<"the all is"<<" "<<all<<" "<<"the avg is"<<" "<<all/3<<endl;};void main{InfStud student[5];int i=0,j;for(i;i<=4;i++){ cout<<"type the id name age c++ eng math in"<>student[i].id>>student[i].name>>student[i].age>>student[i].cpp>>student[i]. eng>>student[i].math; }篇二:VC实验报告实验报告班级:络Z091学号:094552姓名:李丹一、1.2.二、1.2.三、1. 实验目的掌握数据库的基本知识、ODBC程序设计掌握列表框和组合框控件实验内容在VC++6.0中编写程序数据库应用程序基本设计和购物表设计编程序数据库步骤:设置->控制面板->管理工具->数据源-> 加->MicroSoft Access Driver(*mdb) 选择(刚建好的数据库)、数据源名( p)定义的变量:C panySet m_set;(C panySet自己加的类,基类为CRecordSet)CListCtrl m_list;CString m_chax;⑴初始化:void C panyView::OnInitialUpdate{m_list.InsertColumn(0,"num");m_list.InsertColumn(1,"sex");m_list.InsertColumn(2,"age");m_list.InsertColumn(3,"wage");m_list.SetColumnWidth(0,100);m_list.SetColumnWidth(1,100);m_list.SetColumnWidth(2,100);m_list.SetColumnWidth(3,100);CString sql="select * from p";m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql);//打开记录集int i=0;while(!m_set.IsEOF){m_list.InsertItem(i,m_set.m_num);m_list.SetItemText(i,1,m_set.m_sex);CString str;str.Format("%d",m_set.m_age);m_list.SetItemText(i,2,str);m_list.SetItemText(i,3,m_set.m_wage);m_set.MoveNext;i++;}m_set.Close;}⑵“加”调出新对话框(IDD_DIALOG1)创建一个新类C pDlg,并加头文件” #include " pDlg.h"”及成员变量(CString m_num; int m_sex; CString m_wage; int m_age;)void C panyView::OnAdd{C pDlg dlg;if(dlg.DoModal==IDOK){m_set.Open(AFX_DB_USE_DEFAULT_TYPE,NULL); m_set.AddNew; m_set.m_num=dlg.m_num;if(dlg.m_sex==0)m_set.m_sex="男";elsem_set.m_sex="女";m_set.m_age=dlg.m_age;m_set.m_wage=dlg.m_wage;m_set.Update;m_set.Close;}}⑶“”void C panyView::OnDel{int i=m_list.GetSelectionMark;if(i<0)this->MessageBox("先选取记录");else{CString xnum1;char xnum[10];int x=m_list.GetItemText(i,0,xnum,10);xnum1.Format("%s",xnum);CString sql="select * from p where num='"+xnum1+"'"; m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql); m_set.Delete;m_set.Close;}}⑷“浏览”void C panyView::OnScan{m_list.DeleteAllItems;CString sql="select * fromp";m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql);int i=0;while(!m_set.IsEOF)m_list.InsertItem(i,m_set.m_num);m_list.SetItemText(i,1,m_set.m_sex);CString str;str.Format("%d",m_set.m_age);m_list.SetItemText(i,2,str);m_list.SetItemText(i,3,m_set.m_wage); m_set.MoveNext;i++;}m_set.Close;}⑸“修改”void C panyView::OnEdit{C pDlg dlg;int i=m_list.GetSelectionMark;if(i<0){this->MessageBox("先选取记录"); return;}CString xnum0,xnum1;char xnum[10];int x=m_list.GetItemText(i,0,xnum,10); xnum1.Format("%s",xnum);dlg.m_num=xnum1;xnum0=xnum1;CString str="select * from p where num='"+xnum0+"'"; m_set.Open(AFX_DB_USE_DEFAULT_TYPE,str);dlg.m_num=m_set.m_num;dlg.m_age=m_set.m_age;dlg.m_wage=m_set.m_wage;if(m_set.m_sex=="男")dlg.m_sex=0;elsedlg.m_sex=1;dlg.DoModal;m_set.Edit;m_set.m_num=dlg.m_num;m_set.m_age=dlg.m_age;m_set.m_wage=dlg.m_wage;if(dlg.m_sex==0)m_set.m_sex="男";m_set.m_sex="女";m_set.Update;m_set.Close;}⑹“查询”void C panyView::OnQuery{this->UpdateData;CString sql;sql="select * from p where num='"+m_chax+"'"; m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql); m_set.Requery ;if(m_set.IsEOF){AfxMessageBox("ERROR");return ;}m_list.DeleteAllItems;int i=0;while(!m_set.IsEOF){m_list.InsertItem(i,m_set.m_num);m_list.SetItemText(i,1,m_set.m_sex);CString str;str.Format("%d",m_set.m_age);m_list.SetItemText(i,2,str);m_list.SetItemText(i,3,m_set.m_wage);m_set.MoveNext;i++;}m_set.Close;}2. 购物表设计加了两个结构体struct GoodsType{char * type;char * name;int price;}goods={"日常用品","牙刷",2,"日常用品","牙膏",3,"日常用品","毛巾",5,如何写vc实验报告相关内容:实验报告实验要求及说明:1、基本要求是程序必须实现部分。

VC++实验报告(10份)

VC++实验报告(10份)

计算机程序设计基础(C++)实验报告计算机基础教育中心二O一一年十月实验__1__实验报告教学班级: 1 学生学号:学生姓名:实验日期:___________ 实验地点:(机房) 指导教师签名:__________ 实验成绩:___________一、实验目的1.熟悉Visual studio 6.0集成开发环境;2.学习新建和打开控制台应用程序的方法;3.通过运行示例程序了解程序开发过程;二、实验任务1.输出下面图形:############2.输入一摄氏温度,输出显示所转换的华氏温度。

(提示:摄氏温度=(华氏温度-32)×5/9)三、实验结果(源程序+ 注释)1.#include<iostream>//预编译命令using namespace std;//using 命令void main()//主函数名{//表示函数开头cout<<"####"<<endl;//函数体cout<<"####"<<endl;cout<<"####"<<endl;}2.#include<iostream>//预编译命令using namespace std;// using 命令int main()//主函数名{//表示函数开头double celsius=0;//定义double型变量cout<<"please input the celsius:"<<endl;//提示输入摄氏度cin>>celsius;//输入摄氏度double fahrenheit=(9.0/5)*celsius+32;//定义华氏度与摄氏度转换公式cout<<celsius<<"changed to the fahrenheit is:"<<fahrenheit<<endl;//由计算摄氏度计算出华氏度return 0;}实验__2__实验报告教学班级:_______ 学生学号:__________ 学生姓名:___________ 实验日期:___________ 实验地点:_________(机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.掌握“处理某一或某些操作只有在特定条件成立的情况下才会被执行”的编程思路和方法;2.掌握“一路分支选择结构”算法的实现语句,if语句的使用方法;3.掌握“二路分支选择结构”算法的实现语句,if-else语句的使用方法;二、实验任务1. 输入a,b,c,d四个整数,输出其中的最大数。

VC,,实验报告

VC,,实验报告

实验报告班级:网络z091学号:094552姓名:李丹一、1.2.二、1.2.三、1. 实验目的掌握数据库的基本知识、odbc程序设计掌握列表框和组合框控件实验内容在vc++6.0中编写程序数据库应用程序基本设计和购物表设计编程序数据库cstring m_chax;⑴初始化:{m_list.insertcolumn(0,num); m_list.insertcolumn(1,sex); m_list.insertcolumn(2,age); m_list.insertcolumn(3,wage); m_list.setcolumnwidth(0,100); m_list.setcolumnwidth(1,100); m_list.setcolumnwidth(2,100); m_list.setcolumnwidth(3,100); m_set.open(afx_db_use_default_type,sql);//打开记录集int i=0;while(!m_set.iseof()){m_list.insertitem(i,m_set.m_num); m_list.setitemtext(i,1,m_set.m_sex); cstring str;str.format(%d,m_set.m_age); m_list.setitemtext(i,2,str); m_list.setitemtext(i,3,m_set.m_wage); m_set.movenext();i++;}m_set.close();}⑵“添加”调出新对话框(idd_dialog1)及成员变量(cstring m_num; int m_sex; cstring m_wage; int m_age;){if(dlg.domodal()==idok){m_set.open(afx_db_use_default_type,null); m_set.addnew(); m_set.m_num=dlg.m_num;if(dlg.m_sex==0)m_set.m_sex=男;elsem_set.m_sex=女;m_set.m_age=dlg.m_age;m_set.m_wage =dlg.m_wage;m_set.update();m_set.close();}}⑶“删除”{int i=m_list.getselectionmark(); if(i&lt;0)this-&gt;messagebox(先选取记录); else{cstring xnum1;char xnum[10];int x=m_list.getitemtext(i,0,xnum,10); xnum1.format(%s,xnum);m_set.close();}}⑷“浏览”{m_list.deleteallitems();m_set.open(afx_db_use_default_type,sql); int i=0; while(!m_set.iseof()) m_list.insertitem(i,m_set.m_num); m_list.setitemtext(i,1,m_set.m_sex); cstring str;str.format(%d,m_set.m_age); m_list.setitemtext(i,2,str); m_list.setitemtext(i,3,m_set.m_wage); m_set.movenext();i++;}m_set.close();}⑸“修改”{int i=m_list.getselectionmark(); if(i&lt;0){this-&gt;messagebox(先选取记录); return;}cstring xnum0,xnum1;char xnum[10];int x=m_list.getitemtext(i,0,xnum,10); xnum1.format(%s,xnum);dlg.m_num=xnum1;xnum0=xnum1;dlg.m_age=m_set.m_age;dlg.m_wage=m_set.m_wage;if(m_set.m_sex==男)dlg.m_sex=0;elsedlg.m_sex=1;dlg.domodal();m_set.edit();m_set.m_num=dlg.m_num;m_set.m_age=dlg.m_age;m_set.m_wage=dlg.m_wage;if(dlg.m_sex==0)m_set.m_sex=男; m_set.m_sex =女;m_set.update();m_set.close();}⑹“查询”{this-&gt;updatedata();cstring sql;if(m_set.iseof()){afxmessagebox(error);return ;}m_list.deleteallitems();int i=0;while(!m_set.iseof()){m_list.insertitem(i,m_set.m_num); m_list.setitemtext(i,1,m_set.m_sex);cstring str;str.format(%d,m_set.m_age); m_list.setitemtext(i,2,str); m_list.setitemtext(i,3,m_set.m_wage); m_set.movenext();i++;}m_set.close();}2. 购物表设计添加了两个结构体struct goodstype{char * type;char * name;int price;}goods[]={ 日常用品,牙刷,2,日常用品,牙膏,3,日常用品,毛巾,5,篇二:vc++实验报告 (2) vc++实验报告班号:0904101学号:090410123姓名:仲维祎实验一vc++开发环境的熟悉和c++基础知识实验一、实验目的1. 掌握c++语言的特点。

如何写vc实验报告

如何写vc实验报告

如何写vc实验报告实验名称:VC实验一、实验目的1. 学习和掌握VC的基本原理和操作方法;2. 通过实验了解VC在生物医学领域的应用;3. 培养实验操作能力和数据分析能力。

二、实验原理VC(Viscometer)是一种用于测量血液粘度的仪器,通过测量血液在管中的流动速度来评估血液的粘稠度。

VC实验的原理基于流变学的原理,即当流体在外力作用下产生剪切应力时,其性质会发生改变。

通过测量剪切应力与剪切速率之间的关系,可以得出流体的粘度。

在生物医学领域,VC实验可以用于评估心血管疾病的病情和治疗效果。

三、实验材料和方法1. 实验器材:VC仪器、试管、注射器、秒表等;2. 实验试剂:血液样本;3. 实验步骤:(1)采集血液样本;(2)将血液样本放入VC仪器中;(3)设置VC仪器的参数;(4)启动VC仪器开始测量;(5)记录实验数据。

四、实验结果和数据分析以下为实验数据表格和图表:1. 表格:记录了实验中采集的血液样本数量、测量得到的粘度值等数据。

2. 图表:展示了实验中采集的血液样本数量与粘度值之间的关系。

通过数据分析,可以得出以下结论:1. 实验数据符合预期,测量结果准确;2. 不同个体之间的血液粘度存在差异,与年龄、性别等因素有关;3. 经过治疗或护理后,血液粘度有所改善。

五、结论通过本次VC实验,我们了解了VC的基本原理和操作方法,并验证了其在生物医学领域的应用价值。

实验结果表明,不同个体之间的血液粘度存在差异,且经过治疗或护理后,血液粘度有所改善。

本实验为进一步研究和应用VC提供了基础数据和经验。

六、参考文献[1] XX, VC原理及应用, XX出版社, XX。

[2] XX, 生物医学流变学, XX出版社, XX。

[3] XX, 血液粘度测量方法及影响因素研究, XX大学, XX。

[4] XX, 心血管疾病治疗与护理进展, XX出版社, XX。

(完整版)可视化(VC)实验报告

(完整版)可视化(VC)实验报告

学生学号实验课成绩学生实验报告书实验课程名称可视化编程(VC)开课学院计算机科学与技术学院指导教师姓名岑丽学生姓名学生专业班级2013-- 2014学年第 2 学期实验课程名称:_可视化编程(VC)第三部分结果与讨论(可加页)一、实验结果分析(包括数据处理、实验现象分析、影响因素讨论、综合分析和结论等)二、小结、建议及体会实验结果:体会:主要学习了Windows编程的基础知识,包括窗口的概念、事件驱动的基本概念等,同样详细介绍了Windows编程中经常用到的“消息”以及对“消息”的响应,在此基础上又学习了Windows程序的结构框架。

实验课程名称:_可视化编程(VC)第三部分结果与讨论(可加页)一、实验结果分析(包括数据处理、实验现象分析、影响因素讨论、综合分析和结论等)二、小结、建议及体会运行结果:体会:进一步学习到了图形设备接口的基本概念以及Windows应用程序中绘图的主要步骤,同时也学习到了绘图函数的应用。

在WM_PAINT消息处理程序中,将映像模式设置为MW_ANISO_TROPIC,同时设置视口和窗口范围,以及视口原点,这样做是为了使得逻辑坐标的原点移动到窗口的中央位置,便于处理后面的坐标。

实验课程名称:_可视化编程(VC)第三部分结果与讨论(可加页)一、实验结果分析(包括数据处理、实验现象分析、影响因素讨论、综合分析和结论等)二、小结、建议及体会运行结果:体会:Windows应用程序中常见的键盘及鼠标的操作及其编程方法和对鼠标操作的响应,是Windows编程中非常重要的组成部分。

在用户与计算机的交互过程中,除鼠标之外,键盘的操作也是非常重要的,大量的信息是通过键盘输入的。

实验课程名称:_可视化编程(VC)第三部分结果与讨论(可加页)一、实验结果分析(包括数据处理、实验现象分析、影响因素讨论、综合分析和结论等)二、小结、建议及体会运行结果:体会:VisualC++的另一种编程方法是利用MFC和向导来编写Windows应用程序。

VC++实验报告(1,2,3_4)

VC++实验报告(1,2,3_4)

VC++实验报告班号:________学号:________姓名:________实验1 VC++开发环境的熟悉和Windows编程基础一、实验目的1.熟悉Visual C++的开发环境2. 掌握用应用程序向导创建一个控制台应用项目的方法。

3. 掌握源代码文件的新建、打开、保存和关闭等基本操作。

4.掌握用应用程序向导创建一个Windows应用项目的方法5. 掌握Visual C++项目的编译、连接和执行6. 掌握代码简单语法错误修正和调试的一般过程7.掌握Windows程序运行基本原理。

8. 掌握使用SDK(Windows API)方式编写Windows应用程序方法。

9. 掌握用应用程序向导创建一个Windows应用项目的方法。

二、实验知识点概念Visual C++是Microsoft公司推出的目前使用极为广泛的基于Windows平台的可视化编程环境。

由于其功能强大、灵活性好、完全可扩展以及具有强有力的Internet支持,在各种C++语言开发工具中脱颖而出,成为目前较为流行的C++语言集成开发环境。

Windows程序设计不同于DOS下的程序设计,它是一种事件驱动的程序设计模式,主要是基于消息的。

Windows SDK编程主要采用C++/C语言和Windows API进行Windows 应用程序设计。

三、实验题目1. 控制台应用程序编写术语:“控制台应用程序”是一个在仿DOS窗口(控制台窗口)中运行的基于字符的程序,控制台窗口将成为其标准输入和输出装置。

由于这种模式的应用程序比Windows程序简单,我们先选择利用Visual C++来建立这样一个应用,这样使得我们可以将精力先投入到学习使用C++编程语言,而不需要把过多的精力投入到学习复杂的Windows编程中去。

创建一个控制台应用,输入以下代码:#include <iostream>class Vehicle{public:Vehicle(float speed,int total){speed = speed;total = total;cout<<”constructor is called!” <<endl;}void ShowMember(){cout<<speed<<" | "<<total<<endl;}private:float speed;int total;}int main(){Vehicle a(120,4);a. ShowMember();Vehicle b;a. ShowMember();}(1)编译该程序,修改程序错误(2)分别在创建对象,构造函数处设置断点,调试运行。

VC实验报告具体内容(样例5)

VC实验报告具体内容(样例5)

VC实验报告具体内容(样例5)第一篇:VC实验报告具体内容注意: 请大家实验报告双面打印!!给出主要代码就行.实验一:名称:熟悉VC IDE,创建一个简单的VC界面具体内容:用API创建一个基本窗口实验二:名称:基于API编程(一)具体内容:习题4-8(旋转的小风车)实验三:名称:基于API编程(二)具体内容:习题6_6(设计一个键盘程序, 当按Ctrl键时,表明要画椭圆..)实验四:名称:基于MFC编程(一)具体内容:9-18(用编辑框与按钮实现加减乘除运算)实验五:名称:基于MFC编程(二)具体内容:9_20(建立一个程序进行数据的管理, 设有10组数据,每一组数据有5个元素…)第二篇:vc控制台是什么CONSOLE: win32 字符模式应用程序,此种类型的应用程序在运行的时候会产生一个类似DOS窗口的控制台窗口,如果在应用程序的主函数为main()或者wmain(),在默认情况下该应用程序就是一个控制台应用程序。

控制台就是一个标准的输入输出,对大量数据输入很方便,它不是为做图形界面服务的。

你要做图形界面,又想自己画菜单,简单点,写个Win32 application 一切都自己写。

控制台就算是写DOS的程序,但是也支持部分API 也可以创建窗口并打开。

相对的,WINDOWS类型的应用程序不产生console窗口,该类型的应用程序的窗口由用户自己创建,简而言之就是一个标准的Win32 application,其入口地址为WinMain()函数或者wWinMain()函数的地址如果你在应用程序种定义的主函数为WinMain或者wWinMain,在默认情况下该应用程序就是一个Win32 Application!第三篇:具体内容具体内容1、开展“记忆的证明”纪念抗战60周年“四个一”爱国主义教育活动。

要围绕爱国主义主旋律,抓住抗战胜利60周年这一德育契机,大力宣传这一伟大民族解放战争的重要历史地位和光辉业绩,进一步弘扬爱国主义为核心的民族精神,认真开展“四个一”活动,即听一次专题革命讲座,学一首经典革命歌曲,读一本老革命家传记,做一张主题纪念小报。

如何写vc实验报告.doc

如何写vc实验报告.doc

如何写vc实验报告篇一:VC++实验报告 (2)VC++实验报告班号:0904101学号:0904103姓名:仲维祎实验一VC++开发环境的熟悉和C++基础知识实验一、实验目的1. 掌握C++语言的特点。

2. 掌握C++的各种数据类型及基本运算。

3. 掌握C++各种控制结构及使用技巧。

4. 掌握C++的函数、数组、指针的相关概念和使用方法。

5. 灵活运用C++相关基础知识进行综合程序设计。

6. 回顾面向过程程序设计方法。

7. 熟悉Visual C++的开发环境8.掌握用应用程序向导创建一个控制台应用项目的方法。

9.掌握源代码文件的新建、打开、保存和关闭等基本操作。

10.掌握Visual C++项目的编译、连接和执行。

11.掌握代码简单语法错误修正和调试的一般过程。

二、实验知识点概念注意C++中同C的不同之处,包括数据类型,输入输出等相关的差异。

三、实验题目1. 采用插入排序法,输入10个整数按升序排序后输出。

要求编写一个通用的插入排序函数,它带有三个参数,第一个参数是含有n个元素的数组,这n个元素已按升序排序;第二个参数给出当前数组中元素个数;第三个参数是要插入的整数。

该函数的功能是将一个整数插入到数组中,然后进行排序。

另外还需要一个用于输出数组元素的函数,要求每一行输出5个元素。

2. 有5个学生,每个学生的数据结构包括学号、姓名、年龄、C++成绩,数学成绩和英语成绩、总平均分,从键盘输入5个学生的学号、姓名、3门课的成绩,计算3门课的总平均分,最后将5个学生的数据输出。

要求各个功能用函数实现。

3. 对程序加入断点简单调试。

四、程序思路五、程序源代码1:代码如下#includeusing namespace std;void (char iArray,int nCount,int nNumber){int i=nCount-1,j=0;char *iArray2;iArray2=iArray;*(iArray2+nCount)=nNumber;//多分配一个空间给传入数据 for(i;i>=0;i--){if(nCount==1)*iArray=nNumber;if (*(iArray2+i)<*(iArray+i+1)){j=*(iArray2+i);iArray2[i]=iArray2[i+1];iArray2[i+1]=j;}}cout<<"the array is ";for(i=0;i<nCount;i++){cout<<a[i]<<" ";}}int main{char a[80]={0},i,sArray=0;for(i=0;i<10;i++){cout<<"please type into numbers"<<endl; cin>>a[i];if (a[i]=0){(a,sArray+1,a[i]);sArray++;}}return 1;}2:代码如下:#includeusing namespace std;class InfStud{public:int id;char name[20];int age;int cpp;int math;int eng;void print;int all;};int InfStud::all{int all;all=math+cpp+eng;return all;};void InfStud::print{cout<<"the id is "<<" "<<id<<" " <<"the name is"<<" "<<name<<" " <<"the age is "<<" "<<age<<" "<<"the cpp is"<<" "<<cpp<<" "<<"the eng is"<<" "<<eng<<" "<<"the math is"<<" "<<math<<" " <<"the all is"<<" "<<all<<" "<<"the avg is"<<" "<<all/3<<endl; };void main{InfStud student[5];int i=0,j;for(i;i<=4;i++){ coutstudent[i].id>>student[i].name>>student[i].age>>s tudent[i].cpp>>student[i].eng>>student[i].math; }篇二:VC实验报告实验报告班级:网络Z091学号:094552姓名:李丹一、1.2.二、1.2.三、1. 实验目的掌握数据库的基本知识、ODBC程序设计掌握列表框和组合框控件实验内容在VC++6.0中编写程序数据库应用程序基本设计和购物表设计编程序数据库步骤:设置->控制面板->管理工具->数据源->添加->MicroSoft Access Driver(*mdb) 选择(刚建好的数据库)、数据源名(comp)定义的变量:CCompanySet m_set;(CCompanySet自己添加的类,基类为CRecordSet)CListCtrl m_list;CString m_chax;⑴初始化:void CCompanyView::OnInitialUpdate{m_list.InsertColumn(0,"num");m_list.InsertColumn(1,"sex");m_list.InsertColumn(2,"age");m_list.InsertColumn(3,"wage");m_list.SetColumnWidth(0,100);m_list.SetColumnWidth(1,100);m_list.SetColumnWidth(2,100);m_list.SetColumnWidth(3,100);CString sql="select * from comp";m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql);//打开记录集int i=0;while(!m_set.IsEOF){m_list.InsertItem(i,m_set.m_num);m_list.SetItemText(i,1,m_set.m_sex);CString str;str.Format("%d",m_set.m_age);m_list.SetItemText(i,2,str);m_list.SetItemText(i,3,m_set.m_wage);m_set.MoveNext;i++;}m_set.Close;}⑵“添加”调出新对话框(IDD_DIALOG1)创建一个新类CCompDlg,并添加头文件” #include "CompDlg.h"”及成员变量(CString m_num; int m_sex; CString m_wage; int m_age;)void CCompanyView::OnAdd{CCompDlg dlg;if(dlg.DoModal==IDOK){m_set.Open(AFX_DB_USE_DEFAULT_TYPE,NULL);m_set.AddNew;m_set.m_num=dlg.m_num;if(dlg.m_sex==0)m_set.m_sex="男";elsem_set.m_sex="女";m_set.m_age=dlg.m_age;m_set.m_wage =dlg.m_wage;m_set.Update;m_set.Close;}}⑶“删除”void CCompanyView::OnDel{int i=m_list.GetSelectionMark;if(i<0)this->MessageBox("先选取记录");else{CString xnum1;char xnum[10];int x=m_list.GetItemText(i,0,xnum,10);xnum1.Format("%s",xnum);CString sql="select * from comp wherenum=&#39;"+xnum1+"&#39;";m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql); m_set.Delete;m_set.Close;}}⑷“浏览”void CCompanyView::OnScan{m_list.DeleteAllItems;CString sql="select * fromcomp";m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql);int i=0;while(!m_set.IsEOF)m_list.InsertItem(i,m_set.m_num);m_list.SetItemText(i,1,m_set.m_sex);CString str;str.Format("%d",m_set.m_age);m_list.SetItemText(i,2,str);m_list.SetItemText(i,3,m_set.m_wage);m_set.MoveNext;i++;}m_set.Close;}⑸“修改”void CCompanyView::OnEdit{CCompDlg dlg;int i=m_list.GetSelectionMark;if(i<0){this->MessageBox("先选取记录"); return;}CString xnum0,xnum1;char xnum[10];int x=m_list.GetItemText(i,0,xnum,10); xnum1.Format("%s",xnum);dlg.m_num=xnum1;xnum0=xnum1;CString str="select * from comp wherenum=&#39;"+xnum0+"&#39;";m_set.Open(AFX_DB_USE_DEFAULT_TYPE,str);dlg.m_num=m_set .m_num;dlg.m_age=m_set.m_age;dlg.m_wage=m_set.m_wage;if(m_set.m_sex=="男")dlg.m_sex=0;elsedlg.m_sex=1;dlg.DoModal;m_set.Edit;m_set.m_num=dlg.m_num;m_set.m_age=dlg.m_age;m_set.m_wage=dlg.m_wage;if(dlg.m_sex==0)m_set.m_sex="男";m_set.m_sex ="女";m_set.Update;m_set.Close;}⑹“查询”void CCompanyView::OnQuery{this->UpdateData;CString sql;sql="select * from comp wherenum=&#39;"+m_chax+"&#39;";m_set.Open(AFX_DB_USE_DEFAULT_TYPE,sql); m_set.Requery ;if(m_set.IsEOF){AfxMessageBox("ERROR");return ;}m_list.DeleteAllItems;int i=0;while(!m_set.IsEOF){m_list.InsertItem(i,m_set.m_num);m_list.SetItemText(i,1,m_set.m_sex);CString str;str.Format("%d",m_set.m_age);m_list.SetItemText(i,2,str);m_list.SetItemText(i,3,m_set.m_wage);m_set.MoveNext;i++;}m_set.Close;}2. 购物表设计添加了两个结构体struct GoodsType{char * type;char * name;int price;}goods={"日常用品","牙刷",2, "日常用品","牙膏",3, "日常用品","毛巾",5,。

vc++实训报告

vc++实训报告

第一部分模块训练1、实训一静态切分窗口(MFC编程)(第1-2课时)实训内容:在文档/视图结构的应用程序中,任意划分子窗口(4个)实训要求:(1)每一个窗口加载一幅位图(2)每个子窗口显示不同的视图实训过程:1)截取四张格式为“8位BMP(*.bmp)”图片。

2)用MFC AppWizard创建一个单文档MFC(exe)程序xb_1。

3)选择Bitmap资源,将四张图导入,图资源标示默认。

4)建不同四个类,(基类为CView)用于静态切分的窗格,为CMainFrame类添加消息函数,并对应加上代码,加上四个相应的头文件。

5)在新建的四个类中找到相应的成员函数OnDraw(),双击添加代码。

6)最后编译,链接,运行,运行结果如图所示。

2、实训二菜单编程(MFC编程)(第3-8课时)实训内容:用MFC Wizard创建一个包含有“文件”、“编辑”、“计算”三个菜单的应用程序,其中,“文件”菜单包含“打开”、“新建”、“打印”和“退出”等基本功能,“计算”菜单中包含“计算求和”和“计算平方”等功能,而且在未输入数据时,“计算”菜单中的其他选项不可用。

实训要求:设计应用程序时对菜单项等进行响应,要求实现各个菜单项的功能。

实训过程:1)用MFC Wizard创建一个单文档MFC(exe)程序xb_2。

2)打开DrawPic程序资源双击Menu,找到相应的菜单打开,在工作区出现菜单编辑器,进行要求编辑。

观察Menu Item Properties对话框中的参数的变化。

3)在ResourceView中的Dialog中创建两个对话框,一个名为求和、一个为平方。

4)在两个对话框中添加相应的控件,达到题目要求的形式。

5)给建立的控件改名、建立类向导,6)双击确定按钮,在下面填上相应的代码。

7)在编辑器中编辑的求和、平方中,更换上对话框相应的ID码,将它们连接一起。

8)最后编译,链接,运行,运行结果如图所示。

3实训三基于对话框的应用程序(第9-12课时)实训内容:创建一个对话框应用程序,进行学生信息的采集,主要包含有姓名、年龄、性别、爱好、学院等相关内容,在窗口左侧进行输入和选择之后,单击“确定”按钮,将所有信息显示在右侧的编辑框内。

c语言实践报告总结范文2篇

c语言实践报告总结范文2篇

c语言实践报告总结范文2篇【c语言实践报告总结例一】一、实习时间:20xx年x月x日—20xx年x月x日二、实习地点:第一微机室三、实习目的:1、熟悉我们自己所用的计算机的C语言开发环境,并且能够熟练掌握,达到错误能找到原因并且加以改正。

2、加深对课本理论知识的理解,进一步掌握书中重点、难点实例,锻炼自己的编写程序能力和实际应用能力。

3、上机调试程序的过程中,发现错误,解决错误,保证程序的正确运行,运行结果与给定结果完全相同。

4、学会用书中基本知识解决实际中的一些问题,将书本所学的内容与实际操作相结合,掌握把实际问题转变为C语言描述的算法的方法,明确思路。

将自身的不足与缺陷改掉,养成良好编辑风格5、培养我们的主观能动性、沟通、表达能力和团队合作意识,为我们以后的发展打下基础。

四、实习内容及方法:在本次实习中,我们采用了由浅及深、由易到难的实习方法,而且也是按照书本的教学进程内容进行的,同时采取了实际应用与理论相结合的方法,在机房里面实习,一边理解,思考做题的思路与解法,另一边就可以马上进行上机实际操作。

这对于我们加深对C语言的理解、操作以及动手能力都有了很大的帮助与提高。

实训的内容主要分为了七个版块:第一版块:1、Turbo C运行环境。

了解TC的基本环境,熟悉常用菜单项和快捷键:在这一小节中,需要熟练的掌握并应用Turbo C的运行环境,和基本配置。

Turbo C 是在计算机上广泛使用的一个C语言开发环境,它具有方便、直观、易用的界面和丰富的函数库。

它把程序的编辑、编译、连接和运行等操作去不都集中在一个界面上进行,使用非常方便。

并且Turbo C不需要特别安装,只需要将其拷贝到硬盘上就可以使用了。

为了方便管理用户的程序文件和维Turbo C2.0的运行环境,客户应在机子上建立自己的工作目录,一边用来存放自己所需要开发的源程序文件。

下面就是建立怎样自己文件夹,在空白区域内输入自己所建立的文件夹路径即可。

vc++2010实验实训结果或结论

vc++2010实验实训结果或结论

VC++2010实验实训结果或结论一、实验目的1. 理解VC++2010的基本开发环境和工具2. 掌握VC++2010中的常用功能和操作方法3. 进行实际的程序开发和调试二、实验环境1. 操作系统:Windows 7/8/102. 软件工具:VC++2010三、实验内容1. 创建新的工程和项目2. 编写和编辑源代码文件3. 进行程序的编译和调试4. 测试不同功能和特性5. 分析程序性能和效果四、实验结果1. 成功创建新的工程和项目,包括控制台应用程序和窗体应用程序2. 顺利编写和编辑源代码文件,包括C++语言的基本语法和语义3. 程序的编译和调试过程中,能够及时发现并解决常见的错误和异常4. 测试不同功能和特性时,能够有效地运用VC++2010提供的各种工具和资源5. 分析程序性能和效果,包括内存占用、运行速度、界面友好性等方面的评价和优化五、实验结论1. VC++2010是一款功能强大、操作简便的集成开发环境,适用于C++程序的开发、调试和优化2. 通过本次实验,我对VC++2010的各项功能和操作方法有了更深入的理解和掌握3. 在未来的实际开发和应用中,我将继续运用VC++2010进行程序设计和实现,不断提升自己的专业能力和水平六、实验感想1. 通过实验,我深刻体会到了软件工程和程序设计的重要性和复杂性2. 在实验过程中遇到了一些困难和挑战,但通过不懈的努力和实践,最终取得了良好的实验成果3. 实验过程中,我还遇到了一些问题和疑惑,需要进一步的学习和探讨,以提升自己的专业水平和能力七、参考资料1. 《VC++2010程序设计与实践》,XXX著,XXX出版社,XXXX年2. 《C++ Primer》,XXX著,XXX出版社,XXXX年3. 《VC++2010开发指南》,XXX著,XXX出版社,XXXX年总结:通过本次实验,我对VC++2010的开发环境和工具有了更加深入的了解和掌握,对C++程序设计和实践有了更进一步的认识和体验。

VC实验报告3

VC实验报告3
m_strOpValue[1]="";
m_op=2;
}
m_inputnew=true;
}
void CCalcDlg::OnButtonMul()
{
if(m_strOpValue[1].IsEmpty())
{
m_op=3;
m_strOpValue[0]=m_strValue;
m_op_nums=1;
}
else
{
Calc();
m_op_nums=1;
m_strOpValue[0]=m_strValue;
m_strOpValue[1]="";
m_op=3;
}
m_inputnew=true;
}
void CCalcDlg::OnButtonDiv()
{
if(m_strOpValue[1].IsEmpty())
2.对话框是Windows应用程序中一种常用的资源,其主要功能是输出信息和接收用户的输入数据。控件是嵌入在对话框中或其它父窗口中的一个特殊的小窗口,它用于完成不同的输入、输出功能。对话框与控件关系密切,在每个对话框上一般都有一些控件,对话框依靠这些控件与用户进行信息的交互。
在MFC中,对话框的功能被封装在CDialog类中,而CDialog类是CWnd类的派生类。作为窗口,对话框和其它窗口一样具有窗口的一切功能。
if(nLen>0)
{
if (strTemp[0]=='-')
{
bSign=true;
strTemp=strTemp.Right(nLen-1);
nLen-=1;
}
CString strPlus,strNag;

VC++实训实验报告书

VC++实训实验报告书

电气信息学院实训报告课程名称: 软件项目实训实训题目: 个人信息获取年级/专业/班: 过程自动化学生姓名:学号: 实训成绩:指导教师签名:年月日1 引言1.1系统概述我所做的题目为“个人信息获取系统”,在对话框界面上填写个人的相关信息,填写完毕后可以在特定区域显示所填写的个人信息,个人信息包括姓名、籍贯、现居住地、性别、民族、学历、宗教信仰、国籍、出生年月日、年龄等。

1.2 需求分析“个人信息获取系统”可以在对话框界面上填写个人的相关信息,填写完毕后,可以通过特定的按键获取填写的个人信息。

该系统可以用于个人的电子档案管理,或者略作改变后,可以应用于在线问卷调查或者在线考试和测试系统。

例如,申请贷款填写个人信息时,可以先在类似这个“个人信息获取系统”的对话框上填写贷款人的相关信息,然后通过特定的按键从系统中导出所填写的个人信息表并打印。

用于问卷调查时,可以将问题都预先设定在对话框界面上,填写完毕后,由工作人员在后台获取并统计调查结果。

用于在线测试时,与问卷调查类似,即可将试题预先写在对话框界面上,答题者答完后由批阅者在后台获取考生答案并进行评分。

由于在线问卷调查系统和在线测试系统在编程实现统计和评分功能时,需要考虑各个题目或者选项之间的关联,这使得后台程序代码量太多,比较繁琐,但其实现原理与个人信息获取系统一样,故本次实训我仅选取了个人信息获取系统作为代表。

1.3 运行环境本次实训使用Visual C++ 6.0 软件,故要求操作系统要与该软件兼容,故可在WindowsXP系统下运行。

2 概要设计2.1 设计思路设计个人信息获取系统时,建立对话框,然后使用相应的控件及其之间的消息映射来实现各信息的获取。

添加控件时,姓名、籍贯、现居住地等信息使用静态编辑框控件,性别、宗教、国籍、学历等信息使用单选按钮控件,出生日期、年龄、民族、血型等信息使用组合框控件,爱好使用复选按钮控件,获取结果使用按钮控件,获取的消息映射在编辑框内。

VC实习报告

VC实习报告

VC程序设计实习报告水功能区水质动态评价系统(电气信息工程学院)班级:电子信息工程13-1学号:姓名:教师:日期:2013.12.15目录一.功能概述 (1)二.界面设计 (2)三.数据库设计 (6)四.主要代码及流程 (8)五.结论和分析 (20)六.实习心得 (20)一、功能概述通过ODBC数据库应用程序的创建,使后台数据库与应用程序建立联系,从而实现通过应用程序对数据库记录的浏览和对其成员的增,删,改,查等功能。

本次实习针对水功能区水质动态评价系统进行数据库的创建和应用程序的建立,其中应用程序程序部分分为:登陆界面的设计和用户管理界面、水质信息、报警、报警日志等界面的设计,并为其添加时间代码并与后台数据库建立联系,时间对数据库的浏览与修改。

各界面程序运行流程如下图:首先是登录界面,需要填写用户名和密码并选择用户类型方能登录成功进入下一界面。

且用户名与密码与数据库相同成员匹配正确才能登录成功。

本次实习针对用户类型的不同赋予了用户的不同权限,各个用户具体权限如下:1.普通用户:不享有任何用户数据方面的权限,正确输入密码后直接进入水质信息界面,浏览各类指标并能对其享有添加修改等权限。

2.管理用户:与其他两种用户类型不同,管理用户有其独有的用户管理界面,掌握着用户信息修改的权限,可对用户进行编辑、增加、保存等操作,且用户名与密码同步到数据库。

3.专家用户:专家用户在登录成功后可跳过用户管理界面和水质信息界面,直接进入水质报警界面,对报警信息进行分析和查询。

以上三个用户在登录成功后进入不同界面后,其后面的流程完全相同,都可以浏览和查询报警界面和报警日志界面,其报警界日志界面有其特有的查询功能,可选择不同的地点不同时间进行有目的的取样查询。

二、界面设计水功能区水质动态评价系统共有五个界面,分别为:登录界面、用户管理界面、水质信息界面、水质报警界面、报警日志界面。

1.登录界面(如图1.)添加2个文本控件(Static Text)修改其属性名称分别用户名和密码;添加2个编辑框控件(Edit Box)ID属性名称更改为ID_Name,ID_pass;添加两个按钮,默认为Button1和Button2,名称分别为登录和密码;添加3个单项选择按钮,分别命名为普通用户、管理用户、专家用户。

VC实验报告格式3

VC实验报告格式3

实验三:MFC基本控件实验学号:2011329700214 姓名:周咪咪班级:11数媒(2)班一、实验目的1.了解MFC基本控件的使用方法。

2.掌握MFC基本控件的消息处理方法。

二、实验内容1.使用按钮、文本框、图像框、列表框等控件编程。

三、实验步骤及源代码1.首先打开VC,选择MFC AppWizard[exe],设定好路径和工程名(这里我设置工程名为为“My”)。

这里要注意的是在创建向导步骤1的时候,我们选择“基本对话框”。

2.点击完成便看到以下界面,把当前页面上IDD_SY3_DIALOG中原有的“确定”和“取消”控件按Delete全部清除。

根据实验要求将所有控件放入对话框模板中,然后作出相应调整,最终形成实验结果图示要求的界面。

因为原实验界面较复杂,为了简化界面,将其改为如下界面。

3.上图我们用按钮控件添加一共16个按钮,分别是数字“ 0 ~ 9” 以及“+ - * /”和".="。

编辑框组件共4个,第1.2个是输入数据,第3个显示运算结果。

修改按钮的ID和显示数字,编辑框ID,达到看ID知道目的。

按钮对应的ID表如下:ID 显示的数ID 显示的数ID 显示的数IDC_BUTTO N1 1 IDC_BUTTON88 IDC_point .IDC_BUTTO N2 2 IDC_BUTTON99 IDC_dengyu =IDC_BUTTO N3 3 IDC_BUTTON0IDC_BUTTON44 IDC_add +IDC_BUTTON55 IDC_reduce -IDC_BUTTON66 IDC_chen *IDC_BUTTON77 IDC_chu /编辑框对应的ID如下:功能ID输入的第1个数IDC_EDIT1输入的第2个数IDC_EDIT2输出的结果IDC_EDIT34.给控件添加消息响应为所以组件添加消息响应,基本操作可以是直接双击控件,便会有向导提示。

MFC默认下了的响应信息都为On_开头,这步骤一般不对成员函数名称做任何修改,直接点击OK即可。

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

VC++综合实训报告专业:国际外包学号:41134X16姓名:樊荣指导教师:高云实验总结通过以下思考题,使得自己对各知识点能够更好的整合运用。

此次实训,让自己对程序编写有了更深的认识,而且让自己的编程能力得到了一些长足的进步。

能够尽早的接触比较正规化的实训,让自己更能体会到与课堂不一样的感觉。

总之此次实训收益颇丰。

第一章思考题的解答1)、如何使用冒泡排序算法重新改写[源程序1-3]中的函数sortArray(int intArry[],int n)? 答:void sortArray (int intArr[], int n){int i,j,temp;for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(intArr[i]>intArr[j]){temp=intArr[i];intArr[i]=intArr[j];intArr[j]=temp;}}}for(i=0;i<n;i++)cout<<intArr[i]<<" ";cout<<endl;}2)、什么是内存泄漏?分析【源程序1-12】的流程,说明该代码是否存在内存泄漏。

答:C++规定,动态申请的储存单元可以提前释放,最晚必须在超出作用域时显示释放。

否则系统无法自动收回,只有在下次重新启动系统时才能回收。

这就是“内存泄漏”。

【源程序1-12】中第46~47行删除动态变量和动态数组,提前释放它们占用的系统资源。

所以说这一代码不存在内存的泄漏。

3)、什么是引用?函数的参数传递使用指针的方式和使用引用的方式有什么区别?答:引用是为已有的变量起别名,当建立引用时,程序用另一个变量名称初始化引用。

对引用的改动实际就是对目标的改动。

使用引用的方式要在程序结束前释放,否则会出现内存泄漏,而指针则不用释放,也就不存在内存的泄漏。

4)、什么是函数的重载?函数重载的匹配顺序是怎样的?答:是指C++允许申明和实现名称相同、参数类型或数量不同的函数,在调用时系统可以根据参数类型的不同来选择调用不同的函数实现代码。

函数重载的匹配顺序:1、寻找一个严格的匹配(类型完全相同),如果找到了,就调用此函数。

2、通过内部转换寻找一个匹配,只要找到了,就调用此函数。

3、通过用户定义的转换寻找一个匹配,若能找到唯一的一组转换,就调用此函数。

第二章思考题的解答1)、分析【源程序2-2】的流程,说明在该代码中是如何使用继承和多态机制的。

答:1> 继承的分析:1、第1~181行定义和实现了3个类:Location->Point->Circle,即Location派生出Point类,Point类又派生出Cricle类,也可以说Circle类是Point类的子类,Point类是Circle类的父类,Point类是Location的子类。

2、第7~8行定义了基类Location的成员变量x和y,用来刻画平面上一个位置的坐标,第10行定义了构造函数Location,第11~14行定义了查看和改变成员变量x、y值的接口函数,第15~16行申明了两个屏幕显示和隐藏的行为刻画函数框架。

第61~77行是这些成员函数的实现代码。

3、第21行的类Point是由Location类采用public方式派生的,在继承Location类的所有成员变量和成员函数的基础上,第23~28行新增加了用来进一步刻画平面上一个点的可见性、点的类型和实例个数的3个成员变量Visible、PTye和NumOflnstances,新增加了点的移动行为刻画成员函数MovTo|、获得点实例可见性的接口函数GetVisible和获取实例个数的静态接口函数getNumPflnstances等。

4、第47行的类Circle是由Point类采用public方式派生的,在继承Point类的所有成员变量和成员函数的基础上,第50行新增加了用来进一步刻画平面上一个园的大小的成员变量Radius,新增加了园的缩放行为刻画成员函数Expand、获取园半径的接口函数GetRadius等。

2> 多态机制:答:1、通过虚函数实现多态性2、通过构造函数重载实现多态性3、通过成员函数重载实现多态2)、什么是友元函数?类的成员函数和友元函数有什么区别?答:友元函数不是成员函数,而是类在定义时声明的“朋友”函数,表明它不受访问控制的约束,可以访问类的全部成员。

除可以将一个函数定义为一个类的友元函数外,还可以将一个类定义为另一个类的友元类。

如一个类A是类B的友元类,则类A的所有成员函数在对B类实例进行操作时,可以不受控制的访问B类的多有成员。

友元的关系是单向的,而不是双向的,友元的关系不能传递。

区别:成员函数是要受访问控制的约束,而友元函数不受约束。

3)、什么是异常?C++如何处理异常?答:程序语句的语法正确是编译通过的前提条件,但有些语句在运行时的某些特殊情况下,如系统资源短缺、参数取值越界、指针非法指向、外部控制设备出错等,会导致系统运行时产生错误称为异常或异常错误。

规范化异常处理的基本规则是:危险语句监督执行,尝试异常报告错误,所有同类型异常错误集中处理。

异常处理的实现步骤:1、定义异常(try语句块),将那些有可能产生错误的语句框定在try块中;2、抛掷异常(throw语句块),当异常产生时,抛掷异常代码;3、处理异常(catch),将特定异常处理的语句放在catch语句块中,以便异常被捕获石处理。

4)、通过前两章内容的学习,总结C++代码重用的常用方法。

答:代码重用主要分为源代码的级别重用和目标代码级别的重用,源代码级别重用虽然简单,只要将源代码一起编译即可,但它是最低级的重用方式;目标代码级重用是将常用的一些功能模块集中起来,经过编译独立存放在一个二进制文件中,一般以库的方式来体现。

第三章思考题的解答1)、什么是ASCII文件?什么是二进制文件?两者之间有什么区别?答:二进制文件是按二进制的编码方式来存放文件的。

信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。

因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。

为保证人类和ASCII码表,它的全称是“美国信息交换标准代码”。

ASCII文件就是文本文件,最后保存后的文件是可读出来的,二进制文件最后保存出来的文件是乱码的,如果你的文件不想让别人看到就可以用二进制文件去保存,可以先输出ASCII文件,自己先看,然后改为二进制文件就没错了2)、C++通过什么方法设置输出流的格式?答:在输出数据时,往往不指定输出格式,由系统采取默认的格式。

但有时需要指定输出的格式,通常有两种方法:一种是使用控制符的方法;另一种是使用流对象的有关成员函数。

第四章思考题的解答1)、分析CFDrawView类的OnLButtonUp, OnLButtonDown, 和OnMouse,Move的消息处理流程,说明FDraw是如何通过鼠标进行绘图的。

答:对于FDraw而言,用户将在成员函数中填写初始笔画绘图、种植笔画绘图、当鼠标按键按下时的绘图代码。

通过消息映射来调用OnLButtonDown成员函数。

该函数以一个新画笔开始,添加鼠标当前位置到笔画中,并将笔画加入文档的笔画列表中,然后,OnLButtonDown函数捕捉鼠标事件,知道函数左键释放时结束笔画。

初始笔画绘图是OnLButtonDown函数,终止笔画绘图是OnLButtonUp函数,当鼠标按键按下时绘图为OnLButtonUp函数。

2)、什么是设备坐标?什么是逻辑坐标?两者之间通过什么函数转换?答:在Windows中,文档坐标系列称为逻辑坐标系,试图坐标系称为设备坐标系。

逻辑坐标按照坐标设置方式(有称为映射模式)可分为8种,一般使用的映射模式是MM_TEXT,这也是默认设置,在该模式下,坐标原点在工作区左上角,而x坐标值是向右递增,y坐标值是向下递增,单位值1代表1像素。

设备上下文类CDC提供了两个成员函数LPToD和PDPToLP完成逻辑坐标和设备坐标之间的转换工作。

如其名称,LPToDP将逻辑坐标转换为设备坐标。

DPToLP将设备坐标转换为逻辑坐标。

3)、以成员函数CFDrawDoc::OnPenWidths的实现为例,说明MESSAGE_MAP中ON_COMMAND(ID_PEN_WIDTHS,OnPenWidth)语句的含义是什么?答:绘画过程中,用于改变画笔的粗细。

4)、什么是串行化?FDraw如何实现绘图笔画的串行化?答:MFC中默认的I/O实现称为“串行化”,它是用于在工作任务和程序之间会话时保证文档数据的一致性的一种机制。

框架程序代码自动提供相应代码,用户不必为串行化函数添加任何代码。

要让用户定义的类支持串行化,一般有以下几步:1、从CObject或其派生类派生出用户的类;2、重载Serialize()成员函数,加入必要的代码,用户保存对象的数据成员到CAchive对象以及从CArchive对象载入对象的数据成员状态;3、在类声明文件中,加入DECLARE_SERLAL宏。

编译时,编译器将扩充该宏,这是串行化对象所必须的;4、定义一个不带参数的构造函数;5、在实现文件中加入IMPLEMENT_SERIAL宏。

5)、分析成员函数CStroke::FinishStroke的流程,说明m_rectBounding的作用是什么?答:成员函数FinishStroke用于计算机笔画的边界矩形。

在此函数中,笔画对象重复其点数组,测试每一点的位置,如果一点位于当前边界矩形之外,笔画对象将扩大边界矩形来包含该点,边界矩形每一条边再由画笔宽度来扩充。

保护型成员变量m_rectBounding是一个保存边界矩形的CRect对象。

6)、UpdateAllViews的作用是什么?该成员函数和CFDrawView::OnUpdate有什么关系?答:视图调用UpdateAll/views传递两个变元:一个是this指针,用于确定执行文档调整的视图;另一个是m_pStrokeCur,其边界矩形就是提示(该函数将一个指针发送到完整的CStroke对象而不仅仅是边界矩形,因为提示必须是一个CObject指针,而且CRect不是从CObject派生来的)视图不需要发送任何更多的提示信息,所以它不会在LPARAM参数中传递任何内容。

UpdateAllViews函数迭代与文档相连接的一个列表视图;对于每一个视图(除了进行修改的视图以外),函数调用其OnUpdate函数并以一个参数传递提示。

相关文档
最新文档