问答题使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码。函数sort(int&m,int&n,int&1)实现将三个整数m、n、l由大到小输出。m最大,l最小。
程序分析:程序实现时,可以把最大的数放到m上,先将m与n进行比较,如果m
void sort(int&m,int&n,int&1)
{
}
int main()
{
int x=9;
int y=13;
int z=-3;
sort(x,y,z);
cout<
问答题使用VC6打开考生文件夹下的工程test17_3,此工程包含一个源程序文件test17_3.cpp,其中定义了用于表示点的类Point和表示内容的类Text以及二者的派生类CircleWithText,但它们的定义并不完整。请按要求完成下列操作,将它们的定义补充完整。 (1)定义类Point的构造函数,请使用参数列表的形式将成员函数x和y分别初始化为参数x1和y1的值。请在注释“//**1**。”之后添加适当的语句。 (2)完成类Text的构造函数Text(char *str)的定义,将char型的str指向的内容赋值给text并且输出str所指向的内容,请在注释“//**2**”之后添加适当的语句。 (3)定义类CircleWithText的构造函数CircleWithText(int cx,int cy,char *msg),int型的cx和cy用于赋值给x和y,char型的指针*msg用于赋值给text,请在注释“//**3**”之后添加适当的语句。 输出结果如下: Point:3 4 hello 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 源程序文件test17_3.cpp清单如下: #include <iostream.h> #include <string.h> class Point int x,y; public: //**1** cout<<"Point:"<<x<<' '<<y<<'/n'; ~Point() ; class Text char text[100]; public: Text(char *str) //**2** ~Text () ; class CircleWithText:public Point,public Text public: //**3** ~CircleWithText() ; void main() CircleWithText cm(3,4,"hello");
问答题请使用“答题”菜单或使用VC6打开考生文件夹proj3下的工程proj3,其中声明了MyString类。MyString是一个用于表示字符串的类。成员函数startsWith的功能是判断此字符串是否以指定的前缀开始,其参数s用于指定前缀字符串。如果参数s表示的字符串是MyString对象表示的字符串的前缀,则返回true;否则返回false。注意,如果参数s是空字符串或等于MyString对象表示的字符串,则结果为true。 例如:字符串"abc"是字符串"abcde"的前缀,而字符串"abd"不是字符串"abcde"的前缀。请编写成员函数startsWith。在main函数中给出了一组测试数据,此情况下程序的输出应该是: s1=abcde s2=abc s3=abd s4= s5=abcde s6=abcdef s1 startsWith s2:true s1 startsWith s3 false s1 startsWith s4 true s1 startsWith s5 f true s1 startsWith s6 false 要求:补充编制的内容写在//********333********与//********666********两行之间,不得修改程序的其他部分。 注意:程序最后已经将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。 //源程序 #include"MyString.h" bool MyString::startsWith(const char*s)const //********333******** //********666******** int main() char s1[]="abcde"; char s2[]="abc"; char s3[]="abd"; char s4[]=" "; char s5[]="abcde"; char s6[]="abcdef"; MyString str(s1); cout<<"s1="<<s1<<endl<<"s2="<<s2<<endl<<"s3="<<s3<<endl <<"s4="<<s4<<endl<<"s5="<<s5<<endl<<"s6="<<s6<<endl: cout<<boolalpha<<"s1 startsWith s2:"<<str.startsWith(s2)<<endl <<"s1 startsWith s3:"<<str.startsWith(s3)<<endl <<"s1 startsWith s4:"<<str.startsWith(s4)<<endl <<"s1 startsWith s5:"<<str.startsWith(s5)<<endl <<"s1 startsWith s6:"<<str.startsWith(s6)<<endl; //writeToFile("K://bl0//61000101//"); return 0:
问答题请使用VC6或使用[答题]菜单打开考生文件夹proj3下的工程文件proj3,此工程中包含一个源程序文件proj3.cpp,其中定义了用于表示平面坐标系中的点的类MyPoint和表示线段的类MyLine;程序应当显示:(0,0)(1,1)1.41421,1但程序中有缺失部分,请按照以下提示,把缺失部分补充完整:(1)在“//**1******found****”的下方是构造函数的定义,它用参数提供的两个端点对point1和point2进行初始化。(2)在“//**2******found****”的下方是成员函数length的定义,返回线段的长度。(3)在“//**3******found****”的下方是成员函数slope的定义中的一条语句。函数slope返回线段的斜率,方法是:若线段的两个端点分别是(x1,y1)和(x2,y2),则斜率k为:。注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“****found****”。//proj3.cpp#include<iostream>#include<cmath>usingnamespacestd;classMyPoint{//表示平面坐标系中的点的类doublex;doubley;public:MyPoint(doublex,doubley){this->x=x;this->y=y;}doublegetX()const{returnx;}doublegetY()const{returny;}voidshow()const{cout<<'('<<x<<','<<y<<')';}};classMyLine{//表示线段的类MyPointpointl;MyPointpoint2;public:MyLine(MyPointp1,MyPointp2);MyPointendPoint1()const{returnpoint1;}//返回端点1MyPointendPoint2()const{returnpoint2;}//返回端点2doublelength()const;//返回线段的长度doubleslope()const;//返回直线的斜率};//**1************found**********MyLine::MyLine(MyPointp1,MyPointp2):______{}//**2************found**********doubleMyLine::______{returnsqrt((point1.getX()-point2.getX())*(point1.getX()-point2.getX())+(point1.getY()-point2.getY())*(point1.getY()-point2.getY()));}doubleMyLine::slope()const{//**3************found**********return(______)/(point2.getX()-point1.getX());}intmain(){MyLineline(MyPoint(0,0),MyPoint(1,1));line.endPoint1().show();line.endPoint2().show();cout<<endl<<line.length()<<','<<line.slope()<<endl;return0;}
问答题使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(int n),使其实现以下功能:当i等于3时,则打印如下内容。 A AA AAA 注意:不能修改程序的其他部分,只能修改fun函数。 试题程序: #include<iostream.h> void fun(int n) void main() int n; cout<<"请输入打印的行数:"<<end1; cin>>n; if(n<1) cout<<"输入的行数必须大于0"<<end1; return; fun(n); return;
问答题使用VC++6.0打开
下的源程序文件2.cpp。阅读下列函数说明和代码。函数num(char *str)用于返回字符串中非数字的个数。
例如:abc123abc45
返回值为:6
将函数num补充完整。
注意:请勿改动主函数main。
试题程序:
#include<iostream.h>
int num(char *str)
{
}
int main()
{
char str[1024];
cout<<"please input a string:"<<endl;
cin.getline(str,1024);
cout<<"char number is"<<num(str)<<endl;
return 0;
}
问答题使用VC++6.0打开
下的源程序文件3.cpp,其中定义了用于表示学生学号的类StuID,但类StuID的定义并不完整。请按要求完成下列操作,将类StuID的定义补充完整,使程序的运行结果为
学生的学号为:20100401
学生名为:张三
删除学生学号为:20100401
(1)定义StuID类的私有数据成员IDvalue,用于表示学生的学号,学号为long型的数据。请在注释1之后添加适当的语句。
(2)完成默认构造函数StuID的定义,使StuID对象的默认值为:id=0,并把学生的学号赋给IDvalue,并输出“学生的学号为:”及学号。请在注释2之后添加适当的语句。
(3)完成默认析构函数StuID的定义,使StuID析构时输出“删除学生学号为:”及学号。请在注释3之后添加适当的语句。
(4)完成默认构造函数StuInfo的定义。对应两个默认参数:定义char stName[],其默认值为“no name”,定义longstID,其默认值设为0,并使它们赋值给相应的类数据成员。请在注释4之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
试题程序:
#include<iostream.h>
#include<string.h>
class StuID
{
//********1********
public:
//********2********
{
IDvalue=id;
cout<<"学生的学号为:"<<IDvalue<<endl;
}
//********3********
{
cout<<"删除学生学号为:"<<IDvalue<<endl;
}
};
class StuInfo
{
private:
StuID id;
char name[20];
public:
//********4********
{
cout<<"学生名为:"<<stName<<endl;
strcpy(name,stName);
}
};
void main()
{
StuInfo st("张三",20100401);
}
问答题综合应用题
使用VC6打开考生文件夹下的工程test1-_3。此工程包含一个test1_3.cpp,其中定义了类circle和column,其中column类由circle类protected派生,但两个类的定义并不完整。请按要求完成下列操作,将程序补充完整。
(1)定义类circle的保护数据成员r和area,它们都是double型的数据。请在注释"// ** 1 ** "之后添加适当的语句。
(2)添加类circle的无参数的构造函数,使circle对象的r默认值为0,请在注释"// ** 2 ** "之后添加适当的语句。
(3)添加派生类column构造函数的定义,传入的参数为double型的height和radius,并将其分别赋值给数据成员h和基类的r,请在注释"// ** 3 ** "之后添加适当的语句。
(4)完成派生类column的成员函数print的定义,使其以格式"r=_area=_"先输出半径r和底面积area,再以格式"h=_vol=_"输出高h和体积vol的值,请在注释"// ** 4 ** "之后添加适当的语句。
输出结果如下:
r=1 area=3.1416
h=2 vol=6.2832
注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。
源程序文件test1_3.cpp清单如下:
#include
const double pi=3.1416;
class circle
{
protected:
// ** 1 **
public:
// ** 2 **
circle(double radius){ r=radius; }
void print()
{
area=r*r*pi;
cout<<"r="<
问答题请使用VC6或使用[答题]菜单打开
proj2下的工程proj2,此工程包含有一个源程序文件proj2. cpp,其中定义了Stack类和ArrayStack类。
Stack是一个用于表示数据结构“栈”的类,栈中的元素是字符型数据。Stack为抽象类,它只定义了栈的用户接口,如下所示:
公有成员函数 功能
push 入栈:在栈顶位置添加一个元素
pop 退栈:取出并返回栈顶元素
ArrayStack是Stack的派生类,它实现了Stack定义的接口。ArrayStack内部使用动态分配的字符数组作为栈元素的存储空间。数据成员maxSize表示的是栈的最大容量,top用于记录栈顶的位置。成员函数push和pop分别实现具体的入栈和退栈操作。
请在程序中的横线处填写适当的代码,然后删除横线,以实现上述功能。此程序的正确输出结果应为:
a, b, c
c, b, a
注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
//proj2. cpp
#include <iostream>
using namespace std;
class Stack{
public:
virtual void push(char c)=0;
virtual char pop()=0;
class ArrayStack: public Stack {
char*P;
int maxSize;
int top;
public:
ArrayStack(int s)
{
top=0;
maxSize=s;
//********found********
P=______;
}
~ArrayStack()
{
//********found********
______;
}
void push(char c)
{
if(top==maxSize) {
cerr<<"Overflow!/n";
return;
}
//********found********
______;
top++;
}
char pop()
{
if(top==0) {
cerr<<"Underflow!/n";
return"/0";
}
top--;
//********found********
______;
}
};
void f(Stack
cout<<ch[0]<<"," <<ch[1]<<"," <<ch[2]<<endl;
sRef. push(ch[0]); sRef. push(ch[1]); sRef. push(ch[2]);
cout<<sRef. pop()<<",";
cout<<sRef. pop()<<",";
cout<<sRef. pop()<<endl;
}
int main()
{
ArrayStack as(10);
f(as);
return 0;
}
问答题请使用VC6或使用[答题]菜单打开考生文件夹proj3下的工程proj3,其中声明的DataList类,是一个用于表示数据表的类。sort成员函数的功能是将当前数据表中的元素升序排列。请编写这个sort函数。程序的正确输出应为: 排序前:7,1,3,11,6,9,12,10,8,4,5,2 排序后:1,2,3,4,5,6,7,8,9,10,11,12 要求: 补充编制的内容写在“//********333********”与“//********666********”两行之间。不得修改程序的其他部分。 注意:程序最后将结果输出到文件out. dat中。输出函数writeToFile已经编译为obj文件,并且在本程序调用。 //DataList.h #include<iostream> using namespace std; class Datalist//数据表类 int len; double*d; public: DataList(int len,double data[]=NULL); ~DataList()delete[]d; int length()const return len; //数据表长度(即数据元素的个数) double getElement(int i)constreturn d[i]; void sort();//数据表排序 void show () const; //显示数据表 ; void writeToFile (char*, constDataList //main.cpp #include "DataList.h" DataList::DataList(int len,double data[]):len(len) d=new double[len]; forint i=0;i<len;i++) d[i]=(data==NULL?0.0:data[i]); void DataList::sort()//数据表排序 //********333******** //********666******** void Datalist::show()const //显示数据表 for(int i=0;i<len-1;i++)cout<<d[i]<<","; cout<<d[len-1]<<endl; int main () double s[]=7,1,3,11,6,9,12,10,8,4,5,2; DataList list(12,s); cout<<"排序前:"; list.show(); list.sort(); cout<<endl<<"排序后:"; list.show(); writeToFile(" ",list); return 0;
问答题使用VC6打开考生:丈件夹下的源程序文件modi3.cpp。学校教务处要为任课老师开发一个学生管理系统,需求如下: (1)学生的信息是要受到严密保护和限制的,包括姓名、五个英文字符的学号,以及精确到小数点后一位的一科成绩,只有任课老师可以修改,如果学生升学了,比如由本科升到研究生,原来的信息还有效,而只需添加研究生的必要信息,不过现在不必马上实现,但应当有所考虑。 (2)学生的所有信息可以查看,但也只有学生自己才有这个权利。 (3)学生的信息可以从文件中读取来构造信息库,需要把信息输出到屏幕以便核实,但这需要任课老师来完成。 (4)老师能提供所教学生的完整信息列表,同时可按成绩高低排序。 (5)为了便于学校评定奖学金,需要单独查找成绩最高的同学(一般不采用把成绩单全部排列后来选取,可能这比较耗费时间,虽然要求不太合理,但要按用户的需求操作,同时需要指出的是,如果成绩最高者有数名,需要一一列出)。 (6)由于学校的机器比较老,内存严重不足,每个老师带的学生数不一样,但也不会超过50人。 以上功能的程序框架已经形成,考生需要按照需求来逐个实现。 (1)请在注释//********1********之后添加适当的语句,以便实现功能需求(1)。 (2)请在注释//********2********处添加适当的语句,成绩单排序功能。 (3)请在注释//********3********处实现奁找成绩最高学生名单。 无需修改main()主函数,当得到下面的结果,该系统可能被采用。 输入的学生信息: 姓名 学号 成绩 周华 0001 78.5 李强 0002 98 刘星 0003 89 贺兰 0004 78 周红 0005 76.5 赵邦 0006 85 高俊 0007 98 排序后的学生信息: 姓名 学号 成绩 李强 0002 98 高俊 0007 98 刘星 0003 89 赵邦 0006 85 周华 0001 78.5 贺兰 0004 78 周红 0005 76.5 查询成绩最高的学生信息: 高俊 0007 98 李强 0002 98 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。#include<fstream.h>#include<assert.h>#include<string.h>#define NMAX 50class Teacher;class Student{public: Student(char *name=“未知”,char *number=“00000”,doublemark=0.01 { int len=strien(name); m name:new char[len+1]; strcpy(m name,name); strcpy(m number,number); m mark=mark; } ~Student() { delete[]m name; ) void DisplayMsg() { cout<<m name<<"\t"<<mnumber<<"\t"<<m mark<<endl; }protected: char *m name; char m number[5]; double m mark; //********1********};Class Teacher{public: Teacher()(}; ~Teacher(){ for(int i=0;i<m count;i++) { delete m pStu[i]; m pStu[i]=NULL; } }; int BestScore(Student*pS[]); void InputScore(); void mi splay(); void SortScore();protected: Student *m_pStu[NMAX]; double m average; int m count;};void Teacher::InputScore(){ ifstream in("data.txt"); assert(in); char name[20]; char number[5]; double mark=0; m count=0; cout<<"姓名\t"<<"学号\t"<<"成绩\t"<<endl; for( int i=0; !in.eof();i++){ in>>name; in>>number; in>>mark; m_count++; m_pStu[i]=new Student(name,number,mark); cout<<narne<<"\t"<<number<<"\t"<<mark<<endl; }}void Teacher::SortScore(){. double sum=0; for(int i=0; i<m count;i++) f int index=i; for(int j=i+l ; j<m count;j++1 { if(m_pStu[j]->m_mark>m pStu[index]->m_mark) index=j; } //********2******** if() { Student*ps=m pStu[i]; m pStu[i]=m pStu[index]; m_pStu[index]=ps; } }}void Teacher::Display(){ cout<<"姓名\t"<<"学号\t"<<"成绩\t"<<endl; for(int j=0; j<m count;j++) { m_pStu[j]->DisplayMsg(); }}int Teacher::BestScore(Student*pS[]) { int index=0; int count=1; //********3******** for(int j=1;j<m_count;j++) { if(m pStu[j]_>m mark>m pStu[index]_>m mark) { count=1; index=j; pSpcount++]=m pStu[index]; } else if(m pStu[j]->m mark==m_pStu[index]->m_mark) { index=j; pS[count++]=m_pStu[index]; } } return count;}Void main(){ Teacher Teacher; Student *pStudent[NMAX]; cout<<"输入的学生信息:"<<endl; Teacher.InputScore(); Teacher.SortSCOre(); cout<<endl<<"排序后的学生信息:"<<endl; Teacher.Display(); cout<<endl<<"查询成绩最高的学生信息:"<<endl; int n=Teacher.BestScore(pStudent); while(n--) { pStudent[n]->DisplayMsg(); }}
问答题使用VC6打开考生文件夹下的源程序文件modi l.cpp,该程序运行时有错误,请改正错误,使得程序正常运行。并使程序输出结果为:
ABCDEF
ABCDEF
ABCDEF
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在∥********error********的下面。
#include
void main()
{
∥********error********
char S1[]=“ABC
”DEF”;
∥********error********
char s2[]=”ABC
DEF”;
∥********error********
char S3[]=”ABC”+
”DEF”;
cout<
问答题请使用VC6或使用【答题】菜单打开
proj2下的工程proj2,该工程中含有一个源程序文件proj2.cpp,其中定义了CharShape类、Triangle类和Rectangle类。
CharShape是一个抽象基类,它表示由字符组成的图形(简称字符图形),纯虚函数Show用于显示不同字符图形的相同操作接口。Triangle和Rectangle是CharShape的派生类,它们分别用于表示字符三角形和字符矩形,并且都定义了成员函数Show,用于实现各自的显示操作。程序的正确输出结果应为:
*
***
*****
*******
########
########
########
请阅读程序,分析输出结果,然后根据以下要求在横线处填写适当的代码并删除横线。
(1)将Triangle类的成员函数Show补充完整,使字符三角形的显示符合输出结果。
(2)将Rectangle类的成员函数Show补充完整,使字符矩形的显示符合输出结果。
(3)为类外函数fun添加合适的形参。
注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“// ****found****”。
// proj2.cpp
#include <iostream>
using namespace std;
class CharShape {
public:
CharShape(char ch) : _ch(ch) {};
virtual void Show() = 0;
protected:
char _ch; //组成图形的字符
};
class Triangle : public CharShape {
public:
Triangle (char ch, int r) :
CharShape(ch), _rows(r) {}
void Show();
private:
int _rows; //行数
};
class Rectangle: public CharShape {
public:
Rectangle (char ch, int r, int c) : CharShape (ch), _rows(r), _cols(c) {}
void Show ();
private :
int _rows, _cols; //行数和列数
};
void Triangle::Show()
//输出字符组成的三角形
{
for (int i = 1; i < = _rows; i ++) {
// ********found********
for (int j = 1; j < =______; j ++)
cout << _ch;
cout << endl;
}
}
void Rectangle::Show()
//输出字符组成的矩形
{
// ********found********
for (int i = 1; i < =______; i++) {
// ********found********
for (int j = 1; j < =______; j++)
cout << _ch;
cout << endl;
}
}
// ********found******** 为fun函数添加形参
void fun (______) {cs. Show();}
int main()
{
Triangle tri ("*", 4);
Rectangle rect("#", 3, 8);
fun(tri);
fun(rect);
return 0;
}
问答题使用VC6打开考生文件夹下的工程proj3,其中包含主程序文件main.epp和用户定义的头文件Array.h,整个程序包含有XArray类的定义和main主函数的定义。请把主程序文件中的XArray类的成员函数sum()的定义补充完整,补充的内容填写在"//**********333**********"与"//**********666**********"两行之间。经修改后运行程序,得到的输出为: 10 d=43 注意:只允许在"//**********333**********"和//**********666**********"两行之间填写内容,不允许修改其他任何地方的内容。//Array.h#include<iostream>#inelude<estdlib>using namespaee std;class XArray{//数组类 int*a: int size;public: XArray(int b[],int len):size(1en)//构造函数 { if(size<2){cout<<"参数不合适"<<endl;exit(1);} a=new int[size]; for(int i=0;i<size;i++)a[i]=b[i]; } int sam();//返回数组a[size]中的最大值与最小值之和 int length()const{return size;}//返回数组长度 ~XArray(){delete[]a;}void writeToFile(const char*);//不用考虑此语句的作用//main.cpp#include"Array.h"//返回数组a[size]中的最大值与最小值之和int XArray::sum(){//补充函数体 //**********333********** //**********666**********} void main(){ int s1[10]={23,15,19,13,26,33,18,30,20,10}; XArray x(s1,10); int d=x.sum(); cout<<x.1ength()<<endl; cout<<"d="<<d<<endl: writeToFile("c:\\test\\");//不用考虑此语句的作用 }
问答题使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出: 1,2,3,4,5, 注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//********error********的下面。#include<iostream.h>Class TeStClass{ //********error******** TestClass(int i) { m i=i; } void print() { cout<<++m i<<‘,’; }public: int m i;},int main(){ ∥********error******** int i(); TeStClass data(0); while(i>5) { //********error******** i++; data.print(); } cout<<end1; return 0;}
问答题请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,此工程包含一个源程序文件proj2.cpp。其中定义了Score类。 Score是一个用于管理考试成绩的类。其中,数据成员一s指向存储成绩的数组,_n表示成绩的个数;成员函数Sort使用冒泡排序法将全部成绩按升序进行排列。 请在程序中的横线处填写适当的代码,然后删除横线,以实现Score类的成员函数Sort。 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。//proj2.cpp#include<iostream>#include<cstdlib>#include<ctime>using namespace std;clasS Score{public: Score(double*S,int n):_S(S),_n(n){} double GetScore(int i)const{return S[i];) void Sort();private: double* S; int n; }; void Score::Sort() { //********found******** for(int i=0;i< n一1; } //********found******** for(int j= ;j>i;j一一) if(_S[j]<_S[j一1]) { //交换_s[j]和_s[j一1] double t=S[j]; //******** found******** ________;: //******* found******** _______; } } int main() { const int NUM=10; double S[NUM]; srand(time(0)); for(int i=0;i<NUM;i++) S[i]=double(rand())/RAND MAX*100; Score SS(S,NUM); SS.Sort(); for(int J=0;j<NUM;j++) cout<<SS.GetScore(j)<<endl; return 0; }
问答题使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数convert(char*des,char*str)实现的功能是,如果字符串str里面有空格或者不可打印字符,则全部去掉,将转化后的字符串放在字符串des里,然后返回该字符串。注意:不能修改程序的其他部分,只能补充convert0函数。#include<iostream.h>#include<ctype.h>#define MAXLEN1024char*convert(char*des,char*str){}void main(){char deSt[MAXLEN];char*str="Ab cDeF hJ K";cout<<convert(dest,str)<<endl;return;}
问答题请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的DataList类,是一个用于表示数据表的类。s0rt成员函数的功能是将当前数据表中的元素升序排列。请编写这个sort函数。程序的正确输出应为:
排序前:7,1,3,11,6,9,12,10,8,4,5,2 排序后:l,2,3,4,5,6,7,8,9,10,11,12
要求:
补充编制的内容写在“//********33********”与“//********666********”两行之问。不得修
改程序的其他部分。
注意:程序最后将结果输出到文件。ut.dat中。输出函数writeToFile已经编译为。obj文件,并且在本程序
调用。
//DataList.h
#inClude using namespaCe std; Class DataList{//数据表类
int len;
double*d: publiC:
DataList(int len,double data[]=NULL);。DataList(){delete[]d;}
int length(Constt retum len;}//数据表长度(即数据元素的个数) double getElement(int i)Const{return d[i];}
void sort();//数据表排序
void show()Const;//显示数据表}.
void writeToFile(Char*,Const DataList&).//main.Cpp
#inClude”DataList.h”
DataList::DataList(int len,double data[]):len(1en){ d=new double[1en];
for(int i_0;i
问答题请使用VC6或使用[答题]菜单打开考生目录proj3下的工程文件proj3,该工程中包含一个源程序文件proj3.cpp,其中定义了用于表示平面坐标系中的点的类MyPoint和表示圆形的类MyCircle;程序应当显示:
(1,2),5,31.4159,78.5398
但程序中有缺失部分,请按照以下提示,把缺失部分补充完整:
(1)在“//**1** ****found****”的下方是构造函数的定义,它用参数提供的圆心和半径分别对cen和rad进行初始化。
(2)在“//**2** ****found****”的下方是非成员函数perimeter的定义,它返回圆的周长。
(3)在“//**3** ****found****”的下方是友元函数area的定义,它返回圆的面积。
注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“****found****”。
// proj3.cpp
#include <iostream>
#include <cmath>
using namespace std;
class MyPoint { //表示平面坐标系中的点的类
double x;
double y;
public:
MyPoint (double x, double y)
{this->x=x; this->y=y;}
double getX()const{ return x;}
double getY()const{ return y;}
void show()const
{ cout <<'('<<x<<',' <<y<<')';}
};
class MyCircle{ //表示圆形的类
MyPoint cen; //圆心
double rad; //半径
public:
MyCircle(MyPoint,double);
MyPoint center () const { return cen; } //返回圆心
double radius()const{ return fad;}
//返回圆半径
friend double area (MyCircle); //返回圆的面积
};
//**1** **********found**********
MyCircle::MyCircle(MyPoint p, doubler) : cen(p), ______{}
#define PI 3.1415926535
double perimeter(MyCircle c)
//返回圆c的周长
{//**2** **********found**********
return PI*______;
}
//**3** **********found**********
double area(______) //返回圆a的面积
{
return PI* a.rad* a.rad;
}
int main()
{
MyCircle c(MyPoint(1, 2), 5.0);
c.center().show();
cout <<','<<c.radius() <<','<<perimeter(c) <<','<<area(c)<<endl;
return 0;
}
问答题使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成函数fun(int n),求出n×11矩阵的对角线数字的平方和。如果n为奇数,则对角线交叉部位数字只参与一次计算。
注意:请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
1 #inolude
2 #define MAX N 10
3 int XX[MAX N][MAX N];
4 int fun(int 13.)
5 {
6
7 }
8 void main()
9 {
10 int n;
11 do
12 {
1 3 count>12;
15 if(n= 1)
16 {
17 break;
18 }
1 9 )whil e(1);
20 for(int i=0 ; i>XX[i][j];
26 }
27 }
28 tout;<