ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:64.45KB ,
资源ID:6909035      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6909035.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c++课程设计职工工资管理系统.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c++课程设计职工工资管理系统.docx

1、c+课程设计职工工资管理系统题目c+面向对象程序设计课程设计清单:5小题 +职工工资管理系统(类、链表实现) 姓名: 学号: 专业:计算机科学与技术 学院: 指导教师: 2018年6月17日Part1:小程序练习1类的继承定义一个point类,包含私有数据成员x,y,成员函数包括无参构造函数,带参构造函数,set和get属性函数。定义circle类,从point类公有派生,增加数据成员半径r,成员函数包括无参构造函数,带参构造函数,计算面积函数getarea。在main函数中定义一个circle的对象,并计算其面积。/*1定义Point类,设置其成员函数(构造函数,拷贝构造函数和析构函数)以及

2、setx()sety()getx()gety()四个属性函数。2定义circle类,设置其成员函数(构造函数,拷贝构造函数和析构函数)以及获取半径r的函数get_r()计算面积并获取面积的函数getarea()。3在主函数中定义类的对象c1并初始化r=2。再调用getarea()函数输出面积*/#includeusingnamespacestd; classpoint /定义point类public: point() point(intx,inty) voidset_x(intx) this-x=x; intget_x() returnx; voidset_y(inty) this-y=y;

3、intget_y() returny; private: /私有对象xy intx; inty;classcircle:publicpoint /circle类公有派生pointpublic: circle() circle(doubler,intx,inty):point(x,y) this-r=r; doubleget_r() returnr; doublegetarea() return(3.14*r*r); private: intr; /circle私有对象r;intmain() circlec1(2,3,6); coutr=c1.get_r()endl; cout该圆面积=c1.g

4、etarea(),功能。在main函数里测试该类。/*1.定义counter类,私有成员数据weight,设置其成员函数(构造函数和析构函数)2.重载自加自减运算符和运算符。3.在主函数中实现运算符重载。4.友元函数需要声明。*/#include#includeusingnamespacestd;classcounter;istream&operator(istream&is,counter&a);ostream&operator(istream&is,counter&a);/声明友元,重载输入运算符 friendostream&operator(istream&in,counter&a)/运

5、算符重载实现 ina.P; if(!in) cerr输入错误!endl; returnin;ostream&operator(ostream&out,counter&a)/运算符重载实现 outa.P; returnout;intmain() counterc1(236),c2(632); coutc1=c1endlc2=c2endl; cout+c1=+c1endl;/测试 coutc1+=c1+endl; coutc2-=c2-endl; cout-c2=-c2endl; system(pause); return0;运行结果分析:定义c1的值为236,c2的值为632;此时+c1的数值为

6、237;c1+输出时为237,输出后为238;此时c2-输出时为632;-c2输出时为630,输出后为630;3虚函数和抽象类定义一个抽象类shape,包括公有的计算面积area函数,计算体积volume函数,输出基本信息函数printinfo(三个函数均为纯虚函数)。从shape公有派生point类,增加私有数据成员x,y坐标,以及构造函数,析构函数。从point公有派生circle类,增加私有数据成员半径r,以及构造函数,析构函数。从circle公有派生cylinder类,增加私有数据成员高度h,以及构造函数,析构函数。(在定义三个派生类的过程中,自己考虑需要重定义哪个虚函数)。在main

7、函数中,定义shape类的指针,指向派生类的对象,输出三类对象的基本信息,面积,体积;(将shape指针改为引用再尝试)。/*1先定义基类shape。设置三个纯虚函数并且声明:声明计算面积纯虚函数area();声明计算体积纯虚函数volume();声明输出基本信息纯虚函数printinfo();2定义类point共有继承自类shape。并且在该类中实现三个纯虚函数。3定义类circle共有继承自类point。并且在该类中实现三个纯虚函数。4定义类cylinder共有继承自类circle。并且在该类中实现三个纯虚函数。5在主函数中分别创建类point的对象a,circle的对象b,cylinde

8、r的对象c,并初始化;6在主函数中分别定义shape类的指针和引用,调用printinfo()函数。*/#include#include#definePi3.141516usingnamespacestd;classshapepublic: virtualdoublearea()=0; /三个纯虚函数:面积,体积,基本输出 virtualdoublevolume()=0; virtualvoidprintinfo()=0;classpoint:publicshape /shape派生的point类;点并没有体积面积,所以只写printinfo函数public: point() point(do

9、ublex,doubley) this-x=x; this-y=y; voidprintinfo() coutx=x,y=yr=r; doublearea() returnPi*r*r; voidprintinfo() point:printinfo(); cout半径为rendl; cout圆的面积是area()h=h; /* doublearea() return2*Pi*this-r+circle:area(); /未实现计算圆柱表面积 */ doublevolume() returnh*circle:area(); voidprintinfo() circle:printinfo();

10、 cout高为hendl; cout圆柱的体积是volume()endl; cylinder()private: doubleh;intmain() cylindertemp(6,2,3,3); shape*s; /实例化一个圆柱对象 s=&temp; (*s).printinfo(); printf(n); couttemp中数据构成的圆面积为area()endl; cout体积为(*s).volume()endl; system(pause); return0;运行结果:4模板编写一个使用类模板对数组进行查找、求元素和、重载下标运算符,以及输出的程序。1)设计一个类模板:形式1为templ

