2022年完整版,c++课程设计任务书1421813-15_第1页
2022年完整版,c++课程设计任务书1421813-15_第2页
2022年完整版,c++课程设计任务书1421813-15_第3页
2022年完整版,c++课程设计任务书1421813-15_第4页
2022年完整版,c++课程设计任务书1421813-15_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、精选学习资料 - - - 欢迎下载面对对象程序设计课程设计任务书一.课程设计的目的与要求1.教学目的综合运用所学过的学问进行实际程序设计;2.教学要求从课程设计的目的动身,用c+ 编写简洁的的程序,程序要求如下:( 1)算法正确,容错性能好;( 2)完成从用户需求分析.到上机编程.调试和应用等全过程;二.课程设计的题目.内容及要求part 1:小程序练习(必需全部完成)1 函数重载定义重载函数max3用于运算三个数的最大值(参数类型分别为int 和 double);#include <iostream> using namespace std; int max3int a、int

2、b、int cifb>a a=b; ifc>a a=c; return a;double max3double a、double b、double cifb>a a=b; ifc>a a=c; return a;int main int max3int a、int b、int c;double max3double a、double b、double c; int i1、i2、i3、i;cout<<”请输入三个数:”<<endl;cin>>i1>>i2>>i3; i=max3i1、i2、i3; cout<

3、<"i.max3="<<i<<endl; double d1、d2、d3、d; cin>>d1>>d2>>d3; d=max3d1、d2、d3; cout<<"d.max3="<<d<<endl;2 类的组合定义 point类,数据成员包括x、y ,成员函数包括构造函数,拷贝构造函数和析构函数,以及 setx ,getx ,sety , gety四个属性函数;定义line 类,端点由两个point类的对象组成,包括构造函数,析构函数以及运算线段长度的函数

4、getlength;在 main函数中,定义line 的对象,并输出其长度;#include<iostream>1精品学习资料精选学习资料 - - - 欢迎下载#include<cmath> using namespace std; class pointprivate: int x、y; public:pointint x、int y:xx、yypointpoint &p; int getxreturn x; void setxint xthis->x=x; int getyreturn y; void setyint ythis->y=y;poi

5、nt;point:pointpoint &px=p.x;y=p.y; class lineprivate: point p1、p2; double len; public:linepoint pt1、point pt2; lineline &l;double getlenreturn len;line;line:linepoint pt1、point pt2:p1pt1、p2pt2double x=p1.getx-p2.getx; double y=p1.gety-p2.gety; len=sqrtx*x+y*y;line:lineline &l:p1l.p1、p2l.

6、p2len=l.len; int mainpoint po11、2、po23、4;line linepo1、po2;cout<<"the length of line is:"<<endl; cout<<line.getlen<<endl;3 对象数组和函数定义 student类,数据成员包括姓名name和成果 score ,成员函数包括构造函数,拷贝构造函数和析构函数; 定义函数void highestscorestudent s、输出分数最高的同学姓名和分数;在 main函数中定义 student sn,调用 highes

7、tscore函数 、输出分数最高的同学姓名和分数;#include<iostream>2精品学习资料精选学习资料 - - - 欢迎下载#include<string> const int n=3;using namespace std;class studentprivate: string name; int score; public:studentstring n=""、int s=0:namen、scores studentstudent &stuname=; score=stu.score;studentfriend

8、 istream &operator>>istream &is、student &stuis>>>>stu.score; return is;friend void highestscorestudent s;void highestscorestudent stuint i、h、t; t=stu0.score; fori=0;i<n;i+ift<stui.scoret=stui.score; h=i;cout<<"name:"<<<<

9、;"score:"<<stuh.score<<endl;void mainstudent s1n; forint i=0;i<n;i+ cin>>s1i; highestscores1;4 静态数据成员设计一个书类,能够储存书名.定价,全部书的本数和总价;(将书名和定价设计为一般数据成员;将书的本数和总价设计为静态数据成员)#include<iostream>#include<string> using namespace std; class bookprivate:string name; int pri

