《C语言报告小型公司工资管理系统》由会员分享,可在线阅读,更多相关《C语言报告小型公司工资管理系统(19页珍藏版)》请在金锄头文库上搜索。
1、 课 程 设 计课程名称: 程序设计方法与C 语言课程设计 设计题目: 小型公司工资管理系统设计 学 院: 信息工程与自动化学院 专 业: 计算机科学与技术 年 级: 2008级 学生姓名: 指导教师: 张力 日 期: 09年6月22日7月6日 教 务 处 制课 程 设 计 任 务 书 信息工程与自动化 学院 计算机科学与技术 专业 2008 年级班级: 082 学号: 姓名: 课程设计题目: 程序设计方法与C 语言课程设计 课程设计主要内容:一、 编程实现小型公司工资管理系统:需求分析:1、公司主要有4类人员:经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、月工资、岗位、年龄、
2、性别等信息。2、工资的计算方法:A、经理:固定月薪为8000;B、技术员:工作时间*小时工资(100元每小时);C、销售员:销售额*4%提成;D、销售经理:底薪(5000)+所辖部门销售额总额*0.5%; 3、注册新职工,添加新职工的详细信息,如:职工号,姓名,出生年份,性别,职称,部门工资等;4、按姓名,部门等条件进行查询;5、修改和删除职工信息;6、按工资高低进行排序;7、把各项纪录存储在文本文件中设计1、 类及类层次结构设计有一个父类和4个子类父类中有虚函数,和基本数据的录入和输出,特殊数据的录入处理由多态实现。2、 模块分析1):新建部分 为实现不限制数量的人员录入建立链表;2):查找
3、 在链表中查找含有某个特殊成员数据的对象,从头到尾寻找一边,判断是否输出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) cerrFi
4、le 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 崔辉毅 20081040520
5、7endl;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 se
6、t_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
7、 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 Staffpubli
8、c: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:S
9、taff()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()
10、;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
11、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()