C++程序设计实习报告_第1页
C++程序设计实习报告_第2页
C++程序设计实习报告_第3页
C++程序设计实习报告_第4页
C++程序设计实习报告_第5页
已阅读5页,还剩20页未读, 继续免费阅读

下载本文档

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

文档简介

1、目录一、 实习内容1二、 设计思路2三、 程序清单3四、 运行结果15五、 程序使用说明20六、 总结及心得体会21一、实习内容课程设计的题目:小型公司工资管理系统设计设计说明:公司主要有四类人员:经理、技术员、销售员、销售经理。程序要求存储这些人的职工号、姓名、月工资、年龄、性别等信息。并且应用程序中要求给出菜单,用于选择各项功能。一、程序要求实现的功能即菜单目录有:1、 数据输入:输入各种数据;2、 数据统计:统计各销售经理下属销售员的销售额及销售额之和;销售经理工资进行冒泡排序;3、 数据打印:打印各类员工的数据信息;4、 数据备份:把各类员工的数据信息写入文件中保存;5、 退出:退出本

2、系统,即结束程序的运行。二、工资的计算方法A:经理:固定月薪为8000元;B:技术员:工作时间*小时工资(100元/小时);C:销售员:销售额* 4%提成;D:销售经理:底薪(5000)+所辖部门销售额总额* 0.5%。三、类的层次结构大体如下雇员类 技术员类 经理类 销售员类销售经理类二、设计思路1(1)首先我们要搞清楚各类之间的继承关系,设置基类employee,其派生类manager,technician,salesman。再以manager类为基类,再派生一个salesmanager类,将各类的数据成员设计成protected,方便派生类对基类的继承;(2)在public里编写数据输入

3、的函数,在主函数中输出菜单并定义各类的对象,通过对象来调用数据输入函数;2(1)在基类employee中补充几个返回各类数据的函数以用于返回输入的各类值;(2)在主函数内用冒泡法对销售经理的工资进行排序,定义一个wage来将各销售经理下面的销售员的销售额进行储存,定义一个all用于计算销售经理的销售总额,以便于下面对其进行工资的计算 ;(3)第2,3,4步都用大量的for循环进行输出,以实现表格的形成还有表格中数据的输入;在主函数内定义各类的对象,然后都是直接通过类的对象调用类内的函数,运用for循环进行打印,统计;3备份参照课本格式,选择路径及格式,运用for循环备份;就是那个fstream

4、之类的东西;、退出系统用exit(5)函数实现;4主函数运用switch语句,将上述功能编为case 15,每个case后添加break;5程序结束。以上是我所认为的该程序的几个要点. 三、程序清单#include#include#include#include#includeusing namespace std;const N=2;fstream outfile;class employee /基类,雇佣者protected: string name;char sex;int age;public: virtual void display() coutname;coutsex;couta

5、ge;string nam()return name;char se()return sex;int ag()return age; /class technician: public employee /技术员类public: int worktime;int number1;public: void display1()coutnumber1;employee:display();coutworktime;int time()return worktime;int numb1()return number1; /class manager : public employee /经理类pro

6、tected: int number2; public:void display2()coutnumber2;employee:display();int numb2()return number2; /class salesman : public employee /销售员类protected: int total;int boss;int number3;public:void display3()coutnumber3;employee:display(); couttotal;coutboss;int hismanager()return boss;int xiaoshoue()re

7、turn total;int numb3()return number3; /class salesmanager : public manager /销售经理类protected: int number4;public:void display4()coutnumber4;employee:display();int numb4()return number4; /void form()cout小型公司工资管理系统endl; /提示表格coutendl;cout 请选择您所需的操作 endl;cout 数据输入:1,并按回车键 endl;cout 数据统计:2,并按回车键 endl;cout

