文档库 最新最全的文档下载
当前位置:文档库 › VC++实验报告(1,2,3_4)

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

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

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%。

四、程序思路

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

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

七、调试分析运行结果

实验4 多态性和虚函数

一、实验目的

1. 了解多态性在C++中的体现。

2. 掌握虚函数的应用。

3. 理解抽象类。

二、实验知识点概念

●多态性

?多态是指同样的消息被不同类型的对象接收时导致不同的行为,所谓消息是

指对类的成员函数调用,不同的行为是指不同的实现,也就是调用了不同的函数。

?多态性可分为四类:重载多态、强制多态、包含多态和参数多态。

?多态从实现的角度来讲可以划分为两类:编译时的多态和运行时的多态。编

译时的多态性是在编译的过程中确定了同名操作的具体操作对象,也就是通过重载函数来实现的。运行时的多态性是在程序运行过程中才动态地确定操作所针对的具体对象,就是用虚函数来实现的。

●虚函数

?虚函数是重载的另一种表现形式,它是一种动态的重载方式,它提供了一种

更为灵活的多态性机制。虚函数允许函数调用与函数体之间的联系在运行时才建立,也就是在运行时才决定如何动作,即所谓的“动态连接”。

?一般虚函数成员的定义语法是:

?virtual 函数类型函数名(形参表)

?虚函数的定义实际就是在原有的普通函数成员前面使用virtual关键字来限

定,虚函数声明只能出现在类定义中的函数原型声明中,而不能在成员的函数体中。

?运行过程中的多态需要满足三个条件,首先类之间应满足赋值兼容规则,其

二是要声明虚函数,第三是要由成员函数来调用或者是通过指针、引用来访问虚函数。

三、实验题目

1.将实验3的题目运用多态性进行改进。

2.以下两题选择一题实现(也可以两题都做)

(1)编写一个程序实现图书和杂志销售管理。当输入一系列图书和杂志销售记录后,将销售良好(图书每月售500本以上,杂志每月售2500本以上)的图书和杂志名称显示出来。

(2)定义一个抽象类CShape,包括纯虚函数Area()(用来计算面积)和SetData(用来重设形状大小)。然后派生出三角形CTriangle类,矩形CRect类,圆CCircle类,分别求其面积。最后定义一个CArea类,计算这几个形状的面积之和,各形状的数据通过CArea类构造函数或成员函数来设置。编写一个完整的程序。

四、程序思路

五、程序源代码(要有注释)

C上机实验报告实验四

实验四数组、指针与字符串 1.实验目的 1.学习使用数组 2.学习字符串数据的组织和处理 3.学习标准C++库的使用 4.掌握指针的使用方法 5.练习通过Debug观察指针的内容及其所指的对象的内容 6.联系通过动态内存分配实现动态数组,并体会指针在其中的作用 7.分别使用字符数组和标准C++库练习处理字符串的方法 2.实验要求 1.编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。 2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3.编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 4.使用string类定义字符串对象,重新实现上一小题。 5.定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。Display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性。实现并测试这个类。 6.定义包含5个元素的对象数组,每个元素都是Employee类型的对象。 7. (选做)修改实验4中的选做实验中的people(人员)类。具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”定义为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。 3.实验内容及实验步骤 1.编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。程序名:lab6_1.cpp。 2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过Debug观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。 3.编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。 4.使用string类定义字符串对象,编程实现两字符串的连接。在string类中已重载了运算符“+=”实现字符串的连接,可以使用这个功能。程序名:lab6_4.cpp。 5.在employee.h文件中定义Employee类。Employee类具有姓名、街道地址、城市和邮编等私有数据成员,在成员函数中,构造函数用来初始化所有数据成员;display()中使用cout显示

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就认为像素点是同类像素点。这样就增加了物体的边界,又同时保留了图像的背景的原来的状态。

微机原理实验四实验报告

实验报告

实验四 8251可编程串行口与PC机通信实验一、实验要求 利用实验箱内的8251A芯片,实现与PC机的通信。 二、实验目的 1.掌握8251A芯片结构和编程方法; 2.了解实现串行通信的硬件环境,数据格式和数据交换协议; 3.了解PC机通信的基本要求。 三、实验原理 (一)8251A芯片工作方式配置: 1. 8个数据位; 2.无奇偶校验位; 3.1个停止位; 4.波特率因子设为16; 5. 波特率设为9600。 (二)8251A主要寄存器说明 图4-1 模式字 图4-2 命令字

