当前位置:文档之家› VC++实验报告(1,2,3)

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

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

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

class Vehicle

{

public:

Vehicle(float speed,int total)

{

speed = speed;

total = total;

cout<<”constructor is called!” <

}

void ShowMember()

{

cout<

}

private:

float speed;

int total;

}

int main()

{

Vehicle a(120,4);

a. ShowMember();

Vehicle b;

a. ShowMember();

}

(1)编译该程序,修改程序错误

(2)分别在创建对象,构造函数处设置断点,调试运行。(3)写出程序运行结果

2.Windows SDK应用程序编写

下面是一个SDK应用程序的示例,该程序的功能是构造一个编辑框控件和一个按钮。编辑框用于输入一元二次方程的系数,各系数之间用逗号分隔,当单击“计算”按钮,获取方程系数,然后将求得的根通过TextOut显示在窗口客户区中。

#include

#include

#include

// 求一元二次方程的根,函数返回根的个数

int GetRoot(float a, float b, float c, double *root)

{

double delta, deltasqrt;

delta = b*b - 4.0 * a * c;

if (delta<0.0) return 0; // 无根

deltasqrt = sqrt(delta);

if (a!=0.0) {

root[0] = (-b + deltasqrt)/(2.0 * a);

root[1] = (-b - deltasqrt)/(2.0 * a);

} else

if (b!=0.0) root[0] = root[1] = -c/b;

else return 0;

if (root[0] == root[1]) return 1;

else return 2;

}

char str[80];

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); // 窗口过程

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,

LPSTR lpCmdLine, int nCmdShow)

{

HWND hwnd ; // 窗口句柄

MSG msg ; // 消息

WNDCLASS wndclass ; // 窗口类

wndclass.style = CS_HREDRAW | CS_VREDRAW ;

wndclass.lpfnWndProc = WndProc ;

wndclass.cbClsExtra = 0 ;

wndclass.cbWndExtra = 0 ;

wndclass.hInstance = hInstance ;

wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;

wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;

wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;

wndclass.lpszMenuName = NULL ;

wndclass.lpszClassName = "SDKWin"; // 窗口类名

if (!RegisterClass (&wndclass)) // 注册窗口

{

MessageBox (NULL, "窗口注册失败!", "HelloWin", 0) ; return 0 ;

}

// 创建窗口

hwnd = CreateWindow ("SDKWin", // 窗口类名

"实验1——Windows编程基础", // 窗口标题

WS_OVERLAPPEDWINDOW, // 窗口样式

CW_USEDEFAULT, // 窗口最初的x 位置

CW_USEDEFAULT, // 窗口最初的y 位置

CW_USEDEFAULT, // 窗口最初的x 大小

CW_USEDEFAULT, // 窗口最初的y 大小

NULL, // 父窗口句柄

NULL, // 窗口菜单句柄

hInstance, // 应用程序实例句柄

NULL) ; // 创建窗口的参数ShowWindow (hwnd, nCmdShow) ; // 显示窗口

UpdateWindow (hwnd) ; // 更新窗口,包括窗口的客户区while (GetMessage (&msg, NULL, 0, 0)) {

TranslateMessage (&msg) ; // 转换某些键盘消息

DispatchMessage (&msg) ; // 将消息发送给窗口过程,这里是WndProc }

return msg.wParam ;

}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {

HDC hdc;

PAINTSTRUCT ps;

static HWND hwndButton, hwndEdit;

char strEdit[80], strA[3][80], strHint[80];

float a[3];

double root[2];

int i, j, k, m;

switch (message)

{

case WM_CREATE: // 窗口创建产生的消息

hwndEdit = CreateWindow("edit", NULL, WS_CHILD|WS_VISIBLE|WS_ BORDER,

10, 60, 200, 25, hwnd, NULL, NULL, NULL );

hwndButton = CreateWindow("button", "计算",

WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,

240, 60, 80, 25, hwnd, NULL, NULL, NULL );

return 0 ;

case WM_COMMAND: // 命令消息,控件产生的通知代码在wParam的高字中

if (((HWND)lParam == hwndButton )&&( HIWORD(wParam) == BN_CLICKED )){ // 获取编辑框控件的内容,并将其转换成float数值

GetWindowText( hwndEdit, strEdit, 80); // 获取编辑框内容

// 分隔字符串

k = 0; m = 0;

for (j=0; j<80; j++){

if (strEdit[j] == ','){

k++; m = 0;

}

else {

strA[k][m] = strEdit[j]; m++;

}

}

for (i=0; i<3; i++)

a[i] = (float)atof(strA[i]); // 将字符串转换成float数值

int n = GetRoot(a[0], a[1], a[2], root);

if (n<1) strcpy(str, "方程无根!") ;

else sprintf(str,"方程的解为:%f, %f", root[0], root[1]);

InvalidateRect(hwnd, NULL, TRUE);

}

case WM_PAINT:

hdc = BeginPaint(hwnd, &ps);

strcpy(strHint, "请输入一元二次方程的3个系数,中间用逗号分隔");

TextOut(hdc, 10, 40, strHint, strlen(strHint));

TextOut(hdc, 10, 90, str, strlen(str));

EndPaint(hwnd, &ps);

return 0 ;

case WM_DESTROY: // 当窗口关闭时产生的消息

PostQuitMessage (0) ;

return 0 ;

}

return DefWindowProc (hwnd, message, wParam, lParam) ; // 执行默认的消息处理

}