8、 数据打印:3,并按回车键 endl;cout 数据备份:4,并按回车键 endl;cout 退出系统:5,并按回车键 endl;coutendl;coutshuzi;switch(shuzi)case 1: /功能1 for(i=0;iN;i+) t1i.display1();cout.endl; for(i=0;iN;i+) m1i.display2();cout.endl; for(i=0;i2*N;i+) s1i.display3();cout.endl; for(i=0;iN;i+) sm1i.display4();cout.endl;break;case 2: /功能2for(i=

9、0;iN;i+)wagei=5000;all=0;cout职工号为sm1i.numb4()销售经理sm1i.nam()下属销售员的业绩为:endl;coutendl; cout职工号 姓名 销售额 endl;for(m=0;m2*N;m+)if(s1m.hismanager()=sm1i.numb4()wagei=wagei+0.005*(s1m.xiaoshoue();all=all+s1m.xiaoshoue(); coutendl; coutsetw(10)s1m.numb3() setw(8)s1m.nam()setw(10)s1m.xiaoshoue()endl; coutendl;

10、 cout销售额总计setw(20)allendl; coutendl;for(j=0;jN;j+) for(k=0;kN-j;k+) if(wagekwagek+1)t=wagek; /冒泡 wagek=wagek+1; wagek+1=t; f=sm1k; sm1k=sm1k+1;sm1k+1=f;cout销售经理按工资排序为:endl;coutendl;cout职工号 姓名 性别 年龄 工资 endl;for(g=0;gN;g+)coutendl;coutsetw(10)sm1g.numb4()setw(8)sm1g.nam()setw(8)sm1g.se()setw(8)sm1g.ag

11、()setw(8)wagegendl;coutendl; break ; /功能3case 3: cout请等待.endl;cout职工基本情况一览表如下endl;cout技术员endl; coutendl; cout职工号 姓名 性别 年龄 工资 endl; for(i=0;iN;i+)coutendl;coutsetw(10)t1i.numb1()setw(8)t1i.nam()setw(8)t1i.se()setw(8)t1i.ag()setw(8)t1i.time()*100endl;coutendl; /技术员表 cout.endl;cout经理endl; coutendl; cou

12、t职工号 姓名 性别 年龄 工资 endl; for(i=0;iN;i+)coutendl;coutsetw(10)m1i.numb2()setw(8)m1i.nam()setw(8)m1i.se()setw(8)m1i.ag()setw(8)8000endl;coutendl; /经理表cout.endl;cout销售经理endl; coutendl; cout职工号 姓名 性别 年龄 工资 endl; for(g=0;gN;g+) coutendl; coutsetw(10)sm1g.numb4()setw(8)sm1g.nam()setw(8)sm1g.se()setw(8)sm1g.a

13、g()setw(8)wagegendl; coutendl;cout.endl; /销售经理表cout销售员endl; coutendl; cout职工号 姓名 性别 年龄 工资 所属部门经理编号endl; for(i=0;i(2*N);i+)coutendl;coutsetw(10)s1i.numb3()setw(8)s1i.nam()setw(8)s1i.se()setw(8)s1i.ag()setw(8)s1i.xiaoshoue()*0.04setw(16)s1i.hismanager()endl;coutendl; /经理表cout.endl; break;case 4:cout数据

14、备份endl; outfile.open(E:sjq.txt,ios:in|ios:out|ios:trunc); outfile技术员endl; outfileendl; outfile职工号 姓名 性别 年龄 工资 endl; for(i=0;iN;i+)outfileendl;outfilesetw(10)t1i.numb1()setw(8)t1i.nam()setw(8)t1i.se()setw(8)t1i.ag()setw(8)t1i.time()*100endl;outfileendl; /技术员表 outfile.endl;outfile经理endl; outfileendl;

15、outfile职工号 姓名 性别 年龄 工资 endl; for(i=0;iN;i+)outfileendl;outfilesetw(10)m1i.numb2()setw(8)m1i.nam()setw(8)m1i.se()setw(8)m1i.ag()setw(8)8000endl;outfileendl; /经理表outfile.endl;outfile销售经理endl; outfileendl; outfile职工号 姓名 性别 年龄 工资 endl; for(g=0;gN;g+) outfileendl; outfilesetw(10)sm1g.numb4()setw(8)sm1g.n

16、am()setw(8)sm1g.se()setw(8)sm1g.ag()setw(8)wagegendl; outfileendl;outfile.endl; /销售经理表outfile销售员endl; outfileendl; outfile职工号 姓名 性别 年龄 工资 所属部门经理编号endl; for(i=0;i(2*N);i+)outfileendl;outfilesetw(10)s1i.numb3()setw(8)s1i.nam()setw(8)s1i.se()setw(8)s1i.ag()setw(8)s1i.xiaoshoue()*0.04setw(16)s1i.hismana

17、ger()endl;outfileendl; /经理表outfile.endl;outfile.close();break; case 5:cout确定退出系统吗?endl;cout是:1, 否:2a;if(a=1) exit(5);break; default :couterrorendl;return 0;四、运行结果数据备份内容.五、程序的使用说明1从键盘输入1,按回车键,可进行各类数据的输入,此步骤必须执行;2从键盘输入2,按回车键,即可进行数据统计,得到统计列表;3从键盘输入3,按回车键,可打印出各类成员的基本信息;4从键盘输入4,按回车键,可进行数据备份;5从键盘输入5,按回车键,

18、出现提示信息,若退出系统输入1否则输入2。六、总结及心得体会从9月2号,我们开始了为期一周的C+程序设计实习小型工资管理系统,每天下午去机房调试程序,上午编写下一天的程序代码。刚开始的时候,脑袋里一点思路都没有,因为以前没有接触过这么大的程序。所以刚开始的时候,心里只有一个字能形容就是怕。怕自己便不好,怕这门课程完成不了,很多很多。去做一件事情,最忌讳的就是这一点。失败者和成功者最大的区别就是面对困难时的心态,我深知这一点。所以,我沉下心来思考了很多。做一个程序,最重要的就是大体思路,得有全局的思考,我承认,这一点我做的不是很好,因为我第2天的程序做了大改动,也许是我基本功不扎实,但是我所能想到的就是大改动了,可能有其他简便的方法,所以这对于我而言,是一个重大的警告。在第二天的晚上,我花了一晚的时间来重新整理思路,以防止在接下来的几天里再出现那样的错误,那就很让人纠结了。第1天时完成数据的输入以及类的设计。这个还不是很难,就是定义一个基类employee,然后派生下来几个子类。然后在类内编写返回值的函数,以及数据输入的函数等等,数据成员都设置成protected。在类外在编几个数组,用来调用类内函数。第2天

温馨提示

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

评论

0/150

提交评论