CO MMAN D I NSTR UCT ION FO RMA T 图4-3 状态字 (三)8251编程 对8251 的编程就是对8251 的寄存器的操作,下面分别给出8251 的几个寄存器的格式。(1)方式控制字 方式控制字用来指定通信方式及其方式下的数据格式,具体各位的定义如图4-4所示。 图4-4 方式控制字说明 (2)命令控制字 命令控制字用于指定8251 进行某种操作(如发送、接收、内部复位和检测同步字符等)或处于某种工作状态,以便接收或发送数据。图4-5 所示的是8251 命令控制字各位的定义。 图4-5命令控制字说明 (3)状态字 CPU 通过状态字来了解8251 当前的工作状态,以决定下一步的操作,8251 的状态字如 图4-6所示。 图4-6 状态字说明 四、实验电路连接: 1.CS8251接228H,CS8279已固定接至238H; 2.扩展通信口18中的232RXD连8251RXD ,232TXD连8251TXD;

3.计算机的两个RS232通信口,一个连至仿真机通信口,一个连至扩展通信口18(所有通信口均为DB9)。注意:RS232通信口必须在设备断电状态下插拔! 图4-7 连线图 五、实验内容及要求 1. 将例程从PDF文档中导入到WMD86软件编辑环境中,调试通过。使用软件自带的示波器,观察Txd管脚的输出,验证结果的正确性。将结果截图保存,贴入实验报告。 2.剔除例程中冗余部分,实现对例程的精简和优化。将精简内容与相应理由写入实验报告。 3.将自己学号的后三位数字通过RS232端口的Txd管脚输出。使用软件自带的示波器,观察Txd管脚的输出,验证结果的正确性。将结果截图保存,贴入实验报告。 4.通过读状态寄存器的方法,获得发送移位寄存器是否为空的信息,实现学号后三位数字的循环发送。将结果截图保存,贴入实验报告。 5.给每帧数据间添加固定的时间间隔,时间间隔为10000个指令周期。将结果截图保存,

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函数)。

sql大作业实验报告

目录 第一章、需求分析 (2) 1 、需求概述 (2) 2 、功能简介 (2) 第二章、概念结构设计 (3) 1、在员工实体内的E-R图 (3) 2、部门实体内的E-R图 (3) 3、在工资实体内的E-R图 (3) 第三章、逻辑结构设计 (4) 第四章、物理结构设计 (4) 第五章、数据库的实施和维护 (5) 一、数据库的创建 (5) 二、表格的建立 (5) 1、建立Employsse表插入数据并设计相关的完整性约束 (5) 2、建立departments表插入数据并设计相关的完整性约束 (7) 3、建立 salary表插入数据并设计相关的完整性约束 (8) 三、建立视图 (9) 四、建立触发器 (10) 五、建立自定义函数 (12) 六、建立存储过程 (13) 第六章、总结 (14)

第一章、需求分析 1 、需求概述 针对现代化公司管理情况,员工管理工作是公司运行中的一个重环节,是整个公司管理的核心和基础。它的内容对于公司的决策者和管理者来说都至关重要,所以公司管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件工籍,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 公司员工管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性。 能够进行数据库的数据定义、数据操纵、数据控制等处理功能,进行联机处理的相应时间要短。 具体功能包括:系统应该提供员工数据的插入、删除、更新、查询;员工基本信息查询的功能。 2 、功能简介 员工管理系统它可以有效的管理员工信息情况。具体功能有以下几个方面。基本信息的添加,修改,删除和查询。学生信息管理包括添加、查看学生列表等功能。

计组-4位乘法器实验报告