(1)请仔细阅读该程序,写出该程序的设计思路。

(2)参考上面的代码,使用SDK方式编写一窗口应用程序,能实现简单的画线功能。

a.设计思想

b.程序源代码(要求有详细的注释)

c.调试分析&运行结果

d. 用户使用说明(输入/ 输出规定)

实验2 类和对象

一、实验目的

1. 掌握类的定义方法,能合理指定类中成员的访问权限。

2. 学习对象的说明和使用方法。

3. 灵活运用类和对象的相关知识进行综合程序设计。

二、实验知识点概念

类是对同一类事物的抽象描述,其数据成员用于描述该类事物的属性,成员函数完成修改、获取属性值或实现基于属性的某些操作。类不占用存储空间。对象是类的实例,对象占用存储空间。C++中类与结构体并没有本质的区别,结构体中也可以定义成员函数,也可以指定各个成员的访问权限。两者的唯一差异在于:结构中成员的缺省访问权限是公有的,而类中成员的缺省访问权限是私有的。

三、实验题目

1.设计个人信息类CPerson 和学生成绩类CScore 。其中,CPerson 类的数据成员是姓名和学号;CScore 类的数据成员除了三门成绩外,还有一个CPerson 类对象stu 。

2.设计数据操作类CStack ,它使用数组来动态存储CScore 类对象,并模拟栈的操作:push (压入)与pop (弹出)。栈是一种“FILO ”(先进后出)或“LIFO ”(后进先出)的存储结构。如图2-1所示,它占用一块连续的内存空间,有两个端点:一个端点是固定的,称为栈底;另一个端点是活动的,称为栈顶。操作只能在栈顶进行,建立一个栈先要开辟栈空间,且为了指示栈顶位置还要设定一个指针,称为栈顶指针(图2-1中的SP )。

初建栈时,栈顶指针SP 指向栈底,如图2-1(a )所示。当向栈内压入一个元素d1时,先向栈顶写入d1,再将SP++,如图2-1(b )所示。再压入一个元素d2时,先向栈顶写入d2,再将SP++,如图2-1(c )所示。可见,栈顶总是用于存放下一个元素。当栈内弹出一个元素d2时,直接执行SP--,然后返回SP 中的内容,如图2-1(d )所示。这样,当再次压入新元素时,d2被覆盖。

(a)空栈 (b)压入d1

图2-1 栈模型

(c)压入d2 (d)弹出d2

图2-1 栈模型

四、程序思路

五、程序源代码(要求有详细的注释)

SP

SP

六、用户使用说明(输入/ 输出规定)

七、调试分析&运行结果

实验3 继承和派生

一、实验目的

继承与派生是面向对象的特性,是面向对象程序设计模拟客观世界的手段之一,通过实验要求掌握:

1. 掌握类的继承与派生关系及实现方法,理解类的层次结构。

2. 掌握派生类构造函数初始化基类成员的方法。

3. 灵活运用继承和派生的相关知识进行综合程序设计。

二、实验知识点概念

类的继承是新的类从已有类那里得到已有的特性。从已有的类产生新类的过程就是类的派生。在继承过程中,原有的类或已经存在的用来派生新类的类称为基类或父类,而由已经存在的类派生出的新类则称为派生类或子类。

根据派生类所拥有的基类数目不同,可以分为单继承和多继承。一个类只有一个直接基类时,称为单继承;而一个类同时有多个直接基类时,则称为多继承。

三、实验题目

编写一个程序实现小型公司的工资管理。该公司主要有4类人员:经理、兼职技术人员、销售员和销售经理。要求存储这些人员的编号、姓名和月工资,计算月工资并显示全部信息。月工资计算办法是:经理拿固定月薪8000元,兼职技术人员按每小时100元领取月薪,销售员按该当月销售额的4%提成,销售经理即拿固定月工资也领取销售提成,固定月工资为5000元,销售提成为所管辖部门当月销售总额的5%。

四、程序思路

五、程序源代码(要求有详细的注释)

六、用户使用说明(输入/ 输出规定)

七、调试分析运行结果

VC++实验报告书

