欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    c机考题目加复习资料.docx

    • 资源ID:57776102       资源大小:20.16KB        全文页数:31页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c机考题目加复习资料.docx

    1. 实现一个大小固定的整型数据元素集合及其相应操作(元素的添加、删除;判断两个集合是否相等;判断一个数是否为集合中的元素;交集;并集)。P#include <iostream.h>const maxCard = 16; / 集合中元素个数的最大值,默认为int型enum ErrCode noErr, overflow; / 错误代码enum Bool False, True; / Bool类型定义class Set / 定义集合类 int elemsmaxCard; / 存储元素的数组 int card; / 集合中元素的个数public: void EmptySet( )card = 0; Bool Member(int); / 判断一个数是否为集合中的元素 ErrCode AddElem(int); / 向集合中添加元素 void RmvElem(int); / 删除集合中的元素 void Copy(Set *); / 把当前集合拷贝到形参指针指向的集合中 Bool Equal(Set *); / 判断两个集合是否相等 void Print( ); void Intersect(Set *, Set *); / 交集 ErrCode Union(Set *, Set *); / 并集;Bool Set:Member(int elem)for(int i=0;i<card;+i)if(elemsi = elem)return True;return False;ErrCode Set:AddElem(int elem)if(Member(elem)return noErr;if(card < maxCard)elemscard+ = elem;return noErr; return overflow;void Set:RmvElem(int elem)for(int i = 0; i<card; +i)if(elemsi = elem)for(;i<card-1;+i)elemsi = elemsi+1;-card; return;void Set:Copy(Set *set)for(int i = 0; i < card; +i)set->elemsi = elemsi;set->card = card;Bool Set:Equal(Set *set)if(card != set->card)return False; for(int i = 0; i < card;+i) / 判断当前集合的某元素是否是set所指集合中的元素if(!set->Member(elemsi) return False;return True;void Set:Print( )cout<<""for(int i = 0; i < card; +i)cout << elemsi<< ""cout<<"n"void Set:Intersect(Set *set, Set *res)/ 交集:*this*set->*resres->card = 0;for(int i = 0; i < card; +i)for(int j = 0; j < set->card; +j)if(elemsi = set->elemsj)res->elemsres->card+ = elemsi;break;ErrCode Set:Union(Set *set,Set *res) / 并集:*set*this->*resset->Copy(res);for(int i = 0; i < card; +i)if(res->AddElem(elemsi) = overflow)return overflow; return noErr;/ 下面是测试用的主程序void main( )Set s1, s2, s3;s1.EmptySet( );s2.EmptySet( );s3.EmptySet( );s1.AddElem(10);s1.AddElem(20);s1.AddElem(30); s1.AddElem(40);s2.AddElem(30);s2.AddElem(50);s2.AddElem(10); s2.AddElem(60);cout<<"s1=" s1.Print( );cout<<"s2="s2.Print( );s2.RmvElem(50);cout<<"s2-50="s2.Print( );if(s1.Member(20)cout<<"20 is in s1n"s1.Intersect(&s2,&s3);cout<<"s1 intsec s2 ="s3.Print( );s1.Union(&s2,&s3);cout<<"s1 union s2 ="s3.Print( );if(!s1.Equal(&s2)cout<<"s1!=s2n"2. 实现一个大小可变的整型数据元素集合,集合可存储的数据元素个数在对象构造时给定,由构造函数为数据元素分配存储空间,在对象被释放时由析构函数释放存储空间。P#include <iostream.h>const maxCard=16; / 集合中元素个数的缺省最大值enum ErrCode noErr, overflow; / 错误代码enum Bool False, True; / Bool类型定义class Set int size; / 元素的最大个数 int *elems; / 存储元素的数组 int card; / 集合中元素的个数 public:Set(int sz=maxCard)card=0;size=sz;elems=new intsize;Set( )delete elems;Bool Member(int);ErrCode AddElem(int);void RmvElem(int);void Copy(Set *);Bool Equal(Set *);void Print( );void Intersect(Set *, Set *);ErrCode Union(Set *, Set *);Bool Set:Member(int elem)for(int i=0;i<card;+i)if(elemsi=elem)return True;return False;ErrCode Set:AddElem(int elem)if(Member(elem)return noErr;if(card<size)elemscard+=elem; return noErr; return overflow;void Set:RmvElem(int elem)for(int i=0;i<card;+i)if(elemsi=elem)for(;i<card-1;+i)elemsi=elemsi+1;-card; return;void Set:Copy(Set *set)if(set->size<size) delete set->elems;set->elems = new intsize;set->size = size;for(int i=0;i<card;+i)set->elemsi=elemsi;set->card=card;Bool Set:Equal(Set *set)if(card!=set->card)return False; for(int i=0;i<card;+i)if(!set->Member(elemsi)return False;return True;void Set:Print( )cout<<""for(int i=0;i<card-1;+i)cout<<elemsi<< "" if(card>0)cout<<elemscard-1;cout<<"n"void Set:Intersect(Set *set, Set *res) if(res->size<size) delete res->elems; res->elems = new intsize; res->size = size;res->card=0;for(int i=0;i<card;+i)for(int j=0;j<set->card;+j)if(elemsi=set->elemsj)res->elemsres->card+=elemsi;break;ErrCode Set:Union(Set *set, Set *res)if(res->size<size+set->size)delete res->elems;res->elems = new intsize+set->size;res->size = size+set->size;set->Copy(res);for(int i=0;i<card;+i)if(res->AddElem(elemsi)=overflow)return overflow;return noErr;void main( )Set s1, s2, s3;s1.AddElem(10);s1.AddElem(20);s1.AddElem(30); s1.AddElem(40);s2.AddElem(30);s2.AddElem(50);s2.AddElem(10); s2.AddElem(60);cout<<"s1=" s1.Print( );cout<<"s2="s2.Print( );s2.RmvElem(50);cout<<"s2-50="s2.Print( );if(s1.Member(20)cout<<"20 is in s1n"s1.Intersect(&s2,&s3);cout<<"s1 intsec s2 ="s3.Print( );s1.Union(&s2,&s3);cout<<"s1 union s2 ="s3.Print( );if(!s1.Equal(&s2)cout<<"s1!=s2n"3. 设计一个学生类student,它具有的私有数据成员是:注册号、姓名、数学成绩、英语成绩、计算机成绩;具有的公有成员函数是:求三门课程总成绩的函数sum();求三门课平均成绩average();显示学生数据信息的函数print();获取学生注册号的函数get_reg_num;设置学生数据信息的函数set_stu_inf()。P81。6编制主函数,说明一个student类对象的数组并进行全班学生信息的输入及设置,而后求出每一个学生的总成绩、平均成绩、全班学生总成绩最高分、全班学生总平均分,并在输入一个注册号后,输出该学生有关的全部数据信息。#include<iostream>#include<string>using namespace std;class Student private: int num; char name10; float math; float english; float computer;public:void set_stu_inf(int n,char *ch,float m,float e,float c)num=n; strcpy(name,ch); math=m; english=e; computer=c; float sum()return (math+english+computer);float average()return (math+english+computer)/3;int get_reg_num()return num;void print()cout<<"学号:"<<num<<endl<<"姓名:"<<name<<endl<<"数学:"<<math<<endl<<"英语:"<<english<<endl<<"计算机:"<<computer<<endl<<"总分:"<<sum()<<endl<<"平均分:"<<average()<<endl; int main() Student stu50;int i,q,a,z,x,max=0,aver=0; / i为循环变量,q:学号;a:数学成绩;/ z:英语成绩;x:计算机成绩int count = 0; /表示学生人数char* we=new char10;/ 输入学生信息for(;)cout<<"请输入学生的学号、姓名、数学成绩、英语成绩、计算机成绩:(若输入的学号为0则表示退出)" << endl;cin>>q>>we>>a>>z>>x;if (q =0 )break;stucount+.set_stu_inf(q,we,a,z,x);if(max>a+z+x);else max=a+z+x;aver+=(a+z+x);/ 输出所有学生信息cout<<"学生信息为:"<<endl<<endl;for( i = 0; i < count; i+)stui.print();cout<<endl;cout<<"全班学生总成绩最高分为"<<max<<endl<<"全班学生总平均分为"<<aver/3<<endl<<endl;cout<<"请输入要查的学生的学号:"<<endl;cin>>q;for( i = 0; i < count; i+)if (q=stui.get_reg_num()cout<<"此学生信息为:"<<endl;stui.print();break;if (i=count)cout<<"查无此人"<<endl;return 0;4. 定义复数类complex,使用友元函数,完成复数的加法、减法、乘数运算,以及复数的输出。P#include<iostream.h>class Complexdouble real;double image;public:Complex(double r = 0, double i = 0)real = r; image = i;friend void inputcomplex(Complex &comp);friend Complex addcomplex(Complex &c1, Complex &c2); friend Complex subcomplex(Complex &c1, Complex &c2);friend Complex mulcomplex(Complex &c1, Complex &c2);friend void outputcomplex(Complex &comp);void inputcomplex(Complex &comp)cin >> comp.real >> comp.image;Complex addcomplex(Complex &c1, Complex &c2)Complex c;c.real = c1.real + c2.real;c.image = c1.image + c2.image;return c;Complex subcomplex(Complex &c1, Complex &c2)Complex c;c.real = c1.real - c2.real;c.image = c1.image - c2.image;return c;Complex mulcomplex(Complex &c1, Complex &c2)Complex c;c.real = c1.real * c2.real - c1.image * c2.image;c.image = c1.real * c2.image + c1.image * c2.real;return c;void outputcomplex(Complex &comp)cout << "(" << comp.real << "," << comp.image << ")"void main()Complex c1,c2,result;cout<<"请输入第一个复数的实部与虚部:"<<endl;inputcomplex(c1);cout<<"请输入第二个复数的实部与虚部:"<<endl;inputcomplex(c2);result=addcomplex(c1,c2);outputcomplex(c1);cout<<"+"outputcomplex(c2);cout<<"="outputcomplex(result);cout<<"n-"<<endl;result=subcomplex(c1,c2);outputcomplex(c1);cout<<"-"outputcomplex(c2);cout<<"="outputcomplex(result);cout<<"n-"<<endl;result=mulcomplex(c1,c2);outputcomplex(c1);cout<<"*"outputcomplex(c2);cout<<"="outputcomplex(result);cout<<endl;5. 某单位所有员工根据领取薪金的方式分为如下几类:时薪工(hourlyworker)、计件工(pieceworker)、经理(manager)、佣金工(commissionworker)。时薪工按工作的小时支付工资,对于每周超过50小时的加班时间,按照附加50%薪水支付工资。按生产的每件产品给计件工支付固定工资,假定该工人仅制造一种产品。经理每周得到固定的工资。佣金工每周得到少许的固定保底工资,加上该工人在一周内总销售的固定百分比。试编制一个程序来实现该单位的所有员工类,并加以测试。P#include<iostream.h>#include <string.h>class employee / 雇员类protected:char name10; / 姓名char emp_id8; / 职工号double salary; / 薪金数public: void setinfo(char *empname,int empsex,char*empid) / 设置雇员的基本信息strcpy(name,empname);strcpy(emp_id,empid);void getinfo(char*empname,char*empid) / 取得雇员的基本信息strcpy(empname,name);strcpy(empid,emp_id);double getsalary() / 取得所应得的总薪金数return salary;class hourlyworker:public employee / 时薪工protected:int hours; / 工作的小时数double perhourpay; / 每小时应得的报酬public:hourlyworker()hours=0;perhourpay=15.6;int gethours() / 取得某人工作的小时数return hours;void sethours(int h) / 设置某人工作的小时数hours=h;double getperhourpay() / 取得每小时应得的报酬return perhourpay;void setperhourpay(double pay) / 设置每小时应得的报酬perhourpay=pay;void computepay() / 计算工资if(hours<=40) salary=perhourpay*hours;elsesalary=perhourpay*40+(hours-40)*1.5*perhourpay;class pieceworker:public employee / 计件工protected:int pieces; / 每周所生产的工件数double perpiecepay; / 每个工件所应得的工资数public:pieceworker()pieces=0;perpiecepay=26.8;int getpieces()return pieces;void setpieces(int p) / 设置生产的工件总数pieces=p;double getperpiecepay()return perpiecepay;void setperpiecepay(double ppp) perpiecepay=ppp;void computepay() salary=pieces*perpiecepay;class manager:public employee / 经理类public:void setsalary(double s) / 设置经理的工资数salary=s;class commissionworker:public employee / 佣金工类protected:double basesalary; / 保底工资double total; / 一周内的总销售额double percent; / 提成的额度public:commissionworker()basesalary=500;total=0;percent=0.01;double getbase() return basesalary;void setbase(double base) basesalary=base;double gettotal() return total;void settotal(double t) total =t;double getpercent() return percent;double setpercent(double p) percent=p;void computepay() salary=basesalary+total*percent;void main()char name10,emp_id9;hourlyworker hworker; / 小时工hworker.setinfo("John",0,"001");hworker.sethours(65);hworker.getinfo(name,emp_id);putepay();cout<<"hourlyworker "<<name<<"'s id is: "<<emp_id<<" and salary is:"<<hworker.getsalary()<<endl;pieceworker pworker; / 计件工pworker.setinfo("Mark",0,"002");pworker.setpieces(100);putepay();pworker.getinfo(name,emp_id);cout<<"pieceworker "<<name<<"'s id is: "<<emp_id<<" and salary is:"<<pworker.getsalary()<<endl;commissionworker cworker; / 佣金工cworker.settotal(234.6);cworker.setinfo("Jane",0,"003");putepay();cworker.getinfo(name,emp_id);cout<<"commissionworker "<<name<<"'s id is: "<<emp_id<<" and salary is:"<<cworker.getsalary()<<endl;manager mana;mana.setinfo("Mike",1,"004");mana.setsalary(3500);mana.getinfo(name,emp_id);cout<<"manager "<<name<<"'s id is: "<<emp_id<<" and salary is:"<<mana.getsalary()<<endl;6. 考虑大学的学生情况,试利用单一继承来实现学生与毕业生两个类,设计相关的数据成员及函数,编写程序对继承情况进行测试。P133. 11 实P57提示:作为学生一定有学号、姓名、性别、学校名称及入学时间等基本信息,而毕业生除了这些信息外,还应有毕业时间、所获学位的信息,可根据这些内容设计类的数据成员,也可加入一些其他信息,除了设计对数据进行相应操作的成员函数外,还要考虑到成员类型、继承模式,并在main()函数中进行相应测试。可设计多种继承模式来测试继承的属性。#include<iostream>#include<string>using namespace std;class Student/ 定义基类Studentpublic: / 公有函数成员Student(int n,char *na,int g):number(n),grade(g)strcpy(name,na);int getNumber()return number;char * getName()return name;int getGrade()return grade;void display()cout<<"学号:"<<number<<endl<<"姓名:"<<name<<endl<<"年级:"<<grade<<endl;private:/ 私有数据成员 int number;/ 学号 char name20;/ 姓名 int grade;/ 年级;class Graduate:public Student /定义毕业生类char designSubject20;public:Graduate(int n,char *na,char * deSub,int g=4):Student(n,na,g) strcpy(designSubject,deSub);void display()Student:display();cout<<"设计题目:"<<designSubject<<endl;int main()/创建对象Student li(2,"Li Ming",3);Graduate zhang(3,"Zhang Gang","学生成绩管理系统");/ 显示对象的相关信息li.display();cout << endl<<"-" <<endl;zhang.display();return 0;7 定义一个哺乳动物类,再由此派生出人类、狗类与猫类,这些类中均有speak()函数,观察在调用过程中,到底使用了哪一个类的speak()函数。P133. 12#include<iostream>#include<string>using namespace std;class Animalfloat weight;public:void speak()void setWeight(float wt)weight = wt;float getWeight()return weight;class Human:public Animalpublic:void speak()cout<<"说话"<<endl;class Cat:public Animalpublic:void speak()cout<<"喵喵"<<endl;class Dog:public Animalpublic:void speak()cout<<"汪汪"<<endl;int main()/ 定义三个对象Human hm;Cat cat;Dog dog;/ 调用不同类的speak函数cout<<"人:"hm.speak();cout<<"猫:"cat.speak();cout<<"狗:"dog.speak();return 0;8 设计一个能细分为矩形、三角形、圆形与椭圆形的图形类。使用继承将这些图形分类,找出能作为基类部分的共同特征(如宽、高、中心点等)与方法(如初始法、求面

    注意事项

    本文(c机考题目加复习资料.docx)为本站会员(叶***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开