C语言报告小型公司工资标准管理系统.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 报告 小型 公司 工资标准 管理 系统
- 资源描述:
-
课 程 设 计 课程名称: 程序设计方法和C 语言课程设计 设计题目: 小型企业工资管理系统设计 学 院: 信息工程和自动化学院 专 业: 计算机科学和技术 年 级: 级 学生姓名: 指导老师: 张力 日 期: 6月22日—7月6日 教 务 处 制 课 程 设 计 任 务 书 信息工程和自动化 学院 计算机科学和技术 专业 年级 班级: 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: #include"staff.h" #include"My_function.h" #include<stdio.h> int main() { fstream io("date.txt",ios::out); Staff head; Staff *h,*p,*s; h=&head; p=&head; s=&head; if(!io) { cerr<<"File could not be opened"<<endl; exit(1); }; int i=0; while(i!=4) { cout<<"请选择你要进行操作"<<endl; cout<<"1:注册新职员 2:查询"<<endl; cout<<"3:按工资高低进行排序"<<endl; cout<<"4:统计并推出"<<endl; cin>>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 崔辉毅 10405207"<<endl; cout<<"……版权归作者崔某全部……"<<endl; cout<<"………西陵荣誉出品………"<<endl; return 0; }; STFF.H: #ifndef STAFF_H #define STAFF_H #include<fstream> #include<iostream> #include<string> using namespace std; class Staff; class Staff { public: 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 Staff { public: Manager(); void set(); void get(); int count_wage(); void save(fstream &io); }; class Technician:public Staff { public: Technician(); void set(); void get(); int count_wage(); void save(fstream &io); private: int M_time; }; class Sales:public Staff { public: Sales(); void set(); void get(); int count_wage(); void save(fstream &io); private: int M_sale; }; class Sales_Manager:public Staff { public: Sales_Manager(); void set(); void get(); int count_wage(); void save(fstream &io); private: int M_sale; }; #endif STAFF.CPP: #include"staff.h" Staff::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<<"请输入该职员职员号"<<endl; cin>>M_NO; cout<<"请输入该职员姓名"<<endl; cin>>M_name; cout<<"请输入该职员出生年份"<<endl; cin>>M_year; cout<<"请输入该职员性别(1男2女)"<<endl; cin>>M_sex; }; void Staff::get() { }; void Staff::b_get() { cout<<"职员号: "<<M_NO<<endl; cout<<"姓名: "<<M_name<<endl; cout<<"出生年份: "<<M_year<<endl; if(M_sex==1) cout<<"性别: 男"<<endl; else cout<<"性别: 女"<<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_NO<<endl; io<<"姓名: "<<M_name<<endl; io<<"出生年份: "<<M_year<<endl; if(M_sex==1) io<<"性别: 男"<<endl; else io<<"性别: 女"<<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<<"职务: Manager"<<endl; cout<<"月薪: 8000"<<endl; }; void Manager::save(fstream &io) { b_save(io); io<<"职务: Manager"<<endl; io<<"月薪: 8000"<<endl; }; int Technician::count_wage() { set_wage((M_time*100)); return M_time*100; }; void Technician::set() { b_set(); cout<<"请输入该职员月工作时间"<<endl; cin>>M_time; count_wage(); }; void Technician::get() { b_get(); cout<<"职务: Technician"<<endl; cout<<"月薪: "<<count_wage()<<endl; }; void Technician::save(fstream &io) { b_save(io); io<<"职务: Technician"<<endl; 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<<"请输入该职员销售额"<<endl; cin>>M_sale; count_wage(); }; void Sales::get() { b_get(); cout<<"职务: Sales"<<endl; cout<<"月薪: "<<count_wage()<<endl; }; void Sales::save(fstream &io) { b_save(io); io<<"职务: Sales"<<endl; 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<<"请输入该职员所辖部门销售额总额"<<endl; cin>>M_sale; count_wage(); }; void Sales_Manager::get() { b_get(); cout<<"职务: Sales_Manager"<<endl; cout<<"月薪: "<<count_wage()<<endl; }; void Sales_Manager::save(fstream &io) { b_save(io); io<<"职务: Sales_Manager"<<endl; io<<"月薪: "<<count_wage()<<endl; }; My_function.h: #ifndef MY_FUNCTION_H #define MY_FUNCTION_H #include"staff.h" void 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); #endif My_function.cpp: #include"My_function.h" void Login(Staff **p,Staff **s) { int i; cout<<"请输入该职员职务(1经理、2技术员、3销售员、4销售经理)"<<endl; cin>>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 按部门查询"<<endl; cin>>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<<"请输入您要查询职员名字"<<endl; cin>>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销售经理)"<<endl; cin>>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<<"搜寻结束"<<endl; }; void Sort(Staff *h) { Staff *z,*x=h; //z:中间变量 x:监管循环次数 Staff *s,*p,*q; s=h; p=(*h).get_next(); if(p) { q=(*p).get_next(); if(q) { while((p!=0)&&(q!=0)&&(s!=0)) { while((p!=0)&&(q!=0)&&(s!=0)) { if((*p).get_wage()>(*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(); } else { s=p; p=q; q=(*q).get_next(); }; }; x=(*x).get_next(); s=x; p=(*s).get_next(); q=(*p).get_next(); }; } } cout<<"排序完成,退出时输出到文本查看"<<endl; }; void Save(Staff &h,fstream &io) { Staff *p,*s; p=h.get_next(); s=h.get_next(); while(p) { (*p).save(io); cout<<endl; s=(*p).get_next(); p=s; }; }; 调试: 1.注册职员(链表实现): 2.查询: 3.排序: 4.文本: 二、分析程序题: ……………………………… 四、 总结和体会 经过课程设计了解了一定得链表知识和指针使用。 具体来说对链表建立,查找和排序全部进行了练习,其间对指针是用注意细节愈加明了.等等… … 五、 参考文件 书本…… 设 计 指 导 教 师 (签字): 教学基层组织责任人(签字): 年6月 20 日展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




C语言报告小型公司工资标准管理系统.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/2497101.html