一、设计方案及功能描述 图像平滑往往使图像中的边界、轮廓变的模糊,为了减少这类不利效果的影响,这就需要利用图像鋭化技术,使图像的边缘变的清晰。图像銳化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变的清晰,经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可以对其进行逆运算(如微分运算)就可以使图像变的清晰。 对图像f(x,y),在点(x,y)处的梯是一个矢量 G=[f(x,y)]=[?f ?x ,?f ?y ] 梯度的方向在函数f(x,y)最大变化率的方向上,梯度的幅度G M[ f(x,y)]可由下式给出: G M[ f(x,y)]=(?f ?x )2+(?f ?y )2 由上式可知,梯度的数值是f(x,y)在其最大变化率的方向上的单位距离所增加的量。 对数字图像,微分?f ?x 和?f ?y 可用差分近似。差分运算近似后的梯度表达式为 G M[ f(x,y)]=f x,y?f(x+1,y)2+f x,y?f(x,y+1)2 对于图像f(x,y),上式的计算量很大,因此在实际计算中常用绝对值代替平方和平方根运算,梯度模值近似为 运用双方向一次微分运算,算出梯度后用梯度值替代该点的灰度值。在图像的最后一行或最后一列无法计算像素梯度时,一般用前一行或前一列的梯度值近似代替。 为了在不破坏图像背景的前提下更好地增强边缘,也可以对上述直接用梯度值代替灰度值的方法进行改进,即利用门限判断梯度锐化方法。具体公式如下: G M[ f(x,y)]= G M f x,y+100, G M[ f(x,y)]≥T f x,y,其他 对于图像而言,物体与物体之间,背景和背景之间的梯度变化一般很小,灰度变化较大的地方一般集中在图像的边缘上,也就是物体和背景交界的地方,当设定一个合适的阈值T,G M[ f(x,y)]大于等于T就认为该像素点处于图像的边缘,对梯度值加上100,以使边缘变亮,而对于G M[ f(x,y)]小于T就认为像素点是同类像素点。这样就增加了物体的边界,又同时保留了图像的背景的原来的状态。

VC++实验报告1

实验一、HelloWorld在VC上的实现 姓名:郭殷蓉学号:E10700102 班级:10数媒1班 1.1实验目的 ●掌握Windows程序基本的运行原理。 ●学会编写简单的Windows程序。 1.2实验平台 ●Windows XP professional操作系统。 ●VC6.0集成开发环境。 1.3实验内容 ●用Windows API(SDK)实现图形化HellowWorld程序。 ●用MFC类库实现图形化HellowWorld程序。 1.4实验原理 ●Windows操作介绍 Windows是一种基于图形界面的多任务操作系统。对于普通用户来说,Windows图形化界面友好、操作简单,用户不需要花费长时间学习如何使用计算机和新程序,因为所有的Windows应用程序都具相近的外观和感觉;对于程序员来说,标准化的图形用户界面来自于Windows构造菜单和对话框的内置程序,这些工作由Windows处理,与应用程序无关,使程序员可以编写出易于用户操作的程序。 ●Windows编程模型 Windows程序采用如下图所示的事件驱动编程模型,应用程序通过处理操作系统发送出来的消息来响应事件。消息处理是所有Windows应用程序的的核心。Windows程序的进入点是WinMain函数,但大多时候操作是在成为窗口过程的函数中进行的。窗口过程函数处理发送给窗口的消息。WinMain创建该窗口并进入消息循环,即获取消息或将其调度给窗口过程。消息被检索之前处于消息队列中等待。 Windows定义了成百上千个不同的消息类型。大多数消息的开始字符为“WM”并带有下划线; 操作系统是通过消息机制(Message)来实现将事件传递给应用程序的。操作系统将每个事件都包装成一个称为消息的结构体MSG来传递给应用程序(详见MSDN)。 操作系统把它所能够完成的功能以函数的形式提供给应用程序使用,应用程序对这些函数的调用就叫做系统调用,这些函数的集合就是Windows操作系统提供给应 用程序编程的接口(Application Programming Interface),简称Windows API(C函数)。

如何写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:代码如下 #include using 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))

VC实现贪吃蛇的实验报告

题目:利用VC++实现贪吃蛇小游戏

一、题目:利用VC++实现贪吃蛇小游戏 利用VC++实现的贪吃蛇小游戏更加注重可视化。一条蛇在封闭的围墙内,在围墙内会随机出现一个食物,通过键盘上的W S A D四个键控制它向上,下,左,右四个方向移动。当蛇头撞到食物时表示将食物吃掉,这时蛇身增长一节,得分加一。接着随机生成食物,等待被蛇吃掉。如果在移动过程中撞到墙壁或者自己的身体,则游戏结束。游戏过程中,可以在菜单中选择暂停或者结束游戏,对游戏进行暂停或者退出。

