文档库 最新最全的文档下载
当前位置:文档库 › 南昌航空大学C++实验指导书

南昌航空大学C++实验指导书

南昌航空大学C++实验指导书
南昌航空大学C++实验指导书

面向对象程序设计

任课教师:陈斌全

二零零七年九月

前言

本指导书是软件工程专业本科课程《面向对象程序设计B》的实验指导书,一般人员也可以使用它作为学习C++语言的上机指导。因为选择以Microsoft公司的C++开发环境Visual C++6.0作为实验环境,因此书的前一部分介绍了Visual C++的一些基本知识,并且在实验进行的过程中穿插介绍使用Visual C++的一些技巧。

书的内容分为两大部分:第一部分介绍Visual C++实验环境;第二部分是具体的实验安排。

使用本书前,请先阅读以下内容:

1.C++语言实验环境配置要求

硬件配置:586以上PC兼容机或品牌机,配有彩色显示器、鼠标、键盘,内存不小于20MB,硬盘自由空间不少于60MB。推荐配置为内存32MB或64MB(或以上),硬盘自由空间500MB以上。

软件配置:操作系统:Windows95, Windows98, Windows NT3.51以上版本。

开发集成环境:Microsoft Visual C++5.0以上版本

2.建立自己的工作目录

你需要在计算机上先建立自己的工作目录,所有的实验都在该工作目录下进行。使用Visual C++建立新项目时,需要指定该目录作为项目所在的目录。本书中假设你的工作目录为c:\student\your_name,具体的实验目录由你的指导教师指定。

3.安装Visual C++

Visual C++ 6.0和Visual C++ 5.0最大的不同是在联机帮助系统上做了很大改变。Visual C++ 5.0的帮助系统直接集成在开发环境之中,在安装Visual C++ 5.0时就可以选择安装帮助内容。而Visual C++ 6.0的联机帮助系统采用了MSDN(Microsoft Developer Network)库,在安装Visual C++ 6.0时,只安装了MSDN的索引,实际的内容在光盘上。如果希望能脱离光盘使用帮助系统,需要在安装了Visual C++ 6.0以后,再运行MSDN的安装程序,把完整的库装到硬盘上。

第一部分Visual C++实验环境介绍

一、Visual C++简介

Visual C++是Microsoft公司的Visual Studio开发工具箱中的一个C++程序开发包。VisualStudio提供了一整套开发Internet和Windows应用程序的工具,包括VisualC++, Visual Basic, Visual Foxpro, Visual InterDev, Visual J++以及其他辅助工具,如代码管理工具Visual SourceSafe和联机帮助系统MSDN。Visual C++包中除包括C++编译器外,还包括所有的库、例子和为创建Windows应用程序所需要的文档。

从最早期的1.0版本,发展到最新的6.0版本,Visual C++已经有了很大的变化,在界面、功能、库支持方面都有许多的增强。最新的6.0版本在编译器、MFC类库、编辑器以及联机帮助系统等方面都比以前的版本做了较大改进。

Visual C++一般分为三个版本:学习版、专业版和企业版,不同的版本适合于不同类型的应用开发。实验中可以使用这三个版本的任意一种。

Visual C++集成开发环境(IDE)

集成开发环境(IDE)是一个将程序编辑器、编译器、调试工具和其他建立应用程序的工具集成在一起的用于开发应用程序的软件系统。Visual C++软件包中的Developer Studio就是一个集成开发环境,它集成了各种开发工具和VC编译器。程序员可以在不离开该环境的情况下编辑、编译、调试和运行一个应用程序。IDE中还提供大量在线帮助信息协助程序员做好开发工作。Developer Studio 中除了程序编辑器、资源编辑器、编译器、调试器外,还有各种工具和向导(如AppWizard和ClassWizard),以及MFC类库,这些都可以帮助程序员快速而正确地开发出应用程序。

向导(Wizard)

向导是一个通过一步步的帮助引导你工作的工具。Developer Studio中包含三个向导,用来帮助程序员开发简单的Windows程序,它们是:

AppWizard:用来创建一个Windows程序的基本框架结构。AppWizard向导会一步步向程序员提出问题,询问他所创建的项目的特征,然后AppWizard会根据这些特征自动生成一个可以执行的程序框架,程序员然后可以在这个框架下进一步填充内容。AppWizard支持三类程序:基于视图/文档结构的单文档应用、基于视图/文档结构的多文档应用程序和基于对话框的应用程序。也可以利用AppWizard生成最简单的控制台应用程序(类似于DOS下用字符输入输出的程序)。

ClassWizard:用来定义AppWizard所创建的程序中的类。可以利用ClassWizard在项目中增加类、为类增加处理消息的函数等。ClassWizard也可以管理包含在对话框中的控件,它可以将MFC对象或者类的成员变量与对话框中的控件联系起来。

ActiveX Control Wizard:用于创建一个ActiveX控件的基本框架结构。ActiveX控件是用户自定义的控件,它支持一系列定义的接口,可以作为一个可再利用的组件。

MFC库

库(library)是可以重复使用的源代码和目标代码的集合。MFC(Microsoft Fundamental Casses)

是Visual C++开发环境所带的类库,在该类库中提供了大量的类,可以帮助开发人员快速建立应用程序。这些类可以提供程序框架、进行文件和数据库操作、建立网络连接、进行绘图和打印等各种通用的应用程序操作。使用MFC库开发应用程序可以减少很多工作量。

二、项目开发过程

在一个集成的开发环境中开发项目非常容易。一个用C++开发的项目的通用开发过程可以用左图

表示。

建立一个项目的第一步是利用编辑器建立程

序代码文件,包括头文件、代码文件、资源文件

等。然后,启动编译程序,编译程序首先调用预

