请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的CDeepCopy是一个用于表示矩阵的类。请编写这个类的赋值运算符成员函数0perator=,以实现深层复制。 要求: 补充编制的内容写在“//************333************”与“//****************666*************”之间。不得修改程序的其他部分。 注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。 //CDeepCopy.h include <iostream> include<string> using namespace std; class CDeepCopy { public: int n;//动态数组的元素个数 int *p;//动态数组首地址 CDeepCopy(int); ~CDeepCopy; CDeepCopy&operator=(const CDeepCopy&r);//赋值运算符函数 }; void writeToFile(char}); //main.cpp include”CDeepCopy.h” CDeepCopy::一CDeepCopy{delete[]P;} CDeepCopy::CDeepCopy(int k){n=k;p=new int[n];}//构造函数实现 CDeepCopy&CDeepCopy::0perator=(const CDeepCopy&r)//赋值运算符函数实现 { //***********333********* //***********666*********** } int main { CDeepCopy a(2),d(3); a.p[O]=1;d.p[O]=666;//对象a,d数组元素的赋值 { CDeepCopy b(3);//调用赋值运算符函数 a.p[O]=88;b=a; cout<<b.p[O];//显示内层局部对象的数组元素 } cout<<d.p[O];//显示d数组元素a.p[O]的值 cout<<”d fade away;\n”; cout<<a.p[O];//显示a数组元素a.p[O]的值 writeToFile(””); return 0; }
lq=r.n;//把对象r字符长度赋值给n
delete[]P;//删除动态数组P
P=new int[n];//给动态数组P分配空间为n
for(int i=0;i<n;i++)
//遍历对象r中的数组P
P[i]=r.P[i];//把r.P[i]赋值给P[i]
retum*this://返回被赋值的对象
第1题:
请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程projl,该工程含有一个源程序文件pn,jl.cpp。其中位于每个注释“//ERROR 木}}水found}}水木”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: The value is 10 注意:只修改注释“//ERROR **** found****”的下一行语句,不要改动程序中的其他内容。 //pmjl.cpp include<iostream> using namespace std; class MyClass{ int value; public: //ERROR********found********* void MyClass(int val):value(val){} int GetValueconst{return value;} void SetValue(int val); }; //ERROR********found******** inline void SetValue(int val){value=val;} int main MyClass obj(O); obj.SetValue(10); //ERROR********found********下列语句功能是输出obj的成员value的值 tout<<”The value is”<<obj.value<<endl: return 0; }
第2题:
考生文件夹下有一个分数表,使用菜单设计器制作一个名为my的菜单,菜单只有一个菜单项“信息查看”。该菜单中有“查看学生信息”, “查看课程信息”和“关闭”3个子菜单: “查看学生信息”子菜单按“学号”排序查看成绩; “查看课程信息”子菜单按“课程号”排序查看成绩; “关闭”子菜单负责返回系统菜单。
(2)在考生文件夹下有一个数据库mydb,其中有数据库表“购买情况”,在考生文件夹下设计一个表单myf,该表单为“购买情况”表的窗口输入界面,表单上还有一个标题为“关闭”的按钮,单击该按钮,则退出表单。
分别单击前两个菜单命令行中的“创建”按钮进入程序设计的编辑窗口在命令窗口中输入如下程序段:
*********“查看学生信”菜单命令的程序段********
SELECT * FROM分数ORDER BY学号
********************************************
******“查看课程信息”菜单命令的程序段******
SELECT * FROM分数 ORDER BY 课程
********************************************
在“退出”菜单项的命令文本框中编写程序代码:SET SYSMENU TO DEFAULT。选择菜单命令“菜单”—“生成”生成一个菜单文件my.mpr。
(2)在命令窗口输入命令:CREATE FORM myf打开表单设计器新建表单。
在表单设计器中鼠标右键单击空白表单选择“数据环境”快捷菜单命令打开表单的数据环境将数据表文件“购买情况”添加到数据环境中将数据环境中的“购买情况”拖放到表单中可看到在表单中出现一个表格控件此时实现了“购买情况”表的窗口式输入界面。最后在“表单控件”工具栏中选中命令按钮控件添加到表单中在“属性”面板中修改该命令按钮的Caption属性值为“关闭”双击该命令按钮在Click事件中输入代码:Thisform.Release。
保存表单设计在命令窗口输入命令:DO FORM myf表单运行结果如图3-18所示。

