cout< void Set::reverse() { int n=num/2; for(int i=0;i int temp; temp=data[i]; data[i]=data[num-i-1]; data[num-i-1]=temp; } } void main() { Set A; cout<<\是否为空:\ cout<<(A.issetempty()?\空\非空\ cout<<\:\ Set B; for(int i=1;i<=8;i++) B.add(i); cout<<\:\ cout<<\是否在B中:\ B.setempty(); for(int j=11; j<20;j++) B.add(j); Set C(B); cout<<\:\ C.reverse(); cout<<\逆置\ cout<<\:\} 11. 设计一个职工类Person,一个系有若干个职工,按职务分为系主任、室主任和职工,给出他们之间的领导关系。 【知识点】:2.2 【参考分】:25分 【难易度】:C 【答案】:类Person有姓名、职务和指向领导的指针等私有数据,以及两个构造函数和以下成员函数:setleader()设置当前职工的领导;getname()获取职工姓名;getleader()获取领导者对象指针:disp()输出姓名和职务。程序如下: #include 12. 需要求3个长方柱的体积,请编一个基于对象的程序。数据成员包括length(长)、width(宽)、height(高)。要求用成员函数实现以下功能: (1)由键盘分别输入3个长方柱的长、宽、高; class Person { char name[10]; char prof[10]; Person *1eader; public: Person(){strcpy(name,\ Person(char n[],char P[]) { strcpy(name,n); strcpy(prof,P); leader=new Person; } void setleader(Person &p){leader=&p;} //对象引用作为参数 char *getname(){return name;) Person *getleader() { return leader; } void disp() { cout< void main() { Person P[ ]={Person(\王华\室主任\李明\职工\ Person(\陈强\系主任\章城\职工\ Person(\张伟\室主任\许源\职工\P[0].setleader(P[2]); P[1].setleader(P[0]); P[3].setleader(P[4]); P[4].setleader(P[2]); P[5].setleader(P[4]); cout<<” 姓名 职务 领导姓名”< P[i].disp(); cout< (2)计算长方柱的体积; (3)输出3个长方柱的体积。 【知识点】:2.2 2.3 【参考分】:20分 【难易度】:C 【答案】: #include void get_value(); float volume(); void display(); public: float lengh; float width; float height; }; void Box::get_value() { cout<<\ cin>>lengh; cin>>width; cin>>height; } float Box::volume() { return(lengh*width*height);} void Box::display() { cout< int main() {Box box1,box2,box3; box1.get_value(); cout<<\ box1.display(); box2.get_value(); cout<<\ box2.display(); box3.get_value(); cout<<\ box3.display(); return 0; } 13. 建立一个对象数组,内放5个学生的数据(学号、成绩),用指针指向数组首元素,输出第1、3、5个学生的数据。 【知识点】:3.2 【参考分】:20分 【难易度】:C 【答案】: #include Student(int n,float s):num(n),score(s){} void display(); private: int num; float score; }; void Student::display() {cout< int main() {Student stud[5]={ Student(101,78.5),Student(102,85.5),Student(103,98.5), Student(104,100.0),Student(105,95.5)}; Student *p=stud; for(int i=0;i<=2;p=p+2,i++) p->display(); return 0; } 14. 建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。 【知识点】:3.2 【参考分】:20分 【难易度】:C 【答案】: #include Student(int n,float s):num(n),score(s){} int num; float score; }; void main() {Student stud[5]={ Student(101,78.5),Student(102,85.5),Student(103,98.5), Student(104,100.0),Student(105,95.5)}; void max(Student* ); Student *p=&stud[0]; max(p); } void max(Student *arr) {float max_score=arr[0].score; int k=0; for(int i=1;i<5;i++) if(arr[i].score>max_score) {max_score=arr[i].score;k=i;} cout< 15. 商店销售某一商品,商店每天公布统一的折扣(discount)。同时允许销售人员在销售时灵活掌握售价(price),在此基础上,对一次购10件以上者,还可以享受9.8折优惠。现已知当天3个销货员的销售数量情况为: 销货员号(num) 销货件数(quantity) 销货单价(price) 101 5 23.5 102 12 24.56 103 100 21.5 请编程序,计算出当天此商品的总销售款sum以及每件商品的平均售价。要求用静态数据成员和静态成员函数。 【知识点】:2.2 3.5 【参考分】:30分 【难易度】:B 【答案】: #include Product(int n,int q,float p):num(n),quantity(q),price(p){}; void total(); static float average(); static void display(); private: int num; int quantity;