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 循
4、环备份;就是那个 fstream 之类的东西;、退出系统用 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() c
5、outname;coutsex;coutage;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 : publ
6、ic employee /经理类protected: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;in
7、t xiaoshoue()return total;int numb3()return number3; /class salesmanager : public manager /销售经理类protected:int number4;public:void display4()coutnumber4;employee:display();int numb4()return number4; /void form()coutshuzi;switch(shuzi)case 1: /功能 1for(i=0;ia;if(a=1) exit(5);break;default :cout“error“e
8、ndl;return 0;四、运行结果数据备份内容.五、程序的使用说明1从键盘输入 1,按回车键,可进行各类数据的输入,此步骤必须执行;2从键盘输入 2,按回车键,即可进行数据统计,得到统计列表;3从键盘输入 3,按回车键,可打印出各类成员的基本信息;4从键盘输入 4,按回车键,可进行数据备份;5从键盘输入 5,按回车键,出现提示信息,若退出系统输入 1 否则输入 2。六、总结及心得体会从 9 月 2 号,我们开始了为期一周的 C+程序设计实习小型工资管理系统 ,每天下午去机房调试程序,上午编写下一天的程序代码。刚开始的时候,脑袋里一点思路都没有,因为以前没有接触过这么大的程序。所以刚开始的时
9、候,心里只有一个字能形容就是怕。怕自己便不好,怕这门课程完成不了,很多很多。去做一件事情,最忌讳的就是这一点。失败者和成功者最大的区别就是面对困难时的心态,我深知这一点。所以,我沉下心来思考了很多。做一个程序,最重要的就是大体思路,得有全局的思考,我承认,这一点我做的不是很好,因为我第 2 天的程序做了大改动,也许是我基本功不扎实,但是我所能想到的就是大改动了,可能有其他简便的方法,所以这对于我而言,是一个重大的警告。在第二天的晚上,我花了一晚的时间来重新整理思路,以防止在接下来的几天里再出现那样的错误,那就很让人纠结了。第 1天时完成数据的输入以及类的设计。这个还不是很难,就是定义一个基类e
10、mployee,然后派生下来几个子类。然后在类内编写返回值的函数,以及数据输入的函数等等,数据成员都设置成 protected。在类外在编几个数组,用来调用类内函数。第 2 天是完成数据统计,排序功能。排序的话用冒泡法,用数组进行数据的排序。但是问题出现了,第一天我是把输入功能独立变成一个 void 函数在主函数前面的,但是我发现数据无法存储下来。所以第 2 天我就把第一步的内容全改了,搬到了类内,这样才解决了问题。第三天时完成数据的输出显示,这个地方的难点就是设计表格,这个就涉及到了那个输入内容宽度的设计,以及制表键盘的。然后数据的输出就是在主函数内定义类对象数组,以此来实现数据的调用。然后
11、剩下的就是备份以及推出功能的实现了。这些都是在网上查了相关资料然后学会如何编写的,刚开始觉得很深奥,学了之后,就觉得,嗯,还行。所以其他的任务在半天内就完成了。看着自己编出的程序,真心觉得一切都值了,很有成就感的样子,我想这就是编程员的欢喜吧。整个实习过程让我明白了几点:1设计一个程序时需要从整体考虑,不能分散到最后结合不到一起;2有些貌似简单的功能的实现其程序实现不一定简单,但也不能畏首畏尾,不敢尝试,要勇于挑战自己,相信自己一定可以;31需要具有刻苦钻研的精神,注意总结,遇到问题认真思考,力求得到结果;2同时也不能忽略团队的力量,遇到实在个人解决不了的问题可以通过与同学商量解决,并且结合别人和自己的观点,从多方面考虑,在众多方案中找出最优化的;3遇到一些问题时要有耐心进行更正,因为可能有时候一个很小的错误会导致整个程序运行失常。我感觉这一周的实习非常充实,谢谢这一周给我指导的老师,以及各位同学的陪伴。