实验指导书-面向对象方法与C++程序设计修改.doc_第1页
实验指导书-面向对象方法与C++程序设计修改.doc_第2页
实验指导书-面向对象方法与C++程序设计修改.doc_第3页
实验指导书-面向对象方法与C++程序设计修改.doc_第4页
实验指导书-面向对象方法与C++程序设计修改.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象方法与C+程序设计实 验 指 导 书编 制 人: 马艳 适 用: 计算机科学与技术2013级 编制时间: 2015-2-10 准备实验 VC+ 6.0开发环境及简单程序设计(0学时)一、实验目的1熟悉Visual C+ 6.0的开发环境,学习用Visual C+ 6.0编写标准的C+控制台程序。2 学会编写简单的C+程序,包括基本数据类型,运算符与表达式,基本控制结构,简单输出。3观察头文件的作用。以及using namespace std;4学会使用VC+6.0开发环境中的debug调试功能:单步执行、设置断点、观察变量值。掌握函数的定义和调用方法。5练习重载函数的使用。6练习通过动态内存分配实现动态数组,并体会指针在其中的作用;二、实验任务1使用Visual C+建立一个非图形化的标准C+程序,编译、运行以下程序,比较两个程序的差别:#include using namespace std;void main() coutHello!n; coutWelcome to c+!n;#include void main() coutHello!n; coutWelcome to c+!n;2用do-while语句编程,求自然数110之和。程序正确运行之后,去掉源程序中#include语句,重新编译,观察会有什么问题。3使用debug调试功能观察任务3程序运行中变量值的变化情况4编写重载函数max可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。 5编写具有如下原型的函maxArr(),功能是在数组a的n个元素中找出最大值,返回该最大值数组元素的内存地址,而且再通过引用idx返回具有最大值元素在数组中的下标。int* maxArr(int *arr,int n,int& idx);编写主函数,调用maxArr(),以验证其正确性:void main()int testArr 10=3,4,56,7,8,98,67,4,8,94;int *maxAddr,maxIdx;maxAddr=maxArr(testArr,10,maxIdx);6编写程序,通过指针配合new运算符动态生成一个二维数组,数组元素的值为该元素的行值和列值的和,最后输出该二维数组的每个元素。7定义如下结构体:struct itemint num;item *next;输入k个整数(k值也由键盘输入),将它们依次放入由结构体形成的链表(用new运算符生成链表项)中。再输入一个整数x,查找x在链表中第一次出现的位置(序号),若不存在,输出“不存在”。【提示】:1启动Visual C+ 6.0开发环境2创建一个项目单击File菜单中的New选项显示New(新建)对话框。单击Projects标签,在Projects(项目)选项卡中,选择Win32 Console Application(Win32控制台应用程序)。在Location(位置)文本框中指定一个路径,在Preject Name(项目名称)文本框中为项目输入一个名字,单击OK(确定)按钮。在弹出的Win32 Console Application-Step 1 of 1 对话框中选择An Empty Project单选项,然后单击Finish(完成)按钮。最后在New Project Information对话框中单击OK按钮,完成项目的建立。3建立C+源程序文件选择菜单命令Project | Add to Project | New,弹出New对话框。在new对话框的Files选项卡中选择C+ Source File,并填入文件名称,单击OK按钮,完成新建C+源程序文件。4编辑C+源程序文件内容,在文件编辑窗口中输入代码,并使用菜单命令File | Save保存这个文件。5建立并运行可执行程序,选择菜单命令Build建立可执行程序。如果你正确输入了源程序,此时便成功地生成了可执行程序。如果程序有语法错误,则屏幕下方的状态窗口中会显示错误信息。根据这些错误信息对源程序进行修改后,重新选择菜单命令Build,建立可执行程序。选择菜单命令运行程序,观察屏幕的显示内容。6关闭工作空间,选择菜单命令File | Close Workspace关闭工作空间。以上菜单命令功能也可以在工具栏中选择相应的工具实现。7按照以上步骤编2-6题,编译并运行。8设置断点:用鼠标右键单击源程序中需要设置断点行左边的空白处,出现一个菜单,选择Insert/Remove Breakpoint一项,可看到左边的边框上出现了一个褐色的圆点,这代表已经在这里设置了一个断点。所谓断点就是程序运行时的暂停点,程序运行到断点处便暂停,这样我们就可以观察程序的执行流程,以及执行到断点处时有关变量的值。进入Debug(调试)状态:选择菜单命令Build | Start Debug | Go,或按下快捷键F5,系统进入Debug(调试)状态,程序开始运行,并暂停在断点处。单步执行:从Debug菜单或Debug工具栏中单击Step Over选项或按钮两次。将把鼠标放在某变量名上片刻,可看到出现了一个提示变量的值;此时,在Variables窗口中也可看该变量以及其他变量的值。单步执行时每次执行一行语句,便于跟踪程序的执行流程。因此为了调试方便,需要单步执行的语句不要与其它语句写在一行中。监视:在watch窗口中,在Name栏中输入需要监视的变量名,按回车键,可看到Value栏中出现对应的值(如果没看到Variables窗口或Watch窗口,可通过View菜单的Debug Windows | Variables或Debug Windows | Watch选项打开它们)。参照上述的方法,再试试Debug菜单栏中别的菜单项,熟悉Debug的各种方法。9动态内存分配实现动态数组的实现:在int* maxArr(int *arr,int n,int&idx)中的参数中:第一个参数为int型指针arr,调用此函数时,对应实参为一维整型数组名;第三个参数为int型引用idx,调用时的对应实参为int型变量maxIdx,结果将放入该变量中带回到调用函数。其处理框架如下:idx=0;for(int i=1;i*(arr+idx)return ;10利用cinrowcol;获得键盘输入,取得确定的行、列值。通过“a=new int*row;”,动态生成一组共row个“int*”指针空间,然后通过“ai=new intcol”为每行动态生成col个“int”型数据的存储空间。访问上述动态生成的第i行第j列的int型存储空间时,可使用“*(*(a+i)+j)”、“*(ai+j)”或“aij”。11通过使用结构体来“串联”起一个可以存放数据的动态链表,且该结构体的其中某一分量,即next必须为指向本结构体的指针。通过使用new运算符依次生成各动态链表项,并通过next指针将它们“串联”成为链表。然后遍历链表进行查询。三、实验分析记录出现的问题以及解决方法,贴出最后运行结果。实验一 类与对象(I)(2学时)一、实验目的(1) 理解类和对象的概念,掌握声明类和定义对象的方法。(2) 掌握构造函数和析构函数的实现方法。(3) 初步掌握使用类和对象编制C+程序。(4) 掌握对象数组、对象指针和string类的使用方法。二、实验任务1定义一个类,其中包括类的构造函数和析构函数,并至少包含两个数据成员和一个普通成员函数。在main()函数中定义这个类的对象,并调用其中的成员函数。2.定义一个类,对分别对类中的构造函数和普通成员函数进行重载,在main()函数中定义这个类的对象,并调用其中重载的构造函数和成员函数。(可以写成一个程序,也可以分成两个程序。)3. 定义一个类,其中要自定义拷贝构造函数。在main()函数中定义这个类的对象,并调用其中的拷贝构造函数。三、实验分析记录出现的问题以及解决方法,贴出最后运行结果。实验二 类与对象(II)(2学时)一、实验目的(1) 掌握使用对象、对象指针和对象引用作为函数参数的方法。(2) 掌握类对象作为成员的使用方法。(3) 掌握静态数据成员和静态成员函数的使用方法。(4) 理解友元的概念和掌握友元的使用方法。(5) 掌握运算符重载二、实验任务1. 定义一个类,其中至少包含两个数据成员和一个普通成员函数。在main()函数中定义这个类的一维对象数组,并指针形式调用其中的成员函数。2定义一个类,其中定义至少两个静态数据成员count和sum和一个静态成员函数show(),用于计算定义的对象数和定义的所有对象中某一个变量的累加和。在main()函数中定义这个类的对象,并调用其中的show()成员函数打印count和sum的最终值。3. 至少定义两个类,在一个类中内嵌另一个类的对象作为数据成员,。在main()函数实现对类对应对象的初始化。4.定义一个类,其中至少含有一个常数据成员和常成员函数。在main()函数实现对该类的常对象的定义,并调用其中的常成员函数。三、实验分析记录出现的问题以及解决方法,贴出最后运行结果。实验三 派生与继承(2学时)一、实验目的(1) 掌握派生类的声明方法和派生类构造函数的定义方法。(2) 掌握不同继承方式下,基类成员在派生类中的访问属性。(3) 掌握在继承方式下,构造函数与析构函数的执行顺序与构造规则。(4) 学习虚基类在解决二义性问题中的作用。二、实验任务1定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程试试看。2定义一个基类BaseClass,有整型成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。3定义一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数(SeatNum)等属性。从bicycle和motorcar派生出摩托车(motorcycle)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?编程试试看。4假设商店有如下几种商品:衬衣、帽子和立柜:衬衣:单价,产地,库存量,布料帽子:单价,产地,库存量,样式立柜:单价,产地,库存量,颜色对这些商品的操作有:入库,出库,该类商品的总价格计算。要求用类的继承与派生关系将上述各种货品表示出来,要求有构造函数初始化成员变量,并完成所要求的功能提示:1编写程序定义基类Animal,成员变量age定义为私有的。构造派生类dog,在其成员函数SetAge(int n)中直接对age赋值时,会出现类似以下的错误提示:error C2248: age : cannot access private member declared in class Animalerror C2248: age : cannot access private member declared in class Animal把age改为公有成员变量后重新编译。并验证其他访问权根的作用结果。2编写程序定义一个基类BaseClass,构造其派生类DerivedClass,在构造函数和析构函数中用cout输出提示信息,观察构造函数和析构函数的执行情况。用debug功能跟踪程序执行过程,观察基类和派生类的构造函数和析构函数的执行情况。3如未定义为虚基类,重复继承的基类在派生类对象实例中将存储了多个副本。观察构造和析构函数的调用情况。4这三种商品数据之间的联系,它们有哪些共有的数据,构造一个“基类”,然后由此基类再构造三个类。共有的操作有:出库,入库,显示,总价计算,可定义为:void in(int add_cnt);void out(int del_cnt);void display();double total_price();三、实验分析记录出现的问题以及解决方法,贴出最后运行结果。实验四 多态性(2学时)一、实验目的(1) 了解多态性的概念。(2) 掌握运算符重载的基本方法。(3) 掌握虚函数的定义和使用方法。(4) 掌握纯虚函数和抽象类的概念和用法。二、实验任务1.分析并调试下列程序,写出程序的输出结果,并解释输出结果。/test5_1.cpp#includeusing namespace std;class Bpublic:virtual void f1 (double x)cout”B:f1(double)”xendl;void f2(double x)cout”B:f2(double)”2*xendl;void f3(double x)cout”B:f3(double)”3*xendl;class D:public Bpublic:virtual void f1(double x)cout”D:f1(double)”xendl;void f2(double x)cout”D:f2(double)”2*xendl;void f3(double x)cout”D:f3(double)”3*xf1(1.23);pb-f1(1.23);pb-f2(1.23);pb-f3(1.23);pb-f3(3.14);return 0;2.编写一个程序,其中设计一个时间类Time,用来保存时、分、秒等私有数据成员,通过重载操作符“+”实现两个时间的相加。要求将小时范围限制在大于等于0,分钟范围限制在059,秒钟范围限制在059秒。【提示】时间类Timepublic:Time(int h=0,int m=0,int s=0);Time operator+(Time&);void disptime(string);private: int hourse; int minutes; int seconds; 3.给出下面的抽象基类container; class container protected: double radius; public: container(double radius1); virtual double surface_area()=0; virtual double volume()=0; ;要求建立3个继承container的派生类cube、sphere与cylinder,让每一个派生类都包含虚函数surface_area()和volume(),分别用来计算正方体、球体和圆柱体的表面积及体积。要求写出主程序,应用C+的多态性,分别计算边长为6.0的正方体、半径为5.0的球体,以及半径为5.0和高为6.0的圆柱体的表面积和体积。4.编写一个程序,用于进行集合的并、差和交运算。例如输入整数集合9 5 4 3 6 7和2 4 6 9 ,计算出它们进行集合的并、差和交运算后的结果。【提示】i. 可用以下表达式实现整数集合的基本运算: s1+s2 两个整数集合的并运算s1-s2 两个整数集合的差运算s1*s2 两个整数集合的交运算ii. 参考以下Set类的框架,用于完成集合基本运算所需的各项功能。 class set public: set:set(); void set:input(int d); int set:length(); int set:getd(int i); void set:disp(); set set:operator+(set s1); set set:operator-(set s1); set set:operator*(set s1); set set:operator=(set s1); protected: int len; int sMAX; ;三、实验分析记录出现的问题以及解决方法,贴出最后运行结果。实验五 模板与异常处理(2学时)一、实验目的 (1)正确理解模板的概念。 (2)掌握函数模板和类模板的声明和使用方法。 (3)学习简单的异常处理方法。二、实验任务 1.分析并调试下列程序,写出运行结果并分析原因。 (1) /test6_1_1.cpp #include using namespace std; template T max (T x,T y) return xy? x:y;int max(int a,int b)return ab? a:b;double max (double a,double b)return ab? a:b;int main() cout”max(3,7) is “max(3,7)endl; return 0;(2)/test6_1_2.cpp #include using namespace std;int max(int a,int b)return ab? a:b;double max (double a,double b)return ab? a:b;int main() cout”max(3,7) is “max(3,7)endl; return 0;2. 编写一个求任意类型数组中最大元素和最小元素的程序,要求将求最大元素和最小元素的函数设计成函数模板。3. 编写一个程序,使用类模板对数组元素进行排序、倒置、查找和求和。【提示】设计一个类模板template class Array .;具有对数组元素进行排序、倒置、查找和求和功能,然后产生类型实参分别为int型和double型的两个模板类,分别对整型数组与双精度数组完成所要求的操作。4. 编写一个程序,求输入数的平方根。设置异常处理,对输入负数的情况给出提示。三、实验分析记录出现的问题以及解决方法,贴出最后运行结果。实验六 C+的流类库与输入输出(2学时)一、实验目的(1)掌握C+格式化的输入输出方法。(2)掌握重载运算符“”的方法。(3)掌握磁盘文件的输入输出方法。二、实验任务 1. 下面给出的test7_1_1.cpp程序用于打印九九乘法表,但程序中存在错误。请上机调试,使得此程序运行后,能够输出如下所示的九九乘法表。* 1 2 3 4 5 6 7 8 91 12 2 43 3 6 9 4 4 8 12 165 5 10 15 20 256 6 12 18 24 30 367 7 14 21 28 35 42 498 8 16 24 32 40 48 56 649 9 18 27 36 45 54 63 72 81/test7_1_1.cpp#include #include using namespace std;int main() int i,j; cout”*”; for(i=1;i=9;i+)couti” ”; coutendl;for(i=1;i=9;i+) couti; for(j=1;j=i;j+) Couti*j;return 0;2.下面的程序用于统计文件xyz.txt中的字符个数,请填空完成程序。 /test7_2_1.cpp #include #include using namespace std; int main() char ch;int i=0;ifstream file;file.open(“xyz.txt”,ios:in);if( ) cout”xyz.txt cannot open”endl; abort();While (!file.eof() i+; cout”文件字符个数:”iendl; return 0;3.重载运算符“”,使其能够输入一件商品的信息和输出这件商品的信息。商品的信息由编号、商品名和价格。假如商品类Merchandise的框架如下:class merchandisepublic: Merchandiss(); Merchandiss(); friend istream& operator(istream& in,Merchandiss& s); friend ostream&operatormer; coutmer; return 0;4.编写一个程序,将两个文本文件连接成一个文件,然后将此文件中所有小写字母转换成大写字母,并打印出来。三、实验分析记录出现的问题以及解决方法,贴出最后运行结果。实验七 Windows基于消息事件驱动方式的MFC编程(2学时)一、实验目的1学习windows基于消息事件驱动方式的程序设计2学习一个完整的窗口编制的四个操作步骤3了解Windows提供的窗口类4了解回调函数5学习MFC对话框和单文档编程的一般方法5学习使用MSDN帮助解决问题二、实验任务1写一个Win32 Application应用程序,要求当点击关闭时,弹出对话框确定关闭,否则不关闭。运行初始时,在文档窗口显示“Hello”。2练习使用VC+的AppWizard(应用程序向导)生成一个最简单的基于MFC单文档或者基于对话框的应用程序。提示:1单击File菜单中的New选项,显示New(新建)对话框。在Project(项目)选项卡中,选择“Win32 Application”。在Location(位置)文本框中指定一个路径,在Preject Name(项目名称)文本框中为项目输入一个名字,单击OK(确定)。I. 选择菜单命令Project | Add to Project | New,弹出New对话框。在new对话框的Files选项卡中选择C+ Source File,并填入文件名称,单击OK按钮,完成新建C+源程序文件。2创建一个项目,单击File菜单中的New选项,显示New(新建)对话框。在Project(项目)选项卡中,选择“MFC AppWizard(exe)”。在Location(位置)文本框中指定一个路径,在Preject Name(项目名称)文本框中为项目输入一个名字,单击OK(确定)。.3在出现的对话框中选择Single Document或者dialog based,单击Next(下一步)按钮。以后每步接受缺省,单击Finish(完成)按钮,AppWizard)显示一个摘要表,其中列出了所选的项目特征。单击OK(确定)创建项目。4 编译、运行。查看各个生成的cpp文件,分析生成的,了解代码的执行过程。【提示】:第1题参考程序如下:#include #include LRESULT CALLBACK WinMyProc(HWNDhwnd,UINTuMsg,WPARAMwParam,LPARAMlParam);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)WNDCLASS wndcls;wndcls.cbClsExtra = 0;wndcls.cbWndExtra = 0;wndcls.hbrBackground = (HBRUSH) GetStockObject(BLACK_BRUSH);wndcls.hIcon = LoadIcon (NULL,IDI_ERROR);wndcls.hCursor = LoadCursor (NULL,IDC_CROSS);wndcls.hInstance = hInstance;wndcls.lpfnWndProc = WinMyProc;wndcls.lpszClassName = Lab;wndcls.style = CS_HREDRAW | CS_VREDRAW;wndcls.lpszMenuName = NULL;RegisterClass(&wndcls);/注册窗口类HWND hwnd;hwnd = CreateWindow (Lab,MyFirstWindowProgram, WS_OVERLAPPEDWINDOW, 0, 0, 600, 400, NULL, NULL, hInstance, NULL );ShowWindow (hwnd, SW_SHOWNORMAL);UpdateWindow (hwnd);MSG msg;while (GetMessage (&msg, NULL, 0, 0 )TranslateMessage (&msg);DispatchMessage (&msg);return 0;LRESULT CALLBACK WinMyProc(HWNDhwnd,UINTuMsg,WPARAMwParam,LPARAMlParam)switch(uMsg)case WM_PAINT:HDC hDC;PAINTSTRUCT ps;hDC = BeginPaint(hwnd,&ps);TextOut(hDC,1, 1, Hello,strlen(Hello);EndPaint(hwnd,&ps);break;case WM_CLOSE:if(IDYES = MessageBox(hwnd,Quit?,Quit Dialog,MB_YESNO)DestroyWindow(hwnd);/ENDOF IFbreak;case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hwnd,uMsg, wParam, lParam);/endof swith()return 0;/end of WiMyProc()三、实验分析记录出现的问题以及解决方法,贴出最后运行结果。实验八 VC+和ACCESS数据库的连接(2学时)一、实验目的1创建数据库unicom.mdb;2在视图类“DAO数据库View.cpp”文件前面的文件中导入另一个类CStudentInfoDlg,通过#include” StudentInfoDlg”;3控件变量的设置;4数据记录的显示; 二、实验任务(1)打开Microsoft Access 2003,创建数据库unicom.mdb(该数据库包含一个表unicom,表的结构和表的内容如表6.20所示)。表6.20 unicom.mdb(2)由于DAO要求与Microsoft Access 97数据库进行操作,因此必须将unicom.mdb换成Microsoft Access 97文件格式,转换后的数据库文件名为unicomn,并存放在“桌面”上。转换步骤:打开用Microsoft Access 2003创建的数据库unicom.mdb并选中unicom表,选择“工具”“数据库使用工具”“转换数据库”“转为Access97文件格式”命令,在出现的对话框中的“文件名(N)”处重起文件名,如unicomn。保存并单击“确定”按钮,至此该数据库就转换成Microsoft Access 97文件格式了。注意:当打开转换好的unicomn数据库时,在出现的对话框中,选中“打开数据库”单击“确定”再单击“打开”确定双击数据表的名字,该数据库就打开了。(3)创建一个单文档应用程序,名为:DAO数据库。在“MFC Appwizard-step 2 of 6”对话框中选择Database view without file support(查看数据库不使用文件支持)选项,单击Data Source按钮,出现图6.55所示的对话框。选择DAO单选按钮,单击按钮出现如图6.56所示的对话框,选择unicomn,单击“打开”按钮,发现处已有C:Documents and Settings Administrator桌面unicomn.mdb,如图6.57所示。单击OK按钮,出现如图6.58所示的对话框,从中选中unicom数据表,单击OK按钮回到“MFC Appwizard-step 2 of 6”对话框,单击Finish按钮完成操作。(4)打开对话框资源编辑器IDD_DAO_FORM,在对话框上添加如图6.59布局,如表6.23所示的控件。(5)按Ctrl+W组合键,在出现的MFC ClassWizard对话框中打开Member Variables选项卡,为5个编辑框分别添加5个成员变量,如图6.60所示。 图6.55 选择数据源 图6.56 选择转换后的unicomn数据库 图6.57 选择了unicomn数据库 图6.58 选择unicom数据表 图6.59 对话框上添加的控件 图6.60 添加成员变量表6.23 添加控件列表控 件ID标 题Group BoxIDC_STATIC学生信息Static TextIDC_STATIC学号Edit BoxIDC_EDIT_ID-Static TextIDC_STATIC姓名Edit BoxIDC_EDIT_NAME-Static TextIDC_STATIC性别Edit BoxIDC_EDIT_SEX-Static TextIDC_STATIC年龄Edit BoxIDC_EDIT_AGE-Static TextIDC_STATIC家庭住址Edit BoxIDC_EDIT_ADDRESS-ButtonIDC_BUTTON_ADD添加记录(&A)ButtonIDC_BUTTON_EDIT修改记录(&U)ButtonIDC_BUTTON_DELETE删除记录(&D)图6.61复制到IDD_DIALOG1 对话框上的控件(6)向项目中添加一个对话框资源,将IDD_DAO_FORM对话框上的“学生信息”组框以及“学生信息”组框内的各个控件复制到此对话框(IDD_DIALOG1)上,如图6.61所示。复制方法是:选中IDD_DAO_FORM对话框上的组框及组框内的各个控件,鼠标对准选中处右键单击,在弹出的快捷菜单中选择copy命令,然后双击项目工作区中的IDD_DIALOG1选项,出现IDD_DIALOG1对话框,鼠标对准对话框右键单击并选择Paste命令,就把IDD_DAO_FORM对话框上的控件复制到IDD_DIALOG1对话框上了。说明:复制到IDD_DIALOG1对话框上的控件ID与原对话框IDD_DAO_FORM上的控件ID完全相同。(7)为添加的IDD_DIALOG1对话框资源建类,类名为:CStudentInfoDlg,并用ClassWizard为CStudentInfoDlg 类添加5个如表6.24所示的编辑框的成员变量。表6.24 添加成员变量列表类 名ID成员变量名成员变量类型CStudentInfoDlgIDC_EDIT_IDm_idshortCStudentInfoDlgIDC_EDIT_NAMEm_nameCStringCStudentInfoDlgIDC_EDIT_SEXm_sexCStringCStudentInfoDlgIDC_EDIT_AGEm_ageshortCStudentInfoDlgID

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论