VC++课程设计报告_第1页
VC++课程设计报告_第2页
VC++课程设计报告_第3页
VC++课程设计报告_第4页
VC++课程设计报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

课 程 设 计 报 告学院、系:专业名称:计算机科学与技术课程设计科目VC+程序课程设计学生姓名:指导教师:完成时间:2013年 12 月题目小型公司工资管理系统一、 设计任务与目标1. 完成对于冒泡排序的程序掌握,C+基本输入输出流和其他基本语句、函数等完全掌握;2. C+的数据读写入文本当中的函数应用;3. 类的继承要熟练掌握。4. 小型公司工资管理系统题目要求 :(1)公司主要有4类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、月工资、岗位、年龄、性别等信息。 (2)工资的计算方法: A.经理:固定月薪为8000; B.技术员:工作时间*小时工资(100元每小时); C.销售员:销售额*4%提成;D.销售经理:底薪(5000)+所辖部门销售额总额*0.5%; (3)输入数据要求每类人员不能少于4人,并按以下格式输出:职工号 姓名 性别 年龄 岗位 工资 排名 (4)菜单要求:要有一个菜单,用于选择各项功能,其中 1) 数据录入:输入各种数据; 2) 数据统计:各销售经理的工资计算及最终按工资进行的冒泡排序; 3) 数据打印:打印上述表格; 4)数据备份:把相关数据写入文件;5)退出:退出本系统;二、方案设计与论证1.先定义了一个雇员类Employee,由雇员类公有派生出技术员类Technician,销售员类Salesman,经理类Manager。2.由销售员类Salesman,经理类Manager公有派生出销售经理类Salesmanager。通过基类去写的派生类就可以调基类的公有成员。3.利用for循环把经理数据,技术员数据,销售员数据,销售经理数据输入。4.利用冒泡排序法,建立一个“擂台”,用“擂台”上的数的前一个数与之比较,小的那个数放到最后,把各销售经理的工资按升序排列。5.利用switch进行选择系统进行的工作。在主菜单中进行调用各函数,从而实现系统各功能的运行。三、程序框图或流程图,程序清单与调用关系开始MIF()选项录入统计打印退出MIF()输入技术人经理销售销售经理显示结束雇员类技术员类经理类销售员类类销售经理类四、全部源程序清单/main.cpp#include#include#include/存放数据的头文件#include/调整距离#include Employee.h#include Manager.h#include Salesman.h#include Salesmanager.h#include Technician.husing namespace std;void MIF()cout输入:1endl;cout技术人员输入4个,经理4个,销售人员8个,销售经理4个endl;cout统计:2endl;cout打印:3endl;cout备份:4endl;cout退出:5j;while(j=1|j=2|j=3|j=4|j=5)/选择步骤1或2或3或4或5switch(j)case 1:for(i=0;i4;i+)/重复输入4个技术人员ti.display1();for(i=0;i4;i+)/4个经理mi.display2();for(i=0;i8;i+)/8个销售人员si.display3();for(i=0;ij;/重新操作double mo4,mone4;/mo为销售人员薪酬,mone为销售经理薪酬int x;break;case 2: for(i=0;i4;i+)/重复显示4个销售经理及其下销售人员cout职工号为smi.n()销售经理smi.na()下属销售员的业绩:endl;cout 职工号 姓名 销售额 endl;double money=0;for(x=0;x8;x+)/8个销售人员if(sx.numb()=smi.n()/1号销售人员属于201号销售经理money=money+sx.sa();/销售额+销售业绩monei=money*0.005+5000;/销售经理薪酬moi=money*0.005+5000;/销售人员薪酬cout setw(10)sx.n() setw(10)sx.na() setw(10)sx.sa() endl;/ID,姓名,销售额,sewt调整距离cout 销售额总计 setw(22)money endl;cout销售经理按工资排序为endl;double mon;/销售经理薪酬for(i=0;i3;i+)/冒泡for(x=0;x3-i;x+)/4个,递减排序if(mox前一个mon=mox;mox=mox+1;mox+1=mon;/利用中间变量,交换变量,改变2个变量间的大小排序cout 职工号 姓名 性别 年龄 工资 endl;for(int k=0;k4;k+)for(int y=0;y4;y+)if(money=mok) cout setw(10)smy.n() setw(10)smy.na() setw(10)smy.s() setw(8)smy.a() setw(8)money j;break;case 3:cout职工基本情况一览表如下endl;cout技术员endl;cout 职工号 姓名 性别 年龄 工资 endl;for(x=0;x4;x+)/把4个技术员输出 cout setw(8)tx.n() setw(8)tx.na() setw(8)tx.s() setw(8)tx.a() setw(8)tx.w() endl;cout经理endl;/4个经理cout 职工号 姓名 性别 年龄 工资 endl;for(x=0;x4;x+) cout setw(8)mx.n() setw(8)mx.na() setw(8)mx.s() setw(8)mx.a() setw(8)mx.w() endl;cout销售经理endl;/4个销售经理cout 职工号 姓名 性别 年龄 工资 endl;for(x=0;x4;x+) cout setw(8)smx.n() setw(8)smx.na() setw(8)smx.s() setw(8)smx.a() setw(8)monex endl;cout销售员endl;/8个销售员cout 职工号 姓名 性别 年龄 工资 endl;for(x=0;x8;x+) cout setw(8)sx.n() setw(8)sx.na() setw(8)sx.s() setw(8)sx.a() setw(8)sx.w() j;break;case 4:ofstream outfile(beifen.txt,ios:out) ;/创建文件if(! outfile)/不成功显示error提示cerropen error!endl;exit(1);outfile职工基本情况一览表如下:endl;/文件这输入此行语句outfile技术员的资料统计endl;/同上for(i=0;iTechnicianoutfile职工号: ti.n() 姓名: ti.na() 性别: ti.s() 年龄: ti.a() 工作时间: ti.ti() 工资: ti.w()endl; outfile经理的资料统计endl;for(i=0;iManageroutfile职工号: mi.n() 姓名: mi.na() 性别: mi.s() 年龄: mi.a() 工资: mi.w()endl; outfile销售员的资料统计endl;for(i=0;i8;i+) /sSalesmanoutfile职工号: si.n() 姓名: si.na() 性别: si.s() 年龄: si.a() 销售额: si.sa() 工资: si.w() 所属销售经理编号: si.numb()endl;outfile销售经理的资料统计endl;for(i=0;iSalesmanager outfile职工号: smi.n() 姓名: smi.na() 性别: smi.s() 年龄: smi.a() 工资: moneiendl;outfile.close();/输入完毕,关闭文件coutj;break;/重新操作case 5:cout是否确定退出系统:是1;否0:z;if(z=1)exit(0);if(z=0)MIF();cinj;default: cout输入有误,请重新输入:j;break;return 0;/Employee.h#include#include#include#includeusing namespace std;class Employee public:Employee();virtual Employee();protected:int num,age;double wages;char sex;string name;public:int n();/IDstring na();/姓名char s();/性别int a();/年龄;/Employee.cpp#include#include#include#includeusing namespace std;Employee:Employee()Employee:Employee()int Employee:n()return num;string Employee:na()return name;char Employee:s()return sex;int Employee:a()return age;/Manager.h#include#include#include#include#include Employee.husing namespace std;class Manager : public Employee public:Manager();virtual Manager();public:void display2() coutnum;coutname;coutsex;coutage;double w()wages=8000;/固定工资8000return wages;/Manager.cppManager:Manager()Manager:Manager()/Salesman.h#include Employee.h#include#include#include#includeusing namespace std;class Salesman : public Employee public:Salesman();virtual Salesman();protected:int number;double sales_volume;public:void display3()coutnum;coutname;coutsex;coutage;coutsales_volume;coutnumber;int numb()return number;double sa()return sales_volume;double w()return sales_volume*0.04;/Salesman.cppSalesman:Salesman()Salesman:Salesman()/Salesmanager.h#include Manager.h#include#include#include#includeusing namespace std;class Salesmanager : public Manager public:Salesmanager();virtual Salesmanager();void display4()coutnum;coutname;coutsex;coutage;/Salesmanager.cppSalesmanager:Salesmanager()Salesmanager:Salesmanager()/Technician.h#include#include#include#include#include Employee.husing namespace std;class Technician:public Employee public:Technician();virtual Technician();protected:int hour;public:void display1()coutnum;coutname;coutsex;coutage;couthour;double w();int ti();/Technician.cpp#include#include#include#includeusing namespace std;Technician:Technician()Technician:Technician()double Technician:w()double wa;wa=100*hour;return wa;int Technician:ti()return hour;五、程序运行的测试与分析六、结论与心得1. 对于问题,一开始分析问题的时候并没有十分认真审题,直接把录入、统计、备份功能作为类分析,但实际上题目要求的是将员工职业用类区别;2. C+中关于冒泡排序中并不一定需要程序员本身去编码,C+中本身有一个自带的快速排序的函数qsort(),其原理利用了折半查找的原理,但在尝试使用该函数时,总会出错,期望今后能够掌握该函数的应用;3. 关于

温馨提示

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

最新文档

评论

0/150

提交评论