C语言报告-小型公司工资管理系统.doc_第1页
C语言报告-小型公司工资管理系统.doc_第2页
C语言报告-小型公司工资管理系统.doc_第3页
C语言报告-小型公司工资管理系统.doc_第4页
C语言报告-小型公司工资管理系统.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

课 程 设 计课程名称: 程序设计方法与C 语言课程设计 设计题目: 小型公司工资管理系统设计 学 院: 信息工程与自动化学院 专 业: 计算机科学与技术 年 级: 2008级 学生姓名: 指导教师: 张力 日 期: 09年6月22日7月6日 教 务 处 制课 程 设 计 任 务 书 信息工程与自动化 学院 计算机科学与技术 专业 2008 年级班级: 082 学号: 姓名: 课程设计题目: 程序设计方法与C 语言课程设计 课程设计主要内容:一、 编程实现小型公司工资管理系统:需求分析:1、公司主要有4类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、月工资、岗位、年龄、性别等信息。2、工资的计算方法:A、经理:固定月薪为8000;B、技术员:工作时间*小时工资(100元每小时);C、销售员:销售额*4%提成;D、销售经理:底薪(5000)+所辖部门销售额总额*0.5%; 3、注册新职工,添加新职工的详细信息,如:职工号,姓名,出生年份,性别,职称,部门工资等;4、按姓名,部门等条件进行查询;5、修改和删除职工信息;6、按工资高低进行排序;7、把各项纪录存储在文本文件中设计1、 类及类层次结构设计有一个父类和4个子类父类中有虚函数,和基本数据的录入和输出,特殊数据的录入处理由多态实现。2、 模块分析1):新建部分 为实现不限制数量的人员录入建立链表;2):查找 在链表中查找含有某个特殊成员数据的对象,从头到尾寻找一边,判断是否输出3):排序 链表排序,冒泡排序,选择对其关键字进行排序;交换结点(交换对象的next数据)4):输出到文本 有类,fstream和函数save实现,链表成员一次输入3、 主菜单设计(一)、 编码及调试完整的程序:Main.cpp:#includestaff.h#includeMy_function.h#include int main()fstream io(date.txt,ios:out);Staff head;Staff *h,*p,*s;h=&head;p=&head;s=&head; if(!io) cerrFile could not be openedendl; exit(1); ;int i=0;while(i!=4)cout请选择你要进行的操作endl;cout1:注册新职工 2:查询endl;cout3:按工资高低进行排序endl;cout4:记录并推出i;switch(i)case 1:Login(&p,&s);break;case 2:Query(h);break;case 3:Sort(h); break;case 4:Save(head,io); break;default:cout请重新选择endl;system(cls); cout作者:计科082 崔辉毅 200810405207endl;cout版权归作者崔某所有endl;cout西陵荣誉出品endl;return 0;STFF.H:#ifndef STAFF_H#define STAFF_H#include#include#includeusing namespace std;class Staff;class Staffpublic:Staff();Staff(int i);Staff();virtual int count_wage();virtual void set();void b_set(); /基本信息录入virtual void get();void b_get(); /基本信息输出void set_wage(int wage);int get_wage();void set_next(Staff* next);Staff* get_next();void set_job(int job);int get_job();string get_name();void b_save(fstream &io);virtual void save(fstream &io);private:string M_NO,M_name; /职工号、姓名int M_job; /岗位(1经理、2技术员、3销售员、4销售经理)int M_wage,M_age,M_sex; /月工资、年龄、性别(1男2女)int M_year; /出生年份Staff *M_next;/指向下一个 ;class Manager:public Staffpublic:Manager();void set();void get();int count_wage();void save(fstream &io);class Technician:public Staffpublic:Technician();void set();void get();int count_wage();void save(fstream &io);private:int M_time;class Sales:public Staffpublic:Sales();void set();void get();int count_wage();void save(fstream &io);private:int M_sale;class Sales_Manager:public Staffpublic:Sales_Manager();void set();void get();int count_wage();void save(fstream &io);private:int M_sale;#endifSTAFF.CPP:#includestaff.hStaff:Staff(int i)M_job=i;M_next=0;Staff:Staff()M_next=0;Manager:Manager()set_job(1);Staff();Technician:Technician()set_job(2);Sales:Sales()set_job(3);Sales_Manager:Sales_Manager()set_job(4);Staff:Staff();void Staff:set();void Staff:b_set()cout请输入该职工的职工号M_NO;cout请输入该职工的姓名M_name;cout请输入该职工的出生年份M_year;cout请输入该职工的性别(1男2女)M_sex;void Staff:get();void Staff:b_get()cout职工号: M_NOendl;cout姓名: M_nameendl;cout出生年份: M_yearendl;if(M_sex=1)cout性别: 男endl;elsecout性别: 女endl;int Staff:count_wage()return 0;void Staff:set_wage(int wage)M_wage=wage;int Staff:get_wage()return M_wage;void Staff:set_next(Staff* next)M_next=next;Staff* Staff:get_next()return M_next;string Staff:get_name()return M_name;void Staff:set_job(int job)M_job=job;int Staff:get_job()return M_job;void Staff:b_save(fstream &io)io职工号: M_NOendl;io姓名: M_nameendl;io出生年份: M_yearendl;if(M_sex=1)io性别: 男endl;elseio性别: 女endl;void Staff:save(fstream &io);int Manager:count_wage()set_wage(8000);return 8000;void Manager:set()b_set();count_wage();void Manager:get()b_get();cout职务: Managerendl;cout月薪: 8000endl;void Manager:save(fstream &io)b_save(io);io职务: Managerendl;io月薪: 8000endl;int Technician:count_wage()set_wage(M_time*100);return M_time*100;void Technician:set()b_set();cout请输入该职工的月工作时间M_time;count_wage();void Technician:get()b_get();cout职务: Technicianendl;cout月薪: count_wage()endl;void Technician:save(fstream &io)b_save(io);io职务: Technicianendl;io月薪: count_wage()endl;int Sales:count_wage()set_wage(M_sale*0.04);return M_sale*0.04;void Sales:set()b_set();cout请输入该职工的销售额M_sale;count_wage();void Sales:get()b_get();cout职务: Salesendl;cout月薪: count_wage()endl;void Sales:save(fstream &io)b_save(io);io职务: Salesendl;io月薪: count_wage()endl;int Sales_Manager:count_wage()set_wage(5000+M_sale*0.0005);return 5000+M_sale*0.0005;void Sales_Manager:set()b_set();cout请输入该职工所辖部门销售额总额M_sale;count_wage();void Sales_Manager:get()b_get();cout职务: Sales_Managerendl;cout月薪: count_wage()endl;void Sales_Manager:save(fstream &io)b_save(io);io职务: Sales_Managerendl;io月薪: count_wage()endl;My_function.h:#ifndef MY_FUNCTION_H#define MY_FUNCTION_H#includestaff.hvoid Login(Staff *p,Staff *s);void Query(Staff *h);void name(Staff *h);void job(Staff *h);void Sort(Staff *h);void Save(Staff &h,fstream &io);#endifMy_function.cpp:#includeMy_function.hvoid Login(Staff *p,Staff *s)int i;cout请输入该职工的职务(1经理、2技术员、3销售员、4销售经理)i;switch(i)case 1:*s=new Manager;break;case 2:*s=new Technician;break;case 3:*s=new Sales;break;case 4:*s=new Sales_Manager;break;(*s).set();(*p).set_next(*s);*p=*s;void Query(Staff *h)int i;cout请选择:1 按姓名查询endl;cout 2 按部门查询i;switch(i)case 1:name(h);break;case 2:job(h);break;default:cout请重新选择endl;void name(Staff *h)Staff *p=h,*s=h;string name;cout请输入您要查询的员工名字name;while(*p).get_next()if(*p).get_name()=name)(*p).get();s=(*p).get_next();p=s;if(*p).get_name()=name)(*p).get();cout搜寻结束endl;void job(Staff *h)Staff *p=h,*s=h;int job;cout请输入您要查询的部门编号(1经理、2技术员、3销售员、4销售经理)job;while(*p).get_next()if(*p).get_job()=job)(*p).get();s=(*p).get_next();p=s;if(*p).get_job()=job)(*p).get();cout搜寻结束(*q).get_wage()(*s).set_next(q);z=(*q).get_next();(*q).set_next(p);(*p).set_next(z);s=q;q=(*p).get_next();elses=p;p=q;q=(*q).get_next();x=(*x).get_next();s=x;p=(*s).get_next();q=(*p).get_next();cout排序完成,退出时输出到文本查看en

温馨提示

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

评论

0/150

提交评论