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

上传人:1595****071 文档编号:34718449 上传时间:2022-08-18 格式:DOCX 页数:24 大小:1.08MB
返回 下载 相关 举报
最新c++课程设计——职工工资管理系统.docx_第1页
第1页 / 共24页
最新c++课程设计——职工工资管理系统.docx_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《最新c++课程设计——职工工资管理系统.docx》由会员分享,可在线阅读,更多相关《最新c++课程设计——职工工资管理系统.docx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-datec+课程设计职工工资管理系统c+课程设计职工工资管理系统题 目 c+面向对象程序设计课程设计 清单:5小题+职工工资管理系统(类、链表实现) 姓 名: 学 号: 专 业: 计算机科学与技术 学 院: 指导教师: 2018年6月17日Part 1: 小程序练习1 类的继承定义一个point类,包含私有数据成员x,y,成员函数包括无参构造函数,带参构造函数,set和get

2、属性函数。定义circle类,从point类公有派生,增加数据成员半径r,成员函数包括无参构造函数,带参构造函数,计算面积函数getarea。在main函数中定义一个circle的对象,并计算其面积。/*1定义Point类,设置其成员函数(构造函数,拷贝构造函数和析构函数)以及setx() sety() getx() gety() 四个属性函数。2定义circle类,设置其成员函数(构造函数,拷贝构造函数和析构函数)以及获取半径r的函数get_r() 计算面积并获取面积的函数getarea()。3在主函数中定义类的对象c1并初始化r=2。再调用getarea()函数输出面积-*/#includ

3、e using namespace std;class point/定义point类public:point() point(int x, int y)void set_x(int x)this-x = x;int get_x() return x;void set_y(int y)this-y = y;int get_y()return y;private:/私有对象x yint x;int y;class circle :public point/circle类公有派生pointpublic:circle() circle(double r,int x,int y):point(x,y)t

4、his-r = r;double get_r() return r;double getarea() return(3.14*r*r);private:int r;/circle私有对象r;int main()circle c1(2,3,6);coutr=c1.get_r()endl;cout 该圆面积=c1.getarea() ,功能。在main函数里测试该类。/*1.定义counter类,私有成员数据weight,设置其成员函数(构造函数和析构函数)2.重载自加自减运算符和运算符。3.在主函数中实现运算符重载。4.友元函数需要声明。*/#include#includeusing names

5、pace std;class counter;istream& operator(istream& is,counter& a);ostream& operator(istream& is,counter& a); /声明友元,重载输入运算符friend ostream& operator(istream& in,counter& a) /运算符重载实现ina.P;if(!in)cerr输入错误!endl;return in;ostream& operator(ostream& out,counter& a) /运算符重载实现outa.P;return out;int main()counte

6、r c1(236),c2(632); coutc1=c1endlc2=c2endl;cout+c1=+c1endl; /测试coutc1+=c1+endl;coutc2-=c2-endl;cout-c2=-c2endl;system(pause);return 0;运行结果分析:定义c1的值为236,c2的值为632;此时+c1的数值为237;c1+输出时为237,输出后为238;此时c2-输出时为632;-c2输出时为630,输出后为630;3 虚函数和抽象类定义一个抽象类shape,包括公有的计算面积area函数,计算体积volume函数,输出基本信息函数printinfo(三个函数均为纯

7、虚函数)。从shape公有派生point类,增加私有数据成员x,y坐标,以及构造函数,析构函数。从point公有派生circle类,增加私有数据成员半径r,以及构造函数,析构函数。从circle公有派生cylinder类,增加私有数据成员高度h,以及构造函数,析构函数。(在定义三个派生类的过程中,自己考虑需要重定义哪个虚函数)。在main函数中,定义shape类的指针,指向派生类的对象,输出三类对象的基本信息,面积,体积;(将shape指针改为引用再尝试)。/*1先定义基类shape。设置三个纯虚函数并且声明:声明计算面积纯虚函数area();声明计算体积纯虚函数volume();声明输出基本

8、信息纯虚函数printinfo();2定义类point共有继承自类shape。并且在该类中实现三个纯虚函数。3定义类circle共有继承自类point。并且在该类中实现三个纯虚函数。4定义类cylinder共有继承自类circle。并且在该类中实现三个纯虚函数。5在主函数中分别创建类point的对象a,circle的对象b,cylinder的对象c,并初始化;6在主函数中分别定义shape类的指针和引用,调用printinfo()函数。*/#include #include #define Pi 3.141516using namespace std;class shapepublic:vir

9、tual double area() = 0;/三个纯虚函数:面积,体积,基本输出virtual double volume() = 0;virtual void printinfo () = 0;class point :public shape/shape派生的point类;点并没有体积面积,所以只写printinfo函数public:point() point(double x, double y)this-x = x;this-y = y;void printinfo()cout x= x ,y= y r = r;double area()return Pi*r*r;void prin

10、tinfo()point:printinfo();cout 半径为 r endl;cout 圆的面积是 area() h = h;/*double area()return 2*Pi*this-r+circle:area();/未实现计算圆柱表面积*/double volume()return h*circle:area();void printinfo()circle:printinfo();cout 高为 h endl;cout 圆柱的体积是 volume() endl;cylinder() private:double h;int main()cylinder temp(6, 2, 3,

11、 3);shape *s;/实例化一个圆柱对象s = &temp;(*s).printinfo();printf(n);cout temp中数据构成的圆面积为 area() endl;cout 体积为 (*s).volume() endl;system(pause);return 0;运行结果:4 模板编写一个使用类模板对数组进行查找、求元素和、重载下标运算符,以及输出的程序。1)设计一个类模板:形式1为templateclass Array;形似2为templateclass Array;用于对T类型的数组进行构造和输出;2)产生模板类Array和Array进行测试;3)产生模板类Array

