VirtualC++ 实验报告
- 格式:doc
- 大小:1.01 MB
- 文档页数:40
如何写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中编写程序数据库应用程序基本设计和购物表设计编程序数据库步骤:设置-;控制面板-;治理工具-;数据源-;添加-;MicroSoftAccess 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 where num=;;+xnum1+;;;; 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 where num=;;+xnum0+;;;; m_set.Open(AFX_DB_USE_DEFAULT_TYPE,str);dlg.m_num=m_set.m_nu m;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 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 GoodsTypechar * type;char * name;int price;}goods={;日常用品;,;牙刷;,2, ;日常用品;,;牙膏;,3, ;日常用品;,;毛巾;,5,。
实验一C/C++语言的运行环境和运行过程1.实验目的:2.掌握c/c++程序设计编程环境visual c++, 掌握运行一个c/c++程序设计的基本步骤, 包括编辑、编译、连接和运行。
掌握c和c++语言程序设计的基本框架, 能够编写简单的c和c++程序。
了解程序调试的思想, 能找出并改正c/c++程序中的语法错误。
1.实验内容:在“我的电脑”的E盘上新建一个文件夹, 用于存放c/c++程序, 文件夹名字可以是学号姓名。
调试示例, 在屏幕上显示一个短句“Hello World!”。
C源程序 C++源程序#include <stdio.h> #include <iostream>void main() using namespace std;{ int main()printf(“Hello World!\n”); {} cout<<”Hello World!”<<endl;return 0;}运行结果: Hello World!1)基本步骤: (要求熟练掌握)2)启动VC++“开始”->“程序”->“Microsoft Visual Studio 6.0”->“Microsoft Visual C++6.0”进入VC++编程环境。
3)新建文件(*.cpp)4)“文件”->“新建”, 单击“文件”选项卡, 选择“C++Source Files”,修改文件保存“目录”和“文件”(文件名), 单击“确定”。
5)编辑和保存(注意: 源程序一定要在英文状态下输入, 即字符标点都要在半角状态下, 同时注意大小写, 一般都用小写)6)在编辑窗口输入源程序, 然后执行“文件”->“保存”或“文件”->“另存为”7)编译(*.obj) 用来检查语法错误8)“编译”->“编译”或Ctrl+F7, 在产生的工作区队话框中, 选择“是”。
计算机程序设计基础(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四个整数,输出其中的最大数。
《Visual C++语言》实验班级:学号:姓名:实验一熟悉Visual C++程序调试方法一、实验目的(1)熟悉Visual C++6.0开发环境;(2)掌握在Visual C++6.0开发环境调试程序的方法。
二、实验内容(1)创建三个项目,项目类型分别为:Win32Console Application、Win32 Application和MFC AppWizard(exe),分别编译运行各个程序,观察各种项目类型程序的特点。
(2)创建一个Win32Console Application类型的项目,输入下面的代码,按照要求对代码进行调试。
说明:下面的程序求100~1000以内的水仙花数,所谓水仙花数就是一个三位的整数,其个位数字、十位数字和百位数字的立方和等于该数本身的值,则这个数称为水仙花数。
#include"iostream.h"#include"math.h"void narcissus();//求水仙花数void main(){narcissus();}void narcissus(){int x1;//百位数字int x20;//十位数字+个位数字int x2;//十位数字int x3;//个位数字2int count=0;//找到的水仙花数的总数for(int x=100;x<1000;x++){x1=x/100;x20=x%100;x2=x20/10;x3=x20%10;if(x1*x1*x1+x2*x2*x2+x3*x3*x3==x){count++;cout<<"One narcissus number found:"<<x<<endl;}}cout<<"The total number of narcissus numbers is:"<<count<<endl;}调试要求:在程序代码的main函数中设置断点,启动程序执行到断点处停止;在函数narcissus调用处进入函数内部,跟踪函数执行的过程;单步执行程序,观察各个变量值的变化情况;单步执行若干步后,跳出函数体,回到main函数。
南京航空航天大学实验报告课程名称:虚拟现实技术实验项目:基于OpenGL的C语言虚拟现实建模专业班级:导航、制导与控制姓名:学号:实验时间:成绩:南京航空航天大学实验报告1.实验目的:了解基于OpenGL函数库的C语言虚拟现实三维建模技术,掌握OpenGL主要核心函数库的编程应用方法。
2.实验内容:在Visual C++环境或其他C语言集成设计环境下,建立基于OpenGL建模的编程环境,完成某一场景的建模并正确编译和运行。
3. 实验方案(程序设计方案)本实验实现OpenGL下的时钟,时钟和系统时间同步。
了解并学习OpenGL标准图形库,并通过运用其基本函数实现和系统同步的时钟。
5.实验过程与结果步骤一:在VC下创建clock工程打开VC6.0++ 工程后,找到file->new->Prejects->Win32 Console Application。
设置相应的工程名为clock,并设置好路径,创建一个空工程。
步骤二:加入对应的库文件和头文件把opengl32.lib glu32.lib glaux.lib GL/glut32.lib加入到Setting->Link中,并在代码工程中包含头文件。
如下图所示:图1 加入OpenGL库后的工程步骤三:编写时钟代码1)编写myDisplay函数实现钟的显示,函数中用到的主要OpenGL函数如下:glVertex2f函数进行绘图,由点构成面或者线,从而构成钟面和指针;glColor3f函数修改会制图形的颜色;Localtime函数获取系统时间;2)在main函数中设置Window窗口的大小,位置,调用glutMainLoop循环显示钟表。
运行结果:观察时钟的运行时间,发现和系统运行时间一致,表明此工程已经成功。
图1时钟运行6.出现的问题及解决方法过程中出现的问题:(1)cannot open file "OpenGL/glut32.lib"解决办法:引起这个问题的原因是应为库的路径没有加对,在了解错误原理后,重新设置库文件路径。
一、实验目的1. 理解虚基类的概念及其在面向对象编程中的作用。
2. 掌握虚基类在类继承中的使用方法。
3. 通过实验加深对多态性和抽象类概念的理解。
二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 编程语言:C++三、实验内容1. 创建一个车辆类,包含车辆的基本属性和功能。
2. 创建两个派生类:自行车类和摩托车类,分别继承自车辆类。
3. 使用虚基类实现自行车类和摩托车类对车辆类的共享继承。
4. 实现一个测试程序,验证虚基类在多态性中的应用。
四、实验步骤1. 定义车辆类:```cppclass Vehicle {public:int maxSpeed; // 最大车速int currentSpeed; // 当前速度int weight; // 车重enum vehicleStatus { REST, RUNNING }; // 车辆状态vehicleStatus status; // REST-泊车状态;RUNNING-行进状态Vehicle(int maxS, int w) : maxSpeed(maxS), weight(w), status(REST) {}virtual void accelerate(int speed) {if (status == RUNNING) {currentSpeed += speed;if (currentSpeed > maxSpeed) {currentSpeed = maxSpeed;}} else {std::cout << "The vehicle is parked, cannot accelerate." << std::endl;}}virtual void brake() {if (status == RUNNING) {currentSpeed = 0;} else {std::cout << "The vehicle is parked, cannot brake." << std::endl;}}virtual void statusChange(vehicleStatus newStatus) {status = newStatus;}virtual ~Vehicle() {}};```2. 定义自行车类和摩托车类,使用虚基类实现共享继承:```cppclass Bicycle : virtual public Vehicle {public:Bicycle(int maxS, int w) : Vehicle(maxS, w) {}void statusChange(vehicleStatus newStatus) override {if (newStatus == RUNNING) {std::cout << "Bicycle is running." << std::endl;} else {std::cout << "Bicycle is parked." << std::endl;}}};class Motorcycle : virtual public Vehicle {public:Motorcycle(int maxS, int w) : Vehicle(maxS, w) {}void statusChange(vehicleStatus newStatus) override {if (newStatus == RUNNING) {std::cout << "Motorcycle is running." << std::endl; } else {std::cout << "Motorcycle is parked." << std::endl;}}};```3. 实现测试程序:```cpp#include <iostream>using namespace std;int main() {Vehicle v1 = new Bicycle(20, 100);Vehicle v2 = new Motorcycle(100, 200); v1->statusChange(RUNNING);v1->accelerate(5);v1->brake();v2->statusChange(RUNNING);v2->accelerate(10);v2->brake();delete v1;delete v2;return 0;}```五、实验结果与分析1. 实验结果表明,通过使用虚基类,自行车类和摩托车类共享了车辆类的属性和功能,避免了重复定义。
《C++》课内实验报告学生姓名:及学号:学院:班级:课程名称:实验题目:指导教师姓名及职称:2012年05月07日一、实验题目:Visual C++6.0菜单功能及工具栏二、实验目的:1. 熟悉集成开发环境,了解各组成部分的功能及其相应的操作方法。
2. 了解菜单的布局和菜单的使用方法,对菜单的设置有一个概貌性的了解。
3. 熟悉工具栏的按钮与菜单命令的对应关系。
4. 定制自己的工具栏。
三、实验内容:1. 熟悉Visual C++ 6.0集成开发环境的菜单功能。
给出各菜单截图,说明各菜单功能。
1) 文件(File)菜单;2) 编辑(Edit)菜单;3) 查看(View)菜单;4) 插入(Insert)菜单;5) 工程(Project)菜单;6) 组建(Build)菜单;7) 工具(Tool)菜单;8) 窗口(Windows)菜单;9) 帮助(Help)菜单2. 熟悉Visual C++ 6.0工具栏的使用方法。
1) 熟悉工具栏的概念;2) 了解工具栏的显示和隐藏,显示和隐藏工具栏的步骤如下:(1) 单击工具(T)菜单,选中定制(Customize)菜单项;(2) 在弹出的对话框中,单击工具栏(Toolbars)标签。
在工具栏选项卡中显示有工具栏列表框,其中选中的工具栏即为显示的工具栏,没选中的工具栏即为隐藏的工具栏。
请抓图表明你对默认显示工具栏的修改,并说明你显示了哪些工具栏,隐藏了哪些工具栏。
3) 工具栏的定制及修改,用户可以根据需要定制新的工具栏,或者对已有的工具栏进行修改,如添加新按钮、删除已有按钮等。
要求定制自己的个性工具栏,并进行修改,抓图显示你的工作。
定制新的工具栏的步骤如下:(1) 单击工具(T)菜单中的定制(C)命令,弹出定制(C)对话框。
(2) 单击工具栏标签,显示工具栏选项卡。
(3) 单击新建(N)按钮,弹出新建工具栏对话框,输入新的工具栏名称。
(4) 单击确定(OK)按钮,此时可以看见工具栏列表中增加了新的工具栏,同时新的工具栏出现在屏幕上。
《Visual C#程序设计》课程上机实验报告专业地理信息科学班级学号姓名指导教师学期南京工业大学测绘学院上机守则1.学生必须按指导教师安排的上机实验时间进入机房上机,未经许可,不得带外人进入机房。
2.进入机房时必须穿上鞋套,否则不得进入机房。
3.认真填写上机情况登记表,若遇计算机有异常情况,应先向老师汇报,不得擅自处理。
4.遵守计算机操作规程,即开机时先开显示器再开主机;结束时须关闭计算机,关机时先通过Windows功能关闭系统,主机电源指示灯灭了以后再关闭显示器。
5.禁止上机时玩游戏或从事与上机实验无关的内容。
6.保持机房安静和整洁,不得携带食品、饮料进入机房,严禁随地吐痰、乱扔垃圾或杂物,禁止吸烟、大声喧哗或闲聊。
7.爱护机房设施,严禁更改设置参数、添加口令或删除非本人文件。
对于导致计算机不能正常工作、影响他人上机者,将取消其上机资格。
8.严禁私自拆卸配件或将室内物品带出室外。
一经发现,除要求按价赔偿外,将通报批评和取消其上机资格,情节严重者交有关行政部门和司法部门处理。
上机实验注意事项1、上机实验前必须阅读有关教材及本上机实验指导书,初步了解上机实验内容要求与步骤。
2、严格遵守上机守则,严禁大声喧哗或玩游戏。
3、认真填上机实验记录,不可潦草,填写内容包括上机实验时间、地点、实验主要内容、步骤及完成成果说明等。
4、独立完成上机实验内容,实事求是,严禁抄袭他人作业。
若有弄虚作假现象,该课程成绩按不及格处理。
5、实验结束时,应向指导教师提交上机实验报告和有关成果,符合要求并经允许,方可关机和离开机房。
6、按时上机,不准迟到、早退、旷课,有事须预先履行请假手续,征得指导教师同意后方可离开。
上机实验一、熟悉Visual C#开发环境一、实验目的熟悉Visual C#集成开发环境,了解Visual C#控制台应用程序和窗体应用程序的编写过程。
二、实验内容:1.创建一个控制台应用程序,该程序启动后在运行界面上输出字符串“欢迎进入VISUAL C#世界!”。
《Visual C++语言》实验班级:学号:姓名:实验一熟悉Visual C++程序调试方法一、实验目的(1) 熟悉Visual C++ 6.0 开发环境;(2) 掌握在Visual C++ 6.0 开发环境调试程序的方法。
二、实验内容(1) 创建三个项目,项目类型分别为:Win32 Console Application、Win32 Application 和MFC AppWizard(exe),分别编译运行各个程序,观察各种项目类型程序的特点。
(2) 创建一个Win32 Console Application 类型的项目,输入下面的代码,按照要求对代码进行调试。
说明:下面的程序求100~1000 以内的水仙花数,所谓水仙花数就是一个三位的整数,其个位数字、十位数字和百位数字的立方和等于该数本身的值,则这个数称为水仙花数。
#include "iostream.h"#include "math.h"void narcissus(); // 求水仙花数void main(){narcissus();}void narcissus(){int x1; // 百位数字int x20; // 十位数字+个位数字int x2; // 十位数字int x3; // 个位数字2int count = 0; // 找到的水仙花数的总数for(int x=100; x<1000; x++){x1 = x/100;x20 = x%100;x2 = x20/10;x3 = x20%10;if(x1*x1*x1+x2*x2*x2+x3*x3*x3 == x){count++;cout<<"One narcissus number found:"<<x<<endl;}}cout<<"The total number of narcissus numbers is:"<<count<<endl;}调试要求:在程序代码的 main 函数中设置断点,启动程序执行到断点处停止;在函数 narcissus 调用处进入函数内部,跟踪函数执行的过程;单步执行程序,观察各个变量值的变化情况;单步执行若干步后,跳出函数体,回到 main 函数。
三.实验结果(1)观察三种项目类型对应的程序特点,做出简要说明;Win32 Console Application:Win32 Application:MFC AppWizard(exe)Win32 Console Application特点:程序以main函数作为主函数,我们得用键盘输入各种命令来使用它Win32 Application特点:我们通过鼠标点击完成控制,以WinMain()为入口函数,能够使用win32API函数MFC AppWizard(exe)特点:MFC是用来编写Windows应用程序的C++类集,该类以层次结构组织起来,其中封装了大部分的WindowsAPI函数和windows控件,它包含的内容涉及到了整个Windows操作系统。
MFC不仅为用户提供了windows图形环境下的应用程序框架,还提供了创建应用程序的组件(2) 列出C++程序清单,以及程序的运行结果;(3)记录调试过程中变量值的变化情况;变量 1 2 3 4 (154)Count 0 0 0 0 (1)x 100 101 102 103 (153)X1 1 1 1 1 (1)X2 0 0 0 0 (5)X20 0 1 2 3 (53)X3 0 1 2 3 (3)(4) 在Visual C++ 6.0 中如何进行程序的跟踪调试;步骤:<1>在main函数中按F9设置断点,按F5启动调试<2>在narcissus函数处按F11进入函数体内部,按F10单步执行,跟踪程序运行过程<3>按shift+F11退出函数体,再按shift+F5停止调试,按F9清除断点四.实验总结在大一就对VisualC++6.0开发环境有了一定的了解,本次实验让我很好的掌握了如何进行函数的调试,以及跟踪函数的运行过程,让我对C++程序的执行过程有了更深的了解实验二熟悉Windows 源程序基本结构一、实验目的(1) 熟悉Visual C++ 6.0 开发环境;(2) 熟悉Windows 系统事件驱动的运行机制;(3) 熟悉Windows 应用程序源程序基本结构;二、实验内容创建一个空白的 Win32 Application 应用程序,建立相关文件,手工输入下列代码,实现一个Windows 窗口程序。
#include "windows.h"LRESULT CALLBACK WndProc(HWND hwnd,UINT messgae,WPARAM wParam,LPARAM lParam);int WINAPI WinMain (HINSTANCE hThisInst, HINSTANCE hPrevInst,LPSTR lpszCmdLine, int nCmdShow){WNDCLASS ws;HWND hWnd;MSG msg;ws.style = 0;ws.lpfnWndProc = WndProc;ws.cbClsExtra = 0;ws.cbWndExtra = 0;ws.hInstance = hThisInst;ws.hIcon = LoadIcon(NULL, IDI_HAND);ws.hCursor = LoadCursor(NULL,IDC_CROSS);ws.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); ws.lpszMenuName = NULL;ws.lpszClassName = "DemoClass";5if(!RegisterClass(&ws)){return -1;}hWnd = CreateWindow("DemoClass","My First Windows Program", WS_OVERLAPPEDWINDOW,100,200,640,480,NULL,NULL,hThisInst,NULL);ShowWindow(hWnd,nCmdShow);UpdateWindow(hWnd);while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}return msg.wParam;}LRESULT CALLBACK WndProc(HWND hwnd,UINT messgae,WPARAM wParam,LPARAM lParam){switch(messgae){case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hwnd,messgae,wParam,lParam);}return 0;}三.实验结果(1) 列出源程序清单,以及程序的运行结果;(2) 总结Windows 源程序的结构特点,说明各个主要程序段的作用;结构特点:Windows源程序主要结构由WinMain和WndProc两个函数组成,WinMain函数是入口函数,函数名称和参数都是固定的,WndProc函数是窗口函数,函数名称可由用户自行定义,但是它的参数是固定的WinMain函数是所有Windows应用程序的入口,它的功能是完成一系列的定义和初始化工作,并产生消息循环。
消息循环是整个程序运行的核心。
窗口函数WndProc定义了应用程序对接收到的不同消息的响应,包含了对各种可能接收到的消息的处理过程。
WndProc函数由一个或多个switch语句构成,每条case语句对应一种消息,当应用程序接收到一个消息是,响应的case语句被激活并执行相应的响应程序模块。
四.实验总结通过本次实验,我更加熟悉了解了VisualC++6.0的开发环境,对windows系统事件驱动的运行机制,Windows应用程序源程序基本结构有了更深的了解,掌握了Windows源程序的结构特点,以及主要程序段的作用实验三 Windows 图形绘制编程实验一、实验目的(1) 熟悉Visual C++ 6.0 开发环境;(2) 掌握Windows 图形输出的方法;(3) 理解设备环境、画笔、画刷的概念,掌握常用的绘图函数。
二、实验内容请编写程序,要求如下:(1) 定义一支黄色画笔,绘制一条线段;(1) 定义一支紫色画笔,绘制一条多段线;(3) 定义一支红色画笔,绘制一个正方形,并用适当的画刷填充图形内部;(4) 定义一支绿色画笔,绘制一个圆,并用适当的画刷填充图形内部;(5) 定义一支蓝色画笔,绘制一个正六边形,并用适当的画刷填充图形内部三.实验结果(1) 列出图形绘制程序代码清单;#include"windows.h"LRESULT CALLBACK WndProc(HWND hwnd, UINT message,WPARAM wParam, LPARAM lParam);int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE hPrevInst,LPSTR lpszCmdLine, int nCmdShow){WNDCLASS ws;HWND hWnd;MSG msg;ws.style =0;ws.lpfnWndProc =WndProc;ws.cbClsExtra =0;ws.cbWndExtra =0;ws.hInstance =hThisInst;ws.hIcon =LoadIcon(NULL, IDI_HAND);ws.hCursor =LoadCursor(NULL, IDC_CROSS);ws.hbrBackground =(HBRUSH) GetStockObject(WHITE_BRUSH);ws.lpszMenuName =NULL;ws.lpszClassName ="DemoClass";if(!RegisterClass(&ws)){return -1;}hWnd=CreateWindow("DemoClass", "My First Windows Program", WS_OVERLAPPEDWINDOW,100,200,640,480,NULL,NULL,hThisInst, NULL);ShowWindow(hWnd, nCmdShow);UpdateWindow(hWnd);while (GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}return msg.wParam ;}LRESULT CALLBACK WndProc(HWND hwnd, UINT message,WPARAM wParam, LPARAM lParam) {HDC hDc;PAINTSTRUCT ps;HPEN hPen,hPenOld;HBRUSH hBrush;POINTpoint[7]={{50,200},{100,100},{150,200},{200,100},{250,200},{300,100}, {350,200}};//折线数组的定义POINTpoints[6]={{360,50},{380,15},{420,15},{440,50},{420,85},{380,85}};//多边形数组的定义switch(message){case WM_PAINT:hDc=BeginPaint(hwnd,&ps);hPen=CreatePen(PS_SOLID,10,RGB(255,255,0));SelectObject (hDc,hPen);MoveToEx(hDc,10,10,NULL);LineTo (hDc,39,39);hPen=CreatePen(PS_SOLID,10,RGB(160,32,240));SelectObject (hDc,hPen);Polyline(hDc,point,7);hPen=CreatePen(PS_SOLID,10,RGB(255,0,0));SelectObject (hDc,hPen);hBrush=CreateSolidBrush (RGB(234,127,255));SelectObject (hDc,hBrush);Rectangle(hDc,250,250,400,400);hPen=CreatePen(PS_SOLID,10,RGB(0,255,0));SelectObject (hDc,hPen);hBrush=CreateSolidBrush (RGB(0,100,255));SelectObject (hDc,hBrush);Ellipse (hDc,180,180,326,326);hPen=CreatePen(PS_SOLID,10,RGB(0,0,255));SelectObject (hDc,hPen);hBrush=CreateSolidBrush (RGB(255,111,150));SelectObject (hDc,hBrush);Polygon (hDc,points,6);DeleteObject (hPen);DeleteObject (hBrush);EndPaint (hwnd,&ps);break;case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hwnd, message, wParam, lParam);}return 0;}(2) 总结在Windows 程序中绘制图形的基本操作步骤;步骤如下:1.获取设备环境的方法获取设备环境是应用程序输出图形的先决条件,常用的两种方法是调用函数BeginPaint 或GetDCa、调用BeginPaint 函数应用程序响应WM_PAINT 消息进行图形刷新时,主要通过调用BeginPaint 函数获取设备环境PAINTSTRUCT ps;hdc=BeginPaint(hwnd,&ps);//ps 为PAINTSTRUCT 类型结构由BeginPaint 函数获取的设备环境要用EndPaint 函数释放void EndPaint(HWND hwnd, PAINTSTRUCT &ps)b、调用GetDC 函数如果绘图工作并非由WM_PAINT 消息驱动,则调用GetDC 函数获取设备环境。