实验4位乘法器实验报告 姓名:X XX 学号:X XX 专业:计算机科学与技术课程名称:计算机组成同组学生姓名:无 实验时间:实验地点:指导老师:XXX 一、实验目的和要求 1.熟练掌握乘法器的工作原理和逻辑功能 二、实验内容和原理 实验内容: 根据课本上例3-7的原理,来实现4位移位乘法器的设计。 具体要求:1. 乘数和被乘数都是4位 2. 生成的乘积是8位的 3. 计算中涉及的所有数都是无符号数 4.需要设计重置功能 5.需要分步计算出结果(4位乘数的运算,需要四步算出结果) 实验原理: 1.乘法器原理图

2.本实验的要求: 1.需要设计按钮和相应开关,来增加乘数和被乘数 2.每按一下M13,给一个时钟,数码管的左边两位显示每一步的乘 积 3.4步计算出最终结果后,LED灯亮,按RESET重新开始计算 三、主要仪器设备 1.Spartan-III开发板1套 2.装有ISE的PC机1台 四、操作方法与实验步骤 实验步骤: 1.创建新的工程和新的源文件 2.编写verilog代码(top模块、display模块、乘法运算模块、去抖动模块以及 UCF引脚) 3.进行编译 4.进行Debug 工作,通过编译。

5.. 生成FPGA代码,下载到实验板上并调试,看是否与实现了预期功能 操作方法: TOP: module alu_top(clk, switch, o_seg, o_sel); input wire clk; input wire[4:0] switch; output wire [7:0] o_seg; // 只需七段显示数字,不用小数点 output wire [3:0] o_sel; // 4个数码管的位选 wire[15:0] disp_num; reg [15:0] i_r, i_s; wire [15:0] disp_code; wire o_zf; //zero detector initial begin i_r <= 16'h1122; //0x1122 i_s <= 16'h3344; //0x3344 end alu M1(i_r, i_s, switch[4:2], o_zf, disp_code); display M3(clk, disp_num, o_seg, o_sel); assign disp_num = switch[0]?disp_code:(switch[1] ? i_s : i_r); endmodule

c++大作业学生实验报告

学生实验报告 实验课名称: C++程序设计 实验项目名称:综合大作业——学生成绩管理系统专业名称:电子信息工程 班级: 学号: 学生: 同组成员: 教师:

2011 年 6 月 23 日 题目:学生成绩管理系统 一、实验目的: (1)对C++语法、基础知识进行综合的复习。 (2)对C++语法、基础知识和编程技巧进行综合运用,编写具有一定综合应用价值的稍大一些的程序。培养学生分析和解决实际问题的能力,增强学生的自信心,提高学生学习专业课程的兴趣。 (3)熟悉掌握C++的语法和面向对象程序设计方法。 (4)培养学生的逻辑思维能力,编程能力和程序调试能力以及工程项目分析和管理能力。 二、设计任务与要求: (1)只能使用/C++语言,源程序要有适当的注释,使程序容易阅读。 (2)至少采用文本菜单界面(如果能采用图形菜单界面更好)。 (3)要求划分功能模块,各个功能分别使用函数来完成。 三、系统需求分析: 1.需求分析: 为了解决学生成绩管理过程中的一些简单问题,方便对学生成绩的管理 (录入,输出,查找,增加,删除,修改。) 系统功能分析: (1):学生成绩的基本信息:学号、、性别、C++成绩、数学成绩、英语成绩、 总分。 (2):具有录入信息、输出信息、查找信息、增加信息、删除信息、修改信息、 排序等功能。 2.系统功能模块(要求介绍各功能) (1)录入信息(Input):录入学生的信息。 (2)输出信息(Print):输出新录入的学生信息。 (3)查找信息(Find):查找已录入的学生信息。 (4)增加信息(Add):增加学生信息。 (5)删除信息(Remove):在查找到所要删除的学生成绩信息后进行删除并输出删除后其余信息。 (6)修改信息(Modify):在查到所要修改的学生信息后重新输入新的学生信息从而进行修改,然后输出修改后的所有信息。 (7)排序(Sort):按照学生学号进行排序。 3.模块功能框架图

如何写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))

Java程序设计大作业实验报告