12、和Array进行测试。/先实现第(2)小题#include #include using namespace std;template class Arrayprivate: T* list; int size; public: Array(int size = 10); /构造函数 Array(); /析构函数 T & operator (int i); /重载” const T & operator (int i) const;T sum(int n); int search(T e,int n); int getSize() const; void resize(int sz); ;te

13、mplate Array:Array(int sz) /构造函数 assert(sz = 0); size = sz; list = new T size; template Array:Array() /析构函数 delete list;/重载下标运算符template T &Array:operator (int n) assert(n = 0 & n size); return listn; template const T &Array:operator (int n) const assert(n = 0 & n size); return listn; /取当前数组的大小templ

14、ate int Array:getSize() const return size;/ 将数组大小修改为sztemplate void Array:resize(int sz) assert(sz = 0); if (sz = size) return; T* newList = new T sz; int n = (sz size) ? sz : size; for (int i = 0; i n; i+) newListi = listi; delete list; /删除原数组 list = newList; / 使list指向新数组 size = sz; /更新sizetemplate

15、T Array:sum(int n) T sum = list0; for(int i = 1; i n; i+) sum += listi;return sum;/查找templateint Array:search(T e, int n) for(int i = 0; i n; i+) if(listi = e) return i;return -1;int main() Array a(5); int i,n,m, count = 0; cout n; for (i = 1; i m;if (count = a.getSize() a.resize(count * 2);acount+

16、= m; for ( i = 0; i count; i+) cout ai; cout endl;cout数组和为:a.sum(n)endl; cout数字4在数组中的位置是:a.search(4,n)endl;/* Array进行测试Array a(5); int i,n,m, count = 0; cout n; for (i = 1; i m;if (count = a.getSize() a.resize(count * 2);acount+ = m; for ( i = 0; i count; i+) cout setw(8) ai; cout endl;cout数组和为:a.su

17、m(n)endl; cout数字4在数组中的位置是:a.search(4,n)endl;*/ return 0;/然后实现第(3)小题#include #include using namespace std;template class Arrayprivate: T *list ; public: Array(); /构造函数 Array(); /析构函数 T & operator (int i); /重载” const T & operator (int i) const;T sum(); int search(T e); ;template Array:Array() /构造函数 li

18、st=new Tn; template Array:Array() /析构函数 delete list;/重载下标运算符template T &Array:operator (int i) return listi; templateT Array:sum() T sum = list0; for(int i = 1; i n; i+) sum += listi;return sum;/查找templateint Array:search(T e) for(int i = 0; i n; i+) if(listi = e) return i;return -1;int main() Array

19、 a; int i,n,m, count = 0; cout n; for (i = 1; i m;acount+ = m; for ( i = 0; i count; i+) cout ai; cout endl;cout数组和为:a.sum()endl; cout数字4在数组中的位置是:a.search(4)endl;/* Array进行测试Array a; int i,n,m, count = 0; cout n; for (i = 1; i m;if (count = a.getSize() a.resize(count * 2);acount+ = m; for ( i = 0; i

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

21、espace std;class student;ostream& operator (istream & is, student &s);class student/student类:姓名 + 4门成绩public:student() student(string name, int chinese_socre, int maths_score, int english_score)this-name = name;this-chinese_score= chinese_score;this-maths_score = maths_score;this-english_score = eng

22、lish_score;friend ostream& operator(ostream & os, student s)/声明友元,重写os s.name s.chinese_score s.maths_score s.english_score (istream & is, student &s)is s.name s.chinese_score s.maths_score s.english_score;return is;private:string name;int chinese_score;int maths_score;int english_score;int main()in

23、t i;student sN;for( i=0;isi;ofstream ofs(c:testtest.txt, ios_base:out); if(!ofs)cerrfile open failedendl;exit(1);for( i=0;iN;i+)/这个我也不太明白-ofs.write(reinterpret_cast(& si),sizeof(student);ifstream ifs(c:testtest.txt, ios_base:out);if(!ifs)cerrfile open failedendl;exit(1);for( i=0;iN;i+)ifs.read(reint

24、erpret_cast(& si),sizeof(student);for(i=0;iN;i+)coutNext用来接收调用浏览函数时所传递过来的实参,用设置好的输出格式(print()、Display()以及while循环,不为空则开始打印信息。4、查询信息 1)按工号查询声明链表指针ptr指向Next ,cout、cin提示输入工号并赋值给code,匹配ptr中的m_code,显示匹配结果即可;2)按科室查询声明链表指针ptr指向Next ,cout、cin提示输入科室并赋值给post,匹配ptr中的m_post,显示匹配结果即可;3)双匹配查询声明链表指针ptr指向Next ,cout、

25、cin提示输入工号、科室并赋值给code、post,匹配ptr中的m_code、m_post,显示匹配结果5、修改信息 通过职工的工号修改职工信息。声明链表指针ptr,调用查找函数Search_Unique_Front()找到需修改的职工信息,再次赋值即可。需要用 cout提示要输入的内容,接着用 cin输入相应的内容。6、删除信息 键盘输入的职工号,通过职工的工号code删除职工信息。链表指针匹配m_code并删除Head-Next7、计算科室平均工资 在按科室查找SearchPost函数中定义一个int类型 n(为科室人数),初始化为 0;每添加一人,则 sum+=ptr-m_Wage。用总的工资除以总人数,算出平均工资。六、源代码#include #include #include #include #include #include #include #include using namespace std; int n=0;class employee public:string m_Code; /职工工号string m_Name; string m_phone; string m_Sex; string m_Post;/所在科室unsigned int m_Average;unsigned int m_Cash;unsig

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 成人自考

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

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