二、编程要点(或基本思路、算法分析与说明): 本次游戏设计包含两大模块,一个模块是贪吃蛇游戏本身算法的设计,完成了贪吃蛇的食物产生,获取食物,蛇的移动等功能。另一个模块是利用MFC完成贪吃蛇的可视化显示,产生了一个对话框,在对话框可以控制游戏及游戏的显示。 1.贪吃蛇游戏算法设计包括: <1>果实出现的设计思路: (1)采用随机数生成果实出现坐标 (2)判断当前生成的果实是否在贪吃蛇身体范围内。 (3)如果在,重新生成直到不在为止。如果不在,则把坐标位置返回给调用对象。 <2>贪吃蛇更新的算法设计 (1)接收玩家按下的方向键消息,并保存到方向变量中。 (2)定义一个时间定时器,用来控制蛇运动的速度。 (3)当每次时间间隔到达时,则根据方向变量来更新贪吃蛇curr(即贪吃蛇身体)向量。 (4)判断curr向量的第一个元素中的坐标数据是否碰到边界或者蛇身,如果有,则游戏结束。否则,进行下一步。 (5)判断curr向量的第一个元素中的坐标数据是否与当前果实重合,如果有,表示贪吃蛇已经吃到果实。这时就向贪吃蛇curr向量添加一个元素,并重新生成一个果实。 (6)吃到食物后,得分会同步增加。 2.利用MFC完成贪吃蛇的可视化显示: 首先初始对话框,完成游戏的整体框架的显示。然后游戏玩家在菜单栏里选择开始,暂停,结束等,控制游戏状态。游戏开始后,玩家通过键盘上的消息控制蛇的运动。在函数DrawSnake(CDC *pDC,Snake snake),和DrawFood(CDC *pDC,SnakeFood f)完成对蛇和食物的重绘,从而显示出蛇的运动和对食物的获取。在OnPaint()函数中完成得分和游戏操作提示的显示。 本次游戏设计的主要功能函数如下: OnGameStart()(游戏开始函数), OnGamePauseStart()(游戏暂停函

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

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 class Vehicle { public: Vehicle(float speed,int total) { speed = speed; total = total; cout<<”constructor is called!” <

VC实验报告

黑龙江大学 实验报告 黑龙江大学教务处

实验名称:菜单、工具栏和状态栏的使用 实验目的 1 熟悉VC++编程环境 2 熟悉VC++框架程序 3 掌握基本程序调试技术 实验类型 // 设计型 实验环境 // 编程环境:Visual C++ .net // 运行环境:Windows XP等 实验要求 1.掌握菜单栏的使用,包括命令函数和命令更新函数的使用。 2.掌握快捷菜单的使用 3.掌握工具栏和状态栏的使用 4.在框架菜单栏上添加菜单项,并在其下拉菜单中定义下级子菜单。子菜单包括性别(男、女)、课目(数学、语文、英语)和成绩(优、良、中、及格和不及格)。 5.单击显示菜单项,可将上述菜单选项内容显示出来。 实验步骤 int Grade1; //成绩等级的变量 bool Math; //数学项的变量 bool English; //英语项的变量 bool Chinese; //语文项的变量 TCHAR sex[5]; //性别项的变量 CString str; 1、设计

先定义属性,性别,姓名,成绩单选,学科多选,显示进行图标设置和关联,右键事件菜单注释,进行新的菜单,关联并编辑。 2、编码 void CMy20156660yzn3View::OnContextMenu(CWnd* /* pWnd */, CPoint point) { //#ifndef SHARED_HANDLERS //theApp.GetContextMenuManager()->ShowPopupMenu(IDR_POPUP_EDIT, point.x, point.y, this, TRUE); //#endif CMenu menu; menu.LoadMenu(IDR_MENU1); menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this); } void CMy20156660yzn3View::OnContextMenu(CWnd* /* pWnd */, CPoint point) { //#ifndef SHARED_HANDLERS //theApp.GetContextMenuManager()->ShowPopupMenu(IDR_POPUP_EDIT, point.x, point.y, this, TRUE); //#endif CMenu menu; menu.LoadMenu(IDR_MENU1); menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this); } 右键事件菜单 void CMy20156660yzn3View::OnShow() { // TODO: 在此添加命令处理程序代码 str = _T(""); str = str + name; str = str + _T(",性别为"); str = str + sex; str = str + _T(","); if (Math == true) str = str + _T("数学"); if (Chinese == true) str = str + _T("语文"); if (English == true) str = str + _T("英语");

HP-VC-FlexFabric实验报告

HP VC FlexFabric应用于VMware vSphere 4.1环境的基本配置实验 说明:本实验仅是VC FlexFabric用于VMware的功能测试,包括FCoE和Boot From SAN,不包含复杂网络配置。关于VC FlexFabric配置请参考其cookbook,链接如下: Hardware:BLc7000 一个(2OA +4PS +10FAN) BL460c G7一个(1P+6G+300G HDD) HP VC FlexFabric 10Gb/24-port Module一个 Brocade 8/12 SAN SW for HP BLc 一个 Cisco 3020 for HP BLc 一个 HP EVA4400 一个 OS:VMware vSphere 4.1 Firmware:OA—3.21 VCM—3.15 ILO 3—1.15 Topology:

1.关于HP VC FlexFabric模块: 要使用CAN网卡和配置VC FlexFabric需要先了解下面3个图的意思:

2.实验过程: 注意-----在进行实验之前需要将先后将OA、VC FlexFabric的firmware升级: OA要升级为3.0以上;VC FlexFabric必须为3.15,否则不具备配置FcoE的功能。 首先检查VC FlexFabric的firmware版本: VCM对浏览器的版本有一定要求,如果版本不符合要求有可能无法进行配置:

接下来看一下在OA里面BL460 G7的有关情况: 下图是未对VC FlexFabric配置前,刀片的上面有一个叹号 注意未配置VC FlexFabric前,网卡的信息:

VC++程序设计课内实验报告

实验报告 课程名称 VC++程序设计 专业班级电子0942 姓名 学号 电气与信息学院 和谐勤奋求是创新 实验教学考核和成绩评定办法 1.课内实验考核成绩,严格按照该课程教学大纲中明确规定的比重执行。实验成绩不合格者,不能参加课程考试,待补做合格后方能参加考试。 2.单独设立的实验课考核按百分制评分,考核内容应包括基本理论、实验原理和实验。3.实验考核内容包括:1)实验预习;2)实验过程(包括实验操作、实验记录和实验态度、表现);3)实验报告;权重分别为、、;原则上根据上述三个方面进行综合评定。学生未取得1)和2)项成绩时,第3)项成绩无效。 4.实验指导教师应严格按照考核内容分项给出评定成绩,并及时批改实验报告,给出综合成绩,反馈实验中出现的问题。实验成绩在教师手册中有记载。 实验报告主要内容 一.实验目的 二.实验仪器及设备 三.实验原理 四.实验步骤 五.实验记录及原始记录 六.数据处理及结论 七.实验体会(可选项) 注:1. 为了节省纸张,保护环境,便于保管实验报告,统一采用A4纸,实验报告建议双面打印(正文采用宋体五号字)或手写,右侧装订。 2. 实验类别指验证、演示、综合、设计、创新(研究)、操作六种类型实验。 3. 验证性实验:是指为了使学生巩固课程基本理论知识而开设的强调演示和证明,注重实验结果(事 实、概念或理论)的实验。 4. 综合性实验:是指实验内容涉及本课程的综合知识或本课程相关的课程知识的实验。 5. 设计性实验:是指给定实验目的、要求和实验条件,由学生自行设计实验方案并加以实现的实验。