11、ateclassArray;形似2为templateclassArray;用于对T类型的数组进行构造和输出;2)产生模板类Array和Array进行测试;3)产生模板类Array和Array进行测试。/先实现第(2)小题#include#includeusingnamespacestd;templateclassArrayprivate:T*list;intsize;public:Array(intsize=10);/构造函数Array();/析构函数T&operator(inti);/重载”constT&operator(inti)const; Tsum(intn);intsearch(Te

12、,intn);intgetSize()const;voidresize(intsz);templateArray:Array(intsz)/构造函数assert(sz=0);size=sz;list=newTsize;templateArray:Array()/析构函数deletelist;/重载下标运算符templateT&Array:operator(intn)assert(n=0&nsize);returnlistn;templateconstT&Array:operator(intn)constassert(n=0&nsize);returnlistn;/取当前数组的大小templat

13、eintArray:getSize()constreturnsize;/将数组大小修改为sztemplatevoidArray:resize(intsz)assert(sz=0);if(sz=size)return;T*newList=newTsz;intn=(szsize)?sz:size;for(inti=0;in;i+)newListi=listi;deletelist;/删除原数组list=newList;/使list指向新数组size=sz;/更新sizetemplateTArray:sum(intn)Tsum=list0;for(inti=1;in;i+)sum+=listi; r

14、eturnsum;/查找templateintArray:search(Te,intn)for(inti=0;in;i+)if(listi=e)returni; return-1;intmain()Arraya(5);inti,n,m,count=0;coutn;for(i=1;im; if(count=a.getSize()a.resize(count*2); acount+=m;for(i=0;icount;i+)coutai;coutendl; cout数组和为:a.sum(n)endl;cout数字4在数组中的位置是:a.search(4,n)endl; /*Array进行测试 Arr

15、aya(5);inti,n,m,count=0;coutn;for(i=1;im; if(count=a.getSize()a.resize(count*2); acount+=m;for(i=0;icount;i+)coutsetw(8)ai;coutendl; cout数组和为:a.sum(n)endl;cout数字4在数组中的位置是:a.search(4,n)endl; */return0;/然后实现第(3)小题#include#includeusingnamespacestd;templateclassArrayprivate:T*list;public:Array();/构造函数Ar

16、ray();/析构函数T&operator(inti);/重载”constT&operator(inti)const; Tsum();intsearch(Te);templateArray:Array()/构造函数 list=newTn;templateArray:Array()/析构函数deletelist;/重载下标运算符templateT&Array:operator(inti)returnlisti;templateTArray:sum()Tsum=list0;for(inti=1;in;i+)sum+=listi; returnsum;/查找templateintArray:sear

17、ch(Te)for(inti=0;in;i+)if(listi=e)returni; return-1;intmain()Arraya;inti,n,m,count=0;coutn;for(i=1;im; acount+=m;for(i=0;icount;i+)coutai;coutendl; cout数组和为:a.sum()endl;cout数字4在数组中的位置是:a.search(4)endl; /*Array进行测试 Arraya;inti,n,m,count=0;coutn;for(i=1;im; if(count=a.getSize()a.resize(count*2); acoun

18、t+=m;for(i=0;icount;i+)coutsetw(8)ai;coutendl; cout数组和为:a.sum(n)endl;cout数字4在数组中的位置是:a.search(4,n)endl; */return0;运行结果:5文件读写定义学生类数组,有N个人(N=5),包括姓名和语数外三名课的成绩,通过重载运算符实现学生数组的文件读写。/*1. 定义student类,私有数据成员字符数组name20;2. 定义运算符重载;3. 在住函数中定义student类数组sN;并以输出和二进制的方式打开文件*/#include#include#include#defineN5usingna

19、mespacestd;classstudent;ostream&operator(istream&is,student&s);classstudent /student类:姓名+4门成绩public: student() student(stringname,intchinese_socre,intmaths_score,intenglish_score) this-name=name; this-chinese_score=chinese_score; this-maths_score=maths_score; this-english_score=english_score; friend

20、ostream&operator(ostream&os,students) /声明友元,重写 oss.names.chinese_scores.maths_scores.english_score(istream&is,student&s) iss.names.chinese_scores.maths_scores.english_score; returnis; private: stringname; intchinese_score; intmaths_score; intenglish_score;intmain() inti; studentsN; for(i=0;isi; ofst

21、reamofs(c:testtest.txt,ios_base:out); if(!ofs) cerrfileopenfailedendl; exit(1); for(i=0;iN;i+) /这个我也不太明白- ofs.write(reinterpret_cast(&si),sizeof(student); ifstreamifs(c:testtest.txt,ios_base:out); if(!ifs) cerrfileopenfailedendl; exit(1); for(i=0;iN;i+) ifs.read (reinterpret_cast(&si),sizeof(student); for(i=0;iN;i+) coutsi; system(pause); return0;运行结果:Par

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1