10、ce、num;static int count、sum;3精品学习资料精选学习资料 - - - 欢迎下载public:bookstring na、int p、int n:namena、pricep、numncount+=num; sum+=num*price;void displaycout<<" 书名 :"<<name<<endl;cout<<" 价格 :"<<price<<endl;cout<<" 全部书的本数:"<<num<&l

11、t;endl;cout<<" 总价 :"<<sum<<endl;book;int book:count=0; int book:sum=0; void mainbook a"c grammer"、100、10、b"c+ grammer"、50、6; a.display;b.display;5 动态内存安排定义 point类,数据成员包括x、y ,成员函数包括构造函数,拷贝构造函数和析构函数,以及 setx ,getx ,sety , gety四个属性函数;在main函数中,用new和 delete安

12、排和释放n 个 point的数组;( n 为const常量, n=10 )#include<iostream> using namespace std; class pointprivate:int x、y;void setxint xthis->x=x; void setyint ythis->y=y;public:pointint x=0、int y=0; pointconst point &px=p.x;y=p.y;void setxyint x、int ysetxx;setyy; int getxreturn x; int gety4精品学习资料精选学习

13、资料 - - - 欢迎下载return y;void showpointcout<<"x="<<x<<"y="<<y<<endl;point;inline point:pointint x、int ythis->x=x; this->y=y;void mainpoint *pt=new point10; *pt.setxy1、2;*pt.showpoint;delete pt;6 类的继承定义一个point类,包含私有数据成员x ,y ,成员函数包括无参构造函数,带参构造函数,set

14、 和 get属性函数;定义circle类,从 point类公有派生,增加数据成员半径r,成员函数包括无参构造函数,带 参构造函数,运算面积函数getarea;在 main函数中定义一个circle的对象,并运算其面积;#include<iostream> using namespace std; class pointprivate:int x、y; public:point:x0、y0pointint x、int y:xx、yy int getxreturn x; void setxint xthis->x=x; int getyreturn y;void setyint

15、ythis->y=y;point;class circle:public pointprivate: int r; public:circleint x、int y、int r:pointx、y、rr int getrreturn r;void setrint r5精品学习资料精选学习资料 - - - 欢迎下载this->r=r; void getareacout<<"area:"<<r*r*3.14<<endl;int maincircle c1、2、3; c.getarea;7 虚基类定义 vehicle类,数据成员包括私

16、有的weight,公有的构造函数, 析构函数和输出函数dispaly ; 从 vehicle类公有派生car类,增加数据成员载人数personnum,公有的构造函数、析构函数和输出display;从vehicle类公有派生truck类,增加数据成员载货量laod、 公有的构造函数, 析构函数和输出函数display;从 car类和 truck类共同公有派生出pickup类,包括公有的构造函数和输出函数;在 main函数中, 定义 pickup类对象,并输出其基本信息;#include<iostream> using namespace std; class vehiclepriva

17、te: int weight; public:vehicleint w:weightw void displaycout<<"weight:"<<weight<<endl;vehicle;class car:virtual public vehicleprivate:int personnum; public:carint p、int w:vehiclew、personnump void displaycout<<"personnum:"<<personnum<<endl;car;c

18、lass truck:virtual public vehicleprivate: int load; public:truckint w、int l:vehiclew、loadl void displaycout<<"load:"<<load<<endl;truck6精品学习资料精选学习资料 - - - 欢迎下载;class pickup:virtual public car、public truckpublic:pickupint w、int l、int p、int w1、int w2:vehiclew、carw1、p、truckw2

19、、l void display;void mainpickup p10、20、30、40、50;p.vehicle:display; p.car:display;p.truck:display;p.pickup:display;8 运算符重载,友元函数和this 指针定义一个计数器类counter,具备自增,自减功能(前后缀);输入输出>>、<< 功能;在main函数里测试该类;#include<iostream> using namespace std; class counterprivate:double number; public:counterd