目录 一、前言 (2) 二、需求分析 (3) 三、系统总体设计 (3) 3.1系统总体设计系统思路 (3) 3.2数据库设计 (4) 3.2.1 login1表的设计和数据 (4) 3.2.2 student表的设计和数据 (5) 3.2.3 course表的设计和数据 (5) 3.2.4 score表的设计和数据 (6) 3.3系统功能模块设计 (6) 四、系统详细设计 (7) 4.1登录模块 (7) 4.2 学生模块 (7) 4.3 教师模块 (8) 4.4 管理员模块 (8) 五、系统测试及运行结果 (9) 5.1 主界面 (9) 5.2 学生管理中心界面 (9) 5.3 教师管理中心界面 (10) 5.4 管理员管理中心界面 (10) 5.5 查询课表界面 (11) 5.6 查询成绩界面 (11) 5.7 查询教学情况界面 (11) 5.8 查询所有学生成绩界面 (12) 5.9 学生信息管理界面 (12) 5.10 学生成绩管理界面 (13) 5.11 用户管理界面 (13) 六、实验总结 (14) 七、参考文献 (14)

一、前言 随着计算机在人们生活中的普及和网络时代的来临,对信息的要求日益增加,学生信息管理业务受到了较为强烈的冲击,传统的手工管理方式传统的手工管理方式已不能适应现在的信息化社会。如何利用现有的先进计算机技术来解决学生信息管理成为当下的一个重要问题,学生信息管理系统是典型的信息管理系统,其开发主要就是针对前台的页面展示以及后台数据的管理。对于前者,要求应用程序功能完备,易于使用,界面简单;而对于后者,则要求数据库具有一致性、完整性,并能够依据前台的操作来对应操作后台数据库达到一定的安全性。 本学生信息管理系统主要采用的纯JAVA代码实现图形界面系统的开发,以及数据库知识进行数据的查询,删除,插入和更新。本系统主要分为三个部分:学生模块、教师模块、管理员模块。其中学生模块实现的功能:查询课表信息和查询成绩。教师模块实现的功能:查询课表信息、查询教学情况和查询所有学生的各科成绩。管理员模块实现的功能:课表信息的管理、学生信息管理、学生成绩管理和用户信息管理。

荧光定量实验报告(作业)

