c实习报告小型公司工资管理系统的设计.doc_第1页
c实习报告小型公司工资管理系统的设计.doc_第2页
c实习报告小型公司工资管理系统的设计.doc_第3页
c实习报告小型公司工资管理系统的设计.doc_第4页
c实习报告小型公司工资管理系统的设计.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

程序设计实习报告小型公司工资管理系统的设计专业班级:电子信息工程目录一、 实习内容1二、 设计思路2三、 程序清单3四、 运行结果4五、 程序使用说明5六、 总结及心得体会6程序设计实习报告一、实习内容本次实习的内容是设计一个小型公司的工资管理系统,通过这个系统实现对经理、技术员、销售员及销售经理等公司成员的职工号、姓名、年龄、月工资等信息的数据输入、数据处理、数据的输出显示、数据的备份等功能。本次实习主要是针对较难综合题目进行分析、编程、调试和运行,这利于我们进一步掌握面向过程和面向对象程序的基本方法和编程技巧,巩固所学理论知识,使理论与实践相结合,提高分析问题解决问题的能力。本次实习的题目及要求如下:1.题目:小型公司工资管理系统的设计2.设计说明与基本要求:(1 )公司主要有4类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、性别、年龄、月工资等信息;(2) 工资的计算方法: 经理:固定月薪为8000元;技术员:工作时间工资(100元/小时);销售员:销售额4%提成;销售经理:底薪(5000元)+下属销售员销售额总额0.5%;(3) 员工基本数据的输入:要求每类人员不能少于4人,其中销售员需要8名,每名销售经理手下有名销售员。(4) 各类的数据成员访问权限设置为:protected3.实现的基本功能:(1 )菜单选择功能; (2)数据的输入;(3)数据的统计; (4)数据的输出,显示;(5)数据的备份; (6)退出系统。 二、设计思路1.类的层次结构2.设计思路首先要总体设计,要有一个菜单,用于选择各项功能,用来进行数据的录入,数据的统计,数据的打印,数据的备份,进入多级菜单,退出系统等功能。这就要充分利用了类的继承与派生的知识,先定义一个基类base,由基类共有派生出技术员类 Tec,销售员类Sel,经理类Man,又由经理类公有派生出销售经理类Sma。把基类定义成虚基类,通过基类去写的派生类就可以调用基类的公有成员。程序中宜使用全局变量,便于修改,简便清晰。定义完类后,定义各函数,因为各功能的实现需要定义与其功能相适应的函数,所以定义了数据输入函数ph1( ),数据打印函数ph3( ),数据统计函数ph2( ),数据备份函数save( ),进入多级菜单进行统计函数ph4( )等。将主函数放在最后来实现整个程序的运行,运用switch语句选择系统进行的工作,在主菜单中进行调用各函数,从而实现各功能。程序中要求销售经理工资排序则采用的冒泡排序法实现。 三、程序清单# include # include # include # include using namespace std;fstream outfile;int m,i,t,x;int salary4=0,0,0,0;int s4=0,0,0,0;void menu() /定义主菜单函数cout小型公司工资管理系统endl; coutendl; cout 请选择您所需的操作 endl; cout 数据输入:1,并按回车键 endl; cout 数据统计:2,并按回车键 endl; cout 数据打印:3,并按回车键 endl; cout 数据备份:4,并按回车键 endl; cout 退出系统:5,并按回车键 endl; cout 多级菜单:6,并按回车键 endl; coutendl; cout请选择一个操作: ;void menus() /定义多级菜单函数cout小型公司工资管理系统endl; coutendl; cout 请选择您所需的操作 endl; cout 技术员基本情况 :1,并按回车键endl; cout 经理基本情况 :2,并按回车键endl; cout 销售经理基本情况 :3,并按回车键endl; cout 销售员基本情况 :4,并按回车键endl; cout 返回上一级 :5,并按回车键endl; coutendl; cout请选择一个操作: ;void heng() /定义heng函数cout endl;void form() /定义form函数coutendl; cout 职工号 姓名 性别 年龄 工资 endl; void forms() /定义forms函数outfileendl;outfile 职工号 姓名 性别 年龄 工资 endl; void head() /定义head函数 coutendl; cout 职工号 姓名 性别 年龄 工资 endl;void end() /定义end函数 coutendl;class Base /定义基类protected:int a,b,n;string c;char d;class Tec:protected Base /技术员类public:void print1 ()couta;coutc;coutd;coutn;coutb; void out1()coutendl;coutsetw(8)asetw(6)csetw(8)dsetw(8)nsetw(12)int(b*100)endl;int a1()return a;int b1()return b;string c1()return c;char d1()return d;int n1()return n;Tec,tec4;class Man:protected Base /经理类public:void out2()coutendl;coutsetw(8)asetw(6)csetw(8)dsetw(8)bsetw(12)8000endl;int a2()return a;int b2()return b;string c2()return c;char d2()return d;int n2()return n;void print2 ()couta;coutc;coutd;coutb;Man,man4;class Sel:protected Base /销售员类public:void print3 ()couta;coutc;coutd;coutb;coutn;coutf;int printsnum() return f;int printmoney()return n;void out() coutendl;coutsetw(9)a setw(9)c setw(9)n endl;void out3()coutendl;coutsetw(8)asetw(6)csetw(8)dsetw(8)bsetw(10)int(n*0.04)setw(18)fendl;int a3()return a;int b3()return b;string c3()return c;char d3()return d;int n3()return n;int f3()return f;private: int f;Sel,sel8;class Sma:protected Man /销售经理类public:void print4 ()couta;coutc;coutd;coutb;int printnum()return a;string printname()return c;int a4()return a;int b4()return b;string c4()return c;char d4()return d;int n4()return n;void mout()coutendl;coutsetw(8)asetw(6)csetw(8)dsetw(8)bsetw(12)int(5000+0.005*si)endl;Sma sma4;void ph1() /定义数据输入函数 for(i=0;i4;i+)teci.print1();heng(); for(i=0;i4;i+)mani.print2();heng(); for(i=0;i8;i+)seli.print3();heng(); for(i=0;i4;i+)smai.print4();heng();menu();void ph2() /定义数据统计函数int salary4=0,0,0,0;int s4=0,0,0,0;for(int j=0;j=3;j+)coutn职工号为smaj.printnum()销售经理smaj.printname()下属销售员的业绩为:endl;coutnendl;coutendl;cout 职工号 姓名 销售额 endl;for(i=0;i8;i+)if(seli.printsnum()=smaj.printnum()seli.out();sj+=seli.printmoney();salaryj=sj;coutendl;cout 销售额总计:setw(24)sjendl;coutendl;coutn销售经理按工资排序为: nendl;form();for(i=0;i3;i+) for(j=0;j3-i;j+)if(sjsj+1)m=sj;sj=sj+1;sj+1=m;for(i=0;i4;i+) for(j=0;j4;j+) if(salaryj=si) smaj.mout();break; coutendl; menu ();void ph3 () /定义数据打印函数cout 请等待.endl;cout职工基本情况一览表如下m;if(m=1)cout技术员endl;form();for(int i=0;i4;i+)teci.out1();coutendl;heng();continue;else if(m=2)cout经理endl;form();for(i=0;i4;i+)mani.out2();coutendl;heng();continue;else if(m=3)cout销售经理endl;form();for(i=0;i2;i+) for(int j=0;j4;j+) if(salaryj=si) smaj.mout();break;coutendl; heng();continue;else if (m=4)cout销售员endl;coutendl;cout 职工号 姓名 性别 年龄 工资 所属部门经理编号 endl;for(int k=0;k=7;k+)selk.out3();coutendl;heng();continue;else if(m=5)break;else cout你的选择有误,请重新选择。:endl;void ph4 () /定义进入多级菜单,数据统计函数 cout职工基本情况一览表如下:endl; cout技术员endl; head(); for(i=0;i4;i+) teci.out1(); end(); cout-endl; cout经理endl; head(); for(i=0;i4;i+) mani.out2(); end(); cout-endl; cout销售经理endl; head(); for(i=0;i4;i+) smai.mout(); end(); cout-endl; cout销售员endl; coutendl; cout 职工号 姓名 性别 年龄 工资 所属部门经理编号 endl; for(i=0;i8;i+) seli.out3(); coutendl; cout-endl;menu();void save() /定义数据备份函数cout数据备份中,请稍等.endl;outfile.open(D:save.txt,ios:trunc|ios:out);outfile技术员endl;forms();for(i=0;i4;i+)outfileendl; outfilesetw(8)teci.a1()setw(6)teci.c1()setw(8)teci.d1()setw(8)teci.n1()setw(12)int(teci.b1()*100)endl;outfileendl;outfile endl;outfile经理endl;forms();for(i=0;i4;i+)outfileendl;outfilesetw(8)mani.a2()setw(6)mani.c2()setw(8)mani.d2()setw(8)mani.b2()setw(12)8000endl;outfileendl;outfile endl;outfile销售经理endl;forms();for(i=0;i4;i+)outfileendl;outfilesetw(8)smai.a4()setw(6)smai.c4()setw(8)smai.d4()setw(8)smai.b4()setw(12)int(5000+0.005*salaryi)endl;outfileendl;outfile endl;outfile销售员endl;outfileendl;outfile 职工号 姓名 性别 年龄 工资 所属部门经理编号 endl;for(i=0;i8;i+)outfileendl;outfilesetw(8)seli.a3()setw(6)seli.c3()setw(8)seli.d3()setw(8)seli.b3()setw(10)int(seli.n3()*0.04)setw(18)seli.f3()endl;outfileendl;outfile endl;outfile.close();cout备份完成!endl;int main() /主函数menu();for(i=1;ix;switch (x)case 1:ph1();break;case 2: ph2();break;case 3:ph4();break;case 4:save();menu();break;case 6:ph3();menu();break;if(x=5)char t; cout您确定要退出吗?退出:请按 Y,否:请按Nendl;coutt;for(;)if(t!=n&t!=N&t!=y&t!=Y) coutt;if(t=n|t=N)menu();else break;return 0;四、运行结果五、程序的使用说明1.菜单说明 :(1)数据输入指通过键盘输入经理、技术员、销售员及销售经理等公司成员的职工号、姓名、年龄等各项数据;(2)数据统计指统计各销售经理下属销售员的销售额及销售总额,销售经理按工资进行的冒泡排序;(3)数据打印指按照表格的格式在屏幕上输出个员工的信息;(4)数据备份指将所有员工的信息保存到文件;(5)退出指结束程序的运行;(6)进入多级菜单。2.其他说明:(1)选择功能是输入的必须是数字,否则系统可能会运行出错,得到不确定的结果。(2)由于程序设计的限制,输入名字时不能输入过长,否则系统出错;六、总结及心得体会通过四天的实习,我基本完成了设计一个小型公司工资管理系统的程序的任务,这使我对c+以及它的使用有了更深一步的理解和熟练,不过期间也遇到不少问题,由于对基础知识掌握的不够好,对全局变量的掌握不好,所以在出现错误是没能及时解决。刚开始时感觉无从下手,不过分步进行编辑,编译,调试,运行,比较容易进行编程。记得刚学习c+是感觉特别难,始终没有搞清楚c+是门什么样的课,而通过这次实习我能够基本掌握C+语言编程的基础知识,通过这次编写的较难的程序,对于编程有了更多的了解和更贴切的体会。我想这有利于今后对c+的使用,锻炼我们缜密的思维提高我们的独立思考,独立解决问题,综合运用所学知识的能力,提高了上机动手编程的能力。通过本次实习,我加深了对类与派生的理解,对于类的保护成员只对本身成员函数使用,而不能

温馨提示

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

评论

0/150

提交评论