20、ouble num=0:numbernum friend counter operator +counter &c、int; friend counter operator -counter &c、int; friend counter operator +counter &c; friend counter operator -counter &c;friend istream &operator>>istream &is、counter &cis>>c.number; return is;friend ostr

21、eam &operator<<ostream &os、counter &cos<<c.number; return os;counter;counter operator +counter &c c+;return c;counter operator -counter &c c-;return c;counter operator +counter &c、intcounter ctemp;7精品学习资料精选学习资料 - - - 欢迎下载ctemp=c.number; c.number+; return ctemp;cou

22、nter operator -counter &c、intcounter ctemp; ctemp=c.number; c.number-; return ctemp;int main counter c1、c2; cin>>c1; c2=operator+c1、2;cout<<"count before:"<<c2<<"count after:"<<c1<<endl;9 虚函数和抽象类定义一个抽象类shape ,包括公有的运算面积area函数,运算体积volume函数,输出

23、基本信息函数 printinfo(三个函数均为纯虚函数);从shape公有派生point类,增加私有数据成员x、y 坐标,以及构造函数, 析构函数; 从 point公有派生circle类,增加私有数据成员半径r,以及构造函数, 析构函数;从 circle公有派生cylinder类,增加私有数据成员高度h ,以及构造函数,析构函数;(在定义三个派生类的过程中,自己考虑需要重定义哪个虚函数);在main函数中,定义shape类的指针,指向派生类的对象,输出三类对象的基本信息,面积,体积;(将shape指针改为引用再尝试);#include<iostream> using namespa

24、ce std; class shapepublic:virtual double area=0; virtual double volume=0; virtual void printinfo=0;class point:public shape private: int x、y; public:pointint x、int y:xx、yydouble areareturn 0; double volumereturn 0; void printinfocout<<"point:x="<<x<<"、y="<<

25、;y<<endl;point;class circle:public pointprivate: int r; public:8精品学习资料精选学习资料 - - - 欢迎下载circleint x、int y、int r:pointx、y、rr double areareturn 3.14*r*r;void printinfocout<<"area:"<<area<<endl;circle;class cylinder:public circleprivate: int h; public:cylinderint x、int

26、y、int r、int h:circlex、y、r、hh double volumereturn circle:area*h; void printinfocout<<"volume:"<<volume<<endl;cylinder;void funshape *pp->printinfo;void mainpoint p1、1;circle c1、1、3;cylinder c1、1、3、4;/*p.printinfo; c.printinfo; c.printinfo;*/ fun&p;fun&c;fun&

27、c;10 模板设计一个堆栈的类模板stack ,在模板中用类型参数t 表示栈中存放的数据,用非类型参数maxsize 代表栈的大小;#include<iostream.h> const int maxsize=5; template<typename t> class stackprivate:t elemmaxsize; int top;public:stacktop=0;void pusht eif top=maxsize9精品学习资料精选学习资料 - - - 欢迎下载cout<<" 栈已满! "<<endl; retur

28、n ;elemtop=e; top+;t popiftop=0cout<<"栈空! "<<endl; return -1;top -;return elemtop;void mainstack <int> s; s.push1;s.push2;s.push3;s.push4;s.push5;s.push6; cout<<s.pop<<endl;11 文件读写定义同学类数组,有n 个人( n=5 ),包括姓名和语数外三名课的成果,通过重载<< 和>> 运算符实现同学数组的文件读写;(姓名用st

29、ring name;)#include<iostream>#include<fstream> using namespace std; class stuprivate:char name10; int chi、mat、eng; public:stuchar s=""、int c=0、int m=0、int e=0strcpyname、s; chi=c;mat=m; eng=e;friend ostream&operator<<ostream &os、stu &sos<<<<&q

30、uot; "<<s.chi<<" "<<s.mat<<" "<<s.eng<<endl; return os;friend istream&operator>>istream &is、stu &sis>>>>s.chi>>s.mat>>s.eng;10精品学习资料精选学习资料 - - - 欢迎下载return is;const int n=5; void mainstu sn;i