处理程序处理程序中的预处理命令(如

#include,#define等),经过预处理程序处理的代码

将作为编译程序的输入。编译对用户程序进行词

法和语法分析,建立目标文件,文件中包括机器

代码、连接指令、外部引用以及从该源文件中产

生的函数和数据名。此后,连接程序将所有的目

标代码和用到的静态连接库的代码连接起来,为

所有的外部变量和函数找到其提供地点,最后产

生一个可执行文件。一般有一个makefile文件来

协调各个部分产生可执行文件。

可执行文件分为两种版本:Debug和Release。

Debug版本用于程序的开发过程,该版本产生的

可执行程序带有大量的调试信息,可以供调试程序使用,而Release版本作为最终的发行版本,没有调试信息,并且带有某种形式的优化。学员在上机实习过程中可以采用Debug版本,这样便于调试。

选择是产生Debug版本还是Release版本的方法是:在Developer Studio中选择菜单Build|Set

Active Configuration,在弹出的对话框中,选择所要的类型,然后选择OK关闭对话框。

Visual C++ 集成开发环境中集成了编辑器、编译器、连接器以及调试程序,覆盖了的开发应用程序的整个过程,程序员不需要脱离这个开发环境就可以开发出完整的应用程序。

三、集成开发环境Developer Studio

进入Developer Studio

如果你使用的是Visual C++ 6.0,则要进入Developer Studio,需要单击任务栏中“开始”后选择“程序”,找到Microsoft Visual Studio 6.0文件夹后,单击其中的Microsoft Visual C++6.0图标,则可以启动Developer Studio。

如果你使用的是Visual C++ 5.0,则要进入Developer Studio,需要单击任务栏中“开始”后选择“程序”,找到Microsoft Visual C++ 5.0文件夹后,单击其中的Microsoft Visual C++5.0图标,则可以启动Developer Studio。

Developer Studio的界面

Developer Studio用户界面是一个由窗口、工具条、菜单、工具及其他部分组成的一个集成界面。通过这个界面,用户可以在同一环境下创建、测试、调试应用程序。

VC5和VC6的Developer Studio的初始化界面有一些小的差异,VC5的界面如下:

主要部分介绍如下:

?工具条和菜单,用于提供用户操作的命令接口。菜单以文字和层次化的方式提供命令接口,工具条由一系列按钮组成。这些按钮用一系列小的位图标志。工具条以图标方式提供快速的命令选择。

菜单和工具条在开发的不同进程有不同显示内容。当第一次打开Developer Studio时,标准的工具条和菜单就会显示出来,随着开发的不同步骤,不同的工具条就会自动显示出来,菜单也会有所变化。工具条有很多种,你可以显示任意多的工具条,只要屏幕空间允许。工具条可以任意移动,也可以放大缩小。工具条和菜单条功能基本相同,唯一的区别是:菜单条总占据一行,并且一般不能隐藏。

?工作区窗口,这个窗口包含关于正在开发的这个项目的有关信息。在没有开发任何项目时,该窗口显示系统的帮助目录。当打开一个项目以后,工作区窗口将会显示关于当前项目的文件信息和类的信息。下图是打开一个项目hello以后的工作区窗口(假设该项目由两个文件cpp1.cpp, cpp2.cpp组成)。

?文档窗口区,这个区域可以显示各种类型的文档,如源代码文件、头文件、资源文件等。可以同时打开多个文档。

?输出窗口,输出窗口用来显示几种信息,可以通过选择不同的标签显示不同的信息。这些信息包括:编译连接结果信息(Build标签)、调试信息(Debug标签)、查找结果信息(Find in Files标签)。其中查找结果信息有两个标签,可以显示两次在文件中查找指定内容的结果

VC6因为在联机帮助系统上比VC5做了很大改进,所以在工作区窗口中没有VC5的InfoView,初始化界面的其他部分都与VC5相似。Deleveloper Studio使用Microsoft Developer Network(MSDN)库作为它的联机帮助系统。其界面如下:

总的来说,窗口和命令接口(包括工具条和菜单条)是构成界面的最主要组成部分。通常有两种窗口:文档窗口和可附着(docking)窗口。文档窗口显示在文档窗口区,用于显示和编辑文档,其的大小和位置可以随其所处的Developer Studio窗口的改变而改变,可以最大化和最小化。可附着窗口可以附着于应用程序窗口的边界,也可以浮在屏幕上的任何位置。可附着窗口有:工作区(workspace)窗口,输出(output)窗口,调试窗口(包括variable, watch, local等窗口)等。

文档窗口的位置、大小及是否可见和它所在的项目有关,docking窗口的位置、大小及是否可见

则与项目进行的状态以及各种编辑和调试的操作有关。

各种窗口和各种工具条以及菜单构成了界面的布局。一旦用户决定了一种界面布局,系统就会为一直为用户保持这种布局,直到用户下一次改变该布局为止。

获得帮助信息

大多数时候,你可以通过按F1得到上下文帮助。如在编辑文件时按F1可以得到有关编辑的帮助,在编译连接错误信息上按F1可以得到关于该错误的帮助信息。如果想系统地获得帮助,在VC5中可以单击工作区窗口的InfoView标签,从其中选择要想了解的内容。要想查找关于某个话题的帮助,可以选择菜单Help|Search,在查询对话框中进行查找。VC6中,可以通过选择菜单Help|Contents 来启动MSDN查阅器,MSDN查阅器是一个功能强大的程序,可以方便地浏览、查找信息,要想知道具体如何使用MSDN查阅器,可以在MSDN查阅器中选菜单Help下的命令。

Visual C++的编辑器

Developer Studio包含一个功能强大的编辑器,可以编辑将被编译成Windows程序的Visual C++源文件。这个编辑器有点象字处理器,但是没有字处理器具备的复杂的排版、文本格式等功能,它注重的是如何帮助程序员快速高效地编制程序。它具有以下特点:

?自动语法。用高亮度和不同颜色的字来显示不同的语法成分,如注释、关键字和一般代码用不同的颜色显示

?自动缩进。帮助你排列源代码,使其可读性更强

?参数帮助。在编辑时用到预定义的windows函数时,可以自动为你显示函数参数

?集成的关键字帮助。能够使你快速得到任何关键字、MFC类或Windows函数的帮助信息(按F1即可)

?拖放编辑。能够用鼠标选择文本并自由拖动到任意位置

?自动错误定位。能自动将光标移动到有编译错误的源代码处。

当你打开一个源代码文件时,就可以利用编辑器对其进行编辑。源代码文件在文档显示区显示,每个文件有独立的显示窗口。如果你选择用其他编辑器编辑源文件,必须将它以纯文本的方式保存。VC的编译器不能处理其中有特别格式字符的文件。

四、常用功能键及其意义

为了使程序员能够方便快捷地完成程序开发,开发环境提供了大量快捷方式来简化一些常用操作的步骤。键盘操作直接、简单,而且非常方便,因而程序员非常喜欢采用键盘命令来控制操作。下面

第二部分实验

注意事项:

(1)每次实验以前,需要详细阅读实验目的、实验要求和实验提示,以便能准确地理解实验要求,达到实验的目的。有测试数据要求的,需要给出测试结果,有要求回答问题的,需要给出问题的回答。每次实验都有几个题目,要求为每个题目创建不同的项目,以便于检查。

(2)有的实验前后有联系,需要先完成前面的实验再进行后面的实验,如类和继承的实验。请务必按照先后顺序完成实验。

(3)辅导老师那儿有关于实验的详细解答,如果有疑问,可以请教辅导老师。

实验一类与结构

1、实验目的

·了解和使用 VC++的集成开发环境。

·熟悉 VC++集成开发环境的基本编辑命令及功能键 , 学会常规窗口操作。熟悉常用功能菜单命令。

·学习完整的 C++ 程序开发过程 ( 编辑、编译、连接、调试、运行及查看结果 ).理解简单的 C++ 程序结构。

·通过实验理解类与结构的区别,掌握类的定义,了解用户自定义数据类型。

·理解标准库函数,学习基本流输入输出(cout,cin)的用法。

·理解表达式的优先级、组合方式及语句及语句块。

2、实验内容

应用VC++6.0的编辑环境构造一个类Date,该类主要实现日期的基本操作,例如初始化(非构造函数)、求当前日期为星期几、当前年份是否为闰年、该日为该年第几天、输出等,具体说明如下:该类拥有三个私有(或保护)成员变量year、month、day,分别代表日期中的年、月、日,成员函数有初始化函数、判断该年份是否为闰年函数、求当前日期为星期几函数、该日为该年第几天,结果输出函数等。

其中:

?判断某一年是否为闰年的算法:

该年份数字能被4整除但不能被100整除,或者能被4整除同时可被400整除,则为闰年

?求当前日期为星期几的算法:

(1)0001年1月1日为星期一,可以计算从该天到当前日期的天数,然后除7求余,如余1则为星期一

(2)if(month==1||month==2) { year -=1; month +=12; }

return (day+1+2*month+3*(month+1)/5+year+(year/4)-year/100+year/400)%7;

?求该日为该年第几天:

可以用循环实现,注意闰年的情况。

实验二构造函数

1、实验目的

通过实验理解构造函数的概念与其特殊应用。

2、实验内容

应用VC++6.0的编辑环境构造一个类Triangle,该类主要实现三角形的基本操作,例如初始化(构造函数及构造函数的重载)、求三角形的周长、面积、判断该三角形是什么三角形(等边、等腰、直角、等边直角、一般三角形、非三角形)、输出等,具体说明如下:

class Triangle{

public:

Triangle(double,double,double);

Triangle(double,double);

Triangle(double);

Triangle();

double GetArea();

double GetPerimeter();

double Show();

private:

double a,b,c;

};

实验三析构函数

1、实验目的

通过实验理解析构函数的概念与其特殊应用。

2、实验内容

应用VC++6.0的编辑环境构造一个类Student,该类主要实现学生的基本操作,该学生类包含学生姓名、学生学号、学生成绩(课程数目不定,其存储空间应动态申请),实现对该学生信息的初始化、求该学生的总成绩、平均成绩、最高分与最低分以及最后输出,具体说明如下:

class Student{

public:

Student(char *n,char *s,int num,double *s);

~Student();

double GetSum();

double GetAver();

double GetMax();

double GetMin();

void Show();

private:

char *name;//student name

char *stuno;//student no

int score_num;//score number

double *score;//student score

};

实验四静态成员与友元

1、实验目的

(1)学习静态成员的使用,理解静态成员的特殊用途。

(2)学习友元函数及友元类,领会友元类的作用。

2、实验内容

应用VC++6.0的编辑环境构造一个类Stack,设计一个整数链表类,实现栈操作。类中需有记录结点个数的数据成员(静态成员),要有判空操作。编制应用程序,取100次随机数(<1000),如果取到的随机数比前一个随机数大的话,入栈,然后逐个取出(即出栈过程)求其和。

用堆分配方法逐个产生满足条件(递增有序)的结点,插入栈中,每当出栈时,要及时将结点删除,求和工作放在类定义外(友元)。

注意:栈中最多会有100个元素,最少会有一个元素,这是由条件(递增有序)决定的。

具体说明如下:

struct SNode{

int data;

SNode *next;

};

class Stack{

public:

Stack();

~Stack();

void Push(int e);//insert a data into stack

int Pop();//delete a data from stack

friend int GetSum(Stack &);//get sum of stack,friend function

//friend class getsum;// get sum of stack,friend class,you can try it using friend class

static int num;//static number

private:

SNode *head;

};

对栈的入栈过程与出栈过程说明如下:

(1)入栈,即向栈中添加一个元素,且该元素只能添加到当前链表最后一个数据元素之后,此时记录数组元素数据个数的变量应该进行++操作;

(2)出栈,即从链表中删除一个数据元素,且该元素只能是当前栈中最后的一个元素,此时记录数据元素个数的变量应该进行--操作,也就是说,入栈及出栈的操作标识实际

上是由记录数组中数据元素个数的变量实现的。

(3)判空,即判断当前栈(即链表)是否为空,也就是判断记录数组中数据元素个数的变量是否为0。

rand()函数与srand()函数的使用说明:

rand/srand

Generates a pseudorandom(伪随机的) number.

int rand(void);

void srand( unsigned int seed );

Return Value

rand returns a pseudorandom number, as described above. There is no error return.

Remarks

The rand function returns a pseudorandom integer in the range 0 to RAND_MAX. Use the srand function to seed the pseudorandom-number generator before calling rand.

The srand function sets the starting point for generating a series of pseudorandom integers. To reinitialize the generator, use 1 as the seed argument. Any other value for seed sets the generator to a random starting point. rand retrieves the pseudorandom numbers that are generated. Calling rand before any call to srand generates the same sequence as calling srand with seed passed as 1.

Example

/* RAND.C: This program seeds the random-number generator

* with the time, then displays 10 random integers.

*/

#include

#include

#include

void main( void )

{

int i;

/* Seed the random-number generator with current time so that * the numbers will be different every time we run.

*/

srand( (unsigned)time( NULL ) );

/* Display 10 numbers. */

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

printf( " %6d\n", rand() );

}

Output

6929

8026

21987

30734

20587

6699

22034

25051

7988

10104

实验五继承与多态性

1、实验目的

根据现有类建立新类;学习构造基类和虚函数的用法。

2、实验内容

应用VC++6.0的编辑环境构造一个类Jhtx及其派生类,该类主要实现关于几何图形的基本操作。对于基类“几何图形”,有求面积、求体积的函数(纯虚函数),其派生类圆和矩形主要有初始化(构造函数),求面积,求周长操作,类圆的派生类圆球和圆柱有求表面积、体积操作。试在主函数中分别定义圆、圆球、圆柱以及矩形的对象,并调用其成员函数实现其相应操作。

实验六运算符重载

1、实验目的

理解运算符重载(非成员形式和成员形式)、学习重载几类运算符(++,=,!=,+,-,==等)。

2、实验内容

应用VC++6.0的构建一个复数类Complex,试对下列几个运算符进行重载:++,=,!=,+,-,==,其中要求要有成员重载形式和友元重载形式,而且,++运算符要求实现先加和后加两种形式。

该类定义原型说明:

class complex

{

public:

complex(double r=0,double i=0);

complex &operator +(complex &c);

complex operator -(complex &c);

complex operator *(complex &c);

friend complex operator /(complex &c1,complex &c2);

friend int operator ==(complex &c1,complex &c2);

friend int operator !=(complex &c1,complex &c2);

//friend complex operator++(complex &c);

complex operator++();

void disp();

private:

double real;

double imag;

};

实验七动态链接库的制作与调用(多项式矩阵定义)

1、实验目的

综合运用所学面向对象编程知识完成动态链接库文件的创建、调用,理解动态链接库的工作原理,体会声明和定义分开方法在程序设计中的优势,掌握利用动态链接库实现不同开发平台间混合编程的方法,掌握利用动态链接库实现代码可复用技术,进一步掌握混合开发的方法。

2、实验内容

综合应用所学面向对象编程知识定义一个多项式矩阵类并应用该类实现多项式矩阵类的运算。具体实现该矩阵的加法(采用运算符“+”重载)、转置(采用运算符“-”重载)及输出(采用运算符“<<”重载)操作。将该类制作为动态链接库,然后在其他工程中对该动态链接库进行调用。

注:本次实验为四学时,其中前两个学时完成下面实验指导中给出的一个动态链接库的制作实例,后面两个学时在前面示例的基础上自行设计多项式矩阵的类的定义与使用。

实验指导:先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。

静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DLL不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸载这个与EXE独立的DLL文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。

对动态链接库,我们还需建立如下概念:

(1)DLL 的编制与具体的编程语言及编译器无关

只要遵循约定的DLL接口规范和调用方式,用各种语言编写的DLL都可以相互调用。譬如Windows提供的系统DLL(其中包括了Windows的API),在任何开发环境中都能被调用,不在乎其是Visual Basic、Visual C++还是Delphi。

(2)动态链接库随处可见

我们在Windows目录下的system32文件夹中会看到kernel32.dll、user32.dll和gdi32.dll,windows 的大多数API都包含在这些DLL中。kernel32.dll中的函数主要处理内存管理和进程调度;user32.dll 中的函数主要控制用户界面;gdi32.dll中的函数则负责图形方面的操作。

一般的程序员都用过类似MessageBox的函数,其实它就包含在user32.dll这个动态链接库中。由此可见DLL对我们来说其实并不陌生。

(3)VC动态链接库的分类

Visual C++支持三种DLL,它们分别是Non-MFC DLL(非MFC动态库)、MFC Regular DLL(MFC 规则DLL)、MFC Extension DLL(MFC扩展DLL)。

非MFC动态库不采用MFC类库结构,其导出函数为标准的C接口,能被非MFC或MFC编写

的应用程序所调用;MFC规则DLL 包含一个继承自CWinApp的类,但其无消息循环;MFC扩展DLL采用MFC的动态链接版本创建,它只能被用MFC类库所编写的应用程序所调用。

一个动态链接库的示例:

首先我们做一个动态链接库提供add函数接口的方法,如图1,在VC++中new一个Win32 Dynamic-Link Library工程dllTest。注意不要选择MFC AppWizard(dll)。

图1 建立一个非MFC DLL

在建立的工程中添加lib.h及lib.cpp文件,源代码如下:

/* 文件名:lib.h*/

#ifndef LIB_H

#define LIB_H

extern "C" int __declspec(dllexport)add(int x, int y);

#endif

/* 文件名:lib.cpp*/

#include "lib.h"

int add(int x, int y)

{

return x + y;

}

这两个文件建立结束后,执行“build”命令完成动态链接库的编译与生成,此时,在该工程目录下的“debug”目录下则会生成dllTest.dll和dllTest.lib文件。

然后,我们也建立一个与DLL工程处于同一工作区的应用工程dllCall,将刚刚生成的两个文件拷贝到该共分成目录下,它调用DLL中的函数add,其源代码如下:

//一、动态调用动态链接库方式

#include

#include

typedef int(*lpAddFun)(int, int); //宏定义函数指针类型

int main(int argc, char *argv[])

{

HINSTANCE hDll; //DLL句柄

lpAddFun addFun; //函数指针

hDll = LoadLibrary("..\\Debug\\dllTest.dll");

if (hDll != NULL)

{

addFun = (lpAddFun)GetProcAddress(hDll, "add");

if (addFun != NULL)

{

int result = addFun(2, 3);

printf("%d", result);

}

FreeLibrary(hDll);

}

return 0;

}

分析上述代码,在lib.h对函数add的声明前面添加了__declspec(dllexport)语句。这个语句的含义是声明函数add为DLL的导出函数。DLL内的函数分为两种:

(1)DLL导出函数,可供应用程序调用;

(2)DLL内部函数,只能在DLL程序使用,应用程序无法调用它们。

对下面语句进行逐一分析:

首先,语句typedef int ( * lpAddFun)(int,int)定义了一个与add函数接受参数类型和返回值均相同的函数指针类型。随后,在main函数中定义了lpAddFun的实例addFun;

其次,在函数main中定义了一个DLL HINSTANCE句柄实例hDll,通过Win32 Api函数LoadLibrary动态加载了DLL模块并将DLL模块句柄赋给了hDll;

再次,在函数main中通过Win32 Api函数GetProcAddress得到了所加载DLL模块中函数add的地址并赋给了addFun。经由函数指针addFun进行了对DLL中add函数的调用;

最后,应用工程使用完DLL后,在函数main中通过Win32 Api函数FreeLibrary释放了已经加载的DLL模块。

DLL的调用方式

在上面的例子中我们看到了由“LoadLibra ry-GetProcAddress-FreeLibrary”系统Api提供的三位一体“DLL加载-DLL函数地址获取-DLL释放”方式,这种调用方式称为DLL的动态调用。

动态调用方式的特点是完全由编程者用API 函数加载和卸载DLL,程序员可以决定DLL 文件何时加载或不加载,显式链接在运行时决定加载哪个DLL 文件。

静态调用方式的特点是由编译系统完成对DLL的加载和应用程序结束时DLL 的卸载。当调用某DLL的应用程序结束时,若系统中还有其它程序使用该DLL,则Windows对DLL的应用记录减1,直到所有使用该DLL的程序都结束时才释放它。静态调用方式简单实用,但不如动态调用方式灵

南昌航空大学实验四

南昌航空大学实验报告 课程名称:数据结构A 实验名称:实验四队列的应用 班级: XXX 学生姓名: XXX 学号: XXXXX 指导教师评定: XXX 签名: XXX 一、实验目的 本实验是队列的一种典型的应用,队列是一种“先到先服务”的特殊的线性 表,本实验要求模拟手机短信功能,使用链式存储结构的队列,进行动态地增加 和删除结点信息。 通过本实验的学习,可以理解队列的基本操作的实现。 二、实验内容 设计程序要求,模拟手机的某些短信息功能。 功能要求: (1)接受短信息,若超过存储容量(如最多可存储20条),则自动将最早接受 的信息删除。 (2)显示其中任意一条短信息。 (3)逐条显示短信息。 (4)删除其中的任意一条短信息。 (5)清除。 三、程序分析 采用结构体指针定义存储短信结点: typedef struct Qnode {char data[MAXNUM];/*字符数组存储短信*/ struct Qnode *next; }Qnodetype; /*定义队列的结点*/ 定义队列:

typedef struct { Qnodetype *front;/*头指针*/ Qnodetype *rear; /*尾指针*/ int number;/*短信数量*/ }Lqueue; (1)int initLqueue(Lqueue **q) 初始化短信队列。 (2)int LInQueue(Lqueue *q,char x[]) 入队列,将字符串x加入到队列尾部。 (3)char * LOutQueue(Lqueue *q) 出队列,删除队头元素,返回其中的字符串。 (4)void get(Lqueue *q,char x[]) 接收短数,若短信数量超过20条,则删除队头短信。 (5)void deleteall(Lqueue *q) 清除所有短信。 (6)void deleteone(Lqueue *q,int n) 删除第n条短信。 (7)void displayall(Lqueue *q) 显示所有短信。 (8)void displayone(Lqueue *q,int n) 显示第n条短信。 在main()函数中,采用菜单方式,菜单中同时显示出已有的短信数量,由用户选择输入命令,实现程序要求功能,命令说明: R(r):接收短信 L(l):显示任意一条短信 A(a):显示所有短信 D(d):删除任意一条短信 U(u):删除所有短信 Q(q):退出 四、程序源代码

WEB编程实验报告---南昌大学

实验报告 实验课程:JA V A WEB编程技术 学生姓名: 学号: 专业班级:物流101班 2013年 06 月 12 日 目录

实验一WEB编程环境......................... 错误!未定义书签。实验二HTML和CSS编程技术 (7) 实验三JA V ASCRIPT编程技术 (10) 实验四SERVLET编程技术 (13) 实验五JSP编程技术 (16) 实验六JA V ABEAN编程技术 (21) 实验七基于MVC模式构建系统 (25) 南昌大学实验报告 学生姓名:学号:专业班级:物流101班

实验类型:□验证□综合■设计□创新实验日期:实验成绩: 一、实验项目一Web编程环境 二、实验目的 第1章搭建Web编程环境,能正确安装配置java运行环境、WEB服务器和数据库服务器 第2章熟悉WEB编程集成环境MYEclipse. 第3章熟练掌握WEB工程的创建、发布、运行流程。 三、实验内容 1.安装并配置java运行环境JDK和JRE 2.安装Web服务器tomcat, 配置Tomcat服务器 3.安装并配置数据库MySQL. 4.安装MyEclispe,熟悉各项菜单项 5.为MyEclispe集成配置JDK和Tomcat 6.创建、发布、运行一个WEB工程。 四、实验仪器及耗材 计算机,JDK,TOMCA T, MySQL, MyEclipse等软件。 五、实验步骤 1.先安装jdk1.6,选择自定义安装,安装到C:\JDK 2.配置环境变量,class:.;C:\JDK\bin , classpath:.;C:\JDK\lib ,java_home: C:\JDK 安装tomcat,安装在C:\ Tomcat 下,配置tomcat_home环境变量,CATALINA_HOME: C: \Tomcat,CATALINA_BASE: C: \Tomcat,TOMCAT_HOME: C:\Tomcat 然后修改环境变量中的classpath,把tomat安装目录下的common\lib下的servlet.jar 追加到classpath中去,修改后的classpath如下: classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\c ommon\lib\servlet.jar;

南昌航空大学软测实验二(仅供参考)

南昌航空大学实验报告 2014年12 月7 日 课程名称:软件质量保证与测试实验名称:功能性测试_____________________________ 班级:________________ 姓名:____________ 同组人:____________________________________ 指导教师评定:_________________________________________________ 签名:________________ 一、实验目的 掌握边界值、等价类、决策表测试的基本功能性测试方法 二、实验要求 分别用健壮性测试(边界值方法)、弱健壮等价类测试(等价类方法)和决策表测试技 术分别对三角形问题|、Nextdate问题和佣金问题设计测试用例,并分别对实验一所编写的三个程序进行测试。 三、实验步骤 1.运行Visual C++开发工具; 2?在开发环境中完成程序设计,并进行调试; 3?在程序没有语法错误的前提下重点检查程序的逻辑错误; 4?对程序进行调试,并记录实验数据。 四、实验内容 1?三角形问题 问题描述:输入三角形三条边a、b、c,三条边有效取值范围为[1,200],判断该三角形 是什么三角形,输出内容具体包括:(1)等边三角形;(2)等腰三角形;(3)直角三角形;(4)等腰直角三角形;(5)一般三角形;(6)非三角形;(7)输入数据非法测试方法:边界值测试一健壮性测试, 由于三角形三边边界较多,通过边界值测试能够

更多地发现边界处的错误,缺陷

截图1

截图 2?佣金问题 问题描述:前亚利桑那洲境内的一位步枪销售商销售密苏里州制造商制造的步枪机 (lock)、枪托(stock)和枪管(barrel)。枪机卖45美元,枪托卖30美元,枪管卖25美元。销售商每月至少要售出一支完整的步枪,且生产限额是大多数销售商在一个月内可销售70 个枪机、80个枪托和90个枪管。 根据当月的销售情况,并计算销售商的佣金如下: (1)不到(含)1000美元的部分为10%; (2)1000 (不含)~1800 (含)美元的部分为15%; (3)超过1800美元的部分为20%。 佣金程序生成月份销售报告,汇总售出的枪机、枪托和枪管总数,销售商的总销售额以及佣金。 测试方法:边界值测试一健壮性测试,此问题有较多的边界,采用边界值分析法能找 出边界值方面的问题 测试用例的设计

数据库存储器与触发器实验报告(互联网+)

南昌航空大学实验报告 二0一七年 5 月 3 日 课程名称:数据库概论实验名称:存储器与触发器 班级:xxx 姓名:xxx 同组人: 指导教师评定:签名: 一、实验环境 1.Windows2000或以上版本; 2.SQLServer2000或2005。 二、实验目的 1.掌握存储过程的创建,修改,使用,删除; 2.掌握触发器的创建,修改,使用,删除。 三、实验步骤及参考源代码 1.创建过程代码: CREATE PROCEDURE C_P_Proc(@ccna varchar(10),@cno char(4)OUTPUT,@cna varchar(10)OUTPUT,@pna varchar(20)OUTPUT,@num int OUTPUT) AS SELECT @cna=cna,@cno=https://www.wendangku.net/doc/9113292939.html,o,@pna=pna,@num=num FROM cp,customer,paper WHERE https://www.wendangku.net/doc/9113292939.html,o=https://www.wendangku.net/doc/9113292939.html,o AND paper.pno=cp.pno AND cna=@ccna;

6.执行存储过程C_P_Pro,实现对李涛,钱金浩等不同顾客的订阅信息查询execute C_P_Proc@name='李涛' execute C_P_Proc@name='钱金浩' 7,删除存储过程C_P_Prcc DROP PROCEDURE C_P_PROC (4)在DingBao数据库中针对PAPER创建插入触发器TR_PA PER_I、删除触发器TR_PAPER_D、修改触发器TR_PAPER_U。具体要求如下。

<1>对PAPER的插入触发器:插入报纸记录,单价为负值或为空时,设定为10元。 CREATE TRIGGER TR_PAPER_I ON paper FOR INSERT AS DECLARE @ippr FLOAT; declare @ipno int; SELECT @ippr=ppr,@ipno=pno from inserted begin if @ippr<0 or @ippr is NULL begin raiserror('报纸的单价为空或小于零!',16,1) update paper set ppr=10 where paper.pno=@ipno end

南昌大学化学实验报告

南昌大学化学实验报告 篇一:南昌大学实验报告 南昌大学实验报告 学号:6100512094 专业班级:信息管理与信息系统122班 实验类型:□验证□综合□设计□创新实验日期:XX/4/3 实验成绩: 实验一实验环境的建立 一、实验目的: 1.了解SQL Server XX常用版本和对操作系统的不同要求 2.熟悉SQL Server XX的基本性能 3.正确安装和配置SQL Server XX 二、实验基本原理 SQL即结构化查询语言,是关系数据库的标准语言,SQL 是一个综合的、功能极强同时又简洁易学的语言。它集数据查询、数据操纵、数据定义和数据控制功能于一体。自SQL 成为国际标准语言之后,各个数据库厂家纷纷推出各自的SQL软件或与SQL的接口软件。这就使大多数 数据库均用SQL作为共同的数据存取语言和标准接口,使不同数据库系统之间的互操作有了共同的基础。

三、主要仪器设备及耗材 相互连成LAN的计算机2台以上,windows XX server 操作系统,SQL Server XX安装标准版安装软件。 四、实验步骤 安SQL Server XX:将安装光盘放入CD-ROM,将自动弹出“SQL Server自动菜单”界面,如果没有自动弹出则选择光盘根目录下的autorun.exe,双击运行: 选择运行“安装SQL Server XX组件”进入安装组件界面,选择“安装数据库服务器”。进入安装界面后,按照安装提示进行安装;一般需要人工进行干预的有: 选择安装类型和安装路径:安装类型有:典型安装、最小安装、和自定义安装。安装路径是指SQL Server的系统文件和数据文件的安装位置。默认情况下“安装类型”是典型安装,“安装路径”是操作系统设定的“Program Files”文件夹。你可以自行改变,初次安装最好不要改变他,按默认情况使用; 配置启动服务的帐号:有两类用户帐号:一类是与Windows操作系统的集成帐号,一类是混合帐号。选择第一类帐号进行安装;配置服务器端网络库:SQL Server支持多种网络库,这些网络库必须与操作系统的网络协议共同工作,才能实现客户机与数据库服务器的通信。安装完成后,可以通过操作系统的开始菜单操作:“开始”―>SQL Server”->

南昌航空大学

南昌航空大学 马克思主义新闻传播学学术型硕士研究生培养方案 (2016年修订版) 专业代码:0305Z1 一、学科简介 马克思主义新闻传播学是马克思主义在新闻传播领域的观念和学说的理论体系。它既是一般新闻传播理论与新闻传播史研究的一个分支,也是马克思主义理论的一个重要组成部分。马克思主义新闻传播学主要涵盖两大研究内容:一是中外历史上以马克思为代表的马克思主义经典作家的新闻思想及其新闻传播实践活动的研究;二是以马克思主义基本原理为指导所从事的一般新闻传播理论研究和实践活动。重点在研究马克思主义指导下的新闻传播活动和新闻传播事业的基本规律。 马克思主义新闻传播学的硕士毕业生可在新闻媒体、商业网站、文化集团、企业事业单位的营销和宣传部门从事记者、策划、节目编导、主持人、后期制作、营销等相关工作。 本专业硕士点拥有专职教师33人,省学科带头人1人,省骨干教师1人。学科点拥有十多万册的文献资料和720m2的实践教学场地和370万元实践教学设施。 二、培养目标 马克思主义新闻传播学硕士点培养德智体全面发展、政治素质高,具有马克思主义信仰和社会主义信念的高层次新闻传播人才。具体要求为: 1.具有较好的马克思主义新闻传播理论素养和理论功底、较扎实的专业基础知识和较宽的知识面; 2.能用马克思主义立场、观点和方法分析研究当今世界和中国的新闻

传播实际问题; 3.掌握一定的传播技术,能胜任本学科及相关学科的教学、科研和宣传、党政、群团、教育管理工作; 4.比较熟练地掌握一门外国语,能阅读本专业的外文资料和一定的写作能力。 三、主要研究方向 1.马克思主义新闻传播史论 2.中国化马克思主义与新媒体传播 3.马克思主义大众化传播 四、培养方式、学制与学习年限 1.培养方式:实施以导师指导为主,导师组集体培养相结合的方式。 2.学制与学习年限:全日制学习,学制一般为3年,学习年限最长为5年(包括保留学籍、休学等情况);原则上不接受提前毕业申请。 五、课程设置 1.总学分:不少于30学分 2.学位课:不少于18学分 3.实践环节:2 学分 4.学术活动:2学分 5.课程设置 马克思主义新闻传播学学术型硕士研究生课程设置表

飞机连接实验报告(南昌航空大学)

《专业技能训练》实验 班级: 100631 学号: 10063112 姓名:林万蔚 (同组人:李力朱汉辉周炎)

专业技能训练 1、实验目的: 通过本综合实验的练习,学生应能综合应用所学专业基础知识,对专业上的某一具体工程实际问题进行处理和解决,增强其实践能力、工程应用能力和整体素质。 2、实验内容: (1)方案设计 设计铆接的产品,CATIA软件或CAD绘制零件图:1张三维立体图(同组人可一样),1张能完全表达某个零件结构尺寸和制作要求的视图(按机械制图的规定画图和标注,同组每个人不得相同,可选择不同零件画图)。图均打印,其他内容手写!。 设计铆接的产品(飞机)具有中等复杂程度,具有立体结构。 零件结构设计经指导老师检查同意后方能进行制作。 (2)飞机装配铆接操作实验 本实验要求在飞机装配工艺课程的相关实验之后进行,通过飞机装配工艺课程的授课学习和实验,掌握飞机装配铆接的基本方法和基本工艺,在此基础上,制作一个中等复杂程度的零件产品,并做相应的工艺分析。 3、对自己制作的结构件进行质量分析。 我们这组设计制作的是一个小型汽车,从设计的角度来看的比较完美的,线条、部件都比较好。但是,在这个单有铆接的实验中,很多圆滑的地方可能很难制造出来。 4、飞机铆接的特点及发展。 4.1飞机铆接具有以下特点 铆接的连接强度比较稳定可靠,铆接方法与工艺参数容易掌握和控制,铆接质量检验方法方便,故障比较容易排除,使用工具比较简单、低廉,适用于较复杂的连接。虽然存在着一些缺点,如增大了结构质量,降低了结构强度,容易引起变形等,但到目前为止,铆接仍然是飞机装配中主要的的连接方法。 4.2飞机铆接的发展 现代飞机制造过程中,由于结构设计、工艺维修、检查的需要,机械连接不可缺少,在很长一段时间内仍将是主要的连接方法。在第二代、第三代、甚至第四代战斗机以及民机生产中,都采用了大量的机械连接。铆接结构重量轻、成本低、工艺简便,比螺接更具技术优势,因而用得比较普遍。铆接技术发展相对比较缓慢,但近年来在新型飞机研制过程中,为满足结构设计要求,提高飞机的性能,铆接技术有了新的发展。 4.2.1电磁铆接技术的发展 国外的经验表明,采用电磁铆接(也称应力波)技术是解决上述问题的有效途径。电磁铆接对屈强比高、应变率敏感、强度高、难成形材料的成形具有特殊的功能;能实现理想的干涉配合,延缓构件铆钉孔疲劳裂纹的扩展,显著提高结构

南昌大学《MATLAB与控制系统仿真》实验报告综述

实验报告 实验课程: MATLAB与控制系统仿真 姓名: 学号: 专业班级: 2016年 6月

目录实验一 MATLAB的环境与基本运算(一) 实验二 MATLAB的环境与基本运算(二) 实验三 MATLAB语言的程序设计 实验四 MATLAB的图形绘制 实验五基于SIMULINK的系统仿真 实验六控制系统的频域与时域分析 实验七控制系统PID校正器设计法 实验八线性方程组求解及函数求极值

实验一 MATLAB的环境与基本运算(一) 一、实验目的 1.熟悉MATLAB开发环境 2.掌握矩阵、变量、表达式的各种基本运算 二、实验基本原理 1.熟悉MATLAB环境: MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。 2.掌握MA TLAB常用命令 表1 MA TLAB常用命令 3.MATLAB变量与运算符 3.1变量命名规则 3.2 MATLAB的各种常用运算符 表2 MA TLAB算术运算符 表4 MATLAB逻辑运算符

表5 MATLAB特殊运算 4.MATLAB的一维、二维数组的寻访 表6 子数组访问与赋值常用的相关指令格式 三、主要仪器设备及耗材 计算机 四、实验内容 1.新建一个文件夹(自己的名字命名,在机器的最后一个盘符) 2.启动MATLAB,将该文件夹添加到MATLAB路径管理器中。 3.学习使用help命令。 4.窗口命令 ● close ● close all ● clc ● hold on ● hold off 了解其功能和作用,观察command window、command history和workspace等窗口的变化结果。5.工作空间管理命令 ● who ● whos ● clear 6.随机生成一个2×6的矩阵,写出实现矩阵左旋(以第1行第1列为中心逆时针)90°或右旋(顺

南昌航空大学师资力量一览

两院院士 石屏张文海邱定蕃都有为曹春晓 国家杰出青年基金获得者 罗胜联 国务院政府特殊津贴获得者 万光逵王薇薇叶文丰任吉林何兴道余金龙吴纯素吴献清张仁甫张维李康平苏达义陈益平尚保忠林再学柯黎明聂秋根高益庆龚涛舒坚鲁世强黎明冀殿英熊建新 全国优秀教师 许德丰李康平鲁世强黎明冀殿英 全国模范教师 李康平谢宇 教育部新世纪优秀人才 罗旭彪涂新满 中国工艺美术大师 熊建新 博士生导师 刘大禾刘卫东刘晓波何兴道李康平余欢杨国为罗胜联周贤良柯黎明高益庆曹春晓龚浩然 储珺鲁世强黎明陈震 江西省主要学科学术与技术带头人 罗胜联黎明陈震 井冈学者 柯黎明温珍海 江西省教学名师 丁丽军万光逵艾云龙任吉林许瑛匡璧民陈焕明况新华李康平杨加明易青周力柯黎明饶国宾饶厚增舒坚曾接贤魏立安 江西省百千万人才 王云王细洋卢超平飞艾云龙刘卫东刘晓波刘琳岚尧军平许瑛何兴道余欢李明俊李康平肖华锋陈乐平陈益平陈震林翠柯黎明贺红林秦国华储珺曾卓雄舒坚董永全谢奉军鲁世强熊邦书黎明颜流水罗旭彪魏立安 严青松罗军明

江西省学科带头人 丁丽军王云王琦王细洋王俊奇王高潮代冀阳平飞刘卫东刘琳岚尧军平邬冠华邢丽许瑛许丽芹陈敏陈震陈益平陈焕明杜楠何兴道李勤李明俊李康平肖华锋余欢张吉雄张桂梅周贤良罗明罗旭彪贺红林柯黎明饶国宾赵晴秦国华秦菊波唐星华储珺鲁世强舒坚舒远仲谢奉军曾接贤廖声丰熊建新黎明颜流水 江西省骨干教师 万生鹏万涛马银平方平毛崎波王有远王克鲁王应民付跃文冯长杰冯立卢百平卢超艾云龙龙文元伏燕军刘光明刘冰泉刘芝平刘晓波刘崇波江五贵江淑园严青松严盈富吴少林吴伟吴锦武宋军宋凯宋琤张少钦张国光张建国张胜李军华李多生李志农李其申李建萍杨小芹杨国为杨海军肖灵机肖慧荣邱天邹文栋邹建平陈玉华陈庆军陈素华周建萍林翠罗军明郑华盛钟菊芳涂新满贾伟强郭小和郭正华郭莉高昱梁红波曾卓雄董永全董洪波谢友宝谢宇谢洪阳鲁宇明雍青雷金波熊申英熊邦书熊震宇蔡克中 江西省文化艺术学科带头人 李勤熊建新 江西省高校哲学社科领军人才 李康平

南昌航空大学PWM波形发生器实验报告

PWM波信号发生器的研制 课程设计说明书 课程设计名称:单片机专业课设 课程设计题目: PWM信号发生器的研制 学院名称:信息工程学院 专业:电子信息工程班级: 学号:姓名: 评分:教师: 20 13 年 7 月 2 日 摘要 1

PWM波信号发生器的研制 随着电力电子全控开关器件的出现,脉宽调制技术(PWM)在电力电子变流技术中获得了,。泛的应Hj,如直流开关电源(DC/DC变换)、交。交变频(AC/AC变换)、交.直.交变频系统、UPS电源(DC/AC变换)、高功率因数整流(PWM整流或功率l灭l数校正PFC等)等电力电子各个应用领域,无不采用PWM控制技术。PWM控制最基本的实现方法是通过载波和控制波的模拟电路调制米产生,如采用三角形载波(或锯齿波)和直流(或正弦波)控制信号比较器进行比较产生PWM波。这种方法在模拟控制技术中广泛采用,并出现过许多产生PWM波控制芯片,如用于开关电源的TL494、SG3525、UC3842等。随着数字控制技术的发展,又出现了许多数字式PWM集成芯片,如用于变频调速的三相PWM发生器HEF4752、SLE4520、MA818等。但与迅速发展的微机控制技术相比,该方法显示出电路复杂、调制方式不够灵活等缺点,而采用软件计算的实时PWM控制策略越来越彼人们接受,并出现了许多不同的PWM波的计算方法,如采样SPWM法、谐波注入PWM法、均值PWM法、等面积PWM法等。电力电子的微机PWM控制技术已成为一种必然趋势。因此本文就PWM的单片机控制与实现进行分析研究,通过对外围电路芯片的设计实现PWM输出波形的频率、电压幅值、占空比的连续调节,达到产生PWM信号目的。 关键字:脉宽调制技术(PWM)、占空比、控制信号 2

南昌航空大学创业科技园

南昌航空大学简介 南昌航空大学是一所以工为主,工理文管经法教艺等学科协调发展的多科性大学。学校创建于1952年,是全国首批具有学士学位授予权单位。1985年开始培养硕士研究生,1990年获硕士学位授予权。先后隶属于航空工业部、航空航天工业部、中国航空工业总公司,1999年开始实行中央与地方共建、以地方政府管理为主的管理体制,是江西省人民政府与国家国防科技工业局共建的具有鲜明航空、国防特色的高等学校。 学校位于有着“物华天宝,人杰地灵”美誉的英雄城——南昌。校园环境优美,拥有前湖校区和上海路校区2个校区,占地面积3000余亩,校舍建筑面积90多万平方米。现有全日制在校生26000余,教职工2000余人,专任教师1200余人人。 学校秉持“日新自强、知行合一”的校训,始终坚持“育人为本,质量立校,特色发展,人才强校,开放办学”的办学理念,扎实推进内涵建设,稳步提高教学质量,是教育部本科教学工作水平评估优秀高校。学校现有5个国家级特色专业,8个省级特色专业,2个国防重点建设专业;2个国家级实验教学示范中心,9个省级实验教学示范中心;2个江西省高水平学科,6个江西省一级重点学科和国防重点学科,15个二级重点学科,14个省(部)级重点实验室(研究中心)和省级重点基地。2009年获得国家级教学成果奖2项,并在国家级教学团队、国家精品课程、国家级双语教学示范课程方面均实现了历史性的突破。 学校积极开展多种形式的国际合作与交流,先后与美国、英国、加拿大、澳大利亚、瑞典、芬兰、斯洛伐克、乌克兰、韩国、日本、越南、香港等国家和地区的多所国外高校建立了长期校际合作关系,并常年聘请外籍教师来校任教。学校定期选派本科生和研究生赴美国、英国、韩国、澳大利亚、日本、瑞典及乌克兰等国留学,同时接收加拿大、荷兰、韩国、尼泊尔、巴基斯坦、肯尼亚、赞比亚、尼日利亚等国的留学生来校学习。 学校在社会上享有良好的社会声誉,曾荣获全国模范职工之家、全国军训工作先进单位、全国大学生心理健康教育工作先进集体、江西省文明单位、江西省先进基层党组织、江西省校园建设先进单位、江西省党建和思想政治工作先进单位等荣誉称号。2010年,学校被中纪委确定为党务公开工作联系点单位。

南昌航空大学实验报告

南昌航空大学实验报告 2014年04月25日 课题名称:计算机网络实验名称:局域网连接实验 班级:110451 姓名:郑木辉学号:10045129 指导教师评定:签名: 一、实验目的 1.掌握Windows操作系统中网络的配置与管理。 2.掌握Windows操作系统中常用的网络命令。 3.掌握Windows平台上FTP服务器架设与使用方法. 二、实验要求 1.详细阅读操作过程,认真完成必做实验,掌握实验要求掌握的内容。 2.课后认真完成实验报告 三、实验环境 1.硬件:网络环境 2.操作系统:windows7 3.相关软件:ServU 4.0 四、实验步骤与内容 4.1网络配置实验 4.1.1 实验内容: 安装Windows网络组件并配置网络选项(因机房都已经设置好,可以查看或按原值填写,关键是了解需要设置哪些选项以及为什么要设置这些内容)。 4.1.2 实验步骤: 1、安装协议: 进入“打开网络与共享中心”,如错误!未找到引用源。,再单击打开“网络与共享中心”,进入如图2的界面;

图1 网络与共享中心 图2 网络连接界面 单击“更改是适配器设置”进入“网络连接”界面,如图 3 图3 网路连接界面 双击其中的“本地连接”图标,在弹出的窗口(下图左)中选择“属性”,弹出本地连接的属性窗口(下图右,将其中的“连接后在任务栏中显示图标”前的方框选中,则在任务栏右侧显示连接图标)。选择其中的“安装”,弹出协议安装窗口,如图4; 图4 本地连接属性窗口

图5 协议安装窗口 在上图左选择“协议”后按“添加”按钮进入右侧所示窗口,其中有常用的协议,如图5; ?NetBEUI(NetBios Enhanced User Interface)用于局域网通信,安装此协议后,可以通 过在地址栏中输入对方的IP地址及共享名称访问对方共享资源。 ?NWLink IPX/SPX./NetBIOS Compatible Transport Protocal”,该协议常用于局域网 游戏,如星际争霸、帝国时代等,一般要先装该协议才能在局域网对战。 ?TCP/IP协议,该协议在系统安装了网卡驱动的情况下一般都默认安装,因此上图中没 有显示,如果系统未安装TCP/IP协议,则应该在此界面中安装。 2.配置TCP/IP协议 ?在错误!未找到引用源。的界面中,选中“Internet协议(TCP/IP)”,按“属性”按钮, 弹出TCP/IP的配置窗口,如图6 图6 Internet协议属性 根据上网方式的不同,需相应的选择“自动获得IP地址”或“使用下面的IP地址”,在本实验中使用后者。

南昌航空大学实验报告2-JavaBean和Servlet完成增删改查

南昌航空大学实验报告二 二0一四年三月十九日 课程名称:JA V A WEB 程序设计实验名称:JavaBean和Servlet完成增删改查 班级:11微软班姓名:林平君同组人: 指导教师评定:林振荣签名: 一、实验目的 完成一个数据列表的增删改查功能的实现,以自己创建的表格为例,也可以自己设计数据库的表。通过本实验能够熟悉和掌握jsp中的数据库CRUD操作。 二、实验要求 本实验要求通过javabean来实现数据的存取和表示,通过servlet来进行访问的控制。给出主要运行的界面和核心代码,并描述系统实现的核心思想。 三、实验步骤 1.实现javaBean对数据库的操作。 2.创建jsp页面 3.利用servlet对页面对业务流程就行控制。 四、参考源代码 1.连接数据库 public Connection getConnection() throws SQLException,InstantiationException, IllegalAccessException,ClassNotFoundException{ Connection connection=null; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInst ance(); String urlString="jdbc:sqlserver://localhost:1433;DatabaseName=StudentManageSys" ; String passwordString="sa"; String userString="sa"; connection=DriverManager.getConnection(urlString,userString,passwordS tring); return connection; } 解释:获取一个数据源,用于连接数据库。 2.利用传入的sql语句查找 public ArrayList objectSelect(String sql) throws Exception{ ArrayList result=new ArrayList();

南昌航空大学 单片机实验(全)

南昌航空大学 信息工程学院 实验报告 课程名称:单片微型机原理 学号: 姓名: 指导教师:________ ___________ 成绩:_________________________

南昌航空大学实验报告 2014年 3 月 14 日 课程名称: 单片微型机原理 实验名称: 清零、电脑时钟 班级: 姓名: 学号: 指导老师评定: 签名: 一、实验目的 1、掌握汇编语言设计和调试方法,熟悉键盘操作; 2、熟悉MCS —51定时器、串行口和中断初始化编程方法,了解定时器应用在实时控制中程序的设计技巧。 二、实验内容 1、把7000H ~ 70FFH 的内容清零。 2、编写程序,从DVCC 系列单片机实验仪键盘上输入时间初值,用定时器产生0.1S 定时中断,对时钟计数器计数,并将数值实时地送数码管显示。 三、实验步骤 清零程序 1、实验程序框图 N Y 开始 R0 =0,DPTR=7000H 00送到(DPTR) DPTR+1,R0+1 R0 = FF ? 结束

2、当DVCC单片机仿真实验系统独立工作时 (1)将固化区EPROM中实验程序目标码传送到仿真RAM区,操作如下:输入0后按F1键,再输入0FFF后按F2键,再输入0后按EPMOV稍等,系统返回初始状态,显示“P."。 (2)按F2键进入仿真1态,仿真实验系统显示闪动“P......”时,根据表一所示,通过键盘输入实验程序的起始地址0030H,再按执行键EXEC,表示连续运行该程序,稍后,按RESET键退出运行;如果以单步运行程序,则输入0300后,按STEP键,按一次执行一条语句,直到执行到003CH为止,按MON键退出运行;如果以断点运行程序,则先输入003C (断点地址),再按F1键,再输入0030(起始地址),然后按EXEC键执行程序,当执行到003CH时自动停下来,此时按MON键退出。 (3)用存储器读写方法检查7000H—70FFH中的内容应全是00H。 3、当DVCC单片机仿真实验系统联PC机工作时 (1)在闪动“P.”状态,按PCDBG键。 (2)在PC机处于WIN95/98软件平台下,单击DVCC图标。 (3)在系统设置选项中设定仿真模式为内程序、内数据。 (4)根据屏幕提示进入51/96动态调试菜单。 (5)联接DVCC实验系统(Ctrl + H)。 (6)装载目标文件(Ctrl + L)。 (7)设置PC起始地址。 (8)从起始地址开始连续运行程序(F9)或单步(F8)或断点运行程序。 (9)单步、断点运行完后,在存储器窗口内检查7000H—70FFH中的内容是否全为00H。4、清零程序 ORG 0030H CLEAR: MOV R0,#00H MOV DPTR,#7000H;设数据指针DPTR=7000H CLEAR1: CLR A MOVX @DPTR,A ;清第一个数据单元 INC DPTR ;指针加一 INC R0 ;字节数加一 CJNE R0,#00H,CLEAR1 ;判字节数满256个否,不满继续 CLEAR2: SJMP CLEAR2 ;满结束程序 END

南昌大学实验报告

南昌大学实验报告 学生姓名:学号:专业班级:_____________ 实验类型:■验证□综合□设计□创新实验日期: 2012-12 实验成绩:______ 实验三三容水箱的专家控制实验 一、实验目的 ①掌握三容水箱的基本构成,能够熟练地运用专家PID控制原理,来实现 对三容水箱的液位控制。 ②进一步掌握专家控制原理,清楚了解PID控制的过程和相应的matlab程 序实现方法。 ③了解matlab中关于的相关绘图函数的使用方法,懂得有关向量的定义及 循环操作,熟练掌握MATLAB的编程语句。 二、实验设备及条件 微型计算机,且此计算机必须装有matlab软件。 三、实验原理 专家系统是一类包含知识和推理的智能计算机程序,其内部包含某领域专 家水平的知识和经验,具有解决专门问题的能力。 直接型专家控制器用于取代常规控制器,直接控制生产过程或被控对象。 具有模拟(或延伸、拓展)操作工人智能的功能。该控制器的任务和功能相对 比较简单,但需要在线、实时控制。因此,其知识表达和知识库也比较简单, 通常由几十条产生式规则构成,以便于增删和修改。直接型专家控制器的结构 如a图中的虚线所示。 专家PID控制的实质是:基于受控对象和控制规律的各种知识,无需知道 被控对象的精确模型,利用专家经验来设计PID参数。专家PID控制是一种直 接型专家控制器。 本实验的专家控制器输入为h3的设定值,而输出为阀门开度kk,根据实 验的要求设计专家PID控制器的基本原理框图如下图所示Array 图(a)

三容水箱结构框图如下 四、实验要求 通过专家PID 控制,随着下水箱流量q4的正弦变化,要求能够通过调节阀门开度kk 来使第三个水箱中的下水箱液位h3稳定在设定值,并且其他两水箱水不会流尽和溢出。 五、 实验设计过程及结果 1、 三容水箱数学模型 可应用实验一建立的三容水箱数学模型 3 33433| 0.45)+i *pi *(2.58sin |*343222 321112kk *1q 21h h h s q q h y q s q q h h y q s q q h h y q a ?+=-=?=-=?=-=?==

面向对象程序设计实验报告(学生)

面向对象程序设计 实验报告 计算机学院 张永

南昌航空大学实验报告 二00七年月日 课程名称:面向对象程序设计实验名称:类与结构 班级: XXXXXXX 学生姓名: XXXXXX 学号: 指导教师评定: XX 签名: XXXXX 1、实验目的 ·学习掌握声明和定义类及成员。 ·学习掌握访问类对象成员。 ·学习掌握保护数据如何屏蔽外部访问的原理,更好的认识类的封装 2、实验内容 (1) 定义一个满足下列要求的Date类: ①用下面的格式输出日期:日/月年 ②可运行在日期上加一天操作 ③设置日期 //Date.h #include using namespace std; class Date{ public: void Display(); void AddOneDay(); void SetDay(int y,int m,int d); protected: bool Legal(int y, int m, int d); bool IsLeapYear(int y); int year; int month; int day; }; (2) 定义一个时间类Time,能提供和设置由时、分、秒组成的时间,并编出应用程序,定义时间对象,设置时间,输出该对象提供的时间。并将类定义作为接口,用多文件结构实现之。 //Time.h class Time { public: Time();

void Print(); void Set(int,int,int); protected: int min; int sec; int hour; };

最新南昌大学实验报告-声速测量

声速测量(实验报告格式)课程名称:大学物理实验 实验名称:声速测量 学院:专业班级: 学生姓名:学号: 实验地点:104 座位号: 实验时间:第周星期一下午16点开始 一、 二、实验项目名称:声速测量 三、实验目的: 1、学会测量超声波在空气中的传播速度方法。 2、

3、理解驻波和振动合成理论。 4、学会逐差法进行数据处理。 5、了解压电换能器的功能和培养综合使用仪器的能力。 四、 五、 实验原理: 根据声速、声波频率、波长间的关系:λf v =,测得声波的频率和波长,就可求的声速。声波频率由信号发生器产生,可直接显示,故只需测得声波波长即可。有驻波法和相位法。 1、驻波法 实验时将信号发生器输出的正弦电压信号接到发射超声换能器上,超声发射换能器通过电声转换,将电压信号变为超声波,以超声波形式发射出去。接收换能器通过声电转换,将声波信号变为电压信号后,送入示波器观察。设沿x 方向射出的入射波方称为:)2cos(1x wt A y λ π -=,反射方程: )2cos(2x wt A y λπ+=,A 为声源振幅,w 为角频率,x λ π2为由于波动传播到坐标x 处引起的相位变化。所以合振动方程:

y=y1+y2=wt x A cos )2cos 2(λπ ;在声驻波中,波腹处声压(空气中 由于声扰动而引起的超出静态大气压强的那部分压强)最小,而波节处声压最大。当接收换能器的反射界面处为波节时,声压效应最大,经接收器转换成电信号后从示波器上观察到的电压信号幅值也是极大值,所以可从接收换能器端面声压的变化来判断超声波驻波是否形成。移动卡尺游标,改变两只换能器端面的距离,在一系列特定的距离上,媒质中将出现稳定的驻波共振现象,此时,两换能器间的距离等于半波长的整数倍,只要我们监测接收换能器输出电压幅度的变化,记录下相邻两次出现最大电压数值时(即接收器位于波节处)卡尺的读数(两读数之差的绝对值等于半波长),则根据公式:就可算出超声波在空气中的传播速度,其中超声波的频率可由信号发生器直接读得。 2、相位法 波是振动状态的传播,也可以说是位相的传播。在声波传播方向上,所有质点的振动位相逐一落后,各点的振动位相又随时间变化。声波波源和接收点存在着位相差,而这位相差则可以通过比较接收换能器输出的电信号与发射换能器输入的正弦交变电压信号的位相关系中得出,并可利用示波器的李萨如图形来观察。相差和角频率、传播时间t 之间有如下关系: 同时有,,,(式

南昌航空大学教职工奖励管理办法(再次征求意见稿)20141223

附件1: 南昌航空大学教职工奖励管理办法(试行) (再次征求意见稿) 第一章总则 第一条为了进一步规范我校的奖励制度,充分调动广大教职工的工作积极性和创造性,推动我校各项事业的蓬勃发展,依据学校实际情况制订本办法。 第二条奖励原则 (一)就高原则。同一成果获多项奖励,奖励最高奖项,不重复计算;对获得奖励后又获得更高层次奖励的,学校只发给高于上一次奖金的差额部分。 (二)分配原则。凡成果有学校多名教职工主持(或参与)获得时,奖金由主要负责人分配。 (三)认定原则。属奖励对象的教职工应在规定期限内,向职能部门申报登记,由职能部门组织认定。 第三条奖励类别 (一)教学类奖励,主要包括:教学成果奖,专业建设贡献奖,教改项目立项奖,高水平教材及教改论文奖,教学团队和教学名师奖,教师教学评价奖,教学竞赛奖,高水平学科竞赛奖,等。 (二)科研类奖励,主要包括:高水平科研成果奖,高水平学术论文奖,授权专利奖,高水平学术专著奖,国家级科研项目与重大横向项目奖,国家级学科与科研创新平台、科研创新团队奖,等。 (三)管理类奖励,主要包括:工作荣誉奖,对外宣传报道奖,等。 第四条本办法适用于我校所有正式教职工。以外聘教授等形式聘任的人员完成合同约定职责范围内的任务,不适用本办法。 第二章奖励的范围和标准

注:上级部门奖项由相关职能部门组织认定,学校奖项另行制订办法。 第二十一条本办法规定的奖励每年进行一次,学校于每年12月开始受理申报本年度获得的奖项,原则上漏报奖项不予补发。凭奖励证书及复印件(所在部门在复印件反面签署意见并加盖公章),教学类奖励及教学方面的工作荣誉奖由教务处牵头进行统计和初审,科研类奖励及科研方面的工作荣誉奖等由科技处牵头进行统计和初审,管理类奖励由组织部牵头进行统计和初审。 第二十二条奖金由计划财务处发放,获奖者须按国家规定交纳个人所得税。 第二十三条由学校学术委员会认定的虚报或剽窃他人成果者,学校将收回奖金,并根据相关规定给予处理。 第二十四条未尽事宜或难以明确的奖励项目及成果由学校研究决定。 第二十五条本办法自2014年施行。

南 昌 航 空 大 学 文 件_27322

南昌航空大学文件 校人字[2011]69号 关于印发《南昌航空大学绩效工资管理办法》等八个 文件的通知 各单位(部门): 为推进人事分配制度改革,在广泛征求意见的基础上,制定了《南昌航空大学绩效工资管理办法》等八个文件,经2011年6月19日学校教职工代表大会审议及2011年6月 22日学校第一届第六十四次党委会研究通过,现印发给你们,请贯彻执行。 附件: 1、南昌航空大学绩效工资管理办法 2、南昌航空大学校聘教学科研岗聘任办法(修订稿) 3、南昌航空大学教学科研人员考核办法(修订稿) 4、南昌航空大学教学工作量计算办法(修订稿) 5、南昌航空大学科研工作量计算办法(修订稿) 6、南昌航空大学教学科研岗管理工作量计算办法(试行) 7、南昌航空大学专职实验人员工作职责及考核办法(试行)

8、南昌航空大学管理人员、技术服务人员、工勤人员 考核办法(修订稿) 二○一一年七月一日 主题词:人事工作绩效工资考核办法通知 南昌航空大学党政办公室 2011年7月1日印发 共印4份

附件1、 南昌航空大学绩效工资管理办法 为进一步深化校内分配制度改革,形成有利于调动广大教职工积极性和创造性的制度环境和长效机制,适应学校改革和事业发展的需要,尽早把我校建设成为一所特色突出、优势明显、充满活力、和谐发展的多科性教学研究型航空大学,根据赣府厅发[2010]51号《江西省人民政府办公厅转发省人力资源和社会保障厅省财政厅关于江西省省直其他事业单位绩效工资实施意见的通知》文件精神,在总结前一轮岗位津贴制度实施经验的基础上,制定本办法。 一、指导思想 完善内部考核制度,根据专业技术、管理、工勤等岗位的不同特点,实行分类考核。根据考核结果,在分配中坚持多劳多得、优绩优酬,重点向关键岗位、业务骨干和成绩突出的工作人员倾斜,发挥绩效工资分配的激励导向作用。 二、基本原则 (一)有利于吸引、稳定和激励人才,兼顾外部竞争性与内部公平性,绩效工资待遇能高能低的竞争激励机制。 (二)分类管理,强化考核,突出业绩。在严格定编、科学设岗、明确责任的基础上,强化岗位考核,教职工实际收入与岗位职责、工作业绩和贡献大小挂钩,与学校办学效益挂钩。 (三)聘期考核与年度考核相结合。聘期考核每三年一次,年度考核在自然年度末进行。 (四)实行校院两级管理。学校制定校聘岗位的任职条件并组织评聘;学院根据办学目标、办学水平、学科层次,做好本院聘岗考核和绩效工资发放等工作。 (五)倡导团队精神,加强团队建设,促进人力资源合理配臵。对岗位的聘任,优先考虑已经形成的教学和科研团队。 三、实施范围

相关文档
相关文档 最新文档