分别单击前两个菜单命令行中的“创建”按钮,进入程序设计的编辑窗口,在命令窗口中输入如下程序段:
*********“查看学生信”菜单命令的程序段********
SELECT * FROM分数ORDER BY学号
********************************************
******“查看课程信息”菜单命令的程序段******
SELECT * FROM分数 ORDER BY 课程
********************************************
在“退出”菜单项的命令文本框中编写程序代码:SET SYSMENU TO DEFAULT。选择菜单命令“菜单”—“生成”,生成一个菜单文件my.mpr。
(2)在命令窗口输入命令:CREATE FORM. myf,打开表单设计器新建表单。
在表单设计器中,鼠标右键单击空白表单,选择“数据环境”快捷菜单命令,打开表单的数据环境,将数据表文件“购买情况”添加到数据环境中,将数据环境中的“购买情况”拖放到表单中,可看到在表单中出现一个表格控件,此时实现了“购买情况”表的窗口式输入界面。最后在“表单控件”工具栏中,选中命令按钮控件添加到表单中,在“属性”面板中修改该命令按钮的Caption属性值为“关闭”,双击该命令按钮,在Click事件中输入代码:Thisform.Release。
保存表单设计,在命令窗口输入命令:DO FORM. myf,表单运行结果如图3-18所示。
解析:本大题1小题主要考查的是菜单设计器的“结果”下拉框中各项的使用功能,例如要建立下级菜单,在“结果”下拉框中就必须选择“子菜单”,而要执行某条菜单命令,就应该选择“命令”或“过程”。2小题考查的是在表单中设定数据环境,通过表单的数据环境快速建立表单控件和数据之间的联系。 第3题:
首先打开考生文件夹下的数据库stsc,然后使用表单向导制作一个表单,要求选择student表中所有字段,表单样式为阴影式,按钮类型为图片按钮,排序字段选择学号(升序),表单标题为“学生信息数据输入维护”,最后将表单存放在考生文件夹中,表单文件名为st_form。
(2)在考生文件夹下有一个数据库stsc,其中数据库表student存放学生信息,使用菜单设计器制作一个名为smenu1的菜单,菜单包括“数据维护”和“文件”两个菜单栏。每个菜单栏都包括一个子菜单。菜单结构如下;
数据维护
数据表格式输入
文件
退出
其中,数据表格式输入菜单项对应的过程包括下列4条命令:打开数据库stsc的命令,打开表student的命令,BROWSE命令,关闭数据库的命令。
退出菜单项对应的命令为SET SYSMENU TO DEFAULT,用于返回到系统菜单。
单击“下一步”进入“选择表单样式”的界面在“样式”列表框中选择 “阴影式”在“按钮类型”选项组中选择“图片按钮”选项。
单击“下一步”进入“排序次序”的设计界面将“可用字段或索引标识”列表框中的“学号”字段添加到右边的“选定字段”列表框中并选择“升序”单选项。
单击“下一步”进入最后的“完成”设计界面在“标题”文本框中输入“学生信息数据输入维护”为表单添加标题单击“完成”命令按钮在系统弹出的“另存为”对话框中将表单以st _ form名保存在考生目录下退出表单设计向导。
(2)在命令窗口输入命令:CREATE MENU smenu1系统弹出一个“新建菜单”对话框在对话框中单击“菜单”按钮进入菜单设计器环境。根据题目要求首先输入两个主菜单名称“数据操作”和“文件”在“结果”下拉列表中全部选择“子菜单”。
在主菜单设计窗口中单击“数据操作”行中的“创建”按钮进入下级菜单的设计界面然后输入子菜单项的名称“数据表格式输入”。根据题意系统要求编写多条命令因此在“结果”对话框中选择“过程”此时出现“编辑”命令按钮单击该命令按钮进入程序编辑窗口在窗口输入如下程序段同如图 3-38所示。
*****“数据表格式输入”菜单命令的程序设计*****
OPEN DATABASE stsc
USE student
BROWSE
CLOSE DATABASE
**********************************************
以同样的方法为“文件”主菜单设计子菜单“退出”最后在“退出”菜单项的“命令”文本框中编写程序代码:SET SYSMENU TO DEFAULT。(要返回上级菜单只要从菜单设计器窗口的“菜单级”下拉列表中选择“菜单栏”即可回到上级菜单)
选择菜单命令“菜单”—“生成”生成一个菜单文件smenu1.mpr关闭设计窗口。
单击“下一步”进入“选择表单样式”的界面,在“样式”列表框中选择 “阴影式”,在“按钮类型”选项组中选择“图片按钮”选项。
单击“下一步”进入“排序次序”的设计界面,将“可用字段或索引标识”列表框中的“学号”字段添加到右边的“选定字段”列表框中,并选择“升序”单选项。
单击“下一步”,进入最后的“完成”设计界面,在“标题”文本框中输入“学生信息数据输入维护”为表单添加标题,单击“完成”命令按钮,在系统弹出的“另存为”对话框中,将表单以st _ form名保存在考生目录下,退出表单设计向导。
(2)在命令窗口输入命令:CREATE MENU smenu1,系统弹出一个“新建菜单”对话框,在对话框中单击“菜单”按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称“数据操作”和“文件”,在“结果”下拉列表中全部选择“子菜单”。
在主菜单设计窗口中,单击“数据操作”行中的“创建”按钮进入下级菜单的设计界面,然后输入子菜单项的名称“数据表格式输入”。根据题意,系统要求编写多条命令,因此在“结果”对话框中选择“过程”,此时出现“编辑”命令按钮,单击该命令按钮进入程序编辑窗口,在窗口输入如下程序段同,如图 3-38所示。
*****“数据表格式输入”菜单命令的程序设计*****
OPEN DATABASE stsc
USE student
BROWSE
CLOSE DATABASE
**********************************************
以同样的方法,为“文件”主菜单设计子菜单“退出”,最后在“退出”菜单项的“命令”文本框中编写程序代码:SET SYSMENU TO DEFAULT。(要返回上级菜单,只要从菜单设计器窗口的“菜单级”下拉列表中选择“菜单栏”即可回到上级菜单)
选择菜单命令“菜单”—“生成”,生成一个菜单文件smenu1.mpr,关闭设计窗口。 解析:本大题1小题考查的主要是利用表单向导建立一个表单,注意每个向导界面,完成相应的设置即可;2小题是基本的菜单设计,注意每个菜单项的菜单级,以及“结果”下拉框中的各个选项的选择,例如用于编写多行命令一般选择“过程”。
第4题:
请使用【答题】菜单命令或直接用VC6打开考生文件夹下的工程prog3,其中声明了ValArray类,该类在内部维护一个动态分配的整型数组。ValArray类的复制构造函数应实现对象的深层复制。请编写ValArray类的复制构造函数。在main函数中给出了一组测试数据,此种情况下程序的输出应该是: ValArray vl={1,2,3,4,5} ValArray v2={1,2,3,4,5} 要求: 补充编制的内容写在“//*********333*********”与“//*********666*********”之间,不得修改程序的其他部分。 注意:程序最后将结果输出到文件out.dat中。输出函数write To File已经编译为boj文件,并且在本程序中调用。 //ValArray.h include<iostream> using namespace std; class ValArray{ int *v: int size; public: ValArray(const int * P,int n):size(n) { v=new int[size]; for(int i=0;i<size;i++) v[i]=P[i];
size=othe].size;
v=liew int[size]:
for(int i=0;i<size;i++)
setAtTay(i,other.v[ij);
第5题:
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,该工程中包含一个程序文件 main.cpp,其中有类CPolygon(“多边形”)、CRectangle(“矩形”)、CTriangle(“三角形”)的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。该程序的正确输出结果应为: 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。 include<lostream> {tout<<——<<endl;} class CRectangle:public CPolygon{ CRe&angle(int w,int h):width(w),height(h){} int area(void){return(width *height);} class CTriangle:public CPolygon{ int length;//三角形一边长 int height;//该边上的高 public: CTriangle(int l,int h):length(1),height(h){} //*********found********* int area(void){return(——)/2;} }; int main{ CRectangle rect(4,5); CTriangle trgl(4,5); //*********found********* ______ *ppolyl,* ppoly2; ppolyl=&rect; ppoly2=&trgl; ppolyl->printarea; ppoly2->printarea; retun 0;
(1)virtual int area(void)=0;
(2)area
(3)length*height
(4)CPolygon