31、nt i=0;fstream iof"c:student.txt"、ios:out|ios:binary; if.iof.is_open cout<<"file open failed"<<endl; return ;elseforint i=0;i<n;i+cin>>si; cout<<si;iof.writechar *&si、sizeofstu ;iof.close ;stu s1n; iof.open"c:student.txt"、ios:out|ios:binar

32、y; if.iof.is_openreturn ;elseint i=0;iof.readchar *&s1i、sizeofstu; while.iof.eofcout<<s1i;i+;iof.readchar *&s1i、sizeofstu;iof.close;part 2:小型软件的开发(选做一题,且由个人独立开发完成)1 老师通信录的设计基本要求:定义老师 ( teacher )类,其中至少包括姓名.性别. 电话. 地址. 邮政编码. 邮箱. qq号和类别 (例如:同学.伴侣等);功能要求:1.设计菜单实现功能挑选;2.输入功能:输入人员信息,并储存到文件中;

33、3.查询功能:1)能够依据姓名.电话精确查询人员信息;11精品学习资料精选学习资料 - - - 欢迎下载2)能够依据地址进行模糊查询人员信息;3)依据人员类别查询人员信息4 .依据姓名对人员信息排序输出5 .能依据姓名.电话修改人员信息6 .能依据姓名.电话删除人员信息2 职工工资治理基本要求:定义职工( employee)类,其中至少包括姓名.性别.工号.电话.所在科室和工资;功能要求:1.设计菜单实现功能挑选;2.输入功能:输入职工信息,并储存到文件中;3.查询功能:1)能够依据工号精确查询职工信息;2)能够依据姓名.科室查询职工信息43)分科室进行工资统计,运算各科室的平均工资.依据职工

34、的工资排序输出5.依据工号修改职工信息6.依据工号删除职工信息#include<iostream>#include<string> using namespace std; class employeeprivate:string name、sex、office;int id、phone number、salary; public:employee3 公司员工治理系统基本要求:设计一个虚基类 staff (员工) ,包括编号. 姓名和年龄爱护数据成员以及相关的成员函数; 由 staff 派生出工程师类 engineer 包含专业和职称爱护数据成员以及相关的成员函数, 再

35、由 staff 派生出领导类 leader ,包括职务和部门爱护数据成员以及相关的成员函数;然后由 engineer 和 leader 类派生出主任工程师类 chairman ;功能要求:1.增加员工数据信息2.更新员工数据信息3.查询员工数据信息4.删除员工数据信息5.良好的人际交互界面.便利操作12精品学习资料精选学习资料 - - - 欢迎下载4 三角形的种类与面积基本要求:定义点( point )类,包含点的坐标x 和 y;通过继承点类派生出线段(line )类;通过线段(line)类的组合定义三角形(triangle)类;功能要求:1 .设计菜单实现功能挑选;2 .输入三角形的三个顶点

36、坐标;3 .判定三角形的种类(一般三角形.等腰三角形.等边三角形.直角三角形和不能构成三精品学习资料精选学习资料 - - - 欢迎下载角形);4 .运算并输出三角形的面积;精品学习资料精选学习资料 - - - 欢迎下载5 字符串类的设计基本要求:定义点字符串(string)类,包含存放字符串的字符数组和字符串中字符的个数;功能要求:1.设计菜单实现功能挑选;2.字符串的输入与赋值;31.字符串的运算,包括:)连接2)复制3)查找4)交换5)求子串6)比较4.字符串的输出6 同学成果治理基本要求:定义同学( student)类,其中至少包括姓名.性别.学号.班级和四门功课的成果;功能要求:1.设计菜单实现功能挑选;2.输入功能:输入同学信息,并储存到文件中;3.运算每个同学的总分与平均分并排

温馨提示

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

评论

0/150

提交评论