【精品实用】VC实验指导书_第1页
【精品实用】VC实验指导书_第2页
【精品实用】VC实验指导书_第3页
【精品实用】VC实验指导书_第4页
【精品实用】VC实验指导书_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

验指导书 实验一 创建第一个 C+ 程序 一、实验目的 1熟悉 + 2掌握在 + 生成应用程序的过程。 3了解 + 二、实验内容 1. 创建一个基于 该项目中只包含一个源程序文件,其代码如下: # a=1,2,3,4,i,j=1,s=0; i=3;i=0; s+=ai*j; j*=10; a3=1,4,2,4,i,j,m=a00; i=0;i a33=1,2,3,4,5,6,7,8,9,i,s=0; i=0;i # i,j,a34=1,2,3,4,5,6,7,8,9,10,11,12,b43; i=0;i a10,i, /ai; /从键盘输入 10个整数 a0; /平均值 a0,a0; i=1;i # a5; i,ai; i=0;_;i+) ai; _; _; # a34,b34,c34; i,j; aij; bij; i=0;_;i+) j=0;_;j+) _; 0; 0; 0); 0=; =to ; i=5,*p=&i; *p=10; a=1,2,3,4,5; p=a; *(p+3)*=3; a10,*p=a,i; p*p; p=a; p; i=1;ipi) pi; a20=* a+1,); 0; i; 0,0; i,j; a,b,*p=&a,*q=&b,*t; ab; ab) _; _; _; p=*q= _;p+,q+) _ ) a12=1,2,3,4,5,6,7,8,9,10,11,12,*p4; i=0;i *s=; pp=s; i=0;i a5=1,2,3,4,5,i,*p5,*i=0;i c,(*p)3; s23=a,b,c,d,e,f; p=s; c=*(p0+1); a=5; a; 5; 5=“6934”,”8254”,*p2; i,j,s=0; i=0;i=0&pij # n; p; n; _; if(p=0) a100,*0,*i,k; _; i=k= _; i=0;i ); ); ) 00; ); ) ); ) a,b; a=10; b=20; #m); a,b; l = 0; a b; ; ; 三 问题讨论 怎样定义一个函数?无参函数和有参函数的定义有何区别? 在定义一个函数时如果不加类型说明,则它隐含的类型是什么? 函数的调用方式可分为哪几种? 函数的值调用中,对形参和实参有何要求?如果不满足会出现什么现象? 值调用和引用调用有何区别? 实验九 函数指针的应用 一 实验目的 弄清指针作为函数参数时的实质及实参和虚参之间的关系; 掌握用数组名的传递方式解决数组中大量数据在函数间的传递问题; 学会函数指针的使用;如何使用指向函数的指针调用函数。 二 实验内容 填空题 下面程序执行后,输出结果为: 9,8,7,6, ;试将程序补充完整。 # , , ; a=6,7,8,9; x; k=3; k=0; _(1)_) a, _(2)_,k); p,n) q; p; q=p; (1) ;q+) (2) )* q; if(q) (3) ; i,; i; (4) ,5); , t=1,2,3,4,5,6,7,8,9,0; *p=t; p,0,3); p,4,9); p,0,9); i=0; i s , p; *s; s+) p= *p&*s; p+) s=*p) *s=*(; s=” s, ; _(1)_ ) k=0; y(x,n)=x+y(x, y (x , n) if(n=0) ( 1) ; x+(_( 2) ); 问答题 下述程序用于求在数列运算中从 同的数中取 说明函数 和函数 所实现的功能。 该程序是利用非递归方式实现上述功能的,试考虑如果采用递归方式,程序该如何进行修改? 递归调用方式与非递归调用方式相比,有何特点? 源程序: #(n); nr(n, r); n,r; ) n r; n=0 & r=0) ,结束程序 /检查输入的合法性 n ff(n) if(n0) ff( k; 求下列代数式的值,利用嵌套调用实现。 三 问题讨论 什么叫函数的嵌套调用? 嵌套调用时,程序流程如何? 什么叫函数的递归调用?在使用递归调用时,对函数的调用次数有何要求? 实验十一 作用域和预处理 一 实验目的 掌握函数原型作用域、块作用域和函数作用域的基本概念; 通过实例理解全局变量和局部变量的概念; 掌握变量的各种存储方式,以及在不同存储方式下变量的生存期; 掌握编译预处理的作用和常用的编译预处理命令的使用方法。 二 实验内容 填空题 如果一函数定义 中使用了 修饰,则该函数不允许在其他文件中调用。 已知 文件 定义的一个全局变量,若文件 的某个函数也需要访问 在文件 。 判断以下的 _ _次。 # # 2 # N+1 #(M)+1) * (M)/2 ) i,n=0; i=1;i n; f(x); a,b; a=5; b=f(a); r=x; i = 5; i); 在函数 中是否可以直接调用函数 ?为什么? 如果把文件 的两个函数定义 和 的位置换一下,程序是否正确?为什么? 文件 程序中直接标出两个变量各自的作用域。 输入下述程序,分析运行结果,并回答问题。 # i; i=1;i #N 1 # ) ; ) n); c; c=*=0) ; # if(c=a&c=a&c ) 20; 101,Li 18; c4,*s; ; p; s1 ; a, b; ; s; 00; s); 0; ; p; =101,18, 102,19, 103,21; (1) ;p p, n); p, n); 0; ; ; ; ); ); p, n) q= (1) ; ;pp-p-(2) ; p, n) i=1; / 候选人信息结构体 0; /姓名 / 得票数 =0,0,0; i,j; 0; / 输入得票人姓名 i=1; i (1) ; j=0; j #0 /全班同学人数 / 定义结构体 ; /学生成绩 / / 构数组 / (1) ,* p i,j,k,; i=0;iii /输入学生的学号和成绩 pi= (3) ; i /累计学生的分数 i=0; (6) ; if(k (7) ) pi; pi=pk; pk= i=0; x; y; =2,32,8,16,4,48; p=; x; x=p-y/+p-x; s; ; s1 a3=a+1,a+2,a; p=a; ps 编程题 编写程序用来统计学生成绩。它的功能包括输入学生的姓名和成绩, 按成绩从高到低排列打印输出,对前 70%的学生定为合格 (而后 30%的学生定为不及格 ( 有两个链表 a 和 b,设结点中包含学号、姓名。从链表 a 中删去与链表 b 中有相同学号的那些结点。 建立一个简单的通讯录查询系统。每个人的记录包括姓名、性别、年龄、地址等项内容。要求把记录定义为一个结构类型来描述。当用户给出某人的姓名、性别、年龄、地址时,能输出找到或未找到的信息。要求用结构数组和指向结构数组的指针两种方法处理。 建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点已包含此年龄,则将该结点删除;否则,将其插入所建立的链表结构中。 三 问题讨论 1举例说明如何定义和使用结构数组? 2说明结构数组初始化时应注意哪些问题? 3结构指针的自增和自减运算分别代表什么意思? 4可用哪几种方法将一个结构变量的值传递给另一个函数? 5链表是怎样的一种数据结构?简述建立一个链表的基本方法? 6在链表的插入和删除过程中,结构指针是如何操作的? 实验十四 类的定义 一、实验目的 掌握 C+中类定义的方法,并通过类的定义体会面向对象方法的封装概念。通过修改队列类的功能,体会面向对象设计方法在软件功能扩充方面的优越性。 二、实验内容 1用数组的方式定义队 列类。 要求所设计的类有插入、删除、取值、判断队列空等功能,并对类的功能进行测试。 2试将数组方式定义的队列类修改为循环队列类。 三、问题讨论 1 类定义时如何实现类内的信息隐蔽的? 2 循环队列有什么优点? 实验十五 类功能的扩充 一、实验目的 通过对已有类功能的扩充,理解面向对象方法设计的软件功能扩充的一种方法。 二、实验内容 修改上例中的数组类,将数组类定义为可变长度的,并为其增加查找、排序、求均值、求方差、求最大值、求最小值的功能。 三、问题讨论 试论面向对象方法设计软件的可扩充性。 实验十六 类模 板的应用 一、实验目的 C+的类模板是比较常用的代码复用机制。通过实验,读者应掌握类模板的定义形式和使用方法。 二、实验内容 为实验 14 中定义的链式队列类及循环队列类修改为相应的类模板,使其能够存储任何一种类型的数据。 三、问题讨论 使用类模板有什么好处? 实验十七 用面向对象方法设计程序 一、实验目的 更进一步掌握面向对象程序设计方法,从划分类、设计类、封装类直到用 C+语言描述实现抽取的类。进一步体会面向对象方法设计的软件系统的消息驱动机制。 通过对实例的扩展,体会如何对用面向对象方法设计的软件 系统进行维护和功能扩充。 二、实验内容 分析程序,并将扩充功能实现。 三、问题讨论 1 结合实验 6 例 2 的编程,比较面向对象方法与结构化方法的不同。 2在 的构造函数中用顺序结构(申请了一个 组)来存储孩子特征,请思考用链式结构存储方式。 实验十八 继承与派生 一、实验目的 掌握继承派生的使用,充分理解虚函数在派生机制中的应用。 二、实验内容 按下面要求设计程序。 一名兽医要想记录它所治疗的各种类型的狗以及治疗信息,尤其想了解不同的病症对带斑点的狗和不带斑点的狗所产生的一向。为该兽医设计一 个类层次。要求记录狗的品种、身高、体重、颜色等信息。为斑点狗和不带斑点狗个别设计不同的类。下面程序将使用你定义的类: /定义一个白色的 点狗,它身高 24,体重 60,斑点为红色 24,60,; /定义一个黄色的 带斑点的狗,它身高 30,体重 40 30,40,; ; /显示狗的品种 ; /显示狗的斑点信息 ; /显示狗的品种 三、问题讨论 1 C+中继承的目的是什么? 2虚函数和纯虚函数的作用? 实验十九 运算符的重载 一、实验目的 本实验的目的掌握运算符重载方法及运算符重载函数的使用。 二、实验内容 定义复数类,并重载复数类的加法和减法,使之能够执行下列运算: a(2,5),b(4,6),c(0,0); c = a+b; c = 三、问题讨论 用友元函数是否能实现实验举例中的运算符重载函数的功能?二种实现方法的区别是什么?各有什么优点? 实验二十 建立单文档应用程序 一、实验目的 1. 熟悉使用 建单文档 2. 掌握如何在菜单编辑器中进行菜单设计和如何建立菜单项的菜单消息映射。 3. 学习如何在视图窗口中显示所操作的对象。 4. 学习如何利用文档保存数据及数据的磁盘存取。 二、实验内容 创建一个单文档应用程序,实现用鼠标拖 动来画圆,并可实现磁盘存取。 三、思考题 在画圆应用程序的视图内添加滚动条控制显示。 创建

温馨提示

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

评论

0/150

提交评论