RT-qPCR比较不同样本中miR-21的相对表达差异 一、实验目的 1、掌握实时荧光定量PCR的实验原理。 2、掌握实时荧光定量PCR相对定量的分析方法。 二、实验原理 实时荧光定量PCR (Quantitative Real-time PCR)是一种在DNA扩增反应中,以荧光化学物质测每次聚合酶链式反应(PCR)循环后产物总量的方法。通过内参或者外参法对待测样品中的特定DNA序列进行定量分析的方法。荧光定量PCR 最常用的方法是 DNA 结合染料 SYBR Green Ⅰ的非特异性方法和 Taqman 水解探针的特异性方法。本实验中采用非特异性 SYBR Green I 染料法,SYBR Green I 是一种结合于所有ds DNA 双螺旋小沟区域的具有绿色激发波长的染料,在游离状态下会发出微弱的荧光,但一旦与双链DNA 结合后,荧光大大增强。因此,SYBR Green I 的荧光信号强度与双链DNA 的数量相关,可以根据荧光信号检测出PCR 体系存在的双链DNA 数量。 三、实验仪器、材料和试剂 实验仪器:PCR仪、荧光定量PCR仪 实验材料:MCF7细胞 实验试剂:逆转录试剂盒、SYBR GREEN试剂盒 四、实验步骤 4.1 MCF7细胞RNA提取(RNAiso Plus) 1)将生长至80%的MCF细胞消化为单细胞悬液,准备提取RNA; 2)9000g,2min离心,弃掉培养基,加1 ml RNAiso Plus用移液枪反复吹吸直至 裂解液中无明显沉淀,室温(15-30℃)静置5分钟; 3)加入氯仿(RNAiso Plus的1/5体积量),盖紧离心管盖,混合至溶液乳化呈 乳白色,室温静置5min; 4)12,000 g 4℃离心15分钟。从离心机中小心取出离心管,此时匀浆液分为三 层,即:无色的上清液(含RNA)、中间的白色蛋白层(大部分为DNA)及带有颜色的下层有机相。 5)吸取上清液转移至另一新的离心管中(切勿吸出白色中间层)。 6)向上清中加入0.5-1倍RNAiso Plus体积的异丙醇,上下颠倒离心管充分混匀

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()(游戏暂停函

虚拟仪器大作业实验报告

东南大学生物科学与医学工程学院 虚拟仪器实验报告 大作业 实验名称:基于MIT-BIH心率失常数据库的心电信号系统的设计专业:生物医学工程 姓名:学号: 同组人员:学号: 实验室: 综合楼716 实验时间:2013/11/28 评定成绩:审阅教师:

目录 一.实验目的 二.实验内容 基于MIT-BIH心率失常数据库的心电信号系统的设计 1.实验要求和说明 2.程序设计流程图 3.程序各版块介绍说明 4.前面板的设计 5.调试过程 6.结果及分析 三.实验收获及小结 四.参考文献

一.实验目的 现代医学表明,心电信号(ECG)含有临床诊断心血管疾病的大量信息,ECG的检测与分析在临床诊断中具有重要价值,是了解心脏的功能与状况、辅助诊断心血管疾病、评估各种治疗方法有效性的重要手段。 本次大作业利用具有直观图形化编程和强大数字信号处理功能的虚拟仪器编程语言LabVIEW作为开发平台,设计一个基于虚拟仪器的简单心电信号分析系统,该系统具有心电信号的读取,处理分析,波形显示、心率显示及报警,波形存储和回放等功能。 二.实验内容 1.实验内容及要求 基于MIT-BIH心率失常数据库的心电信号系统的设计 1. 本次大作业所用原始信号是从MIT-BIH(Massachusettes Institute of and Beth Israel Hospital,美国麻省理工学院和波士顿贝丝以色列医院)心率数据库(https://www.wendangku.net/doc/7a15849572.html,/physiobank/database/mitdb/)中选取心电信号作为实验分析的数据。设计的系统要求对原始心电信号进行读取、绘制出其时域波形,利用原始心电数据中的时间数据控制显示时间,并具有保存回放功能,同时具有心率过快或过缓报警提示功能。 2. 心电信号是微弱低频生理电信号,通常频率在0.05Hz~100Hz,幅值不超过 4mV,它通过安装在皮肤表面的电极来拾取。由于实际检测工况的非理想,在ECG 信号的采集过程中往往会受到工频噪声及电极极化等各种随机噪声的影响。噪声的存在降低了诊断的准确性。其中影响最大的是工频干扰和基线漂移噪声。因此,在ECG 信号检测过程中,如何抑制工频干扰和基线漂移等是必须解决的问题。要求选择并设计合适的滤波器,除去所给心电信号的工频干扰和基线漂移。 3. 检测心率:检测信号心电的R波,计算平均心率和实时心率(R-R波时间间隔 的倒数),并显示实时心率和平均心率。 4. 对任一路心电信号滤波前后的信号进行时域分析和频谱分析,分别显示出结 果。

实验报告四综述

成都信息工程大学遥感图像处理上机报告

1. 实验项目名称 遥感图像光谱增强处理 2. 实验目的 主成分分析:为了去除波段之间多余信息、将多波段的图像信息压缩到比原波段更有效的少数几个转换波段。 主成分逆变换:将主成分变换的图像重新恢复到RGB 彩色空间。缨帽变换:根据多光谱遥感中土壤、植被等信息在多维光谱空间中信息分布结构对图像 做的经验性线性正交变换。图像融合:将多源信道所采集到的关于同一目标的图像数据经过图像处理和计算机技术 等,最大限度的提取各自信道中的有利信息,最后综合成高质量的图像,以提高图像信息的利用率、改善计算机解译精度和可靠性、提升原始图像的空间分辨率和光谱分辨率,利于监测。 3. 实验原理 主成分分析法是一种降维的统计方法,它借助于一个正交变换,将其分量相关的原随机向量转化成其分量不相关的新随机向量,这在代数上表现为将原随机向量的协方差阵变换成对角形阵,在几何上表现为将原坐标系变换成新的正交坐标系,使之指向样本点散布最开的p 个正交方向,然后对多维变量系统进行降维处理,使之能以一个较高的精度转换成低维变量系统,再通过构造适当的价值函数,进一步把低维系统转化成一维系统。 缨帽变换又称KT 变换。是一种经验性的多波段图像的线性变换,是Kauth 和Thomas(1976) 在研究MSS 图像反映农作物和植被的生长过程时提出的。在研究过程中他们发现MSS 四个波段组成的四维空间中,植被的光谱数据点呈规律性分布,像缨帽状,因此将这种变换命名为缨帽变换。 图像融合就是通过一种特定算法将两幅或多幅图像合成为一幅新图像。该技术有基本的体系,主要包括的内容有:图像预处理,图像融合算法,图像融合评价,融合结果。图像融合系统的层次划分为:像素层融合、特征层融合、决策层融合,目前绝大多数融合算法研究都集中在这一层次上。 4. 数据来源

列控实验报告-作业5

轨道交通列车运行控制技术课程实验 姓名:张泽英 学号:13281150 班级:运输1305班 指导老师:尹相勇

目录 1.实验简介 (3) 1.1实验设备 (3) 1.2实验目的 (3) 1.3实验内容 (3) 1.4进路选择 (3) 2实验结果 (4) 2.1上行5股道发车进路 (4) 2.2下行4股道接车进路 (5) 2.3上行I股道通过进路 (5) 2.4由D13向I股道调车进路 (6) 2.5实验总表 (7)

1.1实验设备 本实验所用系统为计算机联锁车务仿真教学系统-6502模式,该系统将6502联锁操作平台底层联锁逻辑和模拟现场设备的状态及变化过程集合到一台计算机上构成学员机。 1.2实验目的 通过实验,了解和掌握办理列车进路、调车进路。了解设备道岔、信号随进路的变化状态。 1.3实验内容 按照给出的车站站场平面图,根据进路表和学号选一条发车进路、接车进路、通过进路和调车进路。每条进路以图表示并做出: (1)写出该进路的名称 (2)给出该进路的始端和终端 (3)给出该进路经过的道岔 (4)给出该进路经过的轨道电路 (5)画出该进路的平行进路 (6)给出该接车进路的抵触进路和敌对进路 1.4进路选择 我的学号是13281150,因此我选择了13、28、50号三条进路,及由D13向I股道的调车进路。具体情况如下表1所示: 表1 进路选择示意

在图上分别用不同颜色的线段标出了相关进路,白色为原本的进路、黄色为抵触进路、红色为敌对进路、蓝色为平行进路。 2.1上行5股道发车进路 图1 上行5股道发车进路示意图 (1)原进路:上行5股道丰台方向发车进路。(这是往丰台方向发车) 始端:5股道上行出站信号机S5, 终端:下行进站信号机XF 经过的道岔:21、9/11、1/3 经过的轨道电路:21DG 、11DG 、9DG 、3DG 、1DG 、IIAG (2)抵触进路:上行5股道东效方向发车进路。(这是往东效方向发车) 始端:5股道上行出站信号机S5,终端:下行进站信号机XD (3)敌对进路:D1到I 股道的调车进路。(应给出从某个信号机到某个信号机的调车进路,或从某个信号机到某股道的调车进路) 始端:调车信号机D1(XF 是进站信号机不在哪个股道),终端:I 道下行出站信号机XI (请分清出站和进站信号机) (4)平行进路:下行4股道发车进路。 始端:4股道下行方向出站信号机X4,终端:上行进站信号机S 抵触进路 原进路 敌对进路 平行进路

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!” <

《数字逻辑电路》期末大作业实验报告

大连外国语大学软件学院 1数字逻辑电路概述 数字逻辑是数字电路逻辑设计的简称,其内容是应用数字电路进行数字系统逻辑设计。电子数字计算机是由具有各种逻辑功能的逻辑部件组成的,这些逻辑部件按其结构可分为组合逻辑电路和时序逻辑电路。组合逻辑电路是由与门、或门和非门等门电路组合形成的逻辑电路;时序逻辑电路是由触发器和门电路组成的具有记忆能力的逻辑电路。有了组合逻辑电路和时序逻辑电路,再进行合理的设计和安排,就可以表示和实现布尔代数的基本运算。 数字逻辑电路有易于集成、传输质量高、有运算和逻辑推理能力等优点,因此被广泛用于计算机、自动控制、通信、测量等领域。一般家电产品中,如定时器、告警器、控制器、电子钟表、电子玩具等都要用数字逻辑电路。 (阐述数字逻辑的现状、目的、意义、功能、方法及作用)2第一种数字逻辑电路 方法原理及功能 数据选择器又称为多路开关,是一种重要的组合逻辑器件,它可以实现从多路数据中选择任何一路数据输出,选择的控制由专门的端口编码决定,称为地址码,数据选择器可以完成很多的逻辑功能,例如函数发生器、桶形移位器、并串转换器、波形产生器等。 1、与非门实现二选一数据选择器: 用一种74SL153及门电路设计实现一位全加器,输入用三个单刀双掷开关分别代表A、B、C,输出用两个指示灯分别代表L1、L1。 设计过程与结果(描述方法的操作过程和结果,配截图详细介绍) 在元件库中单击TTL,再单击74LS系列,选中74LS153D。

仿真结果实际结果 L 1 亮单独打开开关A,B,C时; L1灯泡亮 L 2 亮任意打开两个开关; 灯泡L2亮

L 1 和 L 2 都 亮 同时打开开关A,B,C时; 灯泡L1,L2同时亮。 心得体会 经过许多次的失败,在不断尝试中选择一个适合的方式去解决问题,加强对电路的 理解。通过该实验可以培养我们的动手能力和对数字电路的理解。经检验,符合真值表, 达到数据选择的作用。74ls153为双四选一数据选择器,几多一个非门和或门可以组成 数据比较器。能更好的掌握相关芯片的知识,了解其用途。 失败电路一: 失败电路二:

C上机实验报告 实验四

精品文档 实验四数组、指针与字符串 1.实验目的 1.学习使用数组 2.学习字符串数据的组织和处理 3.学习标准C++库的使用 4.掌握指针的使用方法 5.练习通过Debug观察指针的内容及其所指的对象的内容 6.联系通过动态内存分配实现动态数组,并体会指针在其中的作用 7.分别使用字符数组和标准C++库练习处理字符串的方法 2.实验要求 1.编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。 2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3.编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 4.使用string类定义字符串对象,重新实现上一小题。 5.定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。Display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性。实现并测试这个类。 6.定义包含5个元素的对象数组,每个元素都是Employee类型的对象。 7. (选做)修改实验4中的选做实验中的people(人员)类。具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”定义为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。 3.实验内容及实验步骤 1.编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。程序名:lab6_1.cpp。 2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过Debug观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。 3.编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。

实验报告作业

反应时实验报告 反应时间是心理实验中使用最早、应用最广泛的反应变量之一。反应时也被称为“反应的潜伏期”,是指刺激施于有机体之后到明显反应开始所需要的时间。反应是包括三个时段:第一时段,刺激使感受器产生了兴奋,其冲动传递到感觉神经元的时间;第二时段,神经冲动经感觉神经传至大脑皮质的感觉中枢和运动中枢,从那里经运动中枢到效应器官的时间;第三时段,效应器官接受冲动后开始效应活动的时间。简单反应时间是给予被试者以单一的刺激,要求他作同样的反应。被试的任务很简单,他预先已知道将有什么样的刺激出现并需要作出什么样的反应。选择反应时间是根据不同的刺激物,在各种可能性中选择一种符合要求的反应。对反应时间的研究最先始于天文学家Bessel对于人差方程的研究。最早将反应时间的测量用于心理实验的是荷兰生理学家Donders.1879年以后,冯特及其学生对反应时间进行了一系列实验研究。认知心理学兴起后,为了揭示信息加工过程和特点,反应时间的测量也获得进一步的发展。20世纪80年代,内隐学习领域出现了一种名为序列反应时的研究方法,10年后,刚刚萌发的内隐社会认知领域也出现了一种基于反应时范式的研究方法——内隐联想测验。其中,系列反应时范式是尼森(M.J.Nissen)比勒姆(P.Bullemer)于1978年提出的。缪森和斯奎尔(Musen&Squire,1993)的研究发现,正常成人和健忘症患者在“词-色”对应规则保持不变的前六组实验中,反应时逐渐下降;而对应规则发生变化时,反应时又迅速上升,说明了被试能够习得规则。亨特和阿斯林(Hunt&Aslin,2001)对斯戴德勒(Stadler,1992)的研究进行验证,认为他的实验说明了被试对于概率信息的内隐习得过程。内隐联想试验是有格林沃尔德(Greenwald)在1998年提出的,测验中以反应时为指标通过一种计算机化的分类任务来测量概念词和属性词之间的自动化联系的紧密程度,继而对个体的内隐态度等内因社会认知进行测量。且格林沃尔德和诺塞克(Greenwald&Nosek,2003)对传统的内隐联想测验数据处理法又进行了分析发线它为考虑到速度-准确性权衡、反应极值和老年人的反应迟缓等因素又提出了衡量内隐联想测验数据处理法好坏的几个标准。雷莉等(2004)认为,反应时技术提供的客观量化数据有助于揭示消费者内在的品牌联想结构,在市场研究中具有广泛的应用前景。陈红等(2008)运用反应时技术研究支持了他们负面身体自我图式指导认知加工的假设。

西北工业大学-操作系统实验报告-实验四

实验四进程与线程 一、实验目的 (1)理解进程的独立空间; (2)理解线程的相关概念。 二、实验内容与要求 1、查阅资料,掌握进程创建和构造的相关知识和线程创建和构造的相关知识,了解C 语言程序编写的相关知识; 2、理解进程的独立空间的实验内容及步骤 (1)编写一个程序,在其 main()函数中定义一个变量 shared,对其进行循环加/减操作,并输出每次操作后的结果; (2)使用系统调用 fork()创建子进程,观察该变量的变化; (3)修改程序把 shared变量定义到 main()函数之外,重复第(2)步操作,观察该变量的变化。 3、理解线程的实验步骤 (1)编写一个程序,在其 main()函数中创建一个(或多个)线程,观察该线程是如何与主线程并发运行的。输出每次操作后的结果; (2)在 main()函数外定义一个变量shared(全局变量),在main()中创建一个线程,在 main()中和新线程shared进行循环加/减操作,观察该变量的变化; (3)修改程序把shared变量定义到 main()函数之内,重复第(2)步操作,观察该变量的变化。 4、对整个实验过程进行分析总结,给出详细步骤; (1) 观察上述进程执行结果,并分析原因;

(2) 提交源程序清单,并附加流程图与注释。 三、实验过程 1、进程的与线程的创建和构造 (1).进程的创建和构造 进程简单来说就是在操作系统中运行的程序,它是操作系统资源管理的最小单位。但是进程是一个动态的实体,它是程序的一次执行过程。进程和程序的区别在于:进程是动态的,程序是静态的,进程是运行中的程序,而程序是一些保存在硬盘上的可执行代码。 新的进程通过克隆旧的程序(当前进程)而建立。fork() 和 clone()(对于线程)系统调用可用来建立新的进程。 (2)线程的创建和构造 线程也称做轻量级进程。就像进程一样,线程在程序中是独立的、并发的执行路径,每个线程有它自己的堆栈、自己的程序计数器和自己的局部变量。但是,与独立的进程相比,进程中的线程之间的独立程度要小。它们共享内存、文件句柄和其他每个进程应有的状态。 线程的出现也并不是为了取代进程,而是对进程的功能作了扩展。进程可以支持多个线程,它们看似同时执行,但相互之间并不同步。一个进程中的多个线程共享相同的内存地址空间,这就意味着它们可以访问相同的变量和对象,而且它们从同一堆中分配对象。尽管这让线程之间共享信息变得更容易,但你必须小心,确保它们不会妨碍同一进程里的其他线程。 线程与进程相似,是一段完成某个特定功能的代码,是程序中单个顺序的流控制,但与进程不同的是,同类的多个线程是共享同一块内存空间和一组系统资源的,而线程本身的数据通常只有微处理器的寄存器数据,以及一个供程序执行时使用的堆栈。所以系统在产生一个线程,或者在各个线程之间切换时,负担要比进程小得多,正因如此,线程也被称为轻型进程(light-weight process)。一个进程中可以包含多个线程。 2、理解进程的独立空间 流程图如下所示:

相关文档