一、实验目的 1.进一步加深对类和对象的理解。 2.掌握类的构造函数和析构函数的概念、意义和使用方法。 3.掌握重载构造函数的含义和使用。 4.编写一个较为复杂的类和对象的应用程序。 二、实验内容 1.设计一个程序,定义一个矩形类,包括数据成员和函数成员。要求有构造函数、析构函数,还有一个成员函数area( )用来计算并显示矩形的面积,并编写main函数进行测试。程序:# include<> # include<> class Rect { public: Rect(int l, int w); ~Rect(); int Area(); private: int nLength; int nWidth; }; Rect::Rect(int l, int w) {cout<<"executing constructor..."<

vc++实验报告

计算机与信息技术学院 综合性、设计性实验报告实验项目:熟悉重载函数的二异性错误

(熟悉重载函数的二异性错误) 一、实验目的: 1、熟悉重载函数的二异性错误。 2、熟悉基类成员调用的二义性错误。 3、进一步加深对二义性的理解。 4、在此基础上,进一步掌握重载函数和基类成员调用函数的综合应用。 二、实验仪器或设备:微型计算机。 三、总体设计 实验内容:总结重载函数的二义性错误和基类成员调用的二义性错误,并找到正确的解决方法。 四、实验步骤: 实验分三个阶段完成: 1、准备具有而异性错误的重载函数。 2、将这些程序进行编译,显示错误。 3、找到正确的解决方法。 在函数重载带有默认参数时要避免二义性 程序一: 编译结果: 分析: 1,当函数带有默认参数时,在声明的时候如果带了默认参数的值,那么在定义时就不应该再带,否则就会出现“redefinition of default parameter 3”这样的错误提醒。 2,由于使用函数的重载,在函数的调用时很方便,在这个程序中,两种形式的

sum函数都称为sum的“重载函数”。但是,由于在这个程序中,函数的重载带有默认参数,重载函数的参数个数和参数类型都相同,在调用sum(2,3)时,编译器无法准确的确定应该调用哪一个函数,因此会出现错误提示“error c2668’sum’:ambiguous call to overloaded function”。因此,当重载函数带有默认值的时候,注意应避免二义性。 程序二: 编译结果: 分析: 这个程序较上一个程序而言,解决了第一个问题,即在声明和定义的时候重复输入默认参数的值。 程序三: 运行结果:

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) {

VC++实验报告

安康学院电子与信息工程系实验报告 一、实验目的: 掌握Visual Studio集成环境使用的基本方法。 二、实验内容 实验代码: // ConsoleApplication1.cpp : 定义控制台应用程序的入口点。 // #include"stdafx.h" #include using namespace std; int main() { int temp; int a[10] = { 9,2,24,35,1,99,67,23,0,33 }; for (int i = 0;i <10;i++) { for (int j = i + 1;j < 10;j++) { if (a[i]>a[j]) { temp = a[i]; a[i] = a[j]; a[j] = temp; } } cout << a[i] << endl; } system("pause"); return 0; } 实验结果截图: 2.创建一个“基于对话框”的MFC应用程序,创建另一个“基于单文档”的MFC应用程序,比较这两种程序对应项目资源的相同和不同之处。

(1)选择主菜单上的“文件”—“新建”—“项目”菜单项,打开“新建项目”对话框在项目类型框中选择Visual C++,在最右边选择MFC应用程序,点击下一步。 图2-1新建MFC应用程序 (2)在MFC 应用程序向导中选择“基于对话框”点击下一步默认选项直到完成。 图2-2 MFC应用程序向导

图2-3 MFCApplication1解决方案资源管理器 图2-4 MFC框架程序MFCApplication1的运行结果 (3)选择主菜单上的“文件”—“新建”—“项目”菜单项,打开“新建项目”对话框在项目类型框中选择Visual C++,在最右边选择MFC应用程序,点击下一步。在MFC 应用程序向导中选择“基于单文档”点击下一步默认选项直到完成。

水果中维生素C含量测定实验报告

水果中维生素C含量测定 (一)维生素C有关概念介绍 ①基本定义 ②功效 ③营养价值 ④适宜人群与正常需求 ⑤VC与癌症 (二)研究活动原理与准备 ①实验原理 ②试剂和原料 ③实验步骤 (三)研究活动过程与总结 ①西瓜的取样及其VC含量测定 ②柑橘的取样及其VC含量测定 ③葡萄的取样及其VC含量测定 ④香蕉的取样及其VC含量测定 ⑤草莓的取样及其VC含量测定 ⑥分析实验误差与心得体会 一.维生素C有关概念介绍

1.基本定义 维生素C(Vitamin C ,Ascorbic Acid)又叫L-抗坏血酸,是一种水溶性维生素。食物中的维生素C被人体小肠上段吸收。一旦吸收,就分布到体内所有的水溶性结构中,正常成人体内的维生素C代谢活性池中约有1500mg维生素C,最高储存峰值为3000mg维生素C。正常情况下,维生素C 绝大部分在体内经代谢分解成草酸或与硫酸结合生成抗坏血酸-2-硫酸由尿排出;另一部分可直接由尿排出体外。 2.功效 1、胶原蛋白的合成:胶原蛋白的合成需要维生素C参加,所以VC缺乏,胶原蛋白不能正常合成,导致细胞连接障碍。人体由细胞组成,细胞靠细胞间质把它们联系起来,细胞间质的关键成分是胶原蛋白。胶原蛋白占身体蛋白质的1/3,生成结缔组织,构成身体骨架。如骨骼、血管、韧带等,决定了皮肤的弹性,保护大脑,并且有助于人体创伤的愈合。 2、治疗坏血病:血管壁的强度和VC有很大关系。微血管是所有血管中最细小的,管壁可能只有一个细胞的厚度,其强度、弹性是由负责连接细胞具有胶泥作用的胶原蛋白所决定。当体内VC不足,微血管容易破裂,血液流到邻近组织。这种情况在皮肤表面发生,则产生淤血、紫癍;在体内发生则引起疼痛和关节涨痛。严重情况在胃、肠道、鼻、肾脏及骨膜下面均可有出血现象,乃至死亡。 3、预防牙龈萎缩、出血:健康的牙床紧紧包住每一颗牙齿。牙龈是软组织,当缺乏蛋白质、钙、VC时易产生牙龈萎缩、出血。维生素C 略带酸性,作为微量营养素被摄入体内,经体内溶解、消化,其酸碱性对人体的影响是微乎其微的,所以不必过份在意它的酸碱性。维生素C有助巩固细胞组织,有助于胶原蛋白的合成,能强健骨骼及牙齿,还可预防牙龈出血,长期服用对牙齿、牙龈无害而且有益。 4、预防动脉硬化:可促进胆固醇的排泄,防止胆固醇在动脉内壁沉积,甚至可以使沉积的粥样斑块溶解。 5、抗氧化剂:可以保护其它抗氧化剂,如维生素A、维生素E、不饱和脂

VC++程序设计实验报告模版

VC++程序设计实验报告模版- 图文 西安科技大学 《VC++程序设计》 实验报告 题目科学计算器院、系(部) 计算机科学与技术学院专业及班级计科1202班学号1208030223 姓名黄朝平日期2014年4月13日 1 题目要求 通过做科学计算器课程设计熟悉VC++2008的操作环境,了解并会使用基于MFC 有关控件,熟悉静态编辑框、单选按钮和Button的使用。从而完成科学计算器的功能 2 功能需求 首先可以生成一个机遇MFC的对话框,可完成基本的加、减、乘、除运算,还可以求对数,求平方,求立方,以及求n次方,并且还可以开平方,开立方,开n次方等功能。 3 总体设计 3.1 系统模块 3.2 系统业务处理流程 给出系统业务处理流程图。

数字模块以及小数点单选钮控件模块其它功能键模块4 详细设计 根据功能模块,详细论述设计过程,给出主要实现代码。 首先打开VC++8.0,建立一个基于MFC的对话框工程,命名为SienceCalculator。为对话框增加按钮,并修改ID。ID标识标题处理函数ID_NUMBER1 1 OnNumberKey ID_NUMBER2 2 OnNumberKey ID_NUMBER3 3 OnNumberKey ID_NUMBER4 4 OnNumberKey ID_NUMBER5 5 OnNumberKey ID_NUMBER6 6 OnNumberKey ID_NUMBER7 7 OnNumberKey ID_NUMBER8 8 OnNumberKey ID_NUMBER9 9 OnNumberKey ID_NUMBER0 0 OnNumberKey ID_NUMBER_Point . OnNumberKey IDC_NUMBER_Inv Inv OnOperationKey IDC_NUMBER_Ln ln OnOperationKey 1 IDC_NUMBER_LBrack IDC_NUMBER_RBrack IDC_NUMBER_Int IDC_NUMBER_Sinh IDC_NUMBER_Sin IDC_NUMBER_Square IDC_NUMBER_Factorial IDC_NUMBER_Dms IDC_NUMBER_Cosh IDC_NUMBER_Cos IDC_NUMBER_Power IDC_NUMBER_OPower IDC_NUMBER_PI IDC_NUMBER_Tanh IDC_NUMBER_Tan IDC_NUMBER_Cubic IDC_NUMBER_OCubic IDC_NUMBER_OpenClose IDC_NUMBER_Exp IDC_NUMBER_Mod IDC_NUMBER_Log IDC_NUMBER_10Power IDC_NUMBER_MC IDC_NUMBER_MR IDC_NUMBER_MS IDC_NUMBER_MAdd IDC_NUMBER_MSub IDC_NUMBER_BackSpace IDC_NUMBER_ClearEnter IDC_NUMBER_Clear IDC_NUMBER_PlusMinus IDC_NUMBER_Sqrt IDC_NUMBER_Divide IDC_NUMBER_Multiply IDC_NUMBER_Add IDC_NUMBER_Subtract IDC_NUMBER_Percent IDC_NUMBER_Derivative IDC_NUMBER_Equal IDC_Degree IDC_Radian IDC_Gradient ( ) Int sinh Sin x2 n! dms cosh cos x y√x π tanh tan x 3 3√x F-E Exp mod log 10 MC MR MS M+ M- ← CE C ± √ / * + - % 1/X = 度弧度梯度OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey OnOperationKey

vc实验报告

实验四MFC图形绘制编程实验 一、实验目的 (1)熟悉Visual Studio开发环境; (2)掌握MFC消息映射的操作步骤; (3)掌握MFC图形输出的方法; (4)理解设备环境、画笔、画刷的概念,掌握常用的绘图函数。 二、实验内容 请编写程序,要求如下: (1)定义一支黄色画笔,绘制一条线段; (2)定义一支紫色画笔,绘制一条多段线; (3)定义一支红色画笔,绘制一个正方形,并用适当的画刷填充图形内部;(4)定义一支绿色画笔,绘制一个圆,并用适当的画刷填充图形内部; (5)定义一支蓝色画笔,绘制一个正六边形,并用适当的画刷填充图形内部。 三、实验程序清单 头文件程序: #includ e "afxwin.h" class CDemoWnd:public CFrameWnd { public: CDemoWnd(); ~CDemoWnd(); public: LRESULT OnPaint(WPARAM wParam,LPARAM lParam); DECLARE_MESSAGE_MAP() }; class CDemoApp:public CWinApp { public: BOOL InitInstance(); }; CDemoApp ThisApp; 源文件程序: #includ e "Demo.h" CDemoWnd::CDemoWnd() { } CDemoWnd::~CDemoWnd() { }

BEGIN_MESSAGE_MAP(CDemoWnd,CFrameWnd) ON_MESSAGE(WM_PAINT,OnPaint) END_MESSAGE_MAP() LRESULT CDemoWnd::OnPaint(WPARAM wParam,LPARAM lParam) { CPaintDC dc(this); CPen Pen; Pen.CreatePen(PS_SOLID,10,RGB(255,255,0));//yell ow dc.SelectObject(&Pen); dc.MoveTo(50,50);//线 dc.LineTo(100,100); CPen Pen2; Pen2.CreatePen(PS_SOLID,4,RGB(255,0,255)); dc.SelectObject(&Pen2); CPoint point[3]; point[0] = CPoint(100,100); point[1] = CPoint(200,100); point[2] = CPoint(200,300); dc.Polyline(point,3);//多段线 CPen Pen3; Pen3.CreatePen(PS_SOLID,4,RGB(255,0,0)); dc.SelectObject(&Pen3); dc.SelectStockObject(GRAY_BRUSH); dc.Rectangle(400,400,600,600); CPen Pen4; Pen4.CreatePen(PS_SOLID,4,RGB(0,255,0)); dc.SelectObject(&Pen4); dc.SelectStockObject(GRAY_BRUSH); dc.Ellipse(800,400,1000,600); CPen Pen5; Pen5.CreatePen(PS_SOLID,4,RGB(0,0,255)); dc.SelectObject(&Pen5); dc.SelectStockObject(GRAY_BRUSH);

vc图书馆管理系统实验报告

长安大学 VC++图书馆管理系统设计课程名称:Visual C++教程 题目:图书馆管理系统 专业班级:自动化4班 姓名:褚惠芬,姜毅佳 学号:

1绪论 需求背景 随着科学技术的不断提高,计算机科学日渐成熟,作为计算机应用的一部分,使用计算机对图书信息进行管理,具有手工管理所无法比拟的优点。图书管理系统的开发是一个老生常谈的问题,以其作为数据库开发的示例不仅是因为它的开放性,而且还因为它是一个开放的系统,比较成熟。 用计算机制作的图书信息管理系统还可以通过功能强大的Internet网及时的向读者发布图书的最新动态,因此,开发这样一套管理软件成为很有必要的事情。而今,这类相关的管理系统已广泛的应用在各行各业,成为各行业提高相关管理效率的重要手段。图书信息管理系统也在日益广泛地应用于各图书馆的管理中,大大提高了图书管理的相关管理效率,其在图书管理中所起的作用是显而易见的。 1.1.1开发目标 本次课题为图书信息管理系统,其主要包含图书基本信息和图书借阅系统,能进行图书信息的录入、读者登记、查询等功能。该软件为学校图书信息管理系统软件,是鉴于目前学校图书数剧增,图书信息呈爆炸性增长的前提下,图书馆对图书信息管理的自动化与准确化的要求日益强烈的背景下构思出来的,该软件设计完成后可用于所有中小型图书馆的图书信息的管理。 1.1.2开发意义 目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息,图书管理系统也是有了很大的发展,商业化的图书信息管理软件也不少,但本系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作。

基于VC++ 6.0的串口通信实验报告

网络与通信实验报告 题目:串口通行实验班级:0309103 学号:030910338 姓名:田静 指导老师:付大丰 日期:2012-10-21

一、实验要求 把两台计算机的串口通过串口线连在一起,通过串口实现两台计算机通讯。可以利用高级语言、C语言编程实现,要求程序界面友好,有发送和接收功能,其接收和发送内容可在屏幕上显示。 二、实验原理 串口通讯把数据的字节分解成单个的二进制比特流依次传输,其结构简单, 连接线少,应用非常广泛。实现串口通信的方法很多。如:利用标准通信函数实现串口通信、利用API实现串口通信和利用ActiveX控件实现。 本文主要采用ActiveX控件Microsoft CommunicationsControl(MSComm)编程,Windows平台先进的ActiveX技术使得对串口编程不再需要处理烦琐的细节。利用已有的AxtiveX控件,只需要编写少量的代码,就可以轻松高效地完成任务。 以下对ActiveX控件属性进行简单介绍,在ClassWizard中为新创建的通信控件定义成员对象(CMSComm m_comm),通过该对象便可以对串口属性进行设置,MSComm控件共有27个属性,这里只介绍其中几个常用属性: CommPort:设置并回通讯端口号,缺省为COMl。 Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。 PortOpen:设置并返回通讯端口的状态,也可以打开和关闭端口。 Input:从接收缓冲区返回和删除字符。 Output:向发送缓冲区写一个字符串。 InputLen:设置每次Input读入的字符个数,缺省值为0,表明读取接收缓冲区中的全部内容。 InBufferCount:返回接收缓冲区中已接收到的字符数,将其置0可以清除接收缓冲区。 InputMode:定义Input属性获取数据的方式(为0:文本方式;为1:二进制方式)。 RThreshold和SThreshold:表示在OnComm事件发生之前,接收缓冲区或发送缓冲区中可以接收的字符数。 三、实验步骤 1、建立应用工程 启动VC++6.0,创建一个基于对话框的MFC应用程序项目,选择Project菜单下Add to Project子菜单中的Components and Controls选项,在弹出的对话框中双击Registered ActiveX Controls项,则所有注册过的ActiveX控件出现在列表框中。选择Microsoft Communications Con—trol version 6.0,单击insert 按钮即可将通信控件插入该工程。添加该控件到对话框中,设置控件ID号为IDC _MSCOMM. 2、添加界面控件 将对话框中的按钮“取消”删除,将“确定”按钮改为“退出”。在对话框中添加适当的界面控件。本实验中需添加的标注用的静态控件、用于选择串口和设置波特率的组合框分别设置控件ID号为IDC_COMBO_SELECT和IDC _COMBO_BTL SET、添加控制开始发送/接收按钮控件并设置控件ID号为IDC_BUTTON_START,添加用于输入发送数据和输出接收数据的编辑框并设置控件ID号为IDC_